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

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

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

revision 102 by jgs, Wed Dec 15 07:08:39 2004 UTC revision 119 by jgs, Tue Apr 12 04:45:05 2005 UTC
# Line 25  Line 25 
25    
26  namespace escript {  namespace escript {
27    
28    //
29    // Forward declarations of other Data types.
30  class DataEmpty;  class DataEmpty;
31  class DataConstant;  class DataConstant;
32  class DataTagged;  class DataTagged;
# Line 34  class DataTagged; Line 36  class DataTagged;
36     Give a short description of what DataExpanded does.     Give a short description of what DataExpanded does.
37    
38     Description:     Description:
39     Give a detailed description of DataExpanded     Give a detailed description of DataExpanded.
40    
41     Template Parameters:     Template Parameters:
42     For templates describe any conditions that the parameters used in the     For templates describe any conditions that the parameters used in the
43     template must satisfy     template must satisfy.
44  */  */
45    
46  class DataExpanded : public DataAbstract{  class DataExpanded : public DataAbstract {
47    
48   public:   public:
49    
50    /**    /**
51       \brief       \brief
52       Copy constructor for DataExpanded. Performs a deep copy.       Constructor for DataExpanded.
   */  
   DataExpanded(const DataExpanded& other);  
53    
54    /**       Description:
55       \brief       Constructor for DataExpanded.
      Construct a DataExpanded from a DataConstant.  
   */  
   DataExpanded(const DataConstant& other);  
   
   /**  
      \brief  
      Construct a DataExpanded from a DataTagged.  
   */  
   DataExpanded(const DataTagged& other);  
56    
57    /**       The given single data value is copied to all the data points in
58       \brief       this data object, where the number of data points is defined by
59       Constructor for DataExpanded       the given function space.
60    
61       Description:       \param value - Input - A single data value.
      Constructor for DataExpanded  
      \param value - Input - Data value for a single point.  
62       \param what - Input - A description of what this data represents.       \param what - Input - A description of what this data represents.
63    */    */
64    DataExpanded(const boost::python::numeric::array& value,    DataExpanded(const boost::python::numeric::array& value,
# Line 77  class DataExpanded : public DataAbstract Line 66  class DataExpanded : public DataAbstract
66    
67    /**    /**
68       \brief       \brief
69       Alternative constructor for DataExpanded       Alternative constructor for DataExpanded.
70    
71       Description:       Description:
72       Alternative Constructor for DataExpanded.       Alternative Constructor for DataExpanded.
      \param value - Input - Data value for a single point.  
      \param what - Input - A description of what this data represents.  
73    
74         The given single data value is copied to all the data points in
75         this data object, where the number of data points is defined by
76         the given function space.
77    
78         \param value - Input - A single data value.
79         \param what - Input - A description of what this data represents.
80    */    */
81    DataExpanded(const DataArrayView& value,    DataExpanded(const DataArrayView& value,
82                 const FunctionSpace& what);                 const FunctionSpace& what);
# Line 101  class DataExpanded : public DataAbstract Line 94  class DataExpanded : public DataAbstract
94    
95    /**    /**
96       \brief       \brief
97       Destructor       Alternative constructor for DataExpanded objects.
98    
99         Description:
100         Alternative Constructor for DataExpanded objects.
101         \param what - Input - A description of what this data object represents.
102         \param shape - Input - the shape of each data-point.
103         \param data - the data values for each data-point.
104      */
105      DataExpanded(const FunctionSpace& what,
106                   const DataArrayView::ShapeType &shape,
107                   const DataArrayView::ValueType &data);
108    
109      /**
110         \brief
111         Copy constructor for DataExpanded.
112         Performs a deep copy from another DataExpanded.
113      */
114      DataExpanded(const DataExpanded& other);
115    
116      /**
117         \brief
118         Copy constructor for DataExpanded.
119         Construct a DataExpanded from a DataConstant.
120      */
121      DataExpanded(const DataConstant& other);
122    
123      /**
124         \brief
125         Copy constructor for DataExpanded.
126         Construct a DataExpanded from a DataTagged.
127      */
128      DataExpanded(const DataTagged& other);
129    
130      /**
131         \brief
132         Default destructor for DataExpanded.
133    */    */
134    virtual    virtual
135    ~DataExpanded();    ~DataExpanded();
136    
137    /**    /**
138       \brief       \brief
139       Return a textual representation of the data       Return a textual representation of the data.
140    */    */
141    virtual    virtual
142    std::string    std::string
# Line 125  class DataExpanded : public DataAbstract Line 153  class DataExpanded : public DataAbstract
153    
154    /**    /**
155       \brief       \brief
156       Return the offset for the given sample. This is somewhat artificial notion       Return the offset for the given given data point. This returns
157       but returns the offset in bytes for the given point into the container       the offset in bytes for the given point into the container
158       holding the point data.       holding the point data.
159       \param sampleNo - Input - number of samples.  
160       \param dataPointNo - Input - Input.       \param sampleNo - Input - sample number.
161         \param dataPointNo - Input - data point number.
162    */    */
163    virtual    virtual
164    DataArrayView::ValueType::size_type    DataArrayView::ValueType::size_type
# Line 138  class DataExpanded : public DataAbstract Line 167  class DataExpanded : public DataAbstract
167    
168    /**    /**
169       \brief       \brief
170       Return a view into the data for the data point specified.       Return a view into the data array for the data point specified.
171    
172       NOTE: Construction of the DataArrayView is a relatively expensive       NOTE: Construction of the DataArrayView is a relatively expensive
173       operation.       operation.
174       \param sampleNo - Input  
175       \param dataPointNo - Input       \param sampleNo - Input - sample number.
176       \return DataArrayView of the data point.       \param dataPointNo - Input - data point number.
177         \return DataArrayView for the data point.
178    */    */
179    DataArrayView    DataArrayView
180    getDataPoint(int sampleNo,    getDataPoint(int sampleNo,
# Line 161  class DataExpanded : public DataAbstract Line 192  class DataExpanded : public DataAbstract
192       \brief       \brief
193       Factory method that returns a newly created DataExpanded.       Factory method that returns a newly created DataExpanded.
194       The caller is reponsible for managing the object created.       The caller is reponsible for managing the object created.
195    
196       \param region - Input - Region to copy.       \param region - Input - Region to copy.
197    */    */
198    virtual    virtual
# Line 170  class DataExpanded : public DataAbstract Line 202  class DataExpanded : public DataAbstract
202    /**    /**
203       \brief       \brief
204       Copy the specified region from the given value.       Copy the specified region from the given value.
205       \param value - Input - Data to copy from  
206         \param value - Input - Data object to copy from.
207       \param region - Input - Region to copy.       \param region - Input - Region to copy.
208    */    */
209    virtual    virtual
# Line 178  class DataExpanded : public DataAbstract Line 211  class DataExpanded : public DataAbstract
211    setSlice(const DataAbstract* value,    setSlice(const DataAbstract* value,
212             const DataArrayView::RegionType& region);             const DataArrayView::RegionType& region);
213    
214      /**
215         \brief
216         Assign the given value to all data-points associated with the given
217         reference number.
218    
219         A reference number corresponds to a sample, and thus to all data-points
220         in that sample.
221    
222         If the given reference number does not correspond to any sample in this
223         Data object, an exception will be thrown.
224    
225         If the given value is a different shape to this Data object, an exception
226         will be thrown.
227    
228         \param ref - Input - reference number which determines sample numebr to
229                              assign given values to.
230         \param value - Input - Value to assign to data-point associated with
231                                the given reference number.
232      */
233      virtual
234      void
235      setRefValue(int ref,
236                  const DataArray& value);
237    
238      /**
239         \brief
240         Return the value of the first data-point in the sample associated with
241         the given reference number.
242    
243         A reference number corresponds to a sample, and thus to all data-points
244         in that sample. If there is more than one data-point per sample number
245         in this Data object, the value of the first data-point will be returned.
246    
247         If the given reference number does not correspond to any sample in this
248         Data object, an exception will be thrown.
249    
250         If the given value is a different shape to this Data object, an exception
251         will be thrown.
252    
253         \param ref - Input - reference number which determines sample number to
254                              read from.
255         \param value - Output - Object to receive data-points associated with
256                                the given reference number.
257      */
258      virtual
259      void
260      getRefValue(int ref,
261                  DataArray& value);
262    
263   protected:   protected:
264    
265   private:   private:
266    
267    /**    /**
268       \brief       \brief
269       Common initialisation called from constructors       Common initialisation called from constructors.
270    
271       Description:       Description:
272       Common initialisation called from constructors       Common initialisation called from constructors.
273    
274         Resizes the underlying data array to provide sufficient storage for the
275         given shape and number of data points, and creates the corresponding
276         DataArrayView of this data.
277    
278       \param shape - Input - The shape of the point data.       \param shape - Input - The shape of the point data.
279       \param noSamples - Input - number of samples.       \param noSamples - Input - number of samples.
280       \param noDataPointsPerSample - Input -       \param noDataPointsPerSample - Input - number of data points per sample.
281    */    */
282    void    void
283    initialise(const DataArrayView::ShapeType& shape,    initialise(const DataArrayView::ShapeType& shape,
# Line 199  class DataExpanded : public DataAbstract Line 286  class DataExpanded : public DataAbstract
286    
287    /**    /**
288       \brief       \brief
289       Copy the given data point to all data points.       Copy the given data point to all data points in this object.
290    
291       Description:       Description:
292       Copy the given data point to all data points.       Copy the given data point to all data points in this object.
293       \param value Input - Value for a single data point.  
294         \param value Input - A single data point value.
295    */    */
296    void    void
297    copy(const DataArrayView& value);    copy(const DataArrayView& value);
# Line 212  class DataExpanded : public DataAbstract Line 300  class DataExpanded : public DataAbstract
300    copy(const boost::python::numeric::array& value);    copy(const boost::python::numeric::array& value);
301    
302    //    //
303    // The main data storage, a 2D array of data blocks.    // The main data storage array, a 2D array of data blocks.
304      // noSamples * noDataPointsPerSample
305    DataBlocks2D m_data;    DataBlocks2D m_data;
306    
307  };  };

Legend:
Removed from v.102  
changed lines
  Added in v.119

  ViewVC Help
Powered by ViewVC 1.1.26