ESScript  Revision_4488
Public Member Functions | List of all members
escript::AbstractContinuousDomain Class Reference

AbstractContinuousDomain, base class for continuous domains. More...

#include <AbstractContinuousDomain.h>

Inheritance diagram for escript::AbstractContinuousDomain:
escript::AbstractDomain dudley::MeshAdapter finley::MeshAdapter ripley::RipleyDomain ripley::Brick ripley::Rectangle

Public Member Functions

 AbstractContinuousDomain ()
 Default constructor for AbstractContinuousDomain.
virtual ~AbstractContinuousDomain ()
 Destructor for AbstractContinuousDomain.
virtual bool isValidFunctionSpaceType (int functionSpaceType) const
 Returns true if the given integer is a valid function space type for this domain.
virtual std::string getDescription () const
 Return a description for this domain.
virtual int getContinuousFunctionCode () const
 Return a continuous FunctionSpace code.
virtual int getReducedContinuousFunctionCode () const
 Return a continuous on reduced order FunctionSpace code.
virtual int getFunctionCode () const
 Return a function FunctionSpace code.
virtual int getReducedFunctionCode () const
 Return a function FunctionSpace code with reduced integration order.
virtual int getFunctionOnBoundaryCode () const
 Return a function on boundary FunctionSpace code.
virtual int getReducedFunctionOnBoundaryCode () const
 Return a code for a function on boundary FunctionSpace with reduced integration order.
virtual int getFunctionOnContactZeroCode () const
 Return a FunctionOnContactZero code.
virtual int getReducedFunctionOnContactZeroCode () const
 Return a FunctionOnContactZero for reduced integration order code.
virtual int getFunctionOnContactOneCode () const
 Return a FunctionOnContactOne code.
virtual int getReducedFunctionOnContactOneCode () const
 Return a FunctionOnContactOne for reduced integration order code.
virtual int getSolutionCode () const
 Return a Solution code.
virtual int getReducedSolutionCode () const
 Return a ReducedSolution code.
virtual int getDiracDeltaFunctionsCode () const
 Return a DiracDeltaFunctions code.
virtual int getSystemMatrixTypeId (const int solver, const int preconditioner, const int package, const bool symmetry) const
 return the identifier of the matrix type to be used for the global stiffness matrix when a particular solver package and symmetric matrix is used.
virtual int getTransportTypeId (const int solver, const int preconditioner, const int package, const bool symmetry) const
 return the identifier of the matrix type to be used for the global stiffness matrix when a particular solver package and symmetric matrix is used.
virtual void setToIntegrals (std::vector< double > &integrals, const escript::Data &arg) const
 copies the integrals of the function defined by arg into integrals. arg has to be defined on this. has to be implemented by the Domain Adapter.
virtual void addPDEToSystem (AbstractSystemMatrix &mat, escript::Data &rhs, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y, const escript::Data &d, const escript::Data &y, const escript::Data &d_contact, const escript::Data &y_contact, const escript::Data &d_dirac, const escript::Data &y_dirac) const
 Return the domain as const AbstractContinuousDomain&.
virtual void addPDEToRHS (escript::Data &rhs, const escript::Data &X, const escript::Data &Y, const escript::Data &y, const escript::Data &y_contact, const escript::Data &y_dirac) const
 adds a PDE onto the lumped stiffness matrix matrix
virtual void addPDEToTransportProblem (AbstractTransportProblem &tp, escript::Data &source, const escript::Data &M, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y, const escript::Data &d, const escript::Data &y, const escript::Data &d_contact, const escript::Data &y_contact, const escript::Data &d_dirac, const escript::Data &y_dirac) const
 adds a PDE onto a transport problem
virtual ASM_ptr newSystemMatrix (const int row_blocksize, const escript::FunctionSpace &row_functionspace, const int column_blocksize, const escript::FunctionSpace &column_functionspace, const int type) const
 creates a SystemMatrixAdapter stiffness matrix and initializes it with zeros:
virtual ATP_ptr newTransportProblem (const int blocksize, const escript::FunctionSpace &functionspace, const int type) const
 creates a TransportProblemAdapter
virtual int getNumDataPointsGlobal () const
 Return the number of data points summed across all MPI processes.
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.
virtual void setNewX (const escript::Data &arg)
 assigns new location to the domain
virtual void Print_Mesh_Info (const bool full=false) const
- 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.
const_Domain_ptr getPtr () const
 AbstractDomain ()
 Default constructor for AbstractDomain.
virtual ~AbstractDomain ()
 Destructor for AbstractDomain.
virtual int getMPISize () const
 return the number of processors used for this domain
virtual int getMPIRank () const
 return the number MPI rank of this processor
virtual void MPIBarrier () const
 If compiled for MPI then execute an MPI_Barrier, else do nothing.
virtual bool onMasterProcessor () const
 Return true if on MPI master, else false.
virtual unsigned int getMPIComm () const
 get the communicator for this domain. Returns 0 on non-MPI builds Routine must be implemented by the DomainAdapter
virtual std::string functionSpaceTypeAsString (int functionSpaceType) const
 Return a description for the given function space type code.
virtual int getDim () const
 Returns the spatial dimension of the domain.
virtual bool operator== (const AbstractDomain &other) const
 Return true if given domains are equal.
virtual bool operator!= (const AbstractDomain &other) const
virtual void write (const std::string &filename) const
 Writes the domain to an external file filename.
virtual void dump (const std::string &filename) const
 dumps the domain to an external file filename.
virtual int getTagFromSampleNo (int functionSpaceType, int sampleNo) const
 Return the tag key for the given sample number.
virtual void setTagMap (const std::string &name, int tag)
 sets a map from a clear tag name to a tag key
virtual int getTag (const std::string &name) const
 Return the tag key for tag name.
virtual bool isValidTagName (const std::string &name) const
 Returns True if name is a defined tag name.
virtual std::string showTagNames () const
 Returns all tag names in a single string sperated by commas.
virtual const int * borrowSampleReferenceIDs (int functionSpaceType) const
 Return a borrowed pointer to the sample reference number id list.
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.
virtual bool probeInterpolationOnDomain (int functionSpaceType_source, int functionSpaceType_target) const
 True if interpolation is possible from source to target.
virtual signed char preferredInterpolationOnDomain (int functionSpaceType_source, int functionSpaceType_target) const
 Preferred direction of interpolation.
virtual 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.
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.
virtual bool probeInterpolationACross (int functionSpaceType_source, const AbstractDomain &targetDomain, int functionSpaceType_target) const
virtual escript::Data getX () const
 Returns locations in the domain. The function space is chosen appropriately.
virtual escript::Data getNormal () const
 Return boundary normals. The function space is chosen appropriately.
virtual escript::Data getSize () const
 Returns the local size of samples. The function space is chosen appropriately.
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.
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.
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.
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.
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.
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.
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.
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.
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.
virtual int getNumberOfTagsInUse (int functionSpaceCode) const
 return the number of tags in use and a pointer to an array with the number of tags in use
virtual const int * borrowListOfTagsInUse (int functionSpaceCode) const
virtual bool canTag (int functionspacecode) const
 Checks if this domain allows tags for the specified functionSpaceCode.
virtual int getApproximationOrder (const int functionSpaceCode) const
 returns the approximation order used for a function space functionSpaceCode
virtual bool supportsContactElements () const

Additional Inherited Members

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

Detailed Description

AbstractContinuousDomain, base class for continuous domains.

Description: AbstractContinuousDomain, base class for continuous domains.

NOTE: Most of the virtual functions would be pure virtual except boost.python requires a non abstract base class.

Constructor & Destructor Documentation

escript::AbstractContinuousDomain::AbstractContinuousDomain ( )

Default constructor for AbstractContinuousDomain.

Description: Default constructor for AbstractContinuousDomain

Preconditions: Describe any preconditions

Throws: Describe any exceptions thrown

escript::AbstractContinuousDomain::~AbstractContinuousDomain ( )
virtual

Destructor for AbstractContinuousDomain.

Description: Destructor for AbstractContinuousDomain

Preconditions: Describe any preconditions

Throws: Describe any exceptions thrown

Member Function Documentation

void escript::AbstractContinuousDomain::addPDEToRHS ( escript::Data rhs,
const escript::Data X,
const escript::Data Y,
const escript::Data y,
const escript::Data y_contact,
const escript::Data y_dirac 
) const
virtual

adds a PDE onto the lumped stiffness matrix matrix

adds a PDE onto the stiffness matrix mat and a rhs

Reimplemented in finley::MeshAdapter, dudley::MeshAdapter, and ripley::RipleyDomain.

Referenced by BOOST_PYTHON_MODULE().

void escript::AbstractContinuousDomain::addPDEToSystem ( AbstractSystemMatrix mat,
escript::Data rhs,
const escript::Data A,
const escript::Data B,
const escript::Data C,
const escript::Data D,
const escript::Data X,
const escript::Data Y,
const escript::Data d,
const escript::Data y,
const escript::Data d_contact,
const escript::Data y_contact,
const escript::Data d_dirac,
const escript::Data y_dirac 
) const
virtual

Return the domain as const AbstractContinuousDomain&.

adds a PDE onto the stiffness matrix mat and a rhs

Reimplemented in finley::MeshAdapter, dudley::MeshAdapter, and ripley::RipleyDomain.

Referenced by BOOST_PYTHON_MODULE().

void escript::AbstractContinuousDomain::addPDEToTransportProblem ( AbstractTransportProblem tp,
escript::Data source,
const escript::Data M,
const escript::Data A,
const escript::Data B,
const escript::Data C,
const escript::Data D,
const escript::Data X,
const escript::Data Y,
const escript::Data d,
const escript::Data y,
const escript::Data d_contact,
const escript::Data y_contact,
const escript::Data d_dirac,
const escript::Data y_dirac 
) const
virtual

adds a PDE onto a transport problem

Reimplemented in finley::MeshAdapter, dudley::MeshAdapter, and ripley::RipleyDomain.

Referenced by BOOST_PYTHON_MODULE().

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

Return a continuous FunctionSpace code.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, and dudley::MeshAdapter.

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

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

Parameters
functionSpaceCodeInput -

Reimplemented from escript::AbstractDomain.

Reimplemented in finley::MeshAdapter, dudley::MeshAdapter, and ripley::RipleyDomain.

Referenced by BOOST_PYTHON_MODULE().

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

Return a description for this domain.

Reimplemented from escript::AbstractDomain.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, dudley::MeshAdapter, ripley::Brick, and ripley::Rectangle.

Referenced by BOOST_PYTHON_MODULE().

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

Return a DiracDeltaFunctions code.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, and dudley::MeshAdapter.

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

Return a function FunctionSpace code.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, and dudley::MeshAdapter.

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

Return a function on boundary FunctionSpace code.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, and dudley::MeshAdapter.

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

Return a FunctionOnContactOne code.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, and dudley::MeshAdapter.

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

Return a FunctionOnContactZero code.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, and dudley::MeshAdapter.

int escript::AbstractContinuousDomain::getNumDataPointsGlobal ( ) const
virtual

Return the number of data points summed across all MPI processes.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, dudley::MeshAdapter, ripley::Brick, and ripley::Rectangle.

Referenced by BOOST_PYTHON_MODULE().

int escript::AbstractContinuousDomain::getReducedContinuousFunctionCode ( ) const
virtual

Return a continuous on reduced order FunctionSpace code.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, and dudley::MeshAdapter.

int escript::AbstractContinuousDomain::getReducedFunctionCode ( ) const
virtual

Return a function FunctionSpace code with reduced integration order.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, and dudley::MeshAdapter.

int escript::AbstractContinuousDomain::getReducedFunctionOnBoundaryCode ( ) const
virtual

Return a code for a function on boundary FunctionSpace with reduced integration order.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, and dudley::MeshAdapter.

int escript::AbstractContinuousDomain::getReducedFunctionOnContactOneCode ( ) const
virtual

Return a FunctionOnContactOne for reduced integration order code.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, and dudley::MeshAdapter.

int escript::AbstractContinuousDomain::getReducedFunctionOnContactZeroCode ( ) const
virtual

Return a FunctionOnContactZero for reduced integration order code.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, and dudley::MeshAdapter.

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

Return a ReducedSolution code.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, and dudley::MeshAdapter.

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

Return a Solution code.

Reimplemented in ripley::RipleyDomain, finley::MeshAdapter, and dudley::MeshAdapter.

int escript::AbstractContinuousDomain::getSystemMatrixTypeId ( const int  solver,
const int  preconditioner,
const int  package,
const bool  symmetry 
) const
virtual

return the identifier of the matrix type to be used for the global stiffness matrix when a particular solver package and symmetric matrix is used.

Reimplemented in finley::MeshAdapter, dudley::MeshAdapter, and ripley::RipleyDomain.

Referenced by BOOST_PYTHON_MODULE().

int escript::AbstractContinuousDomain::getTransportTypeId ( const int  solver,
const int  preconditioner,
const int  package,
const bool  symmetry 
) const
virtual

return the identifier of the matrix type to be used for the global stiffness matrix when a particular solver package and symmetric matrix is used.

Reimplemented in finley::MeshAdapter, dudley::MeshAdapter, and ripley::RipleyDomain.

Referenced by BOOST_PYTHON_MODULE().

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

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

Reimplemented from escript::AbstractDomain.

Reimplemented in finley::MeshAdapter, dudley::MeshAdapter, and ripley::RipleyDomain.

ASM_ptr escript::AbstractContinuousDomain::newSystemMatrix ( const int  row_blocksize,
const escript::FunctionSpace row_functionspace,
const int  column_blocksize,
const escript::FunctionSpace column_functionspace,
const int  type 
) const
virtual

creates a SystemMatrixAdapter stiffness matrix and initializes it with zeros:

Reimplemented in finley::MeshAdapter, dudley::MeshAdapter, and ripley::RipleyDomain.

Referenced by BOOST_PYTHON_MODULE().

ATP_ptr escript::AbstractContinuousDomain::newTransportProblem ( const int  blocksize,
const escript::FunctionSpace functionspace,
const int  type 
) const
virtual

creates a TransportProblemAdapter

Reimplemented in finley::MeshAdapter, dudley::MeshAdapter, and ripley::RipleyDomain.

Referenced by BOOST_PYTHON_MODULE().

void escript::AbstractContinuousDomain::Print_Mesh_Info ( const bool  full = false) const
virtual
void escript::AbstractContinuousDomain::setNewX ( const escript::Data arg)
virtual

assigns new location to the domain

Reimplemented from escript::AbstractDomain.

Reimplemented in finley::MeshAdapter, dudley::MeshAdapter, and ripley::RipleyDomain.

Referenced by BOOST_PYTHON_MODULE().

void escript::AbstractContinuousDomain::setToIntegrals ( std::vector< double > &  integrals,
const escript::Data arg 
) const
virtual

copies the integrals of the function defined by arg into integrals. arg has to be defined on this. has to be implemented by the Domain Adapter.

Reimplemented in finley::MeshAdapter, and dudley::MeshAdapter.

Referenced by escript::Data::integrateWorker().


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