/[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

revision 474 by jgs, Mon Jan 30 04:23:44 2006 UTC 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 "DataAbstract.h"  #include "DataAbstract.h"
 #include "DataArray.h"  
19  #include "DataArrayView.h"  #include "DataArrayView.h"
20    
21  #include <boost/python/numeric.hpp>  #include <boost/python/numeric.hpp>
# 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,
166             const DataArrayView::RegionType& region);             const DataArrayView::RegionType& region);
167    
168    /**    /**
      \brief  
      Reshape the data point if the data point is currently rank 0.  
      The original data point value is used for all values of the new  
      data point.  
   */  
   void  
   reshapeDataPoint(const DataArrayView::ShapeType& shape);  
   
   /**  
169      \brief      \brief
170      Archive the underlying data values to the file referenced      Archive the underlying data values to the file referenced
171      by ofstream. A count of the number of values expected to be written      by ofstream. A count of the number of values expected to be written
# Line 173  class DataConstant : public DataAbstract Line 173  class DataConstant : public DataAbstract
173    
174      The return value indicates success (0) or otherwise (1).      The return value indicates success (0) or otherwise (1).
175    */    */
176      ESCRIPT_DLL_API
177    int    int
178    archiveData(std::ofstream& archiveFile,    archiveData(std::ofstream& archiveFile,
179                const DataArrayView::ValueType::size_type noValues) const;                const DataArrayView::ValueType::size_type noValues) const;
# Line 184  class DataConstant : public DataAbstract Line 185  class DataConstant : public DataAbstract
185    
186      The return value indicates success (0) or otherwise (1).      The return value indicates success (0) or otherwise (1).
187    */    */
188      ESCRIPT_DLL_API
189    int    int
190    extractData(std::ifstream& archiveFile,    extractData(std::ifstream& archiveFile,
191                const DataArrayView::ValueType::size_type noValues);                const DataArrayView::ValueType::size_type noValues);
192    
193      /**
194         \brief
195         Computes a symmetric matrix (A + AT) / 2
196    
197         \param ev - Output - symmetric matrix
198    
199      */
200      ESCRIPT_DLL_API
201      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    
278   private:   private:

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

  ViewVC Help
Powered by ViewVC 1.1.26