/[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/escript/src/Data/DataConstant.h revision 155 by jgs, Wed Nov 9 02:02:19 2005 UTC trunk/escript/src/DataConstant.h revision 800 by gross, Tue Aug 8 11:23:18 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    
# Line 90  class DataConstant : public DataAbstract Line 92  class DataConstant : public DataAbstract
92       \param shape - Input - the shape of each data-point.       \param shape - Input - the shape of each data-point.
93       \param data - the data values for each data-point.       \param data - the data values for each data-point.
94    */    */
95      ESCRIPT_DLL_API
96    DataConstant(const FunctionSpace& what,    DataConstant(const FunctionSpace& what,
97                 const DataArrayView::ShapeType &shape,                 const DataArrayView::ShapeType &shape,
98                 const DataArrayView::ValueType &data);                 const DataArrayView::ValueType &data);
# Line 98  class DataConstant : public DataAbstract Line 101  class DataConstant : public DataAbstract
101       \brief       \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 110  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 121  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 130  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 141  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 151  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,
# Line 162  class DataConstant : public DataAbstract Line 171  class DataConstant : public DataAbstract
171       The original data point value is used for all values of the new       The original data point value is used for all values of the new
172       data point.       data point.
173    */    */
174      ESCRIPT_DLL_API
175    void    void
176    reshapeDataPoint(const DataArrayView::ShapeType& shape);    reshapeDataPoint(const DataArrayView::ShapeType& shape);
177    
# Line 173  class DataConstant : public DataAbstract Line 183  class DataConstant : public DataAbstract
183    
184      The return value indicates success (0) or otherwise (1).      The return value indicates success (0) or otherwise (1).
185    */    */
186      ESCRIPT_DLL_API
187    int    int
188    archiveData(std::ofstream& archiveFile,    archiveData(std::ofstream& archiveFile,
189                const DataArrayView::ValueType::size_type noValues) const;                const DataArrayView::ValueType::size_type noValues) const;
# Line 184  class DataConstant : public DataAbstract Line 195  class DataConstant : public DataAbstract
195    
196      The return value indicates success (0) or otherwise (1).      The return value indicates success (0) or otherwise (1).
197    */    */
198      ESCRIPT_DLL_API
199    int    int
200    extractData(std::ifstream& archiveFile,    extractData(std::ifstream& archiveFile,
201                const DataArrayView::ValueType::size_type noValues);                const DataArrayView::ValueType::size_type noValues);
202    
203      /**
204         \brief
205         Computes a symmetric matrix (A + AT) / 2
206    
207         \param ev - Output - symmetric matrix
208    
209      */
210      ESCRIPT_DLL_API
211      virtual void
212      symmetric(DataAbstract* ev);
213    
214      /**
215         \brief
216         Computes a nonsymmetric matrix (A - AT) / 2
217    
218         \param ev - Output - nonsymmetric matrix
219    
220      */
221      ESCRIPT_DLL_API
222      virtual void
223      nonsymmetric(DataAbstract* ev);
224    
225      /**
226         \brief
227         Computes the trace of a matrix
228    
229         \param ev - Output - trace of matrix
230    
231      */
232      ESCRIPT_DLL_API
233      virtual void
234      trace(DataAbstract* ev, int axis_offset);
235    
236      /**
237         \brief
238         Transpose each data point of this Data object around the given axis.
239    
240         \param ev - Output - transpose of matrix
241    
242      */
243      ESCRIPT_DLL_API
244      virtual void
245      transpose(DataAbstract* ev, int axis_offset);
246    
247      /**
248         \brief
249         swaps components axis_offset and axis_offset+1
250    
251         \param ev - Output - swapped components
252    
253      */
254      ESCRIPT_DLL_API
255      virtual void
256      swap(DataAbstract* ev, int axis_offset);
257    
258    
259      /**
260         \brief
261         solves the eigenvalue problem this*V=ev*V for the eigenvalues ev
262    
263         \param ev - Output - eigenvalues in increasing order at each data point
264    
265      */
266      ESCRIPT_DLL_API
267      virtual void
268      eigenvalues(DataAbstract* ev);
269    
270      /**
271         \brief
272         solves the eigenvalue problem this*V=ev*V for the eigenvalues ev and eigenvectors V
273    
274         \param ev - Output - eigenvalues in increasing order at each data point
275         \param V - Output - corresponding eigenvectors. They are normalized such that their length is one
276                             and the first nonzero component is positive.
277         \param tol - Input - eigenvalue with relative distance tol are treated as equal.
278    
279      */
280    
281      ESCRIPT_DLL_API
282      virtual void
283      eigenvalues_and_eigenvectors(DataAbstract* ev,DataAbstract* V,const double tol=1.e-13);
284    
285    
286   protected:   protected:
287    
288   private:   private:

Legend:
Removed from v.155  
changed lines
  Added in v.800

  ViewVC Help
Powered by ViewVC 1.1.26