escript  Revision_4925
Public Member Functions | Private Attributes | List of all members
escript::TestDomain Class Reference

(Testing use only) Provides a domain to wrap a collection of values. More...

#include <TestDomain.h>

Inheritance diagram for escript::TestDomain:
escript::AbstractDomain

Public Member Functions

 TestDomain (int pointspersample, int numsamples, int dpsize=1)
 Default constructor for TestDomain. More...
 
 ~TestDomain ()
 
virtual bool isValidFunctionSpaceType (int functionSpaceType) const
 Returns true if the given integer is a valid function space type for this domain. More...
 
virtual std::string getDescription () const
 Return a description for this domain. More...
 
virtual std::string functionSpaceTypeAsString (int functionSpaceType) const
 Return a description for the given function space type code. More...
 
virtual void interpolateOnDomain (escript::Data &target, const escript::Data &source) const
 Interpolates data given on source onto target where source and target have to be given on the same domain. TestDomain only has one FunctionSpace so this makes target a shallow copy of source. More...
 
virtual bool probeInterpolationOnDomain (int functionSpaceType_source, int functionSpaceType_target) const
 True if interpolation is possible from source to target. More...
 
bool commonFunctionSpace (const std::vector< int > &fs, int &resultcode) const
 given a vector of FunctionSpace type codes, pass back a code which then can all be interpolated to. More...
 
virtual escript::Data getX () const
 Returns locations in the domain. More...
 
virtual void interpolateACross (escript::Data &target, const escript::Data &source) const
 Interpolates data given on source onto target where source and target are given on different domains. We do not permit interpolation into the TestDomain so this method always throws. More...
 
virtual bool probeInterpolationACross (int functionSpaceType_source, const AbstractDomain &targetDomain, int functionSpaceType_target) const
 
virtual int getDefaultCode () const
 Return a continuous FunctionSpace. More...
 
virtual int getContinuousFunctionCode () const
 Return a continuous FunctionSpace. More...
 
virtual int getFunctionCode () const
 Return a function FunctionSpace. More...
 
virtual int getFunctionOnBoundaryCode () const
 Return a function on boundary FunctionSpace. More...
 
virtual int getFunctionOnContactZeroCode () const
 Return a FunctionSpace. More...
 
virtual int getFunctionOnContactOneCode () const
 Return a FunctionSpace. More...
 
virtual int getSolutionCode () const
 Return a FunctionSpace. More...
 
virtual int getReducedSolutionCode () const
 Return a FunctionSpace. More...
 
virtual int getDiracDeltaFunctionsCode () const
 Return a FunctionSpace. More...
 
virtual std::pair< int, int > getDataShape (int functionSpaceCode) const
 Return the number of data points per sample, and the number of samples as a pair. More...
 
virtual int getTagFromSampleNo (int functionSpaceType, int sampleNo) const
 Return the tag key for the given sample number. More...
 
virtual const int * borrowSampleReferenceIDs (int functionSpaceType) const
 Return a borrowed pointer to the sample reference number id list. More...
 
virtual int getDim () const
 Returns the spatial dimension of the domain. More...
 
virtual bool operator== (const AbstractDomain &other) const
 Return true if given domains are equal. More...
 
virtual bool operator!= (const AbstractDomain &other) const
 
virtual bool canTag (int functionSpaceCode) const
 Checks if this domain allows tags for the specified functionSpaceCode. More...
 
virtual int getNumberOfTagsInUse (int functionSpaceCode) const
 
return the number of tags in use.

For this class the answer is always 1(the default tag). More...

 
virtual const int * borrowListOfTagsInUse (int functionSpaceCode) const
 returns a pointer to an array with the tags used. For this class the answer will always be {0} More...
 
virtual escript::Data randomFill (const DataTypes::ShapeType &shape, const FunctionSpace &what, long seed, const boost::python::tuple &filter) const
 Fills the data object with filtered random values. More...
 
- Public Member Functions inherited from escript::AbstractDomain
Domain_ptr getPtr ()
 Returns smart pointer which is managing this object. If one does not exist yet it creates one. More...
 
const_Domain_ptr getPtr () const
 
 AbstractDomain ()
 Default constructor for AbstractDomain. More...
 
virtual ~AbstractDomain ()
 Destructor for AbstractDomain. More...
 
virtual int getMPISize () const
 return the number of processors used for this domain More...
 
virtual int getMPIRank () const
 return the number MPI rank of this processor More...
 
virtual void MPIBarrier () const
 If compiled for MPI then execute an MPI_Barrier, else do nothing. More...
 
virtual bool onMasterProcessor () const
 Return true if on MPI master, else false. More...
 
virtual unsigned int getMPIComm () const
 get the communicator for this domain. Returns 0 on non-MPI builds Routine must be implemented by the DomainAdapter More...
 
virtual void write (const std::string &filename) const
 Writes the domain to an external file filename. More...
 
virtual void dump (const std::string &filename) const
 dumps the domain to an external file filename. More...
 
virtual void setTagMap (const std::string &name, int tag)
 sets a map from a clear tag name to a tag key More...
 
virtual int getTag (const std::string &name) const
 Return the tag key for tag name. More...
 
virtual bool isValidTagName (const std::string &name) const
 Returns True if name is a defined tag name. More...
 
virtual std::string showTagNames () const
 Returns all tag names in a single string sperated by commas. More...
 
virtual void setNewX (const escript::Data &arg)
 Assigns new location to the domain. More...
 
virtual signed char preferredInterpolationOnDomain (int functionSpaceType_source, int functionSpaceType_target) const
 Preferred direction of interpolation. More...
 
virtual escript::Data getNormal () const
 Return boundary normals. The function space is chosen appropriately. More...
 
virtual escript::Data getSize () const
 Returns the local size of samples. The function space is chosen appropriately. More...
 
virtual void setToX (escript::Data &out) const
 Copies the location of data points on the domain into out. The actual function space to be considered is defined by out. out has to be defined on this. More...
 
virtual void setToNormal (escript::Data &out) const
 Copies the surface normals at data points into out. The actual function space to be considered is defined by out. out has to be defined on this. More...
 
virtual void setToSize (escript::Data &out) const
 Copies the size of samples into out. The actual function space to be considered is defined by out. out has to be defined on this. More...
 
virtual void setToGradient (escript::Data &grad, const escript::Data &arg) const
 Copies the gradient of arg into grad. The actual function space to be considered for the gradient is defined by grad. arg and grad have to be defined on this. More...
 
virtual bool ownSample (int fs_code, index_t id) const
 True if this rank owns the sample(id) Must be implemented by the Domain adapter. More...
 
virtual void setTags (const int functionSpaceType, const int newTag, const escript::Data &mask) const
 assigns new tag newTag to all samples of functionspace with a positive value of mask for any its sample point. More...
 
virtual bool isCellOriented (int functionSpaceCode) const
 returns true if data on this domain and a function space of type functionSpaceCode has to considered as cell centered data. More...
 
virtual StatusType getStatus () const
 Returns a status indicator of the domain. The status identifier should be unique over the live time if the object but may be updated if changes to the domain happen, e.g. modifications to its geometry. More...
 
void throwStandardException (const std::string &functionName) const
 Throw a standard exception. This function is called if any attempt is made to use a base class function. More...
 
virtual int getApproximationOrder (const int functionSpaceCode) const
 returns the approximation order used for a function space functionSpaceCode More...
 
virtual bool supportsContactElements () const
 
virtual bool supportsFilter (const boost::python::tuple &t) const
 true if this domain can handle to specified tuple of filter options. More...
 

Private Attributes

int m_samples
 
int m_dpps
 
int m_dpsize
 
int * m_samplerefids
 

Additional Inherited Members

- Public Types inherited from escript::AbstractDomain
typedef int StatusType
 
typedef struct ValueBuffer ValueBuffer
 
typedef std::map< int,
ValueBuffer
BufferMapType
 

Detailed Description

(Testing use only) Provides a domain to wrap a collection of values.

This domain provides more functionality than NullDomain in that it can store varying numbers of samples and points per sample.

It currently supports a single function space which does not support tagging. No effort has been made to make this work with MPI

Warning
This class exists to support testing and should not be used as a general domain without ensuring that it works the way you expect. Also, other doco says that this class can be removed without notice.

Constructor & Destructor Documentation

escript::TestDomain::TestDomain ( int  pointspersample,
int  numsamples,
int  dpsize = 1 
)

Default constructor for TestDomain.

Description: Default constructor for TestDomain.

References escript::getMPIRankWorld(), escript::getMPISizeWorld(), m_samplerefids, and m_samples.

escript::TestDomain::~TestDomain ( )

References m_samplerefids.

Member Function Documentation

const int * escript::TestDomain::borrowListOfTagsInUse ( int  functionSpaceCode) const
virtual

returns a pointer to an array with the tags used. For this class the answer will always be {0}

Reimplemented from escript::AbstractDomain.

const int * escript::TestDomain::borrowSampleReferenceIDs ( int  functionSpaceType) const
virtual

Return a borrowed pointer to the sample reference number id list.

Parameters
functionSpaceTypeInput - The function space type.

Reimplemented from escript::AbstractDomain.

References m_samplerefids.

bool escript::TestDomain::canTag ( int  functionSpaceCode) const
virtual

Checks if this domain allows tags for the specified functionSpaceCode.

Reimplemented from escript::AbstractDomain.

bool escript::TestDomain::commonFunctionSpace ( const std::vector< int > &  fs,
int &  resultcode 
) const
virtual

given a vector of FunctionSpace type codes, pass back a code which then can all be interpolated to.

Note
This method must be called on the domain which the FunctionSpaces point to
Returns
true is result is valid, false if not

Reimplemented from escript::AbstractDomain.

std::string escript::TestDomain::functionSpaceTypeAsString ( int  functionSpaceType) const
virtual

Return a description for the given function space type code.

Reimplemented from escript::AbstractDomain.

int escript::TestDomain::getContinuousFunctionCode ( ) const
virtual

Return a continuous FunctionSpace.

std::pair< int, int > escript::TestDomain::getDataShape ( int  functionSpaceCode) const
virtual

Return the number of data points per sample, and the number of samples as a pair.

Parameters
functionSpaceCodeInput - Code for the function space type.
Returns
pair, first - number of data points per sample, second - number of samples

Reimplemented from escript::AbstractDomain.

References m_dpps, and m_samples.

int escript::TestDomain::getDefaultCode ( ) const
virtual

Return a continuous FunctionSpace.

Referenced by escript::getTestDomainFunctionSpace(), and getX().

std::string escript::TestDomain::getDescription ( ) const
virtual

Return a description for this domain.

Reimplemented from escript::AbstractDomain.

int escript::TestDomain::getDim ( ) const
virtual

Returns the spatial dimension of the domain.

This has to be implemented by the actual Domain adapter.

Reimplemented from escript::AbstractDomain.

int escript::TestDomain::getDiracDeltaFunctionsCode ( ) const
virtual

Return a FunctionSpace.

int escript::TestDomain::getFunctionCode ( ) const
virtual

Return a function FunctionSpace.

int escript::TestDomain::getFunctionOnBoundaryCode ( ) const
virtual

Return a function on boundary FunctionSpace.

int escript::TestDomain::getFunctionOnContactOneCode ( ) const
virtual

Return a FunctionSpace.

int escript::TestDomain::getFunctionOnContactZeroCode ( ) const
virtual

Return a FunctionSpace.

int escript::TestDomain::getNumberOfTagsInUse ( int  functionSpaceCode) const
virtual

return the number of tags in use.

For this class the answer is always 1(the default tag).

Reimplemented from escript::AbstractDomain.

int escript::TestDomain::getReducedSolutionCode ( ) const
virtual

Return a FunctionSpace.

int escript::TestDomain::getSolutionCode ( ) const
virtual

Return a FunctionSpace.

int escript::TestDomain::getTagFromSampleNo ( int  functionSpaceType,
int  sampleNo 
) const
virtual

Return the tag key for the given sample number.

Parameters
functionSpaceTypeInput - The function space type.
sampleNoInput - The sample number.

Reimplemented from escript::AbstractDomain.

escript::Data escript::TestDomain::getX ( ) const
virtual
void escript::TestDomain::interpolateACross ( escript::Data target,
const escript::Data source 
) const
virtual

Interpolates data given on source onto target where source and target are given on different domains. We do not permit interpolation into the TestDomain so this method always throws.

Reimplemented from escript::AbstractDomain.

void escript::TestDomain::interpolateOnDomain ( escript::Data target,
const escript::Data source 
) const
virtual

Interpolates data given on source onto target where source and target have to be given on the same domain. TestDomain only has one FunctionSpace so this makes target a shallow copy of source.

Reimplemented from escript::AbstractDomain.

References escript::FunctionSpace::getDomain(), and escript::Data::getFunctionSpace().

bool escript::TestDomain::isValidFunctionSpaceType ( int  functionSpaceType) const
virtual

Returns true if the given integer is a valid function space type for this domain.

Reimplemented from escript::AbstractDomain.

bool escript::TestDomain::operator!= ( const AbstractDomain other) const
virtual

Reimplemented from escript::AbstractDomain.

bool escript::TestDomain::operator== ( const AbstractDomain other) const
virtual

Return true if given domains are equal.

Reimplemented from escript::AbstractDomain.

bool escript::TestDomain::probeInterpolationACross ( int  functionSpaceType_source,
const AbstractDomain targetDomain,
int  functionSpaceType_target 
) const
virtual

Reimplemented from escript::AbstractDomain.

bool escript::TestDomain::probeInterpolationOnDomain ( int  functionSpaceType_source,
int  functionSpaceType_target 
) const
virtual

True if interpolation is possible from source to target.

Reimplemented from escript::AbstractDomain.

escript::Data escript::TestDomain::randomFill ( const DataTypes::ShapeType shape,
const FunctionSpace what,
long  seed,
const boost::python::tuple &  filter 
) const
virtual

Fills the data object with filtered random values.

Implements escript::AbstractDomain.

References escript::Data::getExpandedVectorReference(), esysUtils::randomFillArray(), and escript::DataVector::size().

Member Data Documentation

int escript::TestDomain::m_dpps
private

Referenced by getDataShape(), and getX().

int escript::TestDomain::m_dpsize
private

Referenced by getX().

int* escript::TestDomain::m_samplerefids
private
int escript::TestDomain::m_samples
private

Referenced by getDataShape(), getX(), and TestDomain().


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