escript  Revision_4925
DataConstant.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2014 by University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development 2012-2013 by School of Earth Sciences
13 * Development from 2014 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 
18 #if !defined escript_DataConstant_20040323_H
19 #define escript_DataConstant_20040323_H
20 #include "system_dep.h"
21 
22 #include "DataReady.h"
23 #include "WrappedArray.h"
24 
25 
26 namespace escript {
27 
37 class DataConstant : public DataReady {
38 typedef DataReady parent;
39  public:
40 
52  DataConstant(const WrappedArray& value,
53  const FunctionSpace& what);
54 
55 
61  DataConstant(const DataConstant& other);
62 
63 
74  DataConstant(const DataConstant& other,
75  const DataTypes::RegionType& region);
76 
88  DataConstant(const FunctionSpace& what,
89  const DataTypes::ShapeType &shape,
90  const DataTypes::ValueType &data);
91 
93  DataConstant(const FunctionSpace& what,
94  const DataTypes::ShapeType &shape,
95  const double v);
96 
97 
99  bool
100  isConstant() const
101  {
102  return true;
103  };
104 
109  bool
110  hasNaN() const;
111 
117  std::string
118  toString() const;
119 
124  virtual
125  DataAbstract*
126  deepCopy();
127 
128 
134  virtual
135  void
136  dump(const std::string fileName) const;
137 
143  virtual
144  void
145  setToZero();
146 
157  virtual
159  getPointOffset(int sampleNo,
160  int dataPointNo) const;
161 
163  virtual
165  getPointOffset(int sampleNo,
166  int dataPointNo);
167 
173  virtual
175  getLength() const;
176 
185  virtual
186  DataAbstract*
187  getSlice(const DataTypes::RegionType& region) const;
188 
196  virtual
197  void
198  setSlice(const DataAbstract* value,
199  const DataTypes::RegionType& region);
200 
201 
210  virtual void
211  symmetric(DataAbstract* ev);
212 
221  virtual void
223 
233  virtual void
234  trace(DataAbstract* ev, int axis_offset);
235 
244  virtual void
245  transpose(DataAbstract* ev, int axis_offset);
246 
256  virtual void
257  swapaxes(DataAbstract* ev, int axis0, int axis1);
258 
259 
268  virtual void
270 
283  virtual void
284  eigenvalues_and_eigenvectors(DataAbstract* ev,DataAbstract* V,const double tol=1.e-13);
285 
286 
293  virtual int
294  matrixInverse(DataAbstract* out) const;
295 
302  getVectorRW();
303 
304 
306  const DataTypes::ValueType&
307  getVectorRO() const;
308 
309  protected:
310 
311  private:
312  //
313  // the actual data
315 
316 };
317 
318 } // end of namespace
319 #endif
Give a short description of what FunctionSpace does.
Definition: FunctionSpace.h:46
DataVector implements an arbitrarily long vector of data values. DataVector is the underlying data co...
Definition: DataVector.h:44
virtual void trace(DataAbstract *ev, int axis_offset)
Computes the trace of a matrix.
Definition: DataConstant.cpp:206
virtual void symmetric(DataAbstract *ev)
Computes a symmetric matrix (A + AT) / 2.
Definition: DataConstant.cpp:186
virtual void swapaxes(DataAbstract *ev, int axis0, int axis1)
swaps components axis0 and axis1
Definition: DataConstant.cpp:218
Definition: DataReady.h:35
virtual DataAbstract * deepCopy()
Return a deep copy of the current object.
Definition: DataConstant.cpp:110
std::vector< std::pair< int, int > > RegionType
Definition: DataTypes.h:39
virtual DataAbstract * getSlice(const DataTypes::RegionType &region) const
Factory method that returns a newly created DataConstant object sliced from the specified region of t...
Definition: DataConstant.cpp:153
virtual int matrixInverse(DataAbstract *out) const
invert square matricies
Definition: DataConstant.cpp:263
virtual void setToZero()
sets all values to zero
Definition: DataConstant.cpp:280
DataConstant stores a single data point which represents the entire function space.
Definition: DataConstant.h:37
virtual DataTypes::ValueType::size_type getPointOffset(int sampleNo, int dataPointNo) const
Return the offset for the given sample. This is a somewhat artificial notion but returns the offset i...
Definition: DataConstant.cpp:117
bool hasNaN() const
Return true if the value contains a NaN.
Definition: DataConstant.cpp:90
std::vector< int > ShapeType
The shape of a single datapoint.
Definition: DataTypes.h:38
DataConstant(const WrappedArray &value, const FunctionSpace &what)
Constructor for DataConstant objects.
Definition: DataConstant.cpp:42
bool isConstant() const
Definition: DataConstant.h:100
virtual DataTypes::ValueType::size_type getLength() const
Return the number of doubles stored for the Data object.
Definition: DataConstant.cpp:147
virtual void eigenvalues_and_eigenvectors(DataAbstract *ev, DataAbstract *V, const double tol=1.e-13)
solves the eigenvalue problem this*V=ev*V for the eigenvalues ev and eigenvectors V ...
Definition: DataConstant.cpp:247
const DataTypes::ValueType & getVectorRO() const
Definition: DataConstant.cpp:375
DataTypes::ValueType & getVectorRW()
Return a reference to the underlying DataVector.
Definition: DataConstant.cpp:368
virtual void eigenvalues(DataAbstract *ev)
solves the eigenvalue problem this*V=ev*V for the eigenvalues ev
Definition: DataConstant.cpp:238
#define V(_K_, _I_)
Definition: ShapeFunctions.cpp:120
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:64
virtual void dump(const std::string fileName) const
dumps the object into a netCDF file
Definition: DataConstant.cpp:288
Definition: DataAbstract.h:61
virtual void nonsymmetric(DataAbstract *ev)
Computes a nonsymmetric matrix (A - AT) / 2.
Definition: DataConstant.cpp:196
DataTypes::ValueType m_data
Definition: DataConstant.h:314
long size_type
Definition: DataVector.h:60
Definition: WrappedArray.h:29
std::string toString() const
Write the data as a string.
Definition: DataConstant.cpp:103
virtual void transpose(DataAbstract *ev, int axis_offset)
Transpose each data point of this Data object around the given axis.
Definition: DataConstant.cpp:228
virtual void setSlice(const DataAbstract *value, const DataTypes::RegionType &region)
Copy the specified region from the given value.
Definition: DataConstant.cpp:159
DataReady parent
Definition: DataConstant.h:38