escript  Revision_
Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
ripley::Rectangle Class Reference

Rectangle is the 2-dimensional implementation of a RipleyDomain. More...

#include <Rectangle.h>

Inheritance diagram for ripley::Rectangle:
ripley::RipleyDomain escript::AbstractContinuousDomain escript::AbstractDomain ripley::MultiRectangle

Public Member Functions

 Rectangle (dim_t n0, dim_t n1, double x0, double y0, double x1, double y1, int d0=-1, int d1=-1, const std::vector< double > &points=std::vector< double >(), const std::vector< int > &tags=std::vector< int >(), const TagMap &tagnamestonums=TagMap(), escript::SubWorld_ptr w=escript::SubWorld_ptr())
 creates a rectangular mesh with n0 x n1 elements over the rectangle [x0,x1] x [y0,y1]. More...
 
 ~Rectangle ()
 Destructor. More...
 
virtual std::string getDescription () const
 returns a description for this domain More...
 
virtual bool operator== (const escript::AbstractDomain &other) const
 equality operator More...
 
virtual void write (const std::string &filename) const
 writes the current mesh to a file with the given name More...
 
void dump (const std::string &filename) const
 dumps the mesh to a file with the given name More...
 
virtual void readNcGrid (escript::Data &out, std::string filename, std::string varname, const ReaderParameters &params) const
 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
 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
 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
 writes a Data object to a file in raw binary format More...
 
const dim_t * borrowSampleReferenceIDs (int fsType) const
 returns the array of reference numbers for a function space type More...
 
virtual bool ownSample (int fsType, index_t id) const
 returns true if this rank owns the sample id. More...
 
virtual void setToNormal (escript::Data &out) const
 copies the surface normals at data points into out. The actual function space to be considered is defined by out. out has to be defined on this domain. More...
 
virtual void setToSize (escript::Data &out) const
 copies the size of samples into out. The actual function space to be considered is defined by out. out has to be defined on this domain. More...
 
virtual dim_t getNumDataPointsGlobal () const
 returns the number of data points summed across all MPI processes More...
 
virtual void Print_Mesh_Info (const bool full=false) const
 writes information about the mesh to standard output More...
 
virtual const dim_t * getNumNodesPerDim () const
 returns the number of nodes per MPI rank in each dimension More...
 
virtual const dim_t * getNumElementsPerDim () const
 returns the number of elements per MPI rank in each dimension More...
 
virtual const dim_t * getNumFacesPerBoundary () const
 returns the number of face elements in the order (left,right,bottom,top) on current MPI rank More...
 
virtual IndexVector getNodeDistribution () const
 returns the node distribution vector More...
 
virtual const int * getNumSubdivisionsPerDim () const
 returns the number of spatial subdivisions in each dimension More...
 
virtual double getLocalCoordinate (index_t index, int dim) const
 returns the index'th coordinate value in given dimension for this rank More...
 
virtual boost::python::tuple getGridParameters () const
 returns the tuple (origin, spacing, number_of_elements) More...
 
virtual escript::Data randomFill (const escript::DataTypes::ShapeType &shape, const escript::FunctionSpace &what, long seed, const boost::python::tuple &filter) const
 returns a Data object filled with random data passed through filter. More...
 
virtual Assembler_ptr createAssembler (std::string type, const DataMap &options) const
 creates and returns an assembler of the requested type. More...
 
const double * getLength () const
 returns the lengths of the domain More...
 
const double * getElementLength () const
 returns the lengths of an element More...
 
virtual RankVector getOwnerVector (int fsType) const
 returns a vector of rank numbers where vec[i]=n means that rank n 'owns' element/face element i. More...
 
- Public Member Functions inherited from ripley::RipleyDomain
 RipleyDomain (dim_t dim, escript::SubWorld_ptr p=escript::SubWorld_ptr())
 Constructor with number of dimensions. Allocates MPI info structure. More...
 
 ~RipleyDomain ()
 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
 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
 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
 determines whether interpolation from source to target is possible More...
 
virtual escript::Data getX () const
 returns locations in the FEM 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 (DoubleVector &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 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...
 
virtual void addPDEToTransportProblem (escript::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
 Do not use. Throws exception. 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 bool supportsFilter (const boost::python::tuple &t) const
 returns true if this domain can handle the specified tuple of filter options. More...
 
Assembler_ptr createAssemblerFromPython (std::string type, const boost::python::list &options) const
 
- Public Member Functions inherited from escript::AbstractContinuousDomain
 AbstractContinuousDomain ()
 Default constructor for AbstractContinuousDomain. More...
 
virtual ~AbstractContinuousDomain ()
 Destructor for AbstractContinuousDomain. More...
 
virtual void setToIntegrals (std::vector< double > &integrals, const escript::Data &arg) const
 copies the integrals of the function defined by arg into integrals. arg has to be defined on this. has to be implemented by the Domain Adapter. More...
 
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...
 
- 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...
 

Protected Member Functions

virtual dim_t getNumNodes () const
 returns the number of nodes per MPI rank More...
 
virtual dim_t getNumElements () const
 returns the number of elements per MPI rank More...
 
virtual dim_t getNumFaceElements () const
 returns the number of face elements on current MPI rank More...
 
virtual dim_t getNumDOF () const
 returns the number of degrees of freedom per MPI rank More...
 
virtual dim_t getNumDOFInAxis (unsigned axis) const
 
virtual index_t getFirstInDim (unsigned axis) const
 
virtual IndexVector getDiagonalIndices (bool upperOnly) const
 returns the indices of the occupied matrix diagonals More...
 
virtual void assembleCoordinates (escript::Data &arg) const
 populates the data object 'arg' with the node coordinates More...
 
virtual void assembleGradient (escript::Data &out, const escript::Data &in) const
 computes the gradient of 'in' and puts the result in 'out' More...
 
virtual void assembleIntegrate (DoubleVector &integrals, const escript::Data &arg) const
 copies the integrals of the function defined by 'arg' into 'integrals' More...
 
virtual std::vector< IndexVectorgetConnections (bool includeShared=false) const
 returns occupied matrix column indices for all matrix rows More...
 
virtual void interpolateNodesOnElements (escript::Data &out, const escript::Data &in, bool reduced) const
 interpolates data on nodes in 'in' onto (reduced) elements in 'out' More...
 
virtual void interpolateNodesOnFaces (escript::Data &out, const escript::Data &in, bool reduced) const
 interpolates data on nodes in 'in' onto (reduced) face elements in 'out' More...
 
virtual void nodesToDOF (escript::Data &out, const escript::Data &in) const
 converts data on nodes in 'in' to degrees of freedom in 'out' More...
 
virtual dim_t getDofOfNode (dim_t node) const
 
virtual void populateSampleIds ()
 
virtual void populateDofMap ()
 
template<typename Scalar >
void addToMatrixAndRHS (escript::AbstractSystemMatrix *S, escript::Data &F, const std::vector< Scalar > &EM_S, const std::vector< Scalar > &EM_F, bool addS, bool addF, index_t firstNode, int nEq=1, int nComp=1) const
 
template<typename ValueType >
void readBinaryGridImpl (escript::Data &out, const std::string &filename, const ReaderParameters &params) const
 
template<typename ValueType >
void writeBinaryGridImpl (const escript::Data &in, const std::string &filename, int byteOrder) const
 
virtual dim_t findNode (const double *coords) const
 finds the node that the given point coordinates belong to More...
 
escript::Data randomFillWorker (const escript::DataTypes::ShapeType &shape, long seed, const boost::python::tuple &filter) const
 
- Protected Member Functions inherited from ripley::RipleyDomain
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 averageData (escript::Data &out, const escript::Data &in) const
 averages data in 'in' to 'out' (from non-reduced to reduced fs) More...
 
void multiplyData (escript::Data &out, const escript::Data &in) const
 copies data in 'in' to 'out' (from reduced to non-reduced fs) More...
 
void updateTagsInUse (int fsType) const
 
template<typename Scalar >
void addToSystemMatrix (escript::AbstractSystemMatrix *mat, const IndexVector &nodes, dim_t numEq, const std::vector< Scalar > &array) const
 
void addPoints (const std::vector< double > &coords, const std::vector< int > &tags)
 
virtual void dofToNodes (escript::Data &out, const escript::Data &in) const
 converts data on degrees of freedom in 'in' to nodes in 'out' More...
 
template<>
void addToSystemMatrix (escript::AbstractSystemMatrix *mat, const IndexVector &nodes, dim_t numEq, const DoubleVector &array) const
 
template<>
void addToSystemMatrix (escript::AbstractSystemMatrix *mat, const IndexVector &nodes, dim_t numEq, const vector< cplx_t > &array) const
 

Protected Attributes

dim_t m_gNE [2]
 total number of elements in each dimension More...
 
double m_origin [2]
 origin of domain More...
 
double m_length [2]
 side lengths of domain More...
 
double m_dx [2]
 grid spacings / cell sizes of domain More...
 
int m_NX [2]
 number of spatial subdivisions More...
 
dim_t m_NE [2]
 number of elements for this rank in each dimension including shared More...
 
dim_t m_ownNE [2]
 number of own elements for this rank in each dimension More...
 
dim_t m_NN [2]
 number of nodes for this rank in each dimension More...
 
dim_t m_offset [2]
 first node on this rank is at (offset0,offset1) in global mesh More...
 
dim_t m_faceCount [4]
 number of face elements per edge (left, right, bottom, top) More...
 
IndexVector m_faceOffset
 
IndexVector m_dofId
 vector of sample reference identifiers More...
 
IndexVector m_nodeId
 
IndexVector m_elementId
 
IndexVector m_faceId
 
IndexVector m_nodeDistribution
 
IndexVector m_dofMap
 
- Protected Attributes inherited from ripley::RipleyDomain
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< int > m_faceTags
 
std::vector< int > m_faceTagsInUse
 
std::vector< DiracPointm_diracPoints
 
IndexVector m_diracPointNodeIDs
 
assembler_t assembler_type
 

Friends

template<class Scalar >
class DefaultAssembler2D
 
class WaveAssembler2D
 
class LameAssembler2D
 

Additional Inherited Members

- Public Types inherited from escript::AbstractDomain
typedef int StatusType
 
- Static Public Member Functions inherited from ripley::RipleyDomain
static void setDecompositionPolicy (DecompositionPolicy value)
 
static DecompositionPolicy getDecompositionPolicy ()
 

Detailed Description

Rectangle is the 2-dimensional implementation of a RipleyDomain.

Constructor & Destructor Documentation

◆ Rectangle()

ripley::Rectangle::Rectangle ( dim_t  n0,
dim_t  n1,
double  x0,
double  y0,
double  x1,
double  y1,
int  d0 = -1,
int  d1 = -1,
const std::vector< double > &  points = std::vector<double>(),
const std::vector< int > &  tags = std::vector<int>(),
const TagMap tagnamestonums = TagMap(),
escript::SubWorld_ptr  w = escript::SubWorld_ptr() 
)

creates a rectangular mesh with n0 x n1 elements over the rectangle [x0,x1] x [y0,y1].

Parameters
n0,n1number of elements in each dimension
x0,y0,x1,y1coordinates of bottom-left and top-right corners
d0,d1number of subdivisions in each dimension

References ripley::RipleyDomain::addPoints(), ripley::DECOMP_ADD_ELEMENTS, ripley::DECOMP_EXPAND, ripley::DECOMP_STRICT, ripley::factorise(), ripley::RipleyDomain::getDecompositionPolicy(), m_dx, m_gNE, m_length, ripley::RipleyDomain::m_mpiInfo, m_NE, m_NN, m_NX, m_offset, m_origin, m_ownNE, populateSampleIds(), and ripley::RipleyDomain::setTagMap().

◆ ~Rectangle()

ripley::Rectangle::~Rectangle ( )

Destructor.

Member Function Documentation

◆ addToMatrixAndRHS()

template<typename Scalar >
void ripley::Rectangle::addToMatrixAndRHS ( escript::AbstractSystemMatrix S,
escript::Data F,
const std::vector< Scalar > &  EM_S,
const std::vector< Scalar > &  EM_F,
bool  addS,
bool  addF,
index_t  firstNode,
int  nEq = 1,
int  nComp = 1 
) const
protected

◆ assembleCoordinates()

void ripley::Rectangle::assembleCoordinates ( escript::Data arg) const
protectedvirtual

◆ assembleGradient()

void ripley::Rectangle::assembleGradient ( escript::Data out,
const escript::Data in 
) const
protectedvirtual

◆ assembleIntegrate()

virtual void ripley::Rectangle::assembleIntegrate ( DoubleVector integrals,
const escript::Data arg 
) const
protectedvirtual

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

Implements ripley::RipleyDomain.

Referenced by assembleGradient().

◆ borrowSampleReferenceIDs()

const dim_t * ripley::Rectangle::borrowSampleReferenceIDs ( int  fsType) const
virtual

◆ createAssembler()

Assembler_ptr ripley::Rectangle::createAssembler ( std::string  type,
const DataMap options 
) const
virtual

creates and returns an assembler of the requested type.

Reimplemented from ripley::RipleyDomain.

References LameAssembler2D, m_dx, m_NE, m_NN, and WaveAssembler2D.

◆ dump()

void ripley::Rectangle::dump ( const std::string &  filename) const
virtual

dumps the mesh to a file with the given name

Parameters
filenameThe name of the output file

Implements ripley::RipleyDomain.

References getDescription(), getLocalCoordinate(), m_elementId, ripley::RipleyDomain::m_mpiInfo, m_NE, m_NN, and m_nodeId.

Referenced by ripley::MultiRectangle::dump().

◆ findNode()

dim_t ripley::Rectangle::findNode ( const double *  coords) const
protectedvirtual

finds the node that the given point coordinates belong to

Implements ripley::RipleyDomain.

Reimplemented in ripley::MultiRectangle.

References INDEX2, m_dx, m_length, m_NE, m_NN, ripley::RipleyDomain::m_numDim, m_offset, m_origin, and escript::DataTypes::real_t_eps().

◆ getConnections()

vector< IndexVector > ripley::Rectangle::getConnections ( bool  includeShared = false) const
protectedvirtual

returns occupied matrix column indices for all matrix rows

Implements ripley::RipleyDomain.

References getFirstInDim(), getNumDOFInAxis(), m_dofMap, and m_NN.

Referenced by nodesToDOF(), and ripley::MultiRectangle::populateSampleIds().

◆ getDescription()

string ripley::Rectangle::getDescription ( ) const
virtual

returns a description for this domain

Implements ripley::RipleyDomain.

Reimplemented in ripley::MultiRectangle.

Referenced by dump().

◆ getDiagonalIndices()

IndexVector ripley::Rectangle::getDiagonalIndices ( bool  upperOnly) const
protectedvirtual

returns the indices of the occupied matrix diagonals

Implements ripley::RipleyDomain.

References getNumDOFInAxis().

◆ getDofOfNode()

dim_t ripley::Rectangle::getDofOfNode ( dim_t  node) const
inlineprotectedvirtual

Implements ripley::RipleyDomain.

◆ getElementLength()

const double* ripley::Rectangle::getElementLength ( ) const
inlinevirtual

returns the lengths of an element

Implements ripley::RipleyDomain.

References S.

◆ getFirstInDim()

index_t ripley::Rectangle::getFirstInDim ( unsigned  axis) const
inlineprotectedvirtual

◆ getGridParameters()

boost::python::tuple ripley::Rectangle::getGridParameters ( ) const
inlinevirtual

returns the tuple (origin, spacing, number_of_elements)

Implements ripley::RipleyDomain.

◆ getLength()

const double* ripley::Rectangle::getLength ( ) const
inlinevirtual

returns the lengths of the domain

Implements ripley::RipleyDomain.

Referenced by ripley::MultiRectangle::validateInterpolationAcross().

◆ getLocalCoordinate()

double ripley::Rectangle::getLocalCoordinate ( index_t  index,
int  dim 
) const
inlinevirtual

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

Implements ripley::RipleyDomain.

References ESYS_ASSERT.

Referenced by assembleCoordinates(), dump(), ripley::MultiRectangle::interpolateNodesToElementsFiner(), ripley::MultiRectangle::interpolateNodesToNodesFiner(), and Print_Mesh_Info().

◆ getNodeDistribution()

virtual IndexVector ripley::Rectangle::getNodeDistribution ( ) const
inlinevirtual

returns the node distribution vector

Implements ripley::RipleyDomain.

◆ getNumDataPointsGlobal()

dim_t ripley::Rectangle::getNumDataPointsGlobal ( ) const
inlinevirtual

returns the number of data points summed across all MPI processes

Implements ripley::RipleyDomain.

Referenced by ripley::MultiRectangle::populateDofMap(), and populateSampleIds().

◆ getNumDOF()

dim_t ripley::Rectangle::getNumDOF ( ) const
inlineprotectedvirtual

returns the number of degrees of freedom per MPI rank

Implements ripley::RipleyDomain.

Reimplemented in ripley::MultiRectangle.

Referenced by addToMatrixAndRHS(), nodesToDOF(), ownSample(), and populateSampleIds().

◆ getNumDOFInAxis()

dim_t ripley::Rectangle::getNumDOFInAxis ( unsigned  axis) const
inlineprotectedvirtual

◆ getNumElements()

dim_t ripley::Rectangle::getNumElements ( ) const
inlineprotectedvirtual

returns the number of elements per MPI rank

Implements ripley::RipleyDomain.

Referenced by getOwnerVector(), ripley::MultiRectangle::populateSampleIds(), populateSampleIds(), and setToSize().

◆ getNumElementsPerDim()

virtual const dim_t* ripley::Rectangle::getNumElementsPerDim ( ) const
inlinevirtual

returns the number of elements per MPI rank in each dimension

Implements ripley::RipleyDomain.

Referenced by ripley::MultiRectangle::interpolateElementsToElementsCoarser(), and ripley::MultiRectangle::validateInterpolationAcross().

◆ getNumFaceElements()

dim_t ripley::Rectangle::getNumFaceElements ( ) const
inlineprotectedvirtual

returns the number of face elements on current MPI rank

Implements ripley::RipleyDomain.

Referenced by getOwnerVector(), ripley::MultiRectangle::populateSampleIds(), and populateSampleIds().

◆ getNumFacesPerBoundary()

virtual const dim_t* ripley::Rectangle::getNumFacesPerBoundary ( ) const
inlinevirtual

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

Implements ripley::RipleyDomain.

◆ getNumNodes()

dim_t ripley::Rectangle::getNumNodes ( ) const
inlineprotectedvirtual

◆ getNumNodesPerDim()

virtual const dim_t* ripley::Rectangle::getNumNodesPerDim ( ) const
inlinevirtual

returns the number of nodes per MPI rank in each dimension

Implements ripley::RipleyDomain.

Referenced by ripley::MultiRectangle::interpolateNodesToNodesFiner().

◆ getNumSubdivisionsPerDim()

virtual const int* ripley::Rectangle::getNumSubdivisionsPerDim ( ) const
inlinevirtual

returns the number of spatial subdivisions in each dimension

Implements ripley::RipleyDomain.

Referenced by ripley::MultiRectangle::validateInterpolationAcross().

◆ getOwnerVector()

RankVector ripley::Rectangle::getOwnerVector ( int  fsType) const
virtual

returns a vector of rank numbers where vec[i]=n means that rank n 'owns' element/face element i.

Implements ripley::RipleyDomain.

Reimplemented in ripley::MultiRectangle.

References ripley::Elements, ripley::FaceElements, getNumElements(), getNumFaceElements(), m_faceCount, ripley::RipleyDomain::m_mpiInfo, m_NE, m_NX, ripley::ReducedElements, and ripley::ReducedFaceElements.

Referenced by ripley::MultiRectangle::getOwnerVector().

◆ interpolateNodesOnElements()

void ripley::Rectangle::interpolateNodesOnElements ( escript::Data out,
const escript::Data in,
bool  reduced 
) const
protectedvirtual

◆ interpolateNodesOnFaces()

void ripley::Rectangle::interpolateNodesOnFaces ( escript::Data out,
const escript::Data in,
bool  reduced 
) const
protectedvirtual

◆ nodesToDOF()

void ripley::Rectangle::nodesToDOF ( escript::Data out,
const escript::Data in 
) const
protectedvirtual

◆ operator==()

bool ripley::Rectangle::operator== ( const escript::AbstractDomain other) const
virtual

equality operator

Reimplemented from ripley::RipleyDomain.

Reimplemented in ripley::MultiRectangle.

References m_gNE, m_length, m_NX, and m_origin.

◆ ownSample()

bool ripley::Rectangle::ownSample ( int  fsType,
index_t  id 
) const
virtual

◆ populateDofMap()

void ripley::Rectangle::populateDofMap ( )
protectedvirtual

◆ populateSampleIds()

void ripley::Rectangle::populateSampleIds ( )
protectedvirtual

◆ Print_Mesh_Info()

void ripley::Rectangle::Print_Mesh_Info ( const bool  full = false) const
virtual

writes information about the mesh to standard output

Parameters
fullwhether to print additional data

Reimplemented from ripley::RipleyDomain.

References getLocalCoordinate(), getNumNodes(), m_NN, m_nodeId, and ripley::RipleyDomain::Print_Mesh_Info().

◆ randomFill()

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

returns a Data object filled with random data passed through filter.

Implements escript::AbstractDomain.

Referenced by interpolateNodesOnFaces().

◆ randomFillWorker()

escript::Data ripley::Rectangle::randomFillWorker ( const escript::DataTypes::ShapeType shape,
long  seed,
const boost::python::tuple &  filter 
) const
protected

◆ readBinaryGrid()

void ripley::Rectangle::readBinaryGrid ( escript::Data out,
std::string  filename,
const ReaderParameters params 
) const
virtual

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

Implements ripley::RipleyDomain.

Reimplemented in ripley::MultiRectangle.

References ripley::ReaderParameters::dataType, ripley::DATATYPE_FLOAT32, ripley::DATATYPE_FLOAT64, and ripley::DATATYPE_INT32.

Referenced by ripley::MultiRectangle::readBinaryGrid().

◆ readBinaryGridFromZipped()

void ripley::Rectangle::readBinaryGridFromZipped ( escript::Data out,
std::string  filename,
const ReaderParameters params 
) const
virtual

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

Implements ripley::RipleyDomain.

Reimplemented in ripley::MultiRectangle.

References ripley::ReaderParameters::dataType, ripley::DATATYPE_FLOAT32, ripley::DATATYPE_FLOAT64, and ripley::DATATYPE_INT32.

Referenced by ripley::MultiRectangle::readBinaryGridFromZipped().

◆ readBinaryGridImpl()

template<typename ValueType >
void ripley::Rectangle::readBinaryGridImpl ( escript::Data out,
const std::string &  filename,
const ReaderParameters params 
) const
protected

◆ readNcGrid()

void ripley::Rectangle::readNcGrid ( escript::Data out,
std::string  filename,
std::string  varname,
const ReaderParameters params 
) const
virtual

◆ setToNormal()

void ripley::Rectangle::setToNormal ( escript::Data out) const
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 ripley::RipleyDomain.

References ripley::FaceElements, escript::Data::getFunctionSpace(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), m_faceOffset, m_NE, ripley::ReducedFaceElements, and escript::Data::requireWrite().

◆ setToSize()

void ripley::Rectangle::setToSize ( escript::Data out) const
virtual

◆ write()

void ripley::Rectangle::write ( const std::string &  filename) const
virtual

writes the current mesh to a file with the given name

Parameters
filenameThe name of the file to write to

Implements ripley::RipleyDomain.

◆ writeBinaryGrid()

void ripley::Rectangle::writeBinaryGrid ( const escript::Data in,
std::string  filename,
int  byteOrder,
int  dataType 
) const
virtual

writes a Data object to a file in raw binary format

Implements ripley::RipleyDomain.

Reimplemented in ripley::MultiRectangle.

References ripley::DATATYPE_FLOAT32, ripley::DATATYPE_FLOAT64, and ripley::DATATYPE_INT32.

Referenced by ripley::MultiRectangle::writeBinaryGrid().

◆ writeBinaryGridImpl()

template<typename ValueType >
void ripley::Rectangle::writeBinaryGridImpl ( const escript::Data in,
const std::string &  filename,
int  byteOrder 
) const
protected

Friends And Related Function Documentation

◆ DefaultAssembler2D

template<class Scalar >
friend class DefaultAssembler2D
friend

◆ LameAssembler2D

friend class LameAssembler2D
friend

Referenced by createAssembler().

◆ WaveAssembler2D

friend class WaveAssembler2D
friend

Referenced by createAssembler().

Member Data Documentation

◆ m_dofId

IndexVector ripley::Rectangle::m_dofId
protected

vector of sample reference identifiers

Referenced by borrowSampleReferenceIDs(), nodesToDOF(), ripley::MultiRectangle::populateDofMap(), and populateSampleIds().

◆ m_dofMap

IndexVector ripley::Rectangle::m_dofMap
protected

◆ m_dx

double ripley::Rectangle::m_dx[2]
protected

◆ m_elementId

IndexVector ripley::Rectangle::m_elementId
protected

◆ m_faceCount

dim_t ripley::Rectangle::m_faceCount[4]
protected

number of face elements per edge (left, right, bottom, top)

Referenced by getOwnerVector(), ripley::MultiRectangle::MultiRectangle(), ownSample(), ripley::MultiRectangle::populateSampleIds(), and populateSampleIds().

◆ m_faceId

IndexVector ripley::Rectangle::m_faceId
protected

◆ m_faceOffset

IndexVector ripley::Rectangle::m_faceOffset
protected

faceOffset[i]=-1 if face i is not an external face, otherwise it is the index of that face (where i: 0=left, 1=right, 2=bottom, 3=top)

Referenced by assembleGradient(), interpolateNodesOnFaces(), ripley::MultiRectangle::populateSampleIds(), populateSampleIds(), setToNormal(), and setToSize().

◆ m_gNE

dim_t ripley::Rectangle::m_gNE[2]
protected

◆ m_length

double ripley::Rectangle::m_length[2]
protected

◆ m_NE

dim_t ripley::Rectangle::m_NE[2]
protected

◆ m_NN

dim_t ripley::Rectangle::m_NN[2]
protected

◆ m_nodeDistribution

IndexVector ripley::Rectangle::m_nodeDistribution
protected

◆ m_nodeId

IndexVector ripley::Rectangle::m_nodeId
protected

◆ m_NX

int ripley::Rectangle::m_NX[2]
protected

◆ m_offset

dim_t ripley::Rectangle::m_offset[2]
protected

◆ m_origin

double ripley::Rectangle::m_origin[2]
protected

◆ m_ownNE

dim_t ripley::Rectangle::m_ownNE[2]
protected

number of own elements for this rank in each dimension

Referenced by assembleGradient(), ripley::MultiRectangle::MultiRectangle(), Rectangle(), and ripley::MultiRectangle::validateInterpolationAcross().


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