/[escript]/branches/trilinos_from_5897/escriptcore/src/DataConstant.h
ViewVC logotype

Contents of /branches/trilinos_from_5897/escriptcore/src/DataConstant.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 102 - (show annotations)
Wed Dec 15 07:08:39 2004 UTC (14 years, 7 months ago) by jgs
Original Path: trunk/esys2/escript/src/Data/DataConstant.h
File MIME type: text/plain
File size: 4740 byte(s)
*** empty log message ***

1 //$Id$
2 /*
3 ******************************************************************************
4 * *
5 * COPYRIGHT ACcESS 2004 - All Rights Reserved *
6 * *
7 * This software is the property of ACcESS. No part of this code *
8 * may be copied in any form or by any means without the expressed written *
9 * consent of ACcESS. Copying, use or modification of this software *
10 * by any unauthorised person is illegal unless that person has a software *
11 * license agreement with ACcESS. *
12 * *
13 ******************************************************************************
14 */
15
16 #if !defined escript_DataConstant_20040323_H
17 #define escript_DataConstant_20040323_H
18
19 #include "escript/Data/DataAbstract.h"
20 #include "escript/Data/DataArray.h"
21 #include "escript/Data/DataArrayView.h"
22
23 #include <boost/python/numeric.hpp>
24
25 namespace escript {
26
27 /**
28 \brief
29 DataConstant stores a single data point which represents the entire
30 function space.
31
32 Description:
33 DataConstant stores a single data point which represents the entire
34 function space.
35 */
36 class DataConstant : public DataAbstract {
37
38 public:
39
40 /**
41 \brief
42 Constructor for DataConstant objects.
43
44 Description:
45 Constructor for DataConstant objects.
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,
51 const FunctionSpace& what);
52
53 /**
54 \brief
55 Copy constructor. Performs a deep copy.
56 */
57 DataConstant(const DataConstant& other);
58
59 /**
60 \brief
61 Alternative constructor for DataConstant objects.
62
63 Description:
64 Alternative Constructor for DataConstant objects.
65 \param value - Input - Data value for a single point.
66 \param what - Input - A description of what this data object represents.
67 */
68 DataConstant(const DataArrayView& value,
69 const FunctionSpace& what);
70
71 /**
72 \brief
73 Alternative constructor for DataConstant objects.
74
75 Description:
76 Alternative Constructor for DataConstant objects.
77 \param other - Input - Data object to copy from.
78 \param region - Input - region to copy.
79 */
80 DataConstant(const DataConstant& other,
81 const DataArrayView::RegionType& region);
82
83 /**
84 \brief
85 Write the data as a string.
86 */
87 std::string
88 toString() const;
89
90 /**
91 \brief
92 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
94 holding the point data. Only really necessary to avoid many DataArrayView
95 objects.
96 \param sampleNo - Input - sample number.
97 \param dataPointNo - Input - data point number for the sample.
98 */
99 virtual
100 DataArrayView::ValueType::size_type
101 getPointOffset(int sampleNo,
102 int dataPointNo) const;
103
104 /**
105 \brief
106 Return a view into the data for the data point specified.
107 \param sampleNo - Input - sample number.
108 \param dataPointNo - Input - data point number for the sample.
109 */
110 virtual
111 DataArrayView
112 getDataPoint(int sampleNo,
113 int dataPointNo);
114
115 /**
116 \brief
117 Return the number of doubles stored for the Data object.
118 */
119 virtual
120 ValueType::size_type
121 getLength() const;
122
123 /**
124 \brief
125 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.
128 \param region - Input - region to slice from this object.
129 */
130 virtual
131 DataAbstract*
132 getSlice(const DataArrayView::RegionType& region) const;
133
134 /**
135 \brief
136 Copy the specified region from the given value.
137 \param value - Input - Data object to copy from.
138 \param region - Input - Region to copy.
139 */
140 virtual
141 void
142 setSlice(const DataAbstract* value,
143 const DataArrayView::RegionType& region);
144
145 /**
146 \brief
147 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
149 data point.
150 */
151 void
152 reshapeDataPoint(const DataArrayView::ShapeType& shape);
153
154 protected:
155
156 private:
157 //
158 // the actual data
159 DataArrayView::ValueType m_data;
160
161 };
162
163 } // end of namespace
164 #endif

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.26