escript  Revision_
DataConstant.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2016 by The University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Apache License, version 2.0
9 * http://www.apache.org/licenses/LICENSE-2.0
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 
116  void
117  replaceNaN(double value);
118 
124  std::string
125  toString() const;
126 
131  virtual
132  DataAbstract*
133  deepCopy();
134 
135 
141  virtual
142  void
143  dump(const std::string fileName) const;
144 
150  virtual
151  void
152  setToZero();
153 
164  virtual
166  getPointOffset(int sampleNo,
167  int dataPointNo) const;
168 
170  virtual
172  getPointOffset(int sampleNo,
173  int dataPointNo);
174 
180  virtual
182  getLength() const;
183 
192  virtual
193  DataAbstract*
194  getSlice(const DataTypes::RegionType& region) const;
195 
203  virtual
204  void
205  setSlice(const DataAbstract* value,
206  const DataTypes::RegionType& region);
207 
208 
217  virtual void
218  symmetric(DataAbstract* ev);
219 
228  virtual void
230 
240  virtual void
241  trace(DataAbstract* ev, int axis_offset);
242 
251  virtual void
252  transpose(DataAbstract* ev, int axis_offset);
253 
263  virtual void
264  swapaxes(DataAbstract* ev, int axis0, int axis1);
265 
266 
275  virtual void
277 
290  virtual void
291  eigenvalues_and_eigenvectors(DataAbstract* ev,DataAbstract* V,const double tol=1.e-13);
292 
293 
300  virtual int
301  matrixInverse(DataAbstract* out) const;
302 
309  getVectorRW();
310 
311 
313  const DataTypes::ValueType&
314  getVectorRO() const;
315 
316  protected:
317 
318  private:
319  //
320  // the actual data
322 
323 };
324 
325 } // end of namespace
326 #endif
Definition: FunctionSpace.h:34
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:226
virtual void symmetric(DataAbstract *ev)
Computes a symmetric matrix (A + AT) / 2.
Definition: DataConstant.cpp:206
virtual void swapaxes(DataAbstract *ev, int axis0, int axis1)
swaps components axis0 and axis1
Definition: DataConstant.cpp:238
Definition: DataReady.h:35
virtual DataAbstract * deepCopy()
Return a deep copy of the current object.
Definition: DataConstant.cpp:130
std::vector< std::pair< int, int > > RegionType
Definition: DataTypes.h:39
Definition: AbstractContinuousDomain.cpp:24
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:173
virtual int matrixInverse(DataAbstract *out) const
invert square matricies
Definition: DataConstant.cpp:283
virtual void setToZero()
sets all values to zero
Definition: DataConstant.cpp:300
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:137
bool hasNaN() const
Return true if the value contains a NaN.
Definition: DataConstant.cpp:92
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:44
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:167
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:267
const DataTypes::ValueType & getVectorRO() const
Definition: DataConstant.cpp:395
DataTypes::ValueType & getVectorRW()
Return a reference to the underlying DataVector.
Definition: DataConstant.cpp:388
void replaceNaN(double value)
replaces all NaN values with value
Definition: DataConstant.cpp:110
virtual void eigenvalues(DataAbstract *ev)
solves the eigenvalue problem this*V=ev*V for the eigenvalues ev
Definition: DataConstant.cpp:258
#define V(_K_, _I_)
Definition: ShapeFunctions.cpp:120
#define ESCRIPT_DLL_API
Definition: escriptcore/src/system_dep.h:54
virtual void dump(const std::string fileName) const
dumps the object into a netCDF file
Definition: DataConstant.cpp:308
Definition: DataAbstract.h:61
virtual void nonsymmetric(DataAbstract *ev)
Computes a nonsymmetric matrix (A - AT) / 2.
Definition: DataConstant.cpp:216
DataTypes::ValueType m_data
Definition: DataConstant.h:321
long size_type
Definition: DataVector.h:60
Definition: WrappedArray.h:29
std::string toString() const
Write the data as a string.
Definition: DataConstant.cpp:123
virtual void transpose(DataAbstract *ev, int axis_offset)
Transpose each data point of this Data object around the given axis.
Definition: DataConstant.cpp:248
virtual void setSlice(const DataAbstract *value, const DataTypes::RegionType &region)
Copy the specified region from the given value.
Definition: DataConstant.cpp:179
DataReady parent
Definition: DataConstant.h:38