escript  Revision_Unversioneddirectory
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
escript::DataExpanded Class Reference

Give a short description of what DataExpanded does. More...

#include <DataExpanded.h>

Inheritance diagram for escript::DataExpanded:
escript::DataReady escript::DataAbstract

Public Member Functions

 DataExpanded (const WrappedArray &value, const FunctionSpace &what)
 Constructor for DataExpanded. More...
 
 DataExpanded (const DataExpanded &other, const DataTypes::RegionType &region)
 Alternative constructor for DataExpanded that copies a slice from another DataExpanded. More...
 
 DataExpanded (const FunctionSpace &what, const DataTypes::ShapeType &shape, const DataTypes::ValueType &data)
 Alternative constructor for DataExpanded objects. More...
 
 DataExpanded (const FunctionSpace &what, const DataTypes::ShapeType &shape, const double data)
 
 DataExpanded (const DataExpanded &other)
 Copy constructor for DataExpanded. Performs a deep copy from another DataExpanded. More...
 
 DataExpanded (const DataConstant &other)
 Copy constructor for DataExpanded. Construct a DataExpanded from a DataConstant. More...
 
 DataExpanded (const DataTagged &other)
 Copy constructor for DataExpanded. Construct a DataExpanded from a DataTagged. More...
 
virtual ~DataExpanded ()
 Default destructor for DataExpanded. More...
 
bool isExpanded () const
 
bool actsExpanded () const
 Return true if this Data is expanded or resolves to expanded. That is, if it has a separate value for each datapoint in the sample. More...
 
bool hasNaN () const
 Return true if any value in the data contains a NaN. More...
 
void replaceNaN (double value)
 replaces all NaN values with value More...
 
virtual std::string toString () const
 Return a textual representation of the data. More...
 
virtual DataAbstractdeepCopy ()
 Return a deep copy of the current object. More...
 
virtual void dump (const std::string fileName) const
 dumps the object into a netCDF file More...
 
virtual int matrixInverse (DataAbstract *out) const
 invert square matricies More...
 
virtual void setToZero ()
 sets all values to zero More...
 
virtual DataTypes::ValueType::size_type getPointOffset (int sampleNo, int dataPointNo) const
 Return the offset for the given given data point. This returns the offset in bytes for the given point into the container holding the point data. More...
 
virtual DataTypes::ValueType::size_type getPointOffset (int sampleNo, int dataPointNo)
 
DataTypes::ValueTypegetVectorRW ()
 Return a a reference to the underlying DataVector. More...
 
const DataTypes::ValueTypegetVectorRO () const
 
virtual ValueType::size_type getLength () const
 Return the number of doubles stored for the Data. More...
 
virtual DataAbstractgetSlice (const DataTypes::RegionType &region) const
 Factory method that returns a newly created DataExpanded. The caller is reponsible for managing the object created. More...
 
virtual void setSlice (const DataAbstract *value, const DataTypes::RegionType &region)
 Copy the specified region from the given value. More...
 
void setTaggedValue (int tagKey, const DataTypes::ShapeType &pointshape, const DataTypes::ValueType &value, int dataOffset=0)
 setTaggedValue More...
 
virtual void symmetric (DataAbstract *ev)
 Computes a symmetric matrix (A + AT) / 2. More...
 
virtual void nonsymmetric (DataAbstract *ev)
 Computes a nonsymmetric matrix (A - AT) / 2. More...
 
virtual void trace (DataAbstract *ev, int axis_offset)
 Computes the trace of a matrix. More...
 
virtual void transpose (DataAbstract *ev, int axis_offset)
 Transpose each data point of this Data object around the given axis. More...
 
virtual void swapaxes (DataAbstract *ev, int axis0, int axis1)
 swaps components axis0 and axis1 More...
 
virtual void eigenvalues (DataAbstract *ev)
 solves the eigenvalue problem this*V=ev*V for the eigenvalues ev More...
 
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 More...
 
virtual void reorderByReferenceIDs (dim_t *reference_ids)
 reorders data sample ordered by reference_ids to the ordering of the functions space More...
 
- Public Member Functions inherited from escript::DataReady
 DataReady (const FunctionSpace &what, const ShapeType &shape, bool isDataEmpty=false)
 
 ~DataReady ()
 
double * getSampleDataRW (ValueType::size_type sampleNo)
 Return the sample data for the given sample number. More...
 
const double * getSampleDataRO (ValueType::size_type sampleNo) const
 
DataTypes::ValueType::const_reference getDataAtOffsetRO (DataTypes::ValueType::size_type i) const
 get a reference to the beginning of a data point More...
 
DataTypes::ValueType::reference getDataAtOffsetRW (DataTypes::ValueType::size_type i)
 
DataReady_ptr resolve ()
 Return a data object with all points resolved. More...
 
- Public Member Functions inherited from escript::DataAbstract
DataAbstract_ptr getPtr ()
 Return shared pointer managing this object. More...
 
const_DataAbstract_ptr getPtr () const
 
 DataAbstract (const FunctionSpace &what, const ShapeType &shape, bool isDataEmpty=false)
 Constructor for DataAbstract. More...
 
virtual ~DataAbstract ()
 Destructor for DataAbstract. More...
 
int getNumDPPSample () const
 Return the number of data points per sample. More...
 
int getNumSamples () const
 Return the number of samples. More...
 
const DataTypes::ShapeTypegetShape () const
 Return the shape information for the point data. More...
 
unsigned int getRank () const
 Return the rank information for the point data. More...
 
virtual double * getSampleDataByTag (int tag)
 Return the sample data for the given tag key. NB: If the data isn't tagged an exception will be thrown. More...
 
virtual size_t getTagCount () const
 Return number of tagged values stored in the data object. More...
 
void operandCheck (const DataAbstract &right) const
 Check this and the given RHS operands are compatible. Throws an exception if they aren't. More...
 
bool validSamplePointNo (int samplePointNo) const
 Return true if a valid sample point number. More...
 
bool validSampleNo (int sampleNo) const
 Return true if a valid sample number. More...
 
const FunctionSpacegetFunctionSpace () const
 Return the function space associated with this Data object. More...
 
virtual int getTagNumber (int dpno)
 Return the tag number associated with the given data-point number. More...
 
unsigned int getNoValues () const
 Return the number of values in the shape for this object. More...
 
bool isLazy () const
 
virtual bool isConstant () const
 
virtual bool isTagged () const
 
bool isEmpty () const
 
void addOwner (Data *)
 
void removeOwner (Data *)
 
bool isShared () const
 Is this object owned by more than one Data object. More...
 

Private Types

typedef DataReady parent
 

Private Member Functions

void initialise (int noSamples, int noDataPointsPerSample)
 Common initialisation called from constructors. More...
 
void copy (const DataConstant &value)
 Copy the given data point value to all data points in this object. More...
 
void copy (const WrappedArray &value)
 Copy the given data point value to all data points in this object. More...
 
virtual void copyToDataPoint (const int sampleNo, const int dataPointNo, const double value)
 Copy a double value to the data point dataPointNo of sample sampleNo in this object. More...
 
virtual void copyToDataPoint (const int sampleNo, const int dataPointNo, const WrappedArray &value)
 Copy the value to the data point dataPointNo of sample sampleNo in this object. More...
 

Private Attributes

DataBlocks2D m_data
 

Additional Inherited Members

- Public Types inherited from escript::DataAbstract
typedef DataTypes::ValueType ValueType
 
typedef DataTypes::ShapeType ShapeType
 
- Protected Member Functions inherited from escript::DataAbstract
bool checkNoSharing () const
 Returns true if this object is not shared. For internal use only. - It may not be particularly fast. More...
 
void makeLazyShared ()
 Marks this DataAbstract shared as LazyData For internal use only. More...
 
- Protected Attributes inherited from escript::DataAbstract
std::vector< Data * > m_owners
 
bool m_lazyshared
 

Detailed Description

Give a short description of what DataExpanded does.

Description: Give a detailed description of DataExpanded.

Template Parameters: For templates describe any conditions that the parameters used in the template must satisfy.

Member Typedef Documentation

Constructor & Destructor Documentation

escript::DataExpanded::DataExpanded ( const WrappedArray value,
const FunctionSpace what 
)

Constructor for DataExpanded.

Description: Constructor for DataExpanded.

The given single data value is copied to all the data points in this data object, where the number of data points is defined by the given function space.

Parameters
value- Input - The value of a single data point.
what- Input - A description of what this data represents.

References copy(), escript::FunctionSpace::getNumDPPSample(), escript::FunctionSpace::getNumSamples(), and initialise().

Referenced by deepCopy(), and getSlice().

escript::DataExpanded::DataExpanded ( const DataExpanded other,
const DataTypes::RegionType region 
)
escript::DataExpanded::DataExpanded ( const FunctionSpace what,
const DataTypes::ShapeType shape,
const DataTypes::ValueType data 
)

Alternative constructor for DataExpanded objects.

Description: Alternative Constructor for DataExpanded objects.

Parameters
what- Input - A description of what this data object represents.
shape- Input - the shape of each data-point.
data- the array of data values for the data-points.

TODO Note that this constructor will also copy data to all points if it only contains enough elements to hold a single point. ie this is the merge of two separate constructors.

References EsysAssert, escript::DataBlocks2D::getData(), getLength(), escript::DataAbstract::getNoValues(), escript::FunctionSpace::getNumDPPSample(), escript::FunctionSpace::getNumSamples(), initialise(), m_data, and escript::DataVector::size().

escript::DataExpanded::DataExpanded ( const FunctionSpace what,
const DataTypes::ShapeType shape,
const double  data 
)
escript::DataExpanded::DataExpanded ( const DataExpanded other)

Copy constructor for DataExpanded. Performs a deep copy from another DataExpanded.

escript::DataExpanded::DataExpanded ( const DataConstant other)
escript::DataExpanded::DataExpanded ( const DataTagged other)
escript::DataExpanded::~DataExpanded ( )
virtual

Default destructor for DataExpanded.

Member Function Documentation

bool escript::DataExpanded::actsExpanded ( ) const
inlinevirtual
void escript::DataExpanded::copy ( const DataConstant value)
private

Copy the given data point value to all data points in this object.

Description: Copy the given data point to all data points in this object.

Parameters
valueInput - A single data point value.

References escript::DataTypes::checkShape(), escript::DataTypes::copyPoint(), escript::DataTypes::createShapeErrorMessage(), EsysAssert, escript::DataAbstract::getNoValues(), escript::DataBlocks2D::getNumCols(), escript::DataBlocks2D::getNumRows(), getPointOffset(), escript::DataAbstract::getShape(), escript::DataConstant::getVectorRO(), getVectorRW(), and m_data.

Referenced by actsExpanded(), and DataExpanded().

void escript::DataExpanded::copy ( const WrappedArray value)
private
void escript::DataExpanded::copyToDataPoint ( const int  sampleNo,
const int  dataPointNo,
const double  value 
)
privatevirtual

Copy a double value to the data point dataPointNo of sample sampleNo in this object.

Description: Copy a double value to the data point dataPointNo of sample sampleNo in this object.

Parameters
sampleNoInput - sample number
dataPointNoInput - data point of the sample
valueInput - new values for the data point

Reimplemented from escript::DataAbstract.

References CHECK_FOR_EX_WRITE, escript::DataAbstract::getNumDPPSample(), escript::DataAbstract::getNumSamples(), getPointOffset(), escript::DataAbstract::getRank(), escript::DataTypes::getRelIndex(), escript::DataAbstract::getShape(), and getVectorRW().

Referenced by actsExpanded().

void escript::DataExpanded::copyToDataPoint ( const int  sampleNo,
const int  dataPointNo,
const WrappedArray value 
)
privatevirtual

Copy the value to the data point dataPointNo of sample sampleNo in this object.

Parameters
sampleNoInput - sample number
dataPointNoInput - data point of the sample
valueInput - new values for the data point

Reimplemented from escript::DataAbstract.

References CHECK_FOR_EX_WRITE, escript::DataVector::copyFromArrayToOffset(), escript::DataAbstract::getNumDPPSample(), escript::DataAbstract::getNumSamples(), getPointOffset(), escript::WrappedArray::getRank(), escript::DataAbstract::getRank(), and getVectorRW().

DataAbstract * escript::DataExpanded::deepCopy ( )
virtual

Return a deep copy of the current object.

Implements escript::DataAbstract.

References DataExpanded().

Referenced by actsExpanded().

void escript::DataExpanded::dump ( const std::string  fileName) const
virtual
void escript::DataExpanded::eigenvalues ( DataAbstract ev)
virtual

solves the eigenvalue problem this*V=ev*V for the eigenvalues ev

Parameters
ev- Output - eigenvalues in increasing order at each data point

Reimplemented from escript::DataAbstract.

References escript::DataMaths::eigenvalues(), escript::DataAbstract::getNumDPPSample(), escript::DataAbstract::getNumSamples(), escript::DataAbstract::getPointOffset(), getPointOffset(), escript::DataAbstract::getShape(), getVectorRO(), and getVectorRW().

Referenced by actsExpanded().

void escript::DataExpanded::eigenvalues_and_eigenvectors ( DataAbstract ev,
DataAbstract V,
const double  tol = 1.e-13 
)
virtual

solves the eigenvalue problem this*V=ev*V for the eigenvalues ev and eigenvectors V

Parameters
ev- Output - eigenvalues in increasing order at each data point
V- Output - corresponding eigenvectors. They are normalized such that their length is one and the first nonzero component is positive.
tol- Input - eigenvalue with relative distance tol are treated as equal.

Reimplemented from escript::DataAbstract.

References escript::DataMaths::eigenvalues_and_eigenvectors(), escript::DataAbstract::getNumDPPSample(), escript::DataAbstract::getNumSamples(), escript::DataAbstract::getPointOffset(), getPointOffset(), escript::DataAbstract::getShape(), getVectorRO(), getVectorRW(), and V.

Referenced by actsExpanded().

DataTypes::ValueType::size_type escript::DataExpanded::getLength ( ) const
virtual

Return the number of doubles stored for the Data.

Implements escript::DataAbstract.

References m_data, and escript::DataBlocks2D::size().

Referenced by actsExpanded(), and DataExpanded().

DataTypes::ValueType::size_type escript::DataExpanded::getPointOffset ( int  sampleNo,
int  dataPointNo 
) const
virtual
DataTypes::ValueType::size_type escript::DataExpanded::getPointOffset ( int  sampleNo,
int  dataPointNo 
)
virtual
DataAbstract * escript::DataExpanded::getSlice ( const DataTypes::RegionType region) const
virtual

Factory method that returns a newly created DataExpanded. The caller is reponsible for managing the object created.

Parameters
region- Input - Region to copy.

Implements escript::DataAbstract.

References DataExpanded().

Referenced by actsExpanded().

const DataTypes::ValueType & escript::DataExpanded::getVectorRO ( ) const
virtual
DataTypes::ValueType & escript::DataExpanded::getVectorRW ( )
virtual
bool escript::DataExpanded::hasNaN ( ) const
virtual

Return true if any value in the data contains a NaN.

Implements escript::DataReady.

References escript::DataBlocks2D::getData(), m_data, escript::nancheck(), and escript::DataVector::size().

Referenced by actsExpanded().

void escript::DataExpanded::initialise ( int  noSamples,
int  noDataPointsPerSample 
)
private

Common initialisation called from constructors.

Description: Common initialisation called from constructors.

Resizes the underlying data array to provide sufficient storage for the given shape and number of data points, and creates the corresponding DataArrayView of this data.

Parameters
noSamples- Input - number of samples.
noDataPointsPerSample- Input - number of data points per sample.

References escript::DataAbstract::getNoValues(), m_data, and escript::DataBlocks2D::resize().

Referenced by actsExpanded(), and DataExpanded().

bool escript::DataExpanded::isExpanded ( ) const
inlinevirtual

Reimplemented from escript::DataAbstract.

References ESCRIPT_DLL_API.

int escript::DataExpanded::matrixInverse ( DataAbstract out) const
virtual
void escript::DataExpanded::nonsymmetric ( DataAbstract ev)
virtual
void escript::DataExpanded::reorderByReferenceIDs ( dim_t reference_ids)
virtual

reorders data sample ordered by reference_ids to the ordering of the functions space

Parameters
reference_ids- Input - reference_ids used for current ordering

Reimplemented from escript::DataAbstract.

References CHECK_FOR_EX_WRITE, escript::DataAbstract::getFunctionSpace(), escript::DataAbstract::getNoValues(), escript::DataAbstract::getNumDPPSample(), escript::DataAbstract::getNumSamples(), getPointOffset(), escript::FunctionSpace::getReferenceIDOfSample(), and m_data.

Referenced by actsExpanded().

void escript::DataExpanded::replaceNaN ( double  value)
virtual

replaces all NaN values with value

Implements escript::DataReady.

References m_data, escript::nancheck(), and escript::DataBlocks2D::size().

Referenced by actsExpanded().

void escript::DataExpanded::setSlice ( const DataAbstract value,
const DataTypes::RegionType region 
)
virtual
void escript::DataExpanded::setTaggedValue ( int  tagKey,
const DataTypes::ShapeType pointshape,
const DataTypes::ValueType value,
int  dataOffset = 0 
)
virtual

setTaggedValue

Description: uses tag to set a new value

Parameters
tagKey- Input - Integer key.
pointshape- Input - The shape of the value parameter
value- Input -
dataOffset- Input - where in the value parameter to start reading the data point value.

Reimplemented from escript::DataAbstract.

References CHECK_FOR_EX_WRITE, escript::DataAbstract::getFunctionSpace(), escript::DataAbstract::getNoValues(), escript::DataAbstract::getNumDPPSample(), escript::DataAbstract::getNumSamples(), getPointOffset(), escript::FunctionSpace::getTagFromSampleNo(), m_data, and escript::DataVector::size().

Referenced by actsExpanded().

void escript::DataExpanded::setToZero ( )
virtual
void escript::DataExpanded::swapaxes ( DataAbstract ev,
int  axis0,
int  axis1 
)
virtual
void escript::DataExpanded::symmetric ( DataAbstract ev)
virtual
string escript::DataExpanded::toString ( ) const
virtual
void escript::DataExpanded::trace ( DataAbstract ev,
int  axis_offset 
)
virtual
void escript::DataExpanded::transpose ( DataAbstract ev,
int  axis_offset 
)
virtual

Transpose each data point of this Data object around the given axis.

Parameters
ev- Output - transpose of your matrix
axis_offset-

Reimplemented from escript::DataAbstract.

References escript::DataAbstract::getNumDPPSample(), escript::DataAbstract::getNumSamples(), escript::DataAbstract::getPointOffset(), getPointOffset(), escript::DataAbstract::getShape(), getVectorRO(), getVectorRW(), and escript::DataMaths::transpose().

Referenced by actsExpanded().

Member Data Documentation

DataBlocks2D escript::DataExpanded::m_data
private

The documentation for this class was generated from the following files: