escript Revision_
|
SpeckleyDomain extends the AbstractContinuousDomain interface for the Speckley library and is the base class for Rectangle and Brick. More...
#include <SpeckleyDomain.h>
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. | |
~SpeckleyDomain () | |
Destructor. | |
virtual escript::JMPI | getMPI () const |
returns a reference to the MPI information wrapper for this domain | |
virtual int | getMPISize () const |
returns the number of processors used for this domain | |
virtual int | getMPIRank () const |
returns the MPI rank of this processor | |
virtual void | MPIBarrier () const |
if compiled for MPI then executes an MPI_Barrier, else does nothing | |
virtual bool | onMasterProcessor () const |
returns true if on MPI processor 0, else false | |
MPI_Comm | getMPIComm () const |
returns the MPI communicator | |
virtual bool | isValidFunctionSpaceType (int fsType) const |
returns true if the argument is a valid function space type for this domain | |
virtual std::string | functionSpaceTypeAsString (int fsType) const |
returns a description for the given function space type code | |
virtual int | getDim () const |
returns the number of spatial dimensions of the domain | |
virtual bool | operator== (const escript::AbstractDomain &other) const |
equality operator | |
virtual bool | operator!= (const escript::AbstractDomain &other) const |
inequality operator | |
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. | |
int | getTagFromSampleNo (int fsType, dim_t sampleNo) const |
returns 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 |
returns 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 separated by commas | |
virtual void | setNewX (const escript::Data &arg) |
assigns new location to the domain. | |
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 fsType_source, int fsType_target) const |
returns true if data on fsType_source can be interpolated onto fsType_target, false otherwise | |
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. | |
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 | |
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 | |
virtual bool | probeInterpolationAcross (int, const escript::AbstractDomain &, int) const =0 |
determines whether interpolation from source to target is possible | |
virtual escript::Data | getX () const |
returns locations in the SEM nodes | |
virtual escript::Data | getNormal () const |
returns boundary normals at the quadrature point on the face elements | |
virtual escript::Data | getSize () const |
returns the element size | |
virtual void | setToX (escript::Data &arg) const |
copies the location of data points into arg. The domain of arg has to match this domain. | |
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. | |
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 | |
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 | |
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. | |
virtual int | getNumberOfTagsInUse (int fsType) const |
returns the number of tags in use for a function space type | |
virtual const int * | borrowListOfTagsInUse (int fsType) const |
returns a pointer to the list of tags in use for a function space type | |
virtual bool | canTag (int fsType) const |
checks if this domain allows tags for the specified function space type | |
virtual int | getApproximationOrder (int fsType) const |
returns the approximation order used for a function space | |
virtual bool | supportsContactElements () const |
returns true if this domain supports contact elements, false otherwise | |
virtual int | getContinuousFunctionCode () const |
returns a continuous FunctionSpace code | |
virtual int | getReducedContinuousFunctionCode () const |
returns a continuous on reduced order nodes FunctionSpace code | |
virtual int | getFunctionCode () const |
returns a function FunctionSpace code | |
virtual int | getReducedFunctionCode () const |
returns a function with reduced integration order FunctionSpace code | |
virtual int | getFunctionOnBoundaryCode () const |
returns a function on boundary FunctionSpace code | |
virtual int | getReducedFunctionOnBoundaryCode () const |
returns a function on boundary with reduced integration order FunctionSpace code | |
virtual int | getFunctionOnContactZeroCode () const |
return a FunctionOnContactZero code | |
virtual int | getReducedFunctionOnContactZeroCode () const |
returns a FunctionOnContactZero code with reduced integration order | |
virtual int | getFunctionOnContactOneCode () const |
returns a FunctionOnContactOne code | |
virtual int | getReducedFunctionOnContactOneCode () const |
returns a FunctionOnContactOne code with reduced integration order | |
virtual int | getSolutionCode () const |
returns a Solution FunctionSpace code | |
virtual int | getReducedSolutionCode () const |
returns a ReducedSolution FunctionSpace code | |
virtual int | getDiracDeltaFunctionsCode () const |
returns a DiracDeltaFunctions FunctionSpace code | |
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 | |
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 | |
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. | |
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 | |
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 | |
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 | |
virtual void | addToRHSFromPython (escript::Data &rhs, const boost::python::list &data, Assembler_ptr assembler) const |
a wrapper for addToRHS that allows calling from Python | |
virtual void | addPDEToTransportProblem (escript::AbstractTransportProblem &tp, escript::Data &source, const DataMap &data, Assembler_ptr assembler) const |
adds a PDE onto a transport problem | |
void | addPDEToTransportProblemFromPython (escript::AbstractTransportProblem &tp, escript::Data &source, const boost::python::list &data, Assembler_ptr assembler) const |
adds a PDE onto a transport problem | |
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 | |
virtual escript::ATP_ptr | newTransportProblem (int blocksize, const escript::FunctionSpace &functionspace, int type) const |
creates a transport problem | |
virtual void | Print_Mesh_Info (bool full=false) const |
writes information about the mesh to standard output | |
virtual void | write (const std::string &filename) const =0 |
writes the current mesh to a file with the given name | |
virtual std::string | getDescription () const =0 |
returns a description for this domain | |
void | dump (const std::string &filename) const =0 |
dumps the mesh to a file with the given name | |
const index_t * | borrowSampleReferenceIDs (int fsType) const =0 |
returns the array of reference numbers for a function space type | |
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. | |
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. | |
virtual void | readNcGrid (escript::Data &out, std::string filename, std::string varname, const ReaderParameters ¶ms) const =0 |
reads grid data from a netCDF file into a Data object | |
virtual void | readBinaryGrid (escript::Data &out, std::string filename, const ReaderParameters ¶ms) const =0 |
reads grid data from a raw binary file into a Data object | |
virtual void | readBinaryGridFromZipped (escript::Data &out, std::string filename, const ReaderParameters ¶ms) const =0 |
reads grid data from a compressed raw binary file into a Data object | |
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 | |
virtual bool | ownSample (int fsType, index_t id) const =0 |
returns true if this rank owns the sample id on given function space | |
virtual dim_t | getNumDataPointsGlobal () const =0 |
returns the number of data points summed across all MPI processes | |
virtual const dim_t * | getNumNodesPerDim () const =0 |
returns the number of nodes per MPI rank in each dimension | |
virtual const dim_t * | getNumElementsPerDim () const =0 |
returns the number of elements per MPI rank in each dimension | |
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 | |
virtual IndexVector | getNodeDistribution () const =0 |
returns the node distribution vector | |
virtual const int * | getNumSubdivisionsPerDim () const =0 |
returns the number of spatial subdivisions in each dimension | |
virtual double | getLocalCoordinate (dim_t index, int dim) const =0 |
returns the index'th coordinate value in given dimension for this rank | |
virtual boost::python::tuple | getGridParameters () const =0 |
returns the tuple (origin, spacing, number_of_elements) | |
virtual bool | supportsFilter (const boost::python::tuple &t) const |
returns true if this domain can handle the specified tuple of filter options. | |
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 | |
int | getOrder () const |
returns the order of the domain | |
![]() | |
AbstractContinuousDomain () | |
Default constructor for AbstractContinuousDomain. | |
virtual | ~AbstractContinuousDomain () |
Destructor for AbstractContinuousDomain. | |
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. | |
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 |
adds a PDE onto the stiffness matrix mat and a rhs | |
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 stiffness matrix mat and a rhs | |
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 | |
![]() | |
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 |
virtual | ~AbstractDomain () |
Destructor for AbstractDomain. | |
virtual int | getTagFromSampleNo (int functionSpaceType, DataTypes::index_t sampleNo) const =0 |
Return the tag key for the given sample number. | |
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. | |
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 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. | |
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) | |
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) | |
virtual dim_t | getNumNodes () const =0 |
returns the number of nodes per MPI rank | |
virtual dim_t | getNumElements () const =0 |
returns the number of elements per MPI rank | |
virtual dim_t | getNumDOF () const =0 |
returns the number of degrees of freedom per MPI rank | |
virtual void | assembleCoordinates (escript::Data &arg) const =0 |
populates the data object 'arg' with the node coordinates | |
virtual void | assembleGradient (escript::Data &out, const escript::Data &in) const =0 |
computes the gradient of 'in' and puts the result in 'out' | |
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' | |
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' | |
virtual void | interpolateElementsOnNodes (escript::Data &out, const escript::Data &in) const =0 |
interpolates data on elements in 'in' onto nodes in 'out' | |
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 | |
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) | |
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 | |
void | assemblePDEBoundary (escript::AbstractSystemMatrix *mat, escript::Data &rhs, const DataMap &coefs, Assembler_ptr assembler) const |
void | assemblePDEDiracWrap (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 |
void | assembleComplexPDEDirac (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 | |
Additional Inherited Members | |
![]() | |
typedef int | StatusType |
SpeckleyDomain extends the AbstractContinuousDomain interface for the Speckley library and is the base class for Rectangle and Brick.
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.
speckley::SpeckleyDomain::~SpeckleyDomain | ( | ) |
Destructor.
|
virtual |
adds a PDE onto a transport problem
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
|
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().
|
virtual |
adds a PDE onto rhs, used for custom solvers with varying arguments counts and so on
References assemblePDE(), assemblePDEBoundary(), assemblePDEDiracWrap(), escript::Data::isEmpty(), and speckley::isNotEmpty().
Referenced by addToRHSFromPython().
|
virtual |
a wrapper for addToRHS that allows calling from Python
References addToRHS(), escript::Data::expand(), and speckley::tupleListToMap().
Referenced by BOOST_PYTHON_MODULE().
|
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().
|
virtual |
a wrapper for addToSystem that allows calling from Python
References addToSystem(), and speckley::tupleListToMap().
Referenced by BOOST_PYTHON_MODULE().
|
protected |
|
private |
References escript::Data::complicate(), 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 assemblePDEDiracWrap().
|
protectedpure virtual |
populates the data object 'arg' with the node coordinates
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by setToX().
|
protectedpure virtual |
computes the gradient of 'in' and puts the result in 'out'
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by setToGradient().
|
protectedpure virtual |
Implemented in speckley::Brick, and speckley::Rectangle.
|
protectedpure virtual |
copies the integrals of the function defined by 'arg' into 'integrals'
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by setToIntegralsWorker().
|
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().
|
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().
|
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 assemblePDEDiracWrap().
|
private |
References assembleComplexPDEDirac(), assemblePDEDirac(), and speckley::isComplexCoef().
Referenced by addToRHS().
|
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.
|
pure virtual |
returns the array of reference numbers for a function space type
fsType | The function space type |
Implements escript::AbstractDomain.
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by addPoints(), weipa::SpeckleyNodes::initFromSpeckley(), and weipa::SpeckleyElements::initFromSpeckley().
|
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.
|
virtual |
given a vector of FunctionSpace type codes, passes back a code which all can be interpolated to
Implements escript::AbstractDomain.
References speckley::DegreesOfFreedom, speckley::Elements, speckley::Nodes, speckley::Points, speckley::ReducedDegreesOfFreedom, speckley::ReducedElements, and speckley::ReducedNodes.
|
protected |
copies data in 'in' to 'out' (both must be on same function space)
References escript::Data::getDataPointSize(), escript::Data::getNumSamples(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), and escript::Data::requireWrite().
|
inlinevirtual |
Reimplemented in speckley::Brick, and speckley::Rectangle.
Referenced by 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().
|
pure virtual |
dumps the mesh to a file with the given name
filename | The name of the output file |
Implements escript::AbstractDomain.
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by BOOST_PYTHON_MODULE().
|
privatepure virtual |
finds the node that the given point coordinates belong to
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by addPoints().
|
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().
|
inlinevirtual |
returns the approximation order used for a function space
Implements escript::AbstractDomain.
|
inlinevirtual |
returns a continuous FunctionSpace code
Reimplemented from escript::AbstractContinuousDomain.
|
virtual |
returns the number of data points per sample, and the number of samples as a pair.
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().
|
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().
|
inlinevirtual |
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().
|
inlinevirtual |
returns a DiracDeltaFunctions FunctionSpace code
Reimplemented from escript::AbstractContinuousDomain.
|
protectedpure virtual |
Implemented in speckley::Brick, and speckley::Rectangle.
|
inlinevirtual |
returns a function FunctionSpace code
Reimplemented from escript::AbstractContinuousDomain.
|
inlinevirtual |
returns a function on boundary FunctionSpace code
Reimplemented from escript::AbstractContinuousDomain.
|
inlinevirtual |
returns a FunctionOnContactOne code
Reimplemented from escript::AbstractContinuousDomain.
|
inlinevirtual |
return a FunctionOnContactZero code
Reimplemented from escript::AbstractContinuousDomain.
|
pure virtual |
returns the tuple (origin, spacing, number_of_elements)
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by BOOST_PYTHON_MODULE().
|
pure virtual |
returns the lengths of the domain
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by speckley::RipleyCoupler::validInterpolation().
|
pure virtual |
returns the index'th coordinate value in given dimension for this rank
Referenced by weipa::SpeckleyNodes::initFromSpeckley(), and speckley::RipleyCoupler::RipleyCoupler().
|
inlinevirtual |
returns a reference to the MPI information wrapper for this domain
Implements escript::AbstractDomain.
|
inlinevirtual |
returns the MPI communicator
Implements escript::AbstractDomain.
Referenced by speckley::RipleyCoupler::RipleyCoupler(), and speckley::RipleyCoupler::validInterpolation().
|
inlinevirtual |
returns the MPI rank of this processor
Implements escript::AbstractDomain.
Referenced by speckley::Brick::assembleIntegrateWorker(), speckley::Rectangle::assembleIntegrateWorker(), BOOST_PYTHON_MODULE(), weipa::SpeckleyElements::initFromSpeckley(), speckley::Rectangle::ownSample(), and speckley::Brick::ownSample().
|
inlinevirtual |
returns the number of processors used for this domain
Implements escript::AbstractDomain.
Referenced by BOOST_PYTHON_MODULE(), interpolateOnDomain(), speckley::Rectangle::ownSample(), speckley::Brick::ownSample(), and setToGradient().
|
pure virtual |
returns the node distribution vector
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by weipa::SpeckleyNodes::initFromSpeckley().
|
virtual |
returns boundary normals at the quadrature point on the face elements
Implements escript::AbstractDomain.
Referenced by BOOST_PYTHON_MODULE().
|
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.
|
pure virtual |
returns the number of data points summed across all MPI processes
Reimplemented from escript::AbstractContinuousDomain.
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by BOOST_PYTHON_MODULE(), and weipa::SpeckleyNodes::initFromSpeckley().
|
protectedpure virtual |
returns the number of degrees of freedom per MPI rank
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by getDataShape().
|
protectedpure virtual |
returns the number of elements per MPI rank
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by getDataShape(), Print_Mesh_Info(), and setTags().
|
pure virtual |
returns the number of elements per MPI rank in each dimension
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by weipa::SpeckleyElements::initFromSpeckley(), and speckley::RipleyCoupler::RipleyCoupler().
|
pure virtual |
returns the number of face elements in the order (left,right,bottom,top,[front,back]) on current MPI rank
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by weipa::SpeckleyElements::initFromSpeckley(), and speckley::RipleyCoupler::RipleyCoupler().
|
protectedpure virtual |
returns the number of nodes per MPI rank
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by getDataShape(), and setTags().
|
pure virtual |
returns the number of nodes per MPI rank in each dimension
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by weipa::SpeckleyNodes::initFromSpeckley(), and weipa::SpeckleyElements::initFromSpeckley().
|
pure virtual |
returns the number of spatial subdivisions in each dimension
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by weipa::SpeckleyElements::initFromSpeckley(), and speckley::RipleyCoupler::RipleyCoupler().
|
inline |
returns the order of the domain
Referenced by BOOST_PYTHON_MODULE(), weipa::SpeckleyElements::initFromSpeckley(), and speckley::RipleyCoupler::RipleyCoupler().
|
inlinevirtual |
returns a continuous on reduced order nodes FunctionSpace code
Reimplemented from escript::AbstractContinuousDomain.
|
inlinevirtual |
returns a function with reduced integration order FunctionSpace code
Reimplemented from escript::AbstractContinuousDomain.
|
inlinevirtual |
returns a function on boundary with reduced integration order FunctionSpace code
Reimplemented from escript::AbstractContinuousDomain.
|
inlinevirtual |
returns a FunctionOnContactOne code with reduced integration order
Reimplemented from escript::AbstractContinuousDomain.
|
inlinevirtual |
returns a FunctionOnContactZero code with reduced integration order
Reimplemented from escript::AbstractContinuousDomain.
|
inlinevirtual |
returns a ReducedSolution FunctionSpace code
Reimplemented from escript::AbstractContinuousDomain.
|
virtual |
returns the element size
Implements escript::AbstractDomain.
References escript::function(), and escript::FunctionSpace::getSize().
Referenced by BOOST_PYTHON_MODULE().
|
inlinevirtual |
returns a Solution FunctionSpace code
Reimplemented from escript::AbstractContinuousDomain.
|
inlinevirtual |
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.
|
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
options | a python object containing the solver, package, preconditioner and symmetry |
Reimplemented from escript::AbstractContinuousDomain.
Referenced by BOOST_PYTHON_MODULE().
|
inlinevirtual |
returns the tag key for tag name
name | tag name |
Implements escript::AbstractDomain.
Referenced by BOOST_PYTHON_MODULE().
int speckley::SpeckleyDomain::getTagFromSampleNo | ( | int | fsType, |
dim_t | sampleNo | ||
) | const |
returns the tag key for the given sample number
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.
|
virtual |
returns the identifier of the transport problem type to be used when a particular solver, preconditioner, package and symmetric matrix is used
solver | |
preconditioner | |
package | |
symmetry |
Reimplemented from escript::AbstractContinuousDomain.
|
virtual |
returns locations in the SEM nodes
Implements escript::AbstractDomain.
References escript::continuousFunction(), and escript::FunctionSpace::getX().
Referenced by BOOST_PYTHON_MODULE().
|
pure virtual |
interpolates data given on source onto target where source and target are given on different domains
Implements escript::AbstractDomain.
Implemented in speckley::Brick, and speckley::Rectangle.
|
protectedpure virtual |
interpolates data on elements in 'in' onto nodes in 'out'
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by interpolateOnDomain().
|
protectedpure virtual |
interpolates data on nodes in 'in' onto elements in 'out'
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by interpolateOnDomain().
|
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(), 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().
|
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.
|
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().
|
inlinevirtual |
returns true if name is a defined tag name
name | tag name to be checked |
Reimplemented from escript::AbstractDomain.
Referenced by BOOST_PYTHON_MODULE().
|
inlinevirtual |
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().
|
protected |
expands ReducedFunction (in) to Function (out)
References escript::Data::getDataPointSize(), escript::Data::getNumDataPointsPerSample(), escript::Data::getNumSamples(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), and escript::Data::requireWrite().
|
virtual |
creates a stiffness matrix and initializes it with zeros
Reimplemented from escript::AbstractContinuousDomain.
Referenced by BOOST_PYTHON_MODULE().
|
virtual |
creates a transport problem
Reimplemented from escript::AbstractContinuousDomain.
|
inlinevirtual |
returns true if on MPI processor 0, else false
Implements escript::AbstractDomain.
Referenced by BOOST_PYTHON_MODULE().
|
inlinevirtual |
inequality operator
Implements escript::AbstractDomain.
|
virtual |
equality operator
Implements escript::AbstractDomain.
Reimplemented in speckley::Brick, and speckley::Rectangle.
References m_elementTags, m_nodeTags, and m_tagMap.
|
pure virtual |
returns true if this rank owns the sample id on given function space
Implemented in speckley::Rectangle, and speckley::Brick.
|
virtual |
Preferred direction of interpolation. If you really need to test for a particular direction, then use probeInterpolation.
Implements escript::AbstractDomain.
References speckley::DegreesOfFreedom, speckley::Elements, getDescription(), isValidFunctionSpaceType(), speckley::Nodes, speckley::Points, speckley::ReducedDegreesOfFreedom, speckley::ReducedElements, and speckley::ReducedNodes.
|
virtual |
writes information about the mesh to standard output
full | whether to print additional data |
Reimplemented from escript::AbstractContinuousDomain.
Reimplemented in speckley::Brick, and speckley::Rectangle.
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().
|
pure virtual |
determines whether interpolation from source to target is possible
Implements escript::AbstractDomain.
Implemented in speckley::Brick, and speckley::Rectangle.
|
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.
|
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().
|
pure virtual |
reads grid data from a compressed raw binary file into a Data object
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by speckley::readBinaryGridFromZipped().
|
pure virtual |
reads grid data from a netCDF file into a Data object
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by speckley::readNcGrid().
|
protectedpure virtual |
interpolates from Element -> ReducedElement
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by interpolateOnDomain().
|
virtual |
assigns new location to the domain.
Reimplemented from escript::AbstractContinuousDomain.
|
inlinevirtual |
sets a map from a clear tag name to a tag key
name | tag name |
tag | tag key |
Implements escript::AbstractDomain.
Referenced by BOOST_PYTHON_MODULE(), speckley::Brick::Brick(), and speckley::Rectangle::Rectangle().
|
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().
|
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.
|
virtual |
|
virtual |
copies the integrals of the function defined by arg into integrals. arg has to be defined on this domain.
|
private |
References assembleIntegrate(), speckley::DegreesOfFreedom, speckley::Elements, escript::function(), functionSpaceTypeAsString(), escript::FunctionSpace::getDomain(), escript::Data::getFunctionSpace(), escript::FunctionSpace::getTypeCode(), speckley::Nodes, speckley::Points, and speckley::ReducedElements.
|
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::Brick, and speckley::Rectangle.
|
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::Brick, and speckley::Rectangle.
|
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().
|
virtual |
returns all tag names in a single string separated by commas
Implements escript::AbstractDomain.
References m_tagMap.
Referenced by BOOST_PYTHON_MODULE().
|
inlinevirtual |
returns true if this domain supports contact elements, false otherwise
Implements escript::AbstractDomain.
|
virtual |
returns true if this domain can handle the specified tuple of filter options.
Reimplemented from escript::AbstractDomain.
|
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().
|
pure virtual |
writes the current mesh to a file with the given name
filename | The name of the file to write to |
Implements escript::AbstractDomain.
Implemented in speckley::Brick, and speckley::Rectangle.
|
pure virtual |
writes a Data object to a file in raw binary format
Implemented in speckley::Brick, and speckley::Rectangle.
Referenced by BOOST_PYTHON_MODULE().
|
protected |
Referenced by SpeckleyDomain().
|
protected |
|
protected |
Referenced by addPoints(), assembleComplexPDEDirac(), assemblePDEDirac(), getDataShape(), getTagFromSampleNo(), and interpolateOnDomain().
|
mutableprotected |
|
protected |
Referenced by borrowListOfTagsInUse(), getNumberOfTagsInUse(), and updateTagsInUse().
|
protected |
Referenced by addPoints(), speckley::Brick::Brick(), speckley::Brick::dump(), speckley::Rectangle::dump(), speckley::Brick::interpolateAcross(), speckley::Rectangle::interpolateAcross(), speckley::Brick::populateSampleIds(), speckley::Rectangle::populateSampleIds(), Print_Mesh_Info(), speckley::Rectangle::Rectangle(), SpeckleyDomain(), and updateTagsInUse().
|
mutableprotected |
|
protected |
Referenced by borrowListOfTagsInUse(), getNumberOfTagsInUse(), and updateTagsInUse().
|
protected |
|
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::getLocalCoordinate(), speckley::Rectangle::getLocalCoordinate(), speckley::Brick::getNumDataPointsGlobal(), speckley::Rectangle::getNumDataPointsGlobal(), 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().
|
protected |
|
protected |
Referenced by operator==(), Print_Mesh_Info(), and showTagNames().