speckley::SpeckleyDomain Class Referenceabstract

SpeckleyDomain extends the AbstractContinuousDomain interface for the Speckley library and is the base class for Rectangle and Brick. More...

`#include <SpeckleyDomain.h>`

Inheritance diagram for speckley::SpeckleyDomain:

## Public Member Functions

| SpeckleyDomain (dim_t dim, int order, escript::SubWorld_ptr p=escript::SubWorld_ptr())
| Constructor with number of dimensions. Allocates MPI info structure. More...
| ~SpeckleyDomain ()
| Destructor. More...
virtual escript::JMPI | getMPI () const
| returns a reference to the MPI information wrapper for this domain More...
virtual int | getMPISize () const
| returns the number of processors used for this domain More...
virtual int | getMPIRank () const
| returns the MPI rank of this processor More...
virtual void | MPIBarrier () const
| if compiled for MPI then executes an MPI_Barrier, else does nothing More...
virtual bool | onMasterProcessor () const
| returns true if on MPI processor 0, else false More...
MPI_Comm | getMPIComm () const
| returns the MPI communicator More...
virtual bool | isValidFunctionSpaceType (int fsType) const
| returns true if the argument is a valid function space type for this domain More...
virtual std::string | functionSpaceTypeAsString (int fsType) const
| returns a description for the given function space type code More...
virtual int | getDim () const
| returns the number of spatial dimensions of the domain More...
virtual bool | operator== (const escript::AbstractDomain &other) const
| equality operator More...
virtual bool | operator!= (const escript::AbstractDomain &other) const
| inequality operator More...
virtual std::pair< int, dim_t > | getDataShape (int fsType) const
| returns the number of data points per sample, and the number of samples as a pair. More...
int | getTagFromSampleNo (int fsType, dim_t sampleNo) const
| returns the tag key for the given sample number 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
| returns 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 separated by commas More...
virtual void | setNewX (const escript::Data &arg)
| assigns new location to the domain. 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 More...
virtual bool | probeInterpolationOnDomain (int fsType_source, int fsType_target) const
| returns true if data on fsType_source can be interpolated onto fsType_target, false otherwise More...
virtual signed char | preferredInterpolationOnDomain (int fsType_source, int fsType_target) const
| Preferred direction of interpolation. If you really need to test for a particular direction, then use probeInterpolation. More...
bool | commonFunctionSpace (const std::vector< int > &fs, int &resultcode) const
| given a vector of FunctionSpace type codes, passes back a code which all can be interpolated to More...
virtual void | interpolateAcross (escript::Data &target, const escript::Data &source) const =0
| interpolates data given on source onto target where source and target are given on different domains More...
virtual bool | probeInterpolationAcross (int, const escript::AbstractDomain &, int) const =0
| determines whether interpolation from source to target is possible More...
virtual escript::Data | getX () const
| returns locations in the SEM nodes More...
virtual escript::Data | getNormal () const
| returns boundary normals at the quadrature point on the face elements More...
virtual escript::Data | getSize () const
| returns the element size More...
virtual void | setToX (escript::Data &arg) const
| copies the location of data points into arg. The domain of arg has to match this domain. More...
virtual void | setToGradient (escript::Data &out, const escript::Data &in) const
| copies the gradient of 'in' into 'out'. The actual function space to be considered for the gradient is defined by 'in'. Both arguments have to be defined on this domain. More...
virtual void | setTags (int fsType, int newTag, const escript::Data &mask) const
| assigns new tag newTag to all samples of given function space with a positive value of mask for any of its sample points More...
virtual bool | isCellOriented (int fsType) const
| returns true if data on this domain and given function space type has to be 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 lifetime of the object but may be updated if changes to the domain happen, e.g. modifications to its geometry. More...
virtual int | getNumberOfTagsInUse (int fsType) const
| returns the number of tags in use for a function space type More...
virtual const int * | borrowListOfTagsInUse (int fsType) const
| returns a pointer to the list of tags in use for a function space type More...
virtual bool | canTag (int fsType) const
| checks if this domain allows tags for the specified function space type More...
virtual int | getApproximationOrder (int fsType) const
| returns the approximation order used for a function space More...
virtual bool | supportsContactElements () const
| returns true if this domain supports contact elements, false otherwise More...
virtual int | getContinuousFunctionCode () const
| returns a continuous FunctionSpace code More...
virtual int | getReducedContinuousFunctionCode () const
| returns a continuous on reduced order nodes FunctionSpace code More...
virtual int | getFunctionCode () const
| returns a function FunctionSpace code More...
virtual int | getReducedFunctionCode () const
| returns a function with reduced integration order FunctionSpace code More...
virtual int | getFunctionOnBoundaryCode () const
| returns a function on boundary FunctionSpace code More...
virtual int | getReducedFunctionOnBoundaryCode () const
| returns a function on boundary with reduced integration order FunctionSpace code More...
virtual int | getFunctionOnContactZeroCode () const
| return a FunctionOnContactZero code More...
virtual int | getReducedFunctionOnContactZeroCode () const
| returns a FunctionOnContactZero code with reduced integration order More...
virtual int | getFunctionOnContactOneCode () const
| returns a FunctionOnContactOne code More...
virtual int | getReducedFunctionOnContactOneCode () const
| returns a FunctionOnContactOne code with reduced integration order More...
virtual int | getSolutionCode () const
| returns a Solution FunctionSpace code More...
virtual int | getReducedSolutionCode () const
| returns a ReducedSolution FunctionSpace code More...
virtual int | getDiracDeltaFunctionsCode () const
| returns a DiracDeltaFunctions FunctionSpace code More...
virtual int | getSystemMatrixTypeId (const boost::python::object &options) const
| returns the identifier of the matrix type to be used for the global stiffness matrix when a particular solver, package, preconditioner, and symmetric matrix is used More...
virtual int | getTransportTypeId (int solver, int preconditioner, int package, bool symmetry) const
| returns the identifier of the transport problem type to be used when a particular solver, preconditioner, package and symmetric matrix is used More...
virtual void | setToIntegrals (std::vector< real_t > &integrals, const escript::Data &arg) const
| copies the integrals of the function defined by arg into integrals. arg has to be defined on this domain. More...
virtual void | setToIntegrals (std::vector< cplx_t > &integrals, const escript::Data &arg) const
virtual void | addToSystem (escript::AbstractSystemMatrix &mat, escript::Data &rhs, const DataMap &data, Assembler_ptr assembler) const
| adds a PDE onto the stiffness matrix mat and rhs, used for custom solvers with varying arguments counts and so on More...
virtual void | addToSystemFromPython (escript::AbstractSystemMatrix &mat, escript::Data &rhs, const boost::python::list &data, Assembler_ptr assembler) const
| a wrapper for addToSystem that allows calling from Python More...
virtual void | addToRHS (escript::Data &rhs, const DataMap &data, Assembler_ptr assembler) const
| adds a PDE onto rhs, used for custom solvers with varying arguments counts and so on More...
virtual void | addToRHSFromPython (escript::Data &rhs, const boost::python::list &data, Assembler_ptr assembler) const
| a wrapper for addToRHS that allows calling from Python More...
virtual void | addPDEToTransportProblem (escript::AbstractTransportProblem &tp, escript::Data &source, const DataMap &data, Assembler_ptr assembler) const
| adds a PDE onto a transport problem More...
void | addPDEToTransportProblemFromPython (escript::AbstractTransportProblem &tp, escript::Data &source, const boost::python::list &data, Assembler_ptr assembler) const
| adds a PDE onto a transport problem More...
virtual escript::ASM_ptr | newSystemMatrix (int row_blocksize, const escript::FunctionSpace &row_functionspace, int column_blocksize, const escript::FunctionSpace &column_functionspace, int type) const
| creates a stiffness matrix and initializes it with zeros More...
virtual escript::ATP_ptr | newTransportProblem (int blocksize, const escript::FunctionSpace &functionspace, int type) const
| creates a transport problem More...
virtual void | Print_Mesh_Info (bool full=false) const
| writes information about the mesh to standard output More...
virtual void | write (const std::string &filename) const =0
| writes the current mesh to a file with the given name More...
virtual std::string | getDescription () const =0
| returns a description for this domain More...
void | dump (const std::string &filename) const =0
| dumps the mesh to a file with the given name More...
const index_t * | borrowSampleReferenceIDs (int fsType) const =0
| returns the array of reference numbers for a function space type More...
virtual void | setToNormal (escript::Data &out) const =0
| 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 domain. More...
virtual void | setToSize (escript::Data &out) const =0
| 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 domain. More...
virtual void | readNcGrid (escript::Data &out, std::string filename, std::string varname, const ReaderParameters &params) const =0
| reads grid data from a netCDF file into a Data object More...
virtual void | readBinaryGrid (escript::Data &out, std::string filename, const ReaderParameters &params) const =0
| reads grid data from a raw binary file into a Data object More...
virtual void | readBinaryGridFromZipped (escript::Data &out, std::string filename, const ReaderParameters &params) const =0
| reads grid data from a compressed raw binary file into a Data object More...
virtual void | writeBinaryGrid (const escript::Data &in, std::string filename, int byteOrder, int dataType) const =0
| writes a Data object to a file in raw binary format More...
virtual bool | ownSample (int fsType, index_t id) const =0
| returns true if this rank owns the sample id on given function space More...
virtual dim_t | getNumDataPointsGlobal () const =0
| returns the number of data points summed across all MPI processes More...
virtual const dim_t * | getNumNodesPerDim () const =0
| returns the number of nodes per MPI rank in each dimension More...
virtual const dim_t * | getNumElementsPerDim () const =0
| returns the number of elements per MPI rank in each dimension More...
virtual const dim_t * | getNumFacesPerBoundary () const =0
| returns the number of face elements in the order (left,right,bottom,top,[front,back]) on current MPI rank More...
virtual IndexVector | getNodeDistribution () const =0
| returns the node distribution vector More...
virtual const int * | getNumSubdivisionsPerDim () const =0
| returns the number of spatial subdivisions in each dimension More...
virtual double | getLocalCoordinate (dim_t index, int dim) const =0
| returns the index'th coordinate value in given dimension for this rank More...
virtual boost::python::tuple | getGridParameters () const =0
| returns the tuple (origin, spacing, number_of_elements) More...
virtual bool | supportsFilter (const boost::python::tuple &t) const
| returns true if this domain can handle the specified tuple of filter options. More...
virtual Assembler_ptr | createAssembler (const std::string type, const DataMap &options) const
Assembler_ptr | createAssemblerFromPython (const std::string type, const boost::python::list &options) const
virtual const double * | getLength () const =0
| returns the lengths of the domain More...
int | getOrder () const
| returns the order of the domain More...
Public Member Functions inherited from escript::AbstractContinuousDomain
| AbstractContinuousDomain ()
| Default constructor for AbstractContinuousDomain. More...
virtual | ~AbstractContinuousDomain ()
| Destructor for AbstractContinuousDomain. More...
virtual void | setToIntegrals (std::vector< DataTypes::real_t > &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. More...
virtual void | setToIntegrals (std::vector< DataTypes::cplx_t > &integrals, const escript::Data &arg) const
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&. More...
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 More...

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 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
virtual | ~AbstractDomain ()
| Destructor for AbstractDomain. More...
virtual int | getTagFromSampleNo (int functionSpaceType, DataTypes::index_t sampleNo) const =0
| Return the tag key for the given sample number. More...
virtual bool | ownSample (int fs_code, DataTypes::index_t id) const =0
| True if this rank owns the sample(id) Must be implemented by the Domain adapter. 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 escript::Data | randomFill (const DataTypes::ShapeType &shape, const FunctionSpace &what, long seed, const boost::python::tuple &filter) const =0
| Fills the data object with filtered random values. More...

## Protected Member Functions

template<typename Scalar >
void | copyData (escript::Data &out, const escript::Data &in) const
| copies data in 'in' to 'out' (both must be on same function space) More...
void | updateTagsInUse (int fsType) const
void | addToSystemMatrix (escript::AbstractSystemMatrix *mat, const IndexVector &nodes, dim_t numEq, const DoubleVector &array) const
void | addPoints (const std::vector< double > &coords, const std::vector< int > &tags)
template<typename Scalar >
void | multiplyData (escript::Data &out, const escript::Data &in) const
| expands ReducedFunction (in) to Function (out) More...
virtual dim_t | getNumNodes () const =0
| returns the number of nodes per MPI rank More...
virtual dim_t | getNumElements () const =0
| returns the number of elements per MPI rank More...
virtual dim_t | getNumDOF () const =0
| returns the number of degrees of freedom per MPI rank More...
virtual void | assembleCoordinates (escript::Data &arg) const =0
| populates the data object 'arg' with the node coordinates More...
virtual void | assembleGradient (escript::Data &out, const escript::Data &in) const =0
| computes the gradient of 'in' and puts the result in 'out' More...
virtual void | assembleIntegrate (std::vector< real_t > &integrals, const escript::Data &arg) const =0
| copies the integrals of the function defined by 'arg' into 'integrals' More...
virtual void | assembleIntegrate (std::vector< cplx_t > &integrals, const escript::Data &arg) const =0
virtual void | interpolateNodesOnElements (escript::Data &out, const escript::Data &in, bool reduced) const =0
| interpolates data on nodes in 'in' onto elements in 'out' More...
virtual void | interpolateElementsOnNodes (escript::Data &out, const escript::Data &in) const =0
| interpolates data on elements in 'in' onto nodes in 'out' More...
virtual dim_t | getDofOfNode (dim_t node) const =0
virtual void | reduceElements (escript::Data &out, const escript::Data &in) const =0
| interpolates from Element -> ReducedElement More...

## Protected Attributes

int | m_numDim
StatusType | m_status
escript::JMPI | m_mpiInfo
TagMap | m_tagMap
std::vector< int > | m_nodeTags
std::vector< int > | m_nodeTagsInUse
std::vector< int > | m_elementTags
std::vector< int > | m_elementTagsInUse
std::vector< DiracPoint > | m_diracPoints
IndexVector | m_diracPointNodeIDs
assembler_t | assembler_type
int | m_order
| element order (will be m_order + 1 quad points in each axis) More...

## Private Member Functions

void | assemblePDE (escript::AbstractSystemMatrix *mat, escript::Data &rhs, const DataMap &coefs, Assembler_ptr assembler) const
| calls the right PDE assembly routines after performing input checks More...
void | assemblePDEBoundary (escript::AbstractSystemMatrix *mat, escript::Data &rhs, const DataMap &coefs, Assembler_ptr assembler) const
void | assemblePDEDirac (escript::AbstractSystemMatrix *mat, escript::Data &rhs, const DataMap &coefs, Assembler_ptr assembler) const
template<typename Scalar >
void | setToIntegralsWorker (std::vector< Scalar > &integrals, const escript::Data &arg) const
virtual dim_t | findNode (const double *coords) const =0
| finds the node that the given point coordinates belong to More...

## Additional Inherited Members

Public Types inherited from escript::AbstractDomain
typedef int | StatusType

## Detailed Description

SpeckleyDomain extends the AbstractContinuousDomain interface for the Speckley library and is the base class for Rectangle and Brick.

## Constructor & Destructor Documentation

## SpeckleyDomain()

speckley::SpeckleyDomain::SpeckleyDomain | ( | dim_t | dim,
|  | int | order,
|  | escript::SubWorld_ptr | p = `escript::SubWorld_ptr()`
| ) |  |

Constructor with number of dimensions. Allocates MPI info structure.

References assembler_type, speckley::DEFAULT_ASSEMBLER, m_mpiInfo, escript::makeInfo(), and MPI_COMM_WORLD.

## ~SpeckleyDomain()

speckley::SpeckleyDomain::~SpeckleyDomain | ( |  | ) |

Destructor.

## Member Function Documentation

## addPDEToTransportProblem()

void speckley::SpeckleyDomain::addPDEToTransportProblem | ( | escript::AbstractTransportProblem & | tp,
|  | escript::Data & | source,
|  | const DataMap & | data,
|  | Assembler_ptr | assembler
| ) |  | const

virtual

adds a PDE onto a transport problem

## addPDEToTransportProblemFromPython()

void speckley::SpeckleyDomain::addPDEToTransportProblemFromPython | ( | escript::AbstractTransportProblem & | tp,
|  | escript::Data & | source,
|  | const boost::python::list & | data,
|  | Assembler_ptr | assembler
| ) |  | const

adds a PDE onto a transport problem

## addPoints()

void speckley::SpeckleyDomain::addPoints | ( | const std::vector< double > & | coords,
|  | const std::vector< int > & | tags
| ) |  |

protected

References borrowSampleReferenceIDs(), findNode(), m_diracPointNodeIDs, m_diracPoints, m_mpiInfo, m_numDim, speckley::DiracPoint::node, speckley::Nodes, and speckley::DiracPoint::tag.

Referenced by speckley::Brick::Brick(), and speckley::Rectangle::Rectangle().

## addToRHS()

void speckley::SpeckleyDomain::addToRHS | ( | escript::Data & | rhs,
|  | const DataMap & | data,
|  | Assembler_ptr | assembler
| ) |  | const

virtual

adds a PDE onto rhs, used for custom solvers with varying arguments counts and so on

References assemblePDE(), assemblePDEBoundary(), assemblePDEDirac(), escript::Data::isEmpty(), and speckley::isNotEmpty().

Referenced by addToRHSFromPython().

## addToRHSFromPython()

void speckley::SpeckleyDomain::addToRHSFromPython | ( | escript::Data & | rhs,
|  | const boost::python::list & | data,
|  | Assembler_ptr | assembler
| ) |  | const

virtual

a wrapper for addToRHS that allows calling from Python

References addToRHS(), escript::Data::expand(), and speckley::tupleListToMap().

Referenced by BOOST_PYTHON_MODULE().

## addToSystem()

void speckley::SpeckleyDomain::addToSystem | ( | escript::AbstractSystemMatrix & | mat,
|  | escript::Data & | rhs,
|  | const DataMap & | data,
|  | Assembler_ptr | assembler
| ) |  | const

virtual

adds a PDE onto the stiffness matrix mat and rhs, used for custom solvers with varying arguments counts and so on

Referenced by addToSystemFromPython().

## addToSystemFromPython()

void speckley::SpeckleyDomain::addToSystemFromPython | ( | escript::AbstractSystemMatrix & | mat,
|  | escript::Data & | rhs,
|  | const boost::python::list & | data,
|  | Assembler_ptr | assembler
| ) |  | const

virtual

a wrapper for addToSystem that allows calling from Python

References addToSystem(), and speckley::tupleListToMap().

Referenced by BOOST_PYTHON_MODULE().

## addToSystemMatrix()

void speckley::SpeckleyDomain::addToSystemMatrix | ( | escript::AbstractSystemMatrix * | mat,
|  | const IndexVector & | nodes,
|  | dim_t | numEq,
|  | const DoubleVector & | array
| ) |  | const

protected

## assembleCoordinates()

virtual void speckley::SpeckleyDomain::assembleCoordinates | ( | escript::Data & | arg | ) | const

protected pure virtual

populates the data object 'arg' with the node coordinates

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by setToX().

## assembleGradient()

virtual void speckley::SpeckleyDomain::assembleGradient | ( | escript::Data & | out,
|  | const escript::Data & | in
| ) |  | const

protected pure virtual

computes the gradient of 'in' and puts the result in 'out'

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by setToGradient().

## assembleIntegrate() [1/2]

virtual void speckley::SpeckleyDomain::assembleIntegrate | ( | std::vector< real_t > & | integrals,
|  | const escript::Data & | arg
| ) |  | const

protected pure virtual

copies the integrals of the function defined by 'arg' into 'integrals'

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by setToIntegralsWorker().

## assembleIntegrate() [2/2]

virtual void speckley::SpeckleyDomain::assembleIntegrate | ( | std::vector< cplx_t > & | integrals,
|  | const escript::Data & | arg
| ) |  | const

protected pure virtual

Implemented in speckley::Rectangle, and speckley::Brick.

## assemblePDE()

void speckley::SpeckleyDomain::assemblePDE | ( | escript::AbstractSystemMatrix * | mat,
|  | escript::Data & | rhs,
|  | const DataMap & | coefs,
|  | Assembler_ptr | assembler
| ) |  | const

private

calls the right PDE assembly routines after performing input checks

References escript::Data::actsExpanded(), speckley::Elements, escript::AbstractSystemMatrix::getColumnBlockSize(), escript::Data::getDataPointShape(), escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), escript::AbstractSystemMatrix::getRowBlockSize(), escript::Data::isEmpty(), and speckley::isNotEmpty().

Referenced by addToRHS().

## assemblePDEBoundary()

void speckley::SpeckleyDomain::assemblePDEBoundary | ( | escript::AbstractSystemMatrix * | mat,
|  | escript::Data & | rhs,
|  | const DataMap & | coefs,
|  | Assembler_ptr | assembler
| ) |  | const

private

calls the right PDE boundary assembly routines after performing input checks

References escript::AbstractSystemMatrix::getColumnBlockSize(), escript::Data::getDataPointSize(), escript::AbstractSystemMatrix::getRowBlockSize(), escript::Data::isEmpty(), and speckley::isNotEmpty().

Referenced by addToRHS().

## assemblePDEDirac()

void speckley::SpeckleyDomain::assemblePDEDirac | ( | escript::AbstractSystemMatrix * | mat,
|  | escript::Data & | rhs,
|  | const DataMap & | coefs,
|  | Assembler_ptr | assembler
| ) |  | const

private

References escript::AbstractSystemMatrix::getColumnBlockSize(), escript::Data::getDataPointSize(), escript::AbstractSystemMatrix::getRowBlockSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, escript::Data::isEmpty(), speckley::isNotEmpty(), m_diracPoints, escript::Data::requireWrite(), and speckley::unpackData().

Referenced by addToRHS().

## borrowListOfTagsInUse()

const int * speckley::SpeckleyDomain::borrowListOfTagsInUse | ( | int | fsType | ) | const

virtual

returns a pointer to the list of tags in use for a function space type

Implements escript::AbstractDomain.

References speckley::Elements, m_elementTagsInUse, m_nodeTagsInUse, speckley::Nodes, and speckley::ReducedElements.

## borrowSampleReferenceIDs()

const index_t* speckley::SpeckleyDomain::borrowSampleReferenceIDs | ( | int | fsType | ) | const

pure virtual

returns the array of reference numbers for a function space type

Parameters

  fsType | The function space type

Implements escript::AbstractDomain.

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by addPoints(), weipa::SpeckleyNodes::initFromSpeckley(), and weipa::SpeckleyElements::initFromSpeckley().

## canTag()

bool speckley::SpeckleyDomain::canTag | ( | int | fsType | ) | const

virtual

checks if this domain allows tags for the specified function space type

Implements escript::AbstractDomain.

References speckley::DegreesOfFreedom, speckley::Elements, getDescription(), speckley::Nodes, speckley::Points, and speckley::ReducedElements.

## commonFunctionSpace()

bool speckley::SpeckleyDomain::commonFunctionSpace | ( | const std::vector< int > & | fs,
|  | int & | resultcode
| ) |  | const

virtual

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

Returns
  true if result is valid, false if not

Implements escript::AbstractDomain.

References speckley::DegreesOfFreedom, speckley::Elements, speckley::Nodes, speckley::Points, speckley::ReducedDegreesOfFreedom, speckley::ReducedElements, and speckley::ReducedNodes.

## copyData()

template<typename Scalar >

void speckley::SpeckleyDomain::copyData | ( | escript::Data & | out,
|  | const escript::Data & | in
| ) |  | const

protected

copies data in 'in' to 'out' (both must be on same function space)

References paso::util::copy(), escript::Data::getDataPointSize(), escript::Data::getNumSamples(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), escript::Data::requireWrite(), and escript::Scalar().

## createAssembler()

virtual Assembler_ptr speckley::SpeckleyDomain::createAssembler | ( | const std::string | type,
|  | const DataMap & | options
| ) |  | const

inline virtual

Reimplemented in speckley::Brick, and speckley::Rectangle.

Referenced by createAssemblerFromPython().

## createAssemblerFromPython()

Assembler_ptr speckley::SpeckleyDomain::createAssemblerFromPython | ( | const std::string | type,
|  | const boost::python::list & | options
| ) |  | const

References createAssembler(), and speckley::tupleListToMap().

Referenced by BOOST_PYTHON_MODULE().

## dump()

void speckley::SpeckleyDomain::dump | ( | const std::string & | filename | ) | const

pure virtual

dumps the mesh to a file with the given name

Parameters

  filename | The name of the output file

Implements escript::AbstractDomain.

Implemented in speckley::Brick, and speckley::Rectangle.

Referenced by BOOST_PYTHON_MODULE().

## findNode()

virtual dim_t speckley::SpeckleyDomain::findNode | ( | const double * | coords | ) | const

private pure virtual

finds the node that the given point coordinates belong to

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by addPoints().

## functionSpaceTypeAsString()

string speckley::SpeckleyDomain::functionSpaceTypeAsString | ( | int | fsType | ) | const

virtual

returns a description for the given function space type code

Implements escript::AbstractDomain.

References speckley::DegreesOfFreedom, speckley::Elements, speckley::FaceElements, speckley::Nodes, speckley::Points, speckley::ReducedDegreesOfFreedom, speckley::ReducedElements, speckley::ReducedFaceElements, and speckley::ReducedNodes.

Referenced by interpolateOnDomain(), setToGradient(), and setToIntegralsWorker().

## getApproximationOrder()

virtual int speckley::SpeckleyDomain::getApproximationOrder | ( | int | fsType | ) | const

inline virtual

returns the approximation order used for a function space

Implements escript::AbstractDomain.

## getContinuousFunctionCode()

virtual int speckley::SpeckleyDomain::getContinuousFunctionCode | ( |  | ) | const

inline virtual

returns a continuous FunctionSpace code

Reimplemented from escript::AbstractContinuousDomain.

References speckley::Nodes.

## getDataShape()

pair< int, dim_t > speckley::SpeckleyDomain::getDataShape | ( | int | fsType | ) | const

virtual

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

Parameters

  fsType | The function space type

Reimplemented from escript::AbstractContinuousDomain.

References speckley::DegreesOfFreedom, speckley::Elements, getDescription(), getNumDOF(), getNumElements(), getNumNodes(), m_diracPoints, m_numDim, m_order, speckley::Nodes, speckley::Points, and speckley::ReducedElements.

Referenced by BOOST_PYTHON_MODULE(), weipa::SpeckleyNodes::initFromSpeckley(), and weipa::SpeckleyElements::initFromSpeckley().

## getDescription()

virtual std::string speckley::SpeckleyDomain::getDescription | ( |  | ) | const

pure virtual

returns a description for this domain

Reimplemented from escript::AbstractContinuousDomain.

Implemented in speckley::Brick, and speckley::Rectangle.

Referenced by BOOST_PYTHON_MODULE(), canTag(), getDataShape(), isCellOriented(), preferredInterpolationOnDomain(), Print_Mesh_Info(), and probeInterpolationOnDomain().

## getDim()

virtual int speckley::SpeckleyDomain::getDim | ( |  | ) | const

inline virtual

returns the number of spatial dimensions of the domain

Implements escript::AbstractDomain.

Referenced by BOOST_PYTHON_MODULE(), speckley::RipleyCoupler::calculate(), speckley::RipleyCoupler::generateLocations(), speckley::RipleyCoupler::getEdgeSpacing(), weipa::SpeckleyNodes::initFromSpeckley(), weipa::SpeckleyElements::initFromSpeckley(), speckley::RipleyCoupler::interpolate(), speckley::RipleyCoupler::RipleyCoupler(), and speckley::RipleyCoupler::validInterpolation().

## getDiracDeltaFunctionsCode()

virtual int speckley::SpeckleyDomain::getDiracDeltaFunctionsCode | ( |  | ) | const

inline virtual

returns a DiracDeltaFunctions FunctionSpace code

Reimplemented from escript::AbstractContinuousDomain.

References escript::AbstractContinuousDomain::addPDEToTransportProblem(), speckley::ReaderParameters::byteOrder, speckley::ReaderParameters::dataType, speckley::Points, speckley::readBinaryGrid(), speckley::readBinaryGridFromZipped(), and speckley::readNcGrid().

## getDofOfNode()

virtual dim_t speckley::SpeckleyDomain::getDofOfNode | ( | dim_t | node | ) | const

protected pure virtual

Implemented in speckley::Rectangle, and speckley::Brick.

## getFunctionCode()

virtual int speckley::SpeckleyDomain::getFunctionCode | ( |  | ) | const

inline virtual

returns a function FunctionSpace code

Reimplemented from escript::AbstractContinuousDomain.

References speckley::Elements.

## getFunctionOnBoundaryCode()

virtual int speckley::SpeckleyDomain::getFunctionOnBoundaryCode | ( |  | ) | const

inline virtual

returns a function on boundary FunctionSpace code

Reimplemented from escript::AbstractContinuousDomain.

## getFunctionOnContactOneCode()

virtual int speckley::SpeckleyDomain::getFunctionOnContactOneCode | ( |  | ) | const

inline virtual

returns a FunctionOnContactOne code

Reimplemented from escript::AbstractContinuousDomain.

## getFunctionOnContactZeroCode()

virtual int speckley::SpeckleyDomain::getFunctionOnContactZeroCode | ( |  | ) | const

inline virtual

return a FunctionOnContactZero code

Reimplemented from escript::AbstractContinuousDomain.

## getGridParameters()

virtual boost::python::tuple speckley::SpeckleyDomain::getGridParameters | ( |  | ) | const

pure virtual

returns the tuple (origin, spacing, number_of_elements)

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by BOOST_PYTHON_MODULE().

## getLength()

virtual const double* speckley::SpeckleyDomain::getLength | ( |  | ) | const

pure virtual

returns the lengths of the domain

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by speckley::RipleyCoupler::validInterpolation().

## getLocalCoordinate()

virtual double speckley::SpeckleyDomain::getLocalCoordinate | ( | dim_t | index,
|  | int | dim
| ) |  | const

pure virtual

returns the index'th coordinate value in given dimension for this rank

Referenced by weipa::SpeckleyNodes::initFromSpeckley(), and speckley::RipleyCoupler::RipleyCoupler().

## getMPI()

virtual escript::JMPI speckley::SpeckleyDomain::getMPI | ( |  | ) | const

inline virtual

returns a reference to the MPI information wrapper for this domain

Implements escript::AbstractDomain.

## getMPIComm()

MPI_Comm speckley::SpeckleyDomain::getMPIComm | ( |  | ) | const

inline virtual

returns the MPI communicator

Implements escript::AbstractDomain.

Referenced by speckley::RipleyCoupler::RipleyCoupler(), and speckley::RipleyCoupler::validInterpolation().

## getMPIRank()

virtual int speckley::SpeckleyDomain::getMPIRank | ( |  | ) | const

inline virtual

returns the MPI rank of this processor

Implements escript::AbstractDomain.

Referenced by BOOST_PYTHON_MODULE(), and weipa::SpeckleyElements::initFromSpeckley().

## getMPISize()

virtual int speckley::SpeckleyDomain::getMPISize | ( |  | ) | const

inline virtual

returns the number of processors used for this domain

Implements escript::AbstractDomain.

Referenced by BOOST_PYTHON_MODULE(), interpolateOnDomain(), and setToGradient().

## getNodeDistribution()

virtual IndexVector speckley::SpeckleyDomain::getNodeDistribution | ( |  | ) | const

pure virtual

returns the node distribution vector

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by weipa::SpeckleyNodes::initFromSpeckley().

## getNormal()

escript::Data speckley::SpeckleyDomain::getNormal | ( |  | ) | const

virtual

returns boundary normals at the quadrature point on the face elements

Implements escript::AbstractDomain.

Referenced by BOOST_PYTHON_MODULE().

## getNumberOfTagsInUse()

int speckley::SpeckleyDomain::getNumberOfTagsInUse | ( | int | fsType | ) | const

virtual

returns the number of tags in use for a function space type

Implements escript::AbstractDomain.

References speckley::Elements, m_elementTagsInUse, m_nodeTagsInUse, speckley::Nodes, and speckley::ReducedElements.

## getNumDataPointsGlobal()

virtual dim_t speckley::SpeckleyDomain::getNumDataPointsGlobal | ( |  | ) | const

pure virtual

returns the number of data points summed across all MPI processes

Reimplemented from escript::AbstractContinuousDomain.

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by BOOST_PYTHON_MODULE(), and weipa::SpeckleyNodes::initFromSpeckley().

## getNumDOF()

virtual dim_t speckley::SpeckleyDomain::getNumDOF | ( |  | ) | const

protected pure virtual

returns the number of degrees of freedom per MPI rank

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by getDataShape().

## getNumElements()

virtual dim_t speckley::SpeckleyDomain::getNumElements | ( |  | ) | const

protected pure virtual

returns the number of elements per MPI rank

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by getDataShape(), Print_Mesh_Info(), and setTags().

## getNumElementsPerDim()

virtual const dim_t* speckley::SpeckleyDomain::getNumElementsPerDim | ( |  | ) | const

pure virtual

returns the number of elements per MPI rank in each dimension

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by weipa::SpeckleyElements::initFromSpeckley(), and speckley::RipleyCoupler::RipleyCoupler().

## getNumFacesPerBoundary()

virtual const dim_t* speckley::SpeckleyDomain::getNumFacesPerBoundary | ( |  | ) | const

pure virtual

returns the number of face elements in the order (left,right,bottom,top,[front,back]) on current MPI rank

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by weipa::SpeckleyElements::initFromSpeckley(), and speckley::RipleyCoupler::RipleyCoupler().

## getNumNodes()

virtual dim_t speckley::SpeckleyDomain::getNumNodes | ( |  | ) | const

protected pure virtual

returns the number of nodes per MPI rank

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by getDataShape(), and setTags().

## getNumNodesPerDim()

virtual const dim_t* speckley::SpeckleyDomain::getNumNodesPerDim | ( |  | ) | const

pure virtual

returns the number of nodes per MPI rank in each dimension

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by weipa::SpeckleyNodes::initFromSpeckley(), and weipa::SpeckleyElements::initFromSpeckley().

## getNumSubdivisionsPerDim()

virtual const int* speckley::SpeckleyDomain::getNumSubdivisionsPerDim | ( |  | ) | const

pure virtual

returns the number of spatial subdivisions in each dimension

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by weipa::SpeckleyElements::initFromSpeckley(), and speckley::RipleyCoupler::RipleyCoupler().

## getOrder()

int speckley::SpeckleyDomain::getOrder | ( |  | ) | const

inline

returns the order of the domain

Referenced by BOOST_PYTHON_MODULE(), weipa::SpeckleyElements::initFromSpeckley(), and speckley::RipleyCoupler::RipleyCoupler().

## getReducedContinuousFunctionCode()

virtual int speckley::SpeckleyDomain::getReducedContinuousFunctionCode | ( |  | ) | const

inline virtual

returns a continuous on reduced order nodes FunctionSpace code

Reimplemented from escript::AbstractContinuousDomain.

## getReducedFunctionCode()

virtual int speckley::SpeckleyDomain::getReducedFunctionCode | ( |  | ) | const

inline virtual

returns a function with reduced integration order FunctionSpace code

Reimplemented from escript::AbstractContinuousDomain.

References speckley::ReducedElements.

## getReducedFunctionOnBoundaryCode()

virtual int speckley::SpeckleyDomain::getReducedFunctionOnBoundaryCode | ( |  | ) | const

inline virtual

returns a function on boundary with reduced integration order FunctionSpace code

Reimplemented from escript::AbstractContinuousDomain.

## getReducedFunctionOnContactOneCode()

virtual int speckley::SpeckleyDomain::getReducedFunctionOnContactOneCode | ( |  | ) | const

inline virtual

returns a FunctionOnContactOne code with reduced integration order

Reimplemented from escript::AbstractContinuousDomain.

## getReducedFunctionOnContactZeroCode()

virtual int speckley::SpeckleyDomain::getReducedFunctionOnContactZeroCode | ( |  | ) | const

inline virtual

returns a FunctionOnContactZero code with reduced integration order

Reimplemented from escript::AbstractContinuousDomain.

## getReducedSolutionCode()

virtual int speckley::SpeckleyDomain::getReducedSolutionCode | ( |  | ) | const

inline virtual

returns a ReducedSolution FunctionSpace code

Reimplemented from escript::AbstractContinuousDomain.

## getSize()

escript::Data speckley::SpeckleyDomain::getSize | ( |  | ) | const

virtual

returns the element size

Implements escript::AbstractDomain.

References escript::function(), and escript::FunctionSpace::getSize().

Referenced by BOOST_PYTHON_MODULE().

## getSolutionCode()

virtual int speckley::SpeckleyDomain::getSolutionCode | ( |  | ) | const

inline virtual

returns a Solution FunctionSpace code

Reimplemented from escript::AbstractContinuousDomain.

References speckley::DegreesOfFreedom.

## getStatus()

virtual StatusType speckley::SpeckleyDomain::getStatus | ( |  | ) | const

inline virtual

returns a status indicator of the domain. The status identifier should be unique over the lifetime of the object but may be updated if changes to the domain happen, e.g. modifications to its geometry.

Reimplemented from escript::AbstractDomain.

## getSystemMatrixTypeId()

int speckley::SpeckleyDomain::getSystemMatrixTypeId | ( | const boost::python::object & | options | ) | const

virtual

returns the identifier of the matrix type to be used for the global stiffness matrix when a particular solver, package, preconditioner, and symmetric matrix is used

Parameters

  options | a python object containing the solver, package, preconditioner and symmetry

Reimplemented from escript::AbstractContinuousDomain.

Referenced by BOOST_PYTHON_MODULE().

## getTag()

virtual int speckley::SpeckleyDomain::getTag | ( | const std::string & | name | ) | const

inline virtual

returns the tag key for tag name

Parameters

  name | tag name

Implements escript::AbstractDomain.

Referenced by BOOST_PYTHON_MODULE().

## getTagFromSampleNo()

int speckley::SpeckleyDomain::getTagFromSampleNo | ( | int | fsType,
|  | dim_t | sampleNo
| ) |  | const

returns the tag key for the given sample number

Parameters

  fsType | The function space type
  sampleNo | The sample number

References speckley::Elements, m_diracPoints, m_elementTags, m_nodeTags, speckley::Nodes, speckley::Points, and speckley::ReducedElements.

## getTransportTypeId()

int speckley::SpeckleyDomain::getTransportTypeId | ( | int | solver,
|  | int | preconditioner,
|  | int | package,
|  | bool | symmetry
| ) |  | const

virtual

returns the identifier of the transport problem type to be used when a particular solver, preconditioner, package and symmetric matrix is used

Parameters

  solver |
  preconditioner |
  package |
  symmetry |

Reimplemented from escript::AbstractContinuousDomain.

## getX()

escript::Data speckley::SpeckleyDomain::getX | ( |  | ) | const

virtual

returns locations in the SEM nodes

Implements escript::AbstractDomain.

References escript::continuousFunction(), and escript::FunctionSpace::getX().

Referenced by BOOST_PYTHON_MODULE().

## interpolateAcross()

virtual void speckley::SpeckleyDomain::interpolateAcross | ( | escript::Data & | target,
|  | const escript::Data & | source
| ) |  | const

pure virtual

interpolates data given on source onto target where source and target are given on different domains

Implements escript::AbstractDomain.

Implemented in speckley::Rectangle, and speckley::Brick.

## interpolateElementsOnNodes()

virtual void speckley::SpeckleyDomain::interpolateElementsOnNodes | ( | escript::Data & | out,
|  | const escript::Data & | in
| ) |  | const

protected pure virtual

interpolates data on elements in 'in' onto nodes in 'out'

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by interpolateOnDomain().

## interpolateNodesOnElements()

virtual void speckley::SpeckleyDomain::interpolateNodesOnElements | ( | escript::Data & | out,
|  | const escript::Data & | in,
|  | bool | reduced
| ) |  | const

protected pure virtual

interpolates data on nodes in 'in' onto elements in 'out'

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by interpolateOnDomain().

## interpolateOnDomain()

void speckley::SpeckleyDomain::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

Implements escript::AbstractDomain.

References escript::continuousFunction(), paso::util::copy(), speckley::DegreesOfFreedom, speckley::Elements, functionSpaceTypeAsString(), escript::Data::getDataPointSize(), escript::FunctionSpace::getDomain(), escript::Data::getFunctionSpace(), getMPISize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), interpolateElementsOnNodes(), interpolateNodesOnElements(), escript::Data::isComplex(), m_diracPoints, speckley::Nodes, speckley::Points, speckley::ReducedElements, reduceElements(), and escript::Data::requireWrite().

Referenced by setToX().

## isCellOriented()

bool speckley::SpeckleyDomain::isCellOriented | ( | int | fsType | ) | const

virtual

returns true if data on this domain and given function space type has to be considered as cell centered data

Implements escript::AbstractDomain.

References speckley::DegreesOfFreedom, speckley::Elements, getDescription(), speckley::Nodes, speckley::Points, and speckley::ReducedElements.

## isValidFunctionSpaceType()

bool speckley::SpeckleyDomain::isValidFunctionSpaceType | ( | int | fsType | ) | const

virtual

returns true if the argument is a valid function space type for this domain

Reimplemented from escript::AbstractContinuousDomain.

References speckley::DegreesOfFreedom, speckley::Elements, speckley::Nodes, speckley::Points, and speckley::ReducedElements.

Referenced by preferredInterpolationOnDomain(), and probeInterpolationOnDomain().

## isValidTagName()

virtual bool speckley::SpeckleyDomain::isValidTagName | ( | const std::string & | name | ) | const

inline virtual

returns true if name is a defined tag name

Parameters

  name | tag name to be checked

Reimplemented from escript::AbstractDomain.

References speckley::probeInterpolationAcross().

Referenced by BOOST_PYTHON_MODULE().

## MPIBarrier()

virtual void speckley::SpeckleyDomain::MPIBarrier | ( |  | ) | const

inline virtual

if compiled for MPI then executes an MPI_Barrier, else does nothing

Implements escript::AbstractDomain.

Referenced by BOOST_PYTHON_MODULE(), speckley::Brick::writeBinaryGridImpl(), and speckley::Rectangle::writeBinaryGridImpl().

## multiplyData()

template<typename Scalar >

void speckley::SpeckleyDomain::multiplyData | ( | escript::Data & | out,
|  | const escript::Data & | in
| ) |  | const

protected

expands ReducedFunction (in) to Function (out)

References escript::Data::getDataPointSize(), escript::Data::getNumDataPointsPerSample(), escript::Data::getNumSamples(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), escript::Data::requireWrite(), and escript::Scalar().

## newSystemMatrix()

escript::ASM_ptr speckley::SpeckleyDomain::newSystemMatrix | ( | int | row_blocksize,
|  | const escript::FunctionSpace & | row_functionspace,
|  | int | column_blocksize,
|  | const escript::FunctionSpace & | column_functionspace,
|  | int | type
| ) |  | const

virtual

creates a stiffness matrix and initializes it with zeros

Reimplemented from escript::AbstractContinuousDomain.

Referenced by BOOST_PYTHON_MODULE().

## newTransportProblem()

escript::ATP_ptr speckley::SpeckleyDomain::newTransportProblem | ( | int | blocksize,
|  | const escript::FunctionSpace & | functionspace,
|  | int | type
| ) |  | const

virtual

creates a transport problem

Reimplemented from escript::AbstractContinuousDomain.

## onMasterProcessor()

virtual bool speckley::SpeckleyDomain::onMasterProcessor | ( |  | ) | const

inline virtual

returns true if on MPI processor 0, else false

Implements escript::AbstractDomain.

Referenced by BOOST_PYTHON_MODULE().

## operator!=()

virtual bool speckley::SpeckleyDomain::operator!= | ( | const escript::AbstractDomain & | other | ) | const

inline virtual

inequality operator

Implements escript::AbstractDomain.

## operator==()

bool speckley::SpeckleyDomain::operator== | ( | const escript::AbstractDomain & | other | ) | const

virtual

equality operator

Implements escript::AbstractDomain.

Reimplemented in speckley::Brick, and speckley::Rectangle.

References m_elementTags, m_nodeTags, and m_tagMap.

## ownSample()

virtual bool speckley::SpeckleyDomain::ownSample | ( | int | fsType,
|  | index_t | id
| ) |  | const

pure virtual

returns true if this rank owns the sample id on given function space

Implemented in speckley::Rectangle, and speckley::Brick.

## preferredInterpolationOnDomain()

signed char speckley::SpeckleyDomain::preferredInterpolationOnDomain | ( | int | fsType_source,
|  | int | fsType_target
| ) |  | const

virtual

Preferred direction of interpolation. If you really need to test for a particular direction, then use probeInterpolation.

Returns
  0 for not possible, 1 for possible and preferred, -1 other direction preferred (does not mean this direction is possible)

Implements escript::AbstractDomain.

References speckley::DegreesOfFreedom, speckley::Elements, getDescription(), isValidFunctionSpaceType(), speckley::Nodes, speckley::Points, speckley::ReducedDegreesOfFreedom, speckley::ReducedElements, and speckley::ReducedNodes.

## Print_Mesh_Info()

void speckley::SpeckleyDomain::Print_Mesh_Info | ( | bool | full = `false` | ) | const

virtual

writes information about the mesh to standard output

Parameters

  full | whether to print additional data

Reimplemented from escript::AbstractContinuousDomain.

Reimplemented in speckley::Rectangle, and speckley::Brick.

References getDescription(), getNumElements(), m_mpiInfo, m_numDim, and m_tagMap.

Referenced by BOOST_PYTHON_MODULE(), speckley::Brick::Print_Mesh_Info(), and speckley::Rectangle::Print_Mesh_Info().

## probeInterpolationAcross()

virtual bool speckley::SpeckleyDomain::probeInterpolationAcross | ( | int | ,
|  | const escript::AbstractDomain & | ,
|  | int |
| ) |  | const

pure virtual

determines whether interpolation from source to target is possible

Implements escript::AbstractDomain.

Implemented in speckley::Rectangle, and speckley::Brick.

## probeInterpolationOnDomain()

bool speckley::SpeckleyDomain::probeInterpolationOnDomain | ( | int | fsType_source,
|  | int | fsType_target
| ) |  | const

virtual

returns true if data on fsType_source can be interpolated onto fsType_target, false otherwise

Implements escript::AbstractDomain.

References speckley::DegreesOfFreedom, speckley::Elements, getDescription(), isValidFunctionSpaceType(), speckley::Nodes, speckley::Points, speckley::ReducedDegreesOfFreedom, speckley::ReducedElements, and speckley::ReducedNodes.

## readBinaryGrid()

virtual void speckley::SpeckleyDomain::readBinaryGrid | ( | escript::Data & | out,
|  | std::string | filename,
|  | const ReaderParameters & | params
| ) |  | const

pure virtual

reads grid data from a raw binary file into a Data object

Implemented in speckley::Brick, and speckley::Rectangle.

Referenced by speckley::readBinaryGrid().

## readBinaryGridFromZipped()

virtual void speckley::SpeckleyDomain::readBinaryGridFromZipped | ( | escript::Data & | out,
|  | std::string | filename,
|  | const ReaderParameters & | params
| ) |  | const

pure virtual

reads grid data from a compressed raw binary file into a Data object

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by speckley::readBinaryGridFromZipped().

## readNcGrid()

virtual void speckley::SpeckleyDomain::readNcGrid | ( | escript::Data & | out,
|  | std::string | filename,
|  | std::string | varname,
|  | const ReaderParameters & | params
| ) |  | const

pure virtual

reads grid data from a netCDF file into a Data object

Implemented in speckley::Brick, and speckley::Rectangle.

Referenced by speckley::readNcGrid().

## reduceElements()

virtual void speckley::SpeckleyDomain::reduceElements | ( | escript::Data & | out,
|  | const escript::Data & | in
| ) |  | const

protected pure virtual

interpolates from Element -> ReducedElement

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by interpolateOnDomain().

## setNewX()

void speckley::SpeckleyDomain::setNewX | ( | const escript::Data & | arg | ) |

virtual

assigns new location to the domain.

Note
  This is not supported in Speckley

Reimplemented from escript::AbstractContinuousDomain.

## setTagMap()

virtual void speckley::SpeckleyDomain::setTagMap | ( | const std::string & | name,
|  | int | tag
| ) |  |

inline virtual

sets a map from a clear tag name to a tag key

Parameters

  name | tag name
  tag | tag key

Implements escript::AbstractDomain.

Referenced by BOOST_PYTHON_MODULE(), speckley::Brick::Brick(), and speckley::Rectangle::Rectangle().

## setTags()

void speckley::SpeckleyDomain::setTags | ( | int | fsType,
|  | int | newTag,
|  | const escript::Data & | mask
| ) |  | const

virtual

assigns new tag newTag to all samples of given function space with a positive value of mask for any of its sample points

Implements escript::AbstractDomain.

References speckley::Elements, getNumElements(), getNumNodes(), escript::Data::getSampleDataRO(), m_elementTags, m_nodeTags, speckley::Nodes, and updateTagsInUse().

## setToGradient()

void speckley::SpeckleyDomain::setToGradient | ( | escript::Data & | out,
|  | const escript::Data & | in
| ) |  | const

virtual

copies the gradient of 'in' into 'out'. The actual function space to be considered for the gradient is defined by 'in'. Both arguments have to be defined on this domain.

Implements escript::AbstractDomain.

References assembleGradient(), escript::continuousFunction(), speckley::DegreesOfFreedom, speckley::Elements, functionSpaceTypeAsString(), escript::FunctionSpace::getDomain(), escript::Data::getFunctionSpace(), getMPISize(), escript::FunctionSpace::getTypeCode(), escript::Data::isComplex(), speckley::Nodes, and speckley::ReducedElements.

## setToIntegrals() [1/2]

void speckley::SpeckleyDomain::setToIntegrals | ( | std::vector< real_t > & | 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 domain.

## setToIntegrals() [2/2]

void speckley::SpeckleyDomain::setToIntegrals | ( | std::vector< cplx_t > & | integrals,
|  | const escript::Data & | arg
| ) |  | const

virtual

## setToIntegralsWorker()

template<typename Scalar >

void speckley::SpeckleyDomain::setToIntegralsWorker | ( | std::vector< Scalar > & | integrals,
|  | const escript::Data & | arg
| ) |  | const

private

References assembleIntegrate(), speckley::DegreesOfFreedom, speckley::Elements, escript::function(), functionSpaceTypeAsString(), escript::FunctionSpace::getDomain(), escript::Data::getFunctionSpace(), escript::FunctionSpace::getTypeCode(), speckley::Nodes, and speckley::ReducedElements.

## setToNormal()

virtual void speckley::SpeckleyDomain::setToNormal | ( | escript::Data & | out | ) | const

pure virtual

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 domain.

Implements escript::AbstractDomain.

Implemented in speckley::Rectangle, and speckley::Brick.

## setToSize()

virtual void speckley::SpeckleyDomain::setToSize | ( | escript::Data & | out | ) | const

pure virtual

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 domain.

Implements escript::AbstractDomain.

Implemented in speckley::Rectangle, and speckley::Brick.

## setToX()

void speckley::SpeckleyDomain::setToX | ( | escript::Data & | arg | ) | const

virtual

copies the location of data points into arg. The domain of arg has to match this domain.

Implements escript::AbstractDomain.

References assembleCoordinates(), escript::continuousFunction(), escript::FunctionSpace::getDomain(), escript::Data::getFunctionSpace(), escript::FunctionSpace::getTypeCode(), interpolateOnDomain(), escript::Data::isExpanded(), speckley::Nodes, and escript::Vector().

## showTagNames()

string speckley::SpeckleyDomain::showTagNames | ( |  | ) | const

virtual

returns all tag names in a single string separated by commas

Implements escript::AbstractDomain.

References m_tagMap.

Referenced by BOOST_PYTHON_MODULE().

## supportsContactElements()

virtual bool speckley::SpeckleyDomain::supportsContactElements | ( |  | ) | const

inline virtual

returns true if this domain supports contact elements, false otherwise

Implements escript::AbstractDomain.

## supportsFilter()

bool speckley::SpeckleyDomain::supportsFilter | ( | const boost::python::tuple & | t | ) | const

virtual

returns true if this domain can handle the specified tuple of filter options.

Reimplemented from escript::AbstractDomain.

## updateTagsInUse()

void speckley::SpeckleyDomain::updateTagsInUse | ( | int | fsType | ) | const

protected

References speckley::Elements, m_elementTags, m_elementTagsInUse, m_mpiInfo, m_nodeTags, m_nodeTagsInUse, MPI_INT, MPI_MIN, speckley::Nodes, and speckley::Points.

Referenced by speckley::Brick::populateSampleIds(), speckley::Rectangle::populateSampleIds(), and setTags().

## write()

virtual void speckley::SpeckleyDomain::write | ( | const std::string & | filename | ) | const

pure virtual

writes the current mesh to a file with the given name

Parameters

  filename | The name of the file to write to

Implements escript::AbstractDomain.

Implemented in speckley::Brick, and speckley::Rectangle.

## writeBinaryGrid()

virtual void speckley::SpeckleyDomain::writeBinaryGrid | ( | const escript::Data & | in,
|  | std::string | filename,
|  | int | byteOrder,
|  | int | dataType
| ) |  | const

pure virtual

writes a Data object to a file in raw binary format

Implemented in speckley::Rectangle, and speckley::Brick.

Referenced by BOOST_PYTHON_MODULE().

## Member Data Documentation

## assembler_type

assembler_t speckley::SpeckleyDomain::assembler_type

protected

Referenced by SpeckleyDomain().

## m_diracPointNodeIDs

IndexVector speckley::SpeckleyDomain::m_diracPointNodeIDs

protected

Referenced by addPoints(), speckley::Brick::borrowSampleReferenceIDs(), and speckley::Rectangle::borrowSampleReferenceIDs().

## m_diracPoints

std::vector<DiracPoint> speckley::SpeckleyDomain::m_diracPoints

protected

Referenced by addPoints(), assemblePDEDirac(), getDataShape(), getTagFromSampleNo(), and interpolateOnDomain().

## m_elementTags

std::vector<int> speckley::SpeckleyDomain::m_elementTags

mutable protected

Referenced by getTagFromSampleNo(), operator==(), speckley::Brick::populateSampleIds(), speckley::Rectangle::populateSampleIds(), setTags(), and updateTagsInUse().

## m_elementTagsInUse

std::vector<int> speckley::SpeckleyDomain::m_elementTagsInUse

mutable protected

Referenced by borrowListOfTagsInUse(), getNumberOfTagsInUse(), and updateTagsInUse().

## m_mpiInfo

escript::JMPI speckley::SpeckleyDomain::m_mpiInfo

protected

Referenced by addPoints(), speckley::Brick::Brick(), speckley::Rectangle::dump(), speckley::Brick::dump(), speckley::Brick::interpolateAcross(), speckley::Rectangle::interpolateAcross(), speckley::Rectangle::interpolateElementsOnNodesWorker(), speckley::Brick::interpolateNodesOnElementsWorker(), speckley::Rectangle::interpolateNodesOnElementsWorker(), speckley::Brick::populateSampleIds(), speckley::Rectangle::populateSampleIds(), Print_Mesh_Info(), speckley::Rectangle::Rectangle(), SpeckleyDomain(), and updateTagsInUse().

## m_nodeTags

std::vector<int> speckley::SpeckleyDomain::m_nodeTags

mutable protected

Referenced by getTagFromSampleNo(), operator==(), speckley::Brick::populateSampleIds(), speckley::Rectangle::populateSampleIds(), setTags(), and updateTagsInUse().

## m_nodeTagsInUse

std::vector<int> speckley::SpeckleyDomain::m_nodeTagsInUse

mutable protected

Referenced by borrowListOfTagsInUse(), getNumberOfTagsInUse(), and updateTagsInUse().

## m_numDim

int speckley::SpeckleyDomain::m_numDim

protected

Referenced by addPoints(), speckley::Brick::assembleCoordinates(), speckley::Rectangle::assembleCoordinates(), speckley::Brick::findNode(), speckley::Rectangle::findNode(), getDataShape(), and Print_Mesh_Info().

## m_order

int speckley::SpeckleyDomain::m_order

protected

element order (will be m_order + 1 quad points in each axis)

Referenced by speckley::Brick::assembleGradient(), speckley::Rectangle::assembleGradient(), speckley::Brick::assembleIntegrateWorker(), speckley::Rectangle::assembleIntegrateWorker(), speckley::Brick::Brick(), speckley::Brick::findNode(), speckley::Rectangle::findNode(), getDataShape(), speckley::Brick::interpolateElementsOnNodes(), speckley::Rectangle::interpolateElementsOnNodesWorker(), speckley::Brick::interpolateFromCorners(), speckley::Rectangle::interpolateFromCorners(), speckley::Brick::interpolateNodesOnElementsWorker(), speckley::Rectangle::interpolateNodesOnElementsWorker(), speckley::Rectangle::operator==(), speckley::Brick::randomFill(), speckley::Brick::readBinaryGridImpl(), speckley::Rectangle::readBinaryGridImpl(), speckley::Rectangle::Rectangle(), speckley::Brick::reduceElements(), speckley::Rectangle::reduceElements(), speckley::Brick::setToSize(), speckley::Rectangle::setToSize(), speckley::Brick::writeBinaryGridImpl(), and speckley::Rectangle::writeBinaryGridImpl().

## m_status

StatusType speckley::SpeckleyDomain::m_status

protected

## m_tagMap

TagMap speckley::SpeckleyDomain::m_tagMap

protected

Referenced by operator==(), Print_Mesh_Info(), and showTagNames().

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

- speckley/src/SpeckleyDomain.h
- speckley/src/SpeckleyDomain.cpp