/[escript]/trunk/escript/src/DataConstant.h
ViewVC logotype

Diff of /trunk/escript/src/DataConstant.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/esys2/escript/src/Data/DataConstant.h revision 117 by jgs, Fri Apr 1 05:48:57 2005 UTC trunk/escript/src/DataConstant.h revision 854 by gross, Thu Sep 21 05:29:42 2006 UTC
# Line 1  Line 1 
1  //$Id$  //$Id$
2  /*  /*
3   ******************************************************************************   ************************************************************
4   *                                                                            *   *          Copyright 2006 by ACcESS MNRF                   *
5   *       COPYRIGHT  ACcESS 2004 -  All Rights Reserved                        *   *                                                          *
6   *                                                                            *   *              http://www.access.edu.au                    *
7   * This software is the property of ACcESS. No part of this code              *   *       Primary Business: Queensland, Australia            *
8   * may be copied in any form or by any means without the expressed written    *   *  Licensed under the Open Software License version 3.0    *
9   * consent of ACcESS.  Copying, use or modification of this software          *   *     http://www.opensource.org/licenses/osl-3.0.php       *
10   * by any unauthorised person is illegal unless that person has a software    *   *                                                          *
11   * license agreement with ACcESS.                                             *   ************************************************************
  *                                                                            *  
  ******************************************************************************  
12  */  */
13                                                                              
14  #if !defined escript_DataConstant_20040323_H  #if !defined escript_DataConstant_20040323_H
15  #define escript_DataConstant_20040323_H  #define escript_DataConstant_20040323_H
16    #include "system_dep.h"
17    
18  #include "escript/Data/DataAbstract.h"  #include "DataAbstract.h"
19  #include "escript/Data/DataArray.h"  #include "DataArrayView.h"
 #include "escript/Data/DataArrayView.h"  
20    
21  #include <boost/python/numeric.hpp>  #include <boost/python/numeric.hpp>
22    
# Line 47  class DataConstant : public DataAbstract Line 45  class DataConstant : public DataAbstract
45       \param value - Input - Data value for a single point.       \param value - Input - Data value for a single point.
46       \param what - Input - A description of what this data object represents.       \param what - Input - A description of what this data object represents.
47    */    */
48      ESCRIPT_DLL_API
49    DataConstant(const boost::python::numeric::array& value,    DataConstant(const boost::python::numeric::array& value,
50                 const FunctionSpace& what);                 const FunctionSpace& what);
51    
# Line 54  class DataConstant : public DataAbstract Line 53  class DataConstant : public DataAbstract
53       \brief       \brief
54       Copy constructor. Performs a deep copy.       Copy constructor. Performs a deep copy.
55    */    */
56      ESCRIPT_DLL_API
57    DataConstant(const DataConstant& other);    DataConstant(const DataConstant& other);
58    
59    /**    /**
# Line 65  class DataConstant : public DataAbstract Line 65  class DataConstant : public DataAbstract
65       \param value - Input - Data value for a single point.       \param value - Input - Data value for a single point.
66       \param what - Input - A description of what this data object represents.       \param what - Input - A description of what this data object represents.
67    */    */
68      ESCRIPT_DLL_API
69    DataConstant(const DataArrayView& value,    DataConstant(const DataArrayView& value,
70                 const FunctionSpace& what);                 const FunctionSpace& what);
71    
# Line 77  class DataConstant : public DataAbstract Line 78  class DataConstant : public DataAbstract
78       \param other - Input - Data object to copy from.       \param other - Input - Data object to copy from.
79       \param region - Input - region to copy.       \param region - Input - region to copy.
80    */    */
81      ESCRIPT_DLL_API
82    DataConstant(const DataConstant& other,    DataConstant(const DataConstant& other,
83                 const DataArrayView::RegionType& region);                 const DataArrayView::RegionType& region);
84    
85    /**    /**
86       \brief       \brief
87         Alternative constructor for DataConstant objects.
88    
89         Description:
90         Alternative Constructor for DataConstant objects.
91         \param what - Input - A description of what this data object represents.
92         \param shape - Input - the shape of each data-point.
93         \param data - the data values for each data-point.
94      */
95      ESCRIPT_DLL_API
96      DataConstant(const FunctionSpace& what,
97                   const DataArrayView::ShapeType &shape,
98                   const DataArrayView::ValueType &data);
99    
100      /**
101         \brief
102       Write the data as a string.       Write the data as a string.
103    */    */
104      ESCRIPT_DLL_API
105    std::string    std::string
106    toString() const;    toString() const;
107    
# Line 96  class DataConstant : public DataAbstract Line 114  class DataConstant : public DataAbstract
114       \param sampleNo - Input - sample number.       \param sampleNo - Input - sample number.
115       \param dataPointNo - Input - data point number for the sample.       \param dataPointNo - Input - data point number for the sample.
116     */     */
117      ESCRIPT_DLL_API
118    virtual    virtual
119    DataArrayView::ValueType::size_type    DataArrayView::ValueType::size_type
120    getPointOffset(int sampleNo,    getPointOffset(int sampleNo,
# Line 107  class DataConstant : public DataAbstract Line 126  class DataConstant : public DataAbstract
126       \param sampleNo - Input - sample number.       \param sampleNo - Input - sample number.
127       \param dataPointNo - Input - data point number for the sample.       \param dataPointNo - Input - data point number for the sample.
128    */    */
129      ESCRIPT_DLL_API
130    virtual    virtual
131    DataArrayView    DataArrayView
132    getDataPoint(int sampleNo,    getDataPoint(int sampleNo,
# Line 116  class DataConstant : public DataAbstract Line 136  class DataConstant : public DataAbstract
136       \brief       \brief
137       Return the number of doubles stored for the Data object.       Return the number of doubles stored for the Data object.
138    */    */
139      ESCRIPT_DLL_API
140    virtual    virtual
141    DataArrayView::ValueType::size_type    DataArrayView::ValueType::size_type
142    getLength() const;    getLength() const;
# Line 127  class DataConstant : public DataAbstract Line 148  class DataConstant : public DataAbstract
148       The caller is reponsible for managing the object created.       The caller is reponsible for managing the object created.
149       \param region - Input - region to slice from this object.       \param region - Input - region to slice from this object.
150    */    */
151      ESCRIPT_DLL_API
152    virtual    virtual
153    DataAbstract*    DataAbstract*
154    getSlice(const DataArrayView::RegionType& region) const;    getSlice(const DataArrayView::RegionType& region) const;
# Line 137  class DataConstant : public DataAbstract Line 159  class DataConstant : public DataAbstract
159       \param value - Input - Data object to copy from.       \param value - Input - Data object to copy from.
160       \param region - Input - Region to copy.       \param region - Input - Region to copy.
161    */    */
162      ESCRIPT_DLL_API
163    virtual    virtual
164    void    void
165    setSlice(const DataAbstract* value,    setSlice(const DataAbstract* value,
166             const DataArrayView::RegionType& region);             const DataArrayView::RegionType& region);
167    
168    /**    /**
169        \brief
170        Archive the underlying data values to the file referenced
171        by ofstream. A count of the number of values expected to be written
172        is provided as a cross-check.
173    
174        The return value indicates success (0) or otherwise (1).
175      */
176      ESCRIPT_DLL_API
177      int
178      archiveData(std::ofstream& archiveFile,
179                  const DataArrayView::ValueType::size_type noValues) const;
180    
181      /**
182        \brief
183        Extract the number of values specified by noValues from the file
184        referenced by ifstream to the underlying data structure.
185    
186        The return value indicates success (0) or otherwise (1).
187      */
188      ESCRIPT_DLL_API
189      int
190      extractData(std::ifstream& archiveFile,
191                  const DataArrayView::ValueType::size_type noValues);
192    
193      /**
194       \brief       \brief
195       Reshape the data point if the data point is currently rank 0.       Computes a symmetric matrix (A + AT) / 2
196       The original data point value is used for all values of the new  
197       data point.       \param ev - Output - symmetric matrix
198    
199    */    */
200    void    ESCRIPT_DLL_API
201    reshapeDataPoint(const DataArrayView::ShapeType& shape);    virtual void
202      symmetric(DataAbstract* ev);
203    
204      /**
205         \brief
206         Computes a nonsymmetric matrix (A - AT) / 2
207    
208         \param ev - Output - nonsymmetric matrix
209    
210      */
211      ESCRIPT_DLL_API
212      virtual void
213      nonsymmetric(DataAbstract* ev);
214    
215      /**
216         \brief
217         Computes the trace of a matrix
218    
219         \param ev - Output - trace of matrix
220    
221      */
222      ESCRIPT_DLL_API
223      virtual void
224      trace(DataAbstract* ev, int axis_offset);
225    
226      /**
227         \brief
228         Transpose each data point of this Data object around the given axis.
229    
230         \param ev - Output - transpose of matrix
231    
232      */
233      ESCRIPT_DLL_API
234      virtual void
235      transpose(DataAbstract* ev, int axis_offset);
236    
237      /**
238         \brief
239         swaps components axis0 and axis1
240    
241         \param ev - Output - swapped components
242    
243      */
244      ESCRIPT_DLL_API
245      virtual void
246      swapaxes(DataAbstract* ev, int axis0, int axis1);
247    
248    
249      /**
250         \brief
251         solves the eigenvalue problem this*V=ev*V for the eigenvalues ev
252    
253         \param ev - Output - eigenvalues in increasing order at each data point
254    
255      */
256      ESCRIPT_DLL_API
257      virtual void
258      eigenvalues(DataAbstract* ev);
259    
260      /**
261         \brief
262         solves the eigenvalue problem this*V=ev*V for the eigenvalues ev and eigenvectors V
263    
264         \param ev - Output - eigenvalues in increasing order at each data point
265         \param V - Output - corresponding eigenvectors. They are normalized such that their length is one
266                             and the first nonzero component is positive.
267         \param tol - Input - eigenvalue with relative distance tol are treated as equal.
268    
269      */
270    
271      ESCRIPT_DLL_API
272      virtual void
273      eigenvalues_and_eigenvectors(DataAbstract* ev,DataAbstract* V,const double tol=1.e-13);
274    
275    
276   protected:   protected:
277    

Legend:
Removed from v.117  
changed lines
  Added in v.854

  ViewVC Help
Powered by ViewVC 1.1.26