/[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 82 by jgs, Tue Oct 26 06:53:54 2004 UTC revision 97 by jgs, Tue Dec 14 05:39:33 2004 UTC
# Line 1  Line 1 
1    //$Id$
2  /*  /*
3   ******************************************************************************   ******************************************************************************
4   *                                                                            *   *                                                                            *
# Line 12  Line 13 
13   ******************************************************************************   ******************************************************************************
14  */  */
15                                                                                                                                                        
16  #if !defined  escript_DataConstant_20040323_H  #if !defined escript_DataConstant_20040323_H
17  #define escript_DataConstant_20040323_H  #define escript_DataConstant_20040323_H
18    
19  #include "escript/Data/DataAbstract.h"  #include "escript/Data/DataAbstract.h"
# Line 22  Line 23 
23  #include <boost/python/numeric.hpp>  #include <boost/python/numeric.hpp>
24    
25  namespace escript {  namespace escript {
26    
27  /**  /**
28     \brief     \brief
29     DataConstant stores single data point which represents the entire     DataConstant stores a single data point which represents the entire
30     function space.     function space.
31    
32     Description:     Description:
33     DataConstant stores single data point which represents the entire     DataConstant stores a single data point which represents the entire
34     function space.     function space.
35  */  */
36  class DataConstant:public DataAbstract  {  class DataConstant : public DataAbstract  {
37    
38   public:   public:
39    
40    /**    /**
41       \brief       \brief
42       Default constructor for DataConstant       Constructor for DataConstant objects.
43    
44       Description:       Description:
45       Default constructor for DataConstant       Constructor for DataConstant objects.
   
      \param value Input - Data value for a single point.  
      \param noSamples Input - number of samples.  
      \param noDataPointsPerSample Input - Input.  
      \param what Input - A description of what this data represents.  
46    
47         \param value - Input - Data value for a single point.
48         \param what - Input - A description of what this data object represents.
49    */    */
50    DataConstant(const boost::python::numeric::array& value, const FunctionSpace& what);    DataConstant(const boost::python::numeric::array& value,
51                   const FunctionSpace& what);
52    
53    /**    /**
54       \brief       \brief
55       Copy constructor. Performs a deep copy.       Copy constructor. Performs a deep copy.
56    */    */
57    DataConstant(const DataConstant& other);    DataConstant(const DataConstant& other);
58    
59    /**    /**
60       \brief       \brief
61       Alternative constructor for DataConstant       Alternative constructor for DataConstant objects.
62    
63       Description:       Description:
64       Alternative Constructor for DataConstant       Alternative Constructor for DataConstant objects.
65       \param value Input - Data value for a single point.       \param value - Input - Data value for a single point.
66       \param noSamples Input - number of samples.       \param what - Input - A description of what this data object represents.
      \param noDataPointsPerSample Input - Input.  
      \param what Input - A description of what this data represents.  
67    */    */
68    DataConstant(const DataArrayView& value, const FunctionSpace& what);    DataConstant(const DataArrayView& value,
69                   const FunctionSpace& what);
70    
71    /**    /**
72       \brief       \brief
73       Alternative constructor for DataConstant       Alternative constructor for DataConstant objects.
74    
75       Description:       Description:
76       Alternative Constructor for DataConstant       Alternative Constructor for DataConstant objects.
77       \param other Input - Other DataConstant       \param other - Input - Data object to copy from.
78       \param region Input - region to copy       \param region - Input - region to copy.
79    */    */
80    DataConstant(const DataConstant& other, const DataArrayView::RegionType& region);    DataConstant(const DataConstant& other,
81                   const DataArrayView::RegionType& region);
82    
83    /**    /**
84       \brief       \brief
85       Write the data as a string.       Write the data as a string.
86    */    */
87    std::string toString() const;    std::string
88      toString() const;
89    
90    /**    /**
91       \brief       \brief
92       Return the offset for the given sample. This is somewhat artificial notion       Return the offset for the given sample. This is a somewhat artificial notion
93       but returns the offset in bytes for the given point into the container       but returns the offset in bytes for the given point into the container
94       holding the point data. Only really necessary to avoid many DataArrayView       holding the point data. Only really necessary to avoid many DataArrayView
95       objects.       objects.
96       \param sampleNo - Input, sample number.       \param sampleNo - Input - sample number.
97       \param dataPointNo - Input, data point number for the sample.       \param dataPointNo - Input - data point number for the sample.
98     */     */
99    virtual DataArrayView::ValueType::size_type getPointOffset(int sampleNo, int dataPointNo) const;    virtual
100      DataArrayView::ValueType::size_type
101      getPointOffset(int sampleNo,
102                     int dataPointNo) const;
103    
104    /**    /**
105       \brief       \brief
106       Return a view into the data for the data point specified.       Return a view into the data for the data point specified.
107       NOTE: Construction of the DataArrayView is a relatively expensive       \param sampleNo - Input - sample number.
108       operation       \param dataPointNo - Input - data point number for the sample.
      \param sampleNo Input  
      \param dataPointNo Input  
109    */    */
110    virtual DataArrayView getDataPoint(int sampleNo, int dataPointNo);    virtual
111      DataArrayView
112      getDataPoint(int sampleNo,
113                   int dataPointNo);
114    
115    /**    /**
116       \brief       \brief
117       Return the number of doubles stored for the Data       Return the number of doubles stored for the Data object.
118    */    */
119    virtual ValueType::size_type getLength() const;    virtual
120      ValueType::size_type
121      getLength() const;
122    
123    /**    /**
124       \brief       \brief
125       Factory method that returns a newly created DataConstant.       Factory method that returns a newly created DataConstant object
126         sliced from the specified region of this object.
127       The caller is reponsible for managing the object created.       The caller is reponsible for managing the object created.
128         \param region - Input - region to slice from this object.
129    */    */
130    virtual DataAbstract* getSlice(const DataArrayView::RegionType& region) const;  /**    virtual
131      DataAbstract*
132      getSlice(const DataArrayView::RegionType& region) const;
133    
134      /**
135       \brief       \brief
136       Copy the specified region from the given value.       Copy the specified region from the given value.
137       \param value Input - Data to copy from       \param value - Input - Data object to copy from.
138       \param region Input - Region to copy.       \param region - Input - Region to copy.
139    */    */
140    virtual void setSlice(const DataAbstract* value, const DataArrayView::RegionType& region);    virtual
141      void
142      setSlice(const DataAbstract* value,
143               const DataArrayView::RegionType& region);
144    
145    /**    /**
146       \brief       \brief
147       Reshape the data point if the data point is currently rank 0.       Reshape the data point if the data point is currently rank 0.
148       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
149       data point.       data point.
150    */    */
151    void reshapeDataPoint(const DataArrayView::ShapeType& shape);    void
152      reshapeDataPoint(const DataArrayView::ShapeType& shape);
153    
154   protected:   protected:
155    
156   private:   private:
157    //    //
158    // data    // the actual data
159    DataArrayView::ValueType m_data;    DataArrayView::ValueType m_data;
160    
161  };  };
162    
163  } // end of namespace  } // end of namespace
164  #endif  #endif
   

Legend:
Removed from v.82  
changed lines
  Added in v.97

  ViewVC Help
Powered by ViewVC 1.1.26