escript
Revision_4925
|
Brick is the 3-dimensional implementation of a RipleyDomain. More...
#include <Brick.h>
Public Member Functions | |
Brick (int n0, int n1, int n2, double x0, double y0, double z0, double x1, double y1, double z1, int d0=-1, int d1=-1, int d2=-1, const std::vector< double > &points=std::vector< double >(), const std::vector< int > &tags=std::vector< int >(), const simap_t &tagnamestonums=simap_t()) | |
creates a hexagonal mesh with n0 x n1 x n2 elements over the brick [x0,x1] x [y0,y1] x [z0,z1]. More... | |
~Brick () | |
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... | |
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 ¶ms) const |
virtual void | readBinaryGrid (escript::Data &out, std::string filename, const ReaderParameters ¶ms) const |
virtual void | writeBinaryGrid (const escript::Data &in, std::string filename, int byteOrder, int dataType) const |
const int * | borrowSampleReferenceIDs (int fsType) const |
returns the reference number of the given sample number 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 int | 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 int * | getNumNodesPerDim () const |
returns the number of nodes per MPI rank in each dimension More... | |
virtual const int * | getNumElementsPerDim () const |
returns the number of elements per MPI rank in each dimension More... | |
virtual const int * | getNumFacesPerBoundary () const |
returns the number of face elements in the order (left,right,bottom,top,front,back) 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 (int 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... | |
![]() | |
RipleyDomain (dim_t dim) | |
Constructor with number of dimensions. Allocates MPI info structure. More... | |
~RipleyDomain () | |
Destructor. 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... | |
unsigned int | 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, int > | 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, int 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. 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 (const int fsType, const 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 (const 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 int solver, const int preconditioner, const int package, const bool symmetry) 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 (const int solver, const int preconditioner, const int package, const 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 | addPDEToSystem (escript::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 rhs More... | |
virtual void | addToSystem (escript::AbstractSystemMatrix &mat, escript::Data &rhs, std::map< std::string, escript::Data > data) 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, boost::python::list data) const |
a wrapper for addToSystem that allows calling from Python 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 rhs More... | |
virtual void | addToRHS (escript::Data &rhs, std::map< std::string, escript::Data > data) const |
adds a PDE onto rhs, used for custom solvers with varying arguments counts and so on More... | |
virtual void | addToRHSFromPython (escript::Data &rhs, boost::python::list data) const |
a wrapper for addToRHS that allows calling from Python 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 |
adds a PDE onto a transport problem More... | |
virtual escript::ASM_ptr | newSystemMatrix (const int row_blocksize, const escript::FunctionSpace &row_functionspace, const int column_blocksize, const escript::FunctionSpace &column_functionspace, const int type) const |
creates a stiffness matrix and initializes it with zeros More... | |
virtual escript::ATP_ptr | newTransportProblem (const int blocksize, const escript::FunctionSpace &functionspace, const int type) const |
creates a transport problem More... | |
virtual bool | supportsFilter (const boost::python::tuple &t) const |
true if this domain can handle the specified tuple of filter options. More... | |
void | setAssemblerFromPython (std::string type, boost::python::list options) |
![]() | |
AbstractContinuousDomain () | |
Default constructor for AbstractContinuousDomain. More... | |
virtual | ~AbstractContinuousDomain () |
Destructor for AbstractContinuousDomain. More... | |
![]() | |
Domain_ptr | getPtr () |
Returns smart pointer which is managing this object. If one does not exist yet it creates one. More... | |
const_Domain_ptr | getPtr () const |
AbstractDomain () | |
Default constructor for AbstractDomain. More... | |
virtual | ~AbstractDomain () |
Destructor for AbstractDomain. More... | |
virtual void | write (const std::string &filename) const |
Writes the domain to an external file filename. 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 | insertNeighbourNodes (IndexVector &index, index_t node) const |
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 paso::SystemMatrixPattern_ptr | getPattern (bool reducedRowOrder, bool reducedColOrder) const |
returns the Paso system matrix pattern 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 void | dofToNodes (escript::Data &out, const escript::Data &in) const |
converts data on degrees of freedom in 'in' to nodes in 'out' More... | |
virtual int | getDofOfNode (int node) const |
void | setAssembler (std::string type, std::map< std::string, escript::Data > constants) |
![]() | |
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 |
paso::Pattern_ptr | createPasoPattern (const IndexVector &ptr, const IndexVector &index, const dim_t M, const dim_t N) const |
allocates and returns a Paso pattern structure More... | |
paso::Pattern_ptr | createMainPattern () const |
creates the pattern for the main block of the system matrix More... | |
void | createCouplePatterns (const std::vector< IndexVector > &colIndices, const std::vector< IndexVector > &rowIndices, const dim_t N, paso::Pattern_ptr &colPattern, paso::Pattern_ptr &rowPattern) const |
void | addToSystemMatrix (paso::SystemMatrix_ptr in, const IndexVector &nodes_Eq, dim_t num_Eq, const IndexVector &nodes_Sol, dim_t num_Sol, const DoubleVector &array) const |
void | addPoints (int numPoints, const double *points_ptr, const int *tags_ptr) |
Private Member Functions | |
void | populateSampleIds () |
void | createPattern () |
void | addToMatrixAndRHS (paso::SystemMatrix_ptr S, escript::Data &F, const DoubleVector &EM_S, const DoubleVector &EM_F, bool addS, bool addF, int firstNode, int nEq=1, int nComp=1) const |
template<typename ValueType > | |
void | readBinaryGridImpl (escript::Data &out, const std::string &filename, const ReaderParameters ¶ms) const |
template<typename ValueType > | |
void | readBinaryGridZippedImpl (escript::Data &out, const std::string &filename, const ReaderParameters ¶ms) const |
template<typename ValueType > | |
void | writeBinaryGridImpl (const escript::Data &in, const std::string &filename, int byteOrder) const |
int | findNode (const double *coords) const |
virtual escript::Data | randomFillWorker (const escript::DataTypes::ShapeType &shape, long seed, const boost::python::tuple &filter) const |
Private Attributes | |
dim_t | m_gNE [3] |
total number of elements in each dimension More... | |
double | m_origin [3] |
origin of domain More... | |
double | m_length [3] |
side lengths of domain More... | |
double | m_dx [3] |
grid spacings / cell sizes of domain More... | |
int | m_NX [3] |
number of spatial subdivisions More... | |
dim_t | m_NE [3] |
number of elements for this rank in each dimension including shared More... | |
dim_t | m_ownNE [3] |
number of own elements for this rank in each dimension More... | |
dim_t | m_NN [3] |
number of nodes for this rank in each dimension More... | |
dim_t | m_offset [3] |
first node on this rank is at (offset0,offset1,offset2) in global mesh More... | |
int | m_faceCount [6] |
number of face elements per edge (left, right, bottom, top, front, back) 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 |
paso::Connector_ptr | m_connector |
paso::SystemMatrixPattern_ptr | m_pattern |
Friends | |
class | DefaultAssembler3D |
class | WaveAssembler3D |
class | LameAssembler3D |
Additional Inherited Members | |
![]() | |
typedef int | StatusType |
typedef struct ValueBuffer | ValueBuffer |
typedef std::map< int, ValueBuffer > | BufferMapType |
![]() | |
dim_t | m_numDim |
StatusType | m_status |
Esys_MPIInfo * | m_mpiInfo |
TagMap | m_tagMap |
IndexVector | m_nodeTags |
IndexVector | m_nodeTagsInUse |
IndexVector | m_elementTags |
IndexVector | m_elementTagsInUse |
IndexVector | m_faceTags |
IndexVector | m_faceTagsInUse |
AbstractAssembler * | assembler |
std::vector< struct DiracPoint > | m_diracPoints |
IndexVector | m_diracPointNodeIDs |
assembler_t | assembler_type |
Brick is the 3-dimensional implementation of a RipleyDomain.
ripley::Brick::Brick | ( | int | n0, |
int | n1, | ||
int | n2, | ||
double | x0, | ||
double | y0, | ||
double | z0, | ||
double | x1, | ||
double | y1, | ||
double | z1, | ||
int | d0 = -1 , |
||
int | d1 = -1 , |
||
int | d2 = -1 , |
||
const std::vector< double > & | points = std::vector<double>() , |
||
const std::vector< int > & | tags = std::vector<int>() , |
||
const simap_t & | tagnamestonums = simap_t() |
||
) |
creates a hexagonal mesh with n0 x n1 x n2 elements over the brick [x0,x1] x [y0,y1] x [z0,z1].
n0,n1,n2 | number of elements in each dimension |
x0,y0,z0,x1,y1,z1 | coordinates of corner nodes of the brick |
d0,d1,d2 | number of subdivisions in each dimension |
References ripley::RipleyDomain::addPoints(), ripley::RipleyDomain::assembler, createPattern(), DefaultAssembler3D, factorise(), ripley::indexOfMax(), paso::util::l2(), m_dx, m_gNE, m_length, ripley::RipleyDomain::m_mpiInfo, m_NE, m_NN, m_NX, m_offset, m_origin, m_ownNE, populateSampleIds(), Esys_MPIInfo::rank, ripley::RipleyDomain::setTagMap(), and Esys_MPIInfo::size.
ripley::Brick::~Brick | ( | ) |
Destructor.
References ripley::RipleyDomain::assembler.
|
private |
References ripley::RipleyDomain::addToSystemMatrix(), getNumDOF(), escript::Data::getSampleDataRW(), INDEX2, m_dofMap, and m_NN.
Referenced by ripley::WaveAssembler3D::assemblePDESystem().
|
protectedvirtual |
populates the data object 'arg' with the node coordinates
Implements ripley::RipleyDomain.
References escript::Data::getDataC(), getLocalCoordinate(), getNumNodes(), escript::Data::getSampleDataRW(), isDataPointShapeEqual(), m_NN, ripley::RipleyDomain::m_numDim, numSamplesEqual(), and escript::Data::requireWrite().
|
protectedvirtual |
computes the gradient of 'in' and puts the result in 'out'
Implements ripley::RipleyDomain.
References ripley::Elements, ripley::FaceElements, escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), INDEX2, INDEX3, m_dx, m_faceOffset, m_NE, m_NN, ripley::ReducedElements, ripley::ReducedFaceElements, and escript::Data::requireWrite().
|
protectedvirtual |
copies the integrals of the function defined by 'arg' into 'integrals'
Implements ripley::RipleyDomain.
References escript::Data::actsExpanded(), ripley::Elements, ripley::FaceElements, escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), escript::Data::getSampleDataRO(), escript::FunctionSpace::getTypeCode(), INDEX2, INDEX3, m_dx, m_faceOffset, m_NE, m_offset, m_ownNE, ripley::ReducedElements, and ripley::ReducedFaceElements.
|
virtual |
returns the reference number of the given sample number
fsType | The function space type |
Implements ripley::RipleyDomain.
References ripley::DegreesOfFreedom, ripley::Elements, ripley::FaceElements, ripley::RipleyDomain::m_diracPointNodeIDs, m_dofId, m_elementId, m_faceId, m_nodeId, ripley::Nodes, ripley::Points, ripley::ReducedDegreesOfFreedom, ripley::ReducedElements, ripley::ReducedFaceElements, and ripley::ReducedNodes.
|
private |
References ripley::RipleyDomain::createCouplePatterns(), ripley::RipleyDomain::createMainPattern(), doublyLink(), getNumNodes(), m_connector, m_dofMap, m_gNE, ripley::RipleyDomain::m_mpiInfo, m_NN, m_nodeDistribution, m_NX, m_offset, m_pattern, MATRIX_FORMAT_DEFAULT, paso::nz, and Esys_MPIInfo::rank.
Referenced by Brick().
|
protectedvirtual |
converts data on degrees of freedom in 'in' to nodes in 'out'
Implements ripley::RipleyDomain.
References paso::util::copy(), escript::Data::getDataPointSize(), getNumDOF(), getNumNodes(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), m_connector, m_dofMap, and escript::Data::requireWrite().
|
virtual |
dumps the mesh to a file with the given name
filename | The name of the output file |
Implements ripley::RipleyDomain.
References Esys_MPIInfo::comm, getDescription(), getLocalCoordinate(), getNumElementsPerDim(), getNumNodesPerDim(), m_elementId, ripley::RipleyDomain::m_mpiInfo, m_NN, m_nodeId, Esys_MPIInfo::rank, and Esys_MPIInfo::size.
|
privatevirtual |
Implements ripley::RipleyDomain.
References INDEX3, m_dx, m_length, m_NE, ripley::RipleyDomain::m_numDim, m_offset, and m_origin.
|
virtual |
|
inlineprotectedvirtual |
Implements ripley::RipleyDomain.
References m_dofMap.
|
inlinevirtual |
returns the tuple (origin, spacing, number_of_elements)
Implements ripley::RipleyDomain.
|
inlinevirtual |
returns the index'th coordinate value in given dimension for this rank
Implements ripley::RipleyDomain.
References EsysAssert, m_dx, m_NN, m_offset, and m_origin.
Referenced by assembleCoordinates(), dump(), and Print_Mesh_Info().
|
inlinevirtual |
returns the node distribution vector
Implements ripley::RipleyDomain.
|
inlinevirtual |
returns the number of data points summed across all MPI processes
Implements ripley::RipleyDomain.
References m_gNE.
Referenced by populateSampleIds().
|
inlineprotectedvirtual |
returns the number of degrees of freedom per MPI rank
Implements ripley::RipleyDomain.
Referenced by addToMatrixAndRHS(), dofToNodes(), ownSample(), and populateSampleIds().
|
inlineprotectedvirtual |
returns the number of elements per MPI rank
Implements ripley::RipleyDomain.
References m_NE.
Referenced by populateSampleIds(), and setToSize().
|
inlinevirtual |
returns the number of elements per MPI rank in each dimension
Implements ripley::RipleyDomain.
Referenced by dump().
|
inlineprotectedvirtual |
returns the number of face elements on current MPI rank
Implements ripley::RipleyDomain.
References m_faceCount.
Referenced by populateSampleIds().
|
inlinevirtual |
returns the number of face elements in the order (left,right,bottom,top,front,back) on current MPI rank
Implements ripley::RipleyDomain.
|
inlineprotectedvirtual |
returns the number of nodes per MPI rank
Implements ripley::RipleyDomain.
References m_NN.
Referenced by assembleCoordinates(), createPattern(), dofToNodes(), populateSampleIds(), and Print_Mesh_Info().
|
inlinevirtual |
returns the number of nodes per MPI rank in each dimension
Implements ripley::RipleyDomain.
Referenced by dump().
|
inlinevirtual |
returns the number of spatial subdivisions in each dimension
Implements ripley::RipleyDomain.
|
inlineprotectedvirtual |
|
protectedvirtual |
inserts the nodes that share an element with 'node' into 'index' and returns the number of these neighbours
Implements ripley::RipleyDomain.
|
protectedvirtual |
interpolates data on nodes in 'in' onto (reduced) elements in 'out'
Implements ripley::RipleyDomain.
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, m_NE, m_NN, and escript::Data::requireWrite().
|
protectedvirtual |
interpolates data on nodes in 'in' onto (reduced) face elements in 'out'
Implements ripley::RipleyDomain.
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, m_faceOffset, m_NE, m_NN, and escript::Data::requireWrite().
|
protectedvirtual |
converts data on nodes in 'in' to degrees of freedom in 'out'
Implements ripley::RipleyDomain.
References paso::util::copy(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), m_gNE, m_NN, m_NX, m_offset, and escript::Data::requireWrite().
|
virtual |
equality operator
Reimplemented from ripley::RipleyDomain.
|
virtual |
returns true if this rank owns the sample id.
Implements ripley::RipleyDomain.
References ripley::DegreesOfFreedom, ripley::Elements, ripley::FaceElements, ripley::RipleyDomain::getMPISize(), getNumDOF(), m_dofMap, m_faceCount, m_NE, m_NN, ripley::Nodes, ripley::ReducedDegreesOfFreedom, ripley::ReducedElements, ripley::ReducedFaceElements, and ripley::ReducedNodes.
|
private |
References ripley::Elements, ripley::FaceElements, getNumDataPointsGlobal(), getNumDOF(), getNumElements(), getNumFaceElements(), getNumNodes(), globalNodeId, m_dofId, m_elementId, ripley::RipleyDomain::m_elementTags, m_faceCount, m_faceId, m_faceOffset, ripley::RipleyDomain::m_faceTags, m_gNE, ripley::RipleyDomain::m_mpiInfo, m_NE, m_NN, m_nodeDistribution, m_nodeId, ripley::RipleyDomain::m_nodeTags, m_NX, m_offset, ripley::Nodes, Esys_MPIInfo::rank, ripley::RipleyDomain::setTagMap(), Esys_MPIInfo::size, and ripley::RipleyDomain::updateTagsInUse().
Referenced by Brick().
|
virtual |
writes information about the mesh to standard output
full | whether to print additional data |
Reimplemented from ripley::RipleyDomain.
References getLocalCoordinate(), getNumNodes(), m_NN, m_nodeId, and ripley::RipleyDomain::Print_Mesh_Info().
|
virtual |
Returns a Data object filled with random data passed through filter.
Implements escript::AbstractDomain.
References escript::Data::getFunctionSpace(), escript::DataTypes::noValues(), and randomFillWorker().
|
privatevirtual |
References Esys_MPIInfo::comm, Block::copyAllToBuffer(), Block::copyUsedFromBuffer(), message::destbuffid, message::destID, BlockGrid::generateInNeighbours(), BlockGrid::generateOutNeighbours(), Block::getBuffSize(), ripley::RipleyDomain::getContinuousFunctionCode(), escript::Data::getExpandedVectorReference(), Block::getInBuffer(), Block::getOutBuffer(), escript::AbstractDomain::getPtr(), ripley::RipleyDomain::m_mpiInfo, m_NN, m_NX, MPI_DOUBLE, escript::DataTypes::noValues(), esysUtils::randomFillArray(), Esys_MPIInfo::rank, escript::DataTypes::scalarShape, Block::setUsed(), message::sourceID, message::srcbuffid, and message::tag.
Referenced by randomFill().
|
virtual |
Implements ripley::RipleyDomain.
References ripley::ReaderParameters::dataType, ripley::DATATYPE_FLOAT32, ripley::DATATYPE_FLOAT64, and ripley::DATATYPE_INT32.
|
private |
References ripley::byte_swap32(), ripley::ReaderParameters::byteOrder, ripley::BYTEORDER_NATIVE, ripley::Elements, ripley::ReaderParameters::first, escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), escript::Data::getNumDataPointsPerSample(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), m_NE, m_NN, m_offset, ripley::ReaderParameters::multiplier, ripley::Nodes, ripley::ReaderParameters::numValues, ripley::ReducedElements, and escript::Data::requireWrite().
|
private |
|
virtual |
Implements ripley::RipleyDomain.
References ripley::Elements, ripley::ReaderParameters::first, escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), escript::Data::getNumDataPointsPerSample(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), m_NE, m_NN, m_offset, ripley::ReaderParameters::multiplier, ripley::Nodes, ripley::ReaderParameters::numValues, ripley::ReducedElements, escript::Data::requireWrite(), and ripley::ReaderParameters::reverse.
|
protectedvirtual |
Reimplemented from ripley::RipleyDomain.
References ripley::RipleyDomain::assembler, ripley::RipleyDomain::assembler_type, ripley::DEFAULT_ASSEMBLER, ripley::LAME_ASSEMBLER, LameAssembler3D, m_dx, m_NE, m_NN, m_NX, ripley::WAVE_ASSEMBLER, and WaveAssembler3D.
|
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(), INDEX2, m_faceOffset, m_NE, ripley::ReducedFaceElements, and escript::Data::requireWrite().
|
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 ripley::RipleyDomain.
References ripley::Elements, ripley::FaceElements, escript::Data::getFunctionSpace(), escript::Data::getNumDataPointsPerSample(), getNumElements(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), INDEX2, m_dx, m_faceOffset, m_NE, ripley::ReducedElements, ripley::ReducedFaceElements, and escript::Data::requireWrite().
|
virtual |
Implements ripley::RipleyDomain.
References ripley::DATATYPE_FLOAT32, ripley::DATATYPE_FLOAT64, and ripley::DATATYPE_INT32.
|
private |
References ripley::byte_swap32(), ripley::BYTEORDER_NATIVE, esysUtils::FileWriter::close(), ripley::Elements, escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), escript::Data::getNumDataPointsPerSample(), escript::Data::getSampleDataRO(), escript::FunctionSpace::getTypeCode(), m_gNE, m_NE, m_NN, m_offset, ripley::RipleyDomain::MPIBarrier(), ripley::Nodes, esysUtils::FileWriter::openFile(), ripley::ReducedElements, and esysUtils::FileWriter::writeAt().
|
friend |
Referenced by Brick().
|
friend |
Referenced by setAssembler().
|
friend |
Referenced by setAssembler().
|
private |
Referenced by createPattern(), and dofToNodes().
|
private |
vector of sample reference identifiers
Referenced by borrowSampleReferenceIDs(), and populateSampleIds().
|
private |
Referenced by addToMatrixAndRHS(), createPattern(), dofToNodes(), getDofOfNode(), and ownSample().
|
private |
grid spacings / cell sizes of domain
Referenced by assembleGradient(), assembleIntegrate(), Brick(), findNode(), getGridParameters(), getLocalCoordinate(), setAssembler(), and setToSize().
|
private |
Referenced by borrowSampleReferenceIDs(), dump(), and populateSampleIds().
|
private |
number of face elements per edge (left, right, bottom, top, front, back)
Referenced by getNumFaceElements(), ownSample(), and populateSampleIds().
|
private |
Referenced by borrowSampleReferenceIDs(), and populateSampleIds().
|
private |
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, 4=front, 5=back)
Referenced by assembleGradient(), assembleIntegrate(), interpolateNodesOnFaces(), populateSampleIds(), setToNormal(), and setToSize().
|
private |
total number of elements in each dimension
Referenced by Brick(), createPattern(), getGridParameters(), getNumDataPointsGlobal(), getNumDOF(), insertNeighbourNodes(), nodesToDOF(), operator==(), populateSampleIds(), and writeBinaryGridImpl().
|
private |
side lengths of domain
Referenced by Brick(), findNode(), and operator==().
|
private |
number of elements for this rank in each dimension including shared
Referenced by assembleGradient(), assembleIntegrate(), Brick(), findNode(), getNumElements(), interpolateNodesOnElements(), interpolateNodesOnFaces(), ownSample(), populateSampleIds(), readBinaryGridImpl(), readNcGrid(), setAssembler(), setToNormal(), setToSize(), and writeBinaryGridImpl().
|
private |
number of nodes for this rank in each dimension
Referenced by addToMatrixAndRHS(), assembleCoordinates(), assembleGradient(), Brick(), createPattern(), dump(), getLocalCoordinate(), getNumNodes(), interpolateNodesOnElements(), interpolateNodesOnFaces(), nodesToDOF(), ownSample(), populateSampleIds(), Print_Mesh_Info(), randomFillWorker(), readBinaryGridImpl(), readNcGrid(), setAssembler(), and writeBinaryGridImpl().
|
private |
Referenced by createPattern(), and populateSampleIds().
|
private |
Referenced by borrowSampleReferenceIDs(), dump(), populateSampleIds(), and Print_Mesh_Info().
|
private |
number of spatial subdivisions
Referenced by Brick(), createPattern(), getNumDOF(), insertNeighbourNodes(), nodesToDOF(), operator==(), populateSampleIds(), randomFillWorker(), and setAssembler().
|
private |
first node on this rank is at (offset0,offset1,offset2) in global mesh
Referenced by assembleIntegrate(), Brick(), createPattern(), findNode(), getLocalCoordinate(), nodesToDOF(), populateSampleIds(), readBinaryGridImpl(), readNcGrid(), and writeBinaryGridImpl().
|
private |
origin of domain
Referenced by Brick(), findNode(), getGridParameters(), getLocalCoordinate(), and operator==().
|
private |
number of own elements for this rank in each dimension
Referenced by assembleIntegrate(), and Brick().
|
private |
Referenced by createPattern(), and getPattern().