escript Revision_
DataConstant.h
Go to the documentation of this file.
1
2/*****************************************************************************
3*
4* Copyright (c) 2003-2020 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-2017 by Centre for Geoscience Computing (GeoComp)
14* Development from 2019 by School of Earth and Environmental Sciences
15**
16*****************************************************************************/
17
18
19#if !defined escript_DataConstant_20040323_H
20#define escript_DataConstant_20040323_H
21#include "system_dep.h"
22
23#include "DataReady.h"
24#include "WrappedArray.h"
25
26
27namespace escript {
28
38class DataConstant : public DataReady {
40 public:
41
53 explicit DataConstant(const WrappedArray& value,
54 const FunctionSpace& what);
55
56
62 DataConstant(const DataConstant& other);
63
64
75 explicit DataConstant(const DataConstant& other,
76 const DataTypes::RegionType& region);
77
89 explicit DataConstant(const FunctionSpace& what,
90 const DataTypes::ShapeType &shape,
91 const DataTypes::RealVectorType &data);
92
93 explicit DataConstant(const FunctionSpace& what,
94 const DataTypes::ShapeType &shape,
95 const DataTypes::CplxVectorType &data);
96
98 explicit DataConstant(const FunctionSpace& what,
99 const DataTypes::ShapeType &shape,
100 const DataTypes::real_t v);
101
102 explicit DataConstant(const FunctionSpace& what,
103 const DataTypes::ShapeType &shape,
104 const DataTypes::cplx_t v);
105
107 bool
108 isConstant() const
109 {
110 return true;
111 };
112
117 bool
118 hasNaN() const;
119
124 void
126
128 void
130
135 virtual bool
136 hasInf() const;
137
142 virtual void
144
149 virtual void
151
152
153
159 std::string
160 toString() const;
161
166 virtual
168 deepCopy() const;
169
175 virtual
177 zeroedCopy() const;
178
179
185 virtual
186 void
187 dump(const std::string fileName) const;
188
194 virtual
195 void
196 setToZero();
197
208 virtual
210 getPointOffset(int sampleNo,
211 int dataPointNo) const;
212
214 virtual
216 getPointOffset(int sampleNo,
217 int dataPointNo);
218
224 virtual
226 getLength() const;
227
236 virtual
238 getSlice(const DataTypes::RegionType& region) const;
239
247 virtual
248 void
249 setSlice(const DataAbstract* value,
250 const DataTypes::RegionType& region);
251
252
261 virtual void
263
272 virtual void
274
283 virtual void
285
294 virtual void
296
306 virtual void
307 trace(DataAbstract* ev, int axis_offset);
308
317 virtual void
318 transpose(DataAbstract* ev, int axis_offset);
319
329 virtual void
330 swapaxes(DataAbstract* ev, int axis0, int axis1);
331
332
341 virtual void
343
356 virtual void
357 eigenvalues_and_eigenvectors(DataAbstract* ev,DataAbstract* V,const double tol=1.e-13);
358
359
366 virtual int
367 matrixInverse(DataAbstract* out) const;
368
375 getVectorRW();
376
377
380 getVectorRO() const;
381
384 getVectorRWC();
385
386
389 getVectorROC() const;
390
391
392
396
398 virtual const DataTypes::RealVectorType&
400
404
406 virtual const DataTypes::CplxVectorType&
408
409
410
411
416 void complicate();
417
418 protected:
419
420 private:
421 //
422 // the actual data
425
426};
427
428} // end of namespace
429#endif
#define V(_K_, _I_)
Definition ShapeFunctions.cpp:121
Definition DataAbstract.h:63
DataConstant stores a single data point which represents the entire function space.
Definition DataConstant.h:38
virtual void replaceInf(DataTypes::real_t value)
replaces all (+/-)Inf values with value
Definition DataConstant.cpp:272
virtual DataTypes::RealVectorType & getTypedVectorRW(DataTypes::real_t dummy)
These versions use the type system rather than method name to determine return type.
Definition DataConstant.cpp:865
bool isConstant() const
Definition DataConstant.h:108
virtual DataAbstract * zeroedCopy() const
Return an object with the same type, domain (and tags if appropriate) as this, but all values are zer...
Definition DataConstant.cpp:337
virtual void dump(const std::string fileName) const
dumps the object into a netCDF file
Definition DataConstant.cpp:758
std::string toString() const
Write the data as a string.
Definition DataConstant.cpp:322
virtual bool hasInf() const
Return true if data contains Inf or -Inf.
Definition DataConstant.cpp:237
virtual void trace(DataAbstract *ev, int axis_offset)
Computes the trace of a matrix.
Definition DataConstant.cpp:498
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:390
DataTypes::RealVectorType & getVectorRW()
Return a reference to the underlying DataVector.
Definition DataConstant.cpp:839
virtual void setToZero()
sets all values to zero
Definition DataConstant.cpp:600
void complicate()
Convert from real data to complex data.
Definition DataConstant.cpp:890
virtual void symmetric(DataAbstract *ev)
Computes a symmetric matrix (A + AT) / 2.
Definition DataConstant.cpp:435
virtual void antihermitian(DataAbstract *ev)
Computes an anti-hermitian matrix (A - A*) / 2.
Definition DataConstant.cpp:483
bool hasNaN() const
Return true if the value contains a NaN.
Definition DataConstant.cpp:153
virtual const DataTypes::RealVectorType & getTypedVectorRO(DataTypes::real_t dummy) const
Definition DataConstant.cpp:872
const DataTypes::CplxVectorType & getVectorROC() const
Definition DataConstant.cpp:859
virtual DataTypes::RealVectorType::size_type getLength() const
Return the number of doubles stored for the Data object.
Definition DataConstant.cpp:384
virtual void setSlice(const DataAbstract *value, const DataTypes::RegionType &region)
Copy the specified region from the given value.
Definition DataConstant.cpp:396
virtual void antisymmetric(DataAbstract *ev)
Computes a nonsymmetric matrix (A - AT) / 2.
Definition DataConstant.cpp:452
virtual void swapaxes(DataAbstract *ev, int axis0, int axis1)
swaps components axis0 and axis1
Definition DataConstant.cpp:516
DataConstant(const WrappedArray &value, const FunctionSpace &what)
Constructor for DataConstant objects.
Definition DataConstant.cpp:65
virtual int matrixInverse(DataAbstract *out) const
invert square matricies
Definition DataConstant.cpp:583
DataTypes::CplxVectorType & getVectorRWC()
Definition DataConstant.cpp:852
virtual void eigenvalues(DataAbstract *ev)
solves the eigenvalue problem this*V=ev*V for the eigenvalues ev
Definition DataConstant.cpp:550
virtual void transpose(DataAbstract *ev, int axis_offset)
Transpose each data point of this Data object around the given axis.
Definition DataConstant.cpp:533
DataReady parent
Definition DataConstant.h:39
const DataTypes::RealVectorType & getVectorRO() const
Definition DataConstant.cpp:846
DataTypes::CplxVectorType m_data_c
Definition DataConstant.h:424
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:567
virtual void hermitian(DataAbstract *ev)
Computes an hermitian matrix (A + A*) / 2.
Definition DataConstant.cpp:469
virtual DataTypes::RealVectorType::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:354
virtual DataAbstract * deepCopy() const
Return a deep copy of the current object.
Definition DataConstant.cpp:331
DataTypes::RealVectorType m_data_r
Definition DataConstant.h:423
void replaceNaN(DataTypes::real_t value)
replaces all NaN values with value
Definition DataConstant.cpp:188
Definition DataReady.h:37
DataTypes::vec_size_type size_type
Definition DataVectorAlt.h:50
Definition FunctionSpace.h:36
Definition WrappedArray.h:33
#define ESCRIPT_DLL_API
Definition escriptcore/src/system_dep.h:30
std::complex< real_t > cplx_t
complex data type
Definition DataTypes.h:55
std::vector< std::pair< int, int > > RegionType
Definition DataTypes.h:45
double real_t
type of all real-valued scalars in escript
Definition DataTypes.h:52
std::vector< int > ShapeType
The shape of a single datapoint.
Definition DataTypes.h:44
Definition AbstractContinuousDomain.cpp:23