Escript
Revision_4320
|
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) | |
creates a hexagonal mesh with n0 x n1 x n2 elements over the brick [x0,x1] x [y0,y1] x [z0,z1]. | |
~Brick () | |
Destructor. | |
virtual std::string | getDescription () const |
returns a description for this domain | |
virtual bool | operator== (const escript::AbstractDomain &other) const |
equality operator | |
void | dump (const std::string &filename) const |
dumps the mesh to a file with the given name | |
virtual void | readBinaryGrid (escript::Data &out, std::string filename, const std::vector< int > &first, const std::vector< int > &numValues, const std::vector< int > &multiplier) const |
virtual void | readNcGrid (escript::Data &out, std::string filename, std::string varname, const std::vector< int > &first, const std::vector< int > &numValues, const std::vector< int > &multiplier) const |
const int * | borrowSampleReferenceIDs (int fsType) const |
returns the reference number of the given sample number | |
virtual bool | ownSample (int fsType, index_t id) const |
returns true if this rank owns the sample id. | |
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. | |
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. | |
virtual int | getNumDataPointsGlobal () const |
returns the number of data points summed across all MPI processes | |
virtual void | Print_Mesh_Info (const bool full=false) const |
writes information about the mesh to standard output | |
virtual IndexVector | getNumNodesPerDim () const |
returns the number of nodes per MPI rank in each dimension | |
virtual IndexVector | getNumElementsPerDim () const |
returns the number of elements per MPI rank in each dimension | |
virtual IndexVector | getNumFacesPerBoundary () const |
returns the number of face elements in the order (left,right,bottom,top,[front,back]) on current MPI rank | |
virtual IndexVector | getNodeDistribution () const |
returns the node distribution vector | |
virtual IndexVector | getNumSubdivisionsPerDim () const |
returns the number of spatial subdivisions in each dimension | |
virtual std::pair< double, double > | getFirstCoordAndSpacing (dim_t dim) const |
returns the first coordinate value and the node spacing along given dimension as a pair | |
![]() | |
RipleyDomain (dim_t dim) | |
Constructor with number of dimensions. Allocates MPI info structure. | |
~RipleyDomain () | |
Destructor. | |
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 | |
unsigned int | 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 |
inequality operator | |
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. | |
int | getTagFromSampleNo (int fsType, int 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. | |
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 |
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 |
determines whether interpolation from source to target is possible | |
virtual escript::Data | getX () const |
returns locations in the FEM 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 (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 | |
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 (const 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 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 | |
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 | |
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 domain. | |
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 | |
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 | |
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 | |
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 | |
virtual escript::ATP_ptr | newTransportProblem (const int blocksize, const escript::FunctionSpace &functionspace, const int type) const |
creates a transport problem | |
![]() | |
AbstractContinuousDomain () | |
Default constructor for AbstractContinuousDomain. | |
virtual | ~AbstractContinuousDomain () |
Destructor for AbstractContinuousDomain. | |
![]() | |
Domain_ptr | getPtr () |
Returns smart pointer which is managing this object. If one does not exist yet it creates one. | |
const_Domain_ptr | getPtr () const |
AbstractDomain () | |
Default constructor for AbstractDomain. | |
virtual | ~AbstractDomain () |
Destructor for AbstractDomain. | |
virtual void | write (const std::string &filename) const |
Writes the domain to an external file filename. | |
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. |
Protected Member Functions | |
virtual dim_t | getNumNodes () const |
returns the number of nodes per MPI rank | |
virtual dim_t | getNumElements () const |
returns the number of elements per MPI rank | |
virtual dim_t | getNumFaceElements () const |
returns the number of face elements on current MPI rank | |
virtual dim_t | getNumDOF () const |
returns the number of degrees of freedom per MPI rank | |
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 | |
virtual void | assembleGradient (escript::Data &out, escript::Data &in) const |
computes the gradient of 'in' and puts the result in 'out' | |
virtual void | assembleIntegrate (std::vector< double > &integrals, escript::Data &arg) const |
copies the integrals of the function defined by 'arg' into 'integrals' | |
virtual void | assemblePDESingle (Paso_SystemMatrix *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 |
virtual void | assemblePDEBoundarySingle (Paso_SystemMatrix *mat, escript::Data &rhs, const escript::Data &d, const escript::Data &y) const |
virtual void | assemblePDESingleReduced (Paso_SystemMatrix *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 |
virtual void | assemblePDEBoundarySingleReduced (Paso_SystemMatrix *mat, escript::Data &rhs, const escript::Data &d, const escript::Data &y) const |
virtual void | assemblePDESystem (Paso_SystemMatrix *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 |
virtual void | assemblePDEBoundarySystem (Paso_SystemMatrix *mat, escript::Data &rhs, const escript::Data &d, const escript::Data &y) const |
virtual void | assemblePDESystemReduced (Paso_SystemMatrix *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 |
virtual void | assemblePDEBoundarySystemReduced (Paso_SystemMatrix *mat, escript::Data &rhs, const escript::Data &d, const escript::Data &y) const |
virtual Paso_SystemMatrixPattern * | getPattern (bool reducedRowOrder, bool reducedColOrder) const |
returns the Paso system matrix pattern | |
virtual void | interpolateNodesOnElements (escript::Data &out, escript::Data &in, bool reduced) const |
interpolates data on nodes in 'in' onto (reduced) elements in 'out' | |
virtual void | interpolateNodesOnFaces (escript::Data &out, escript::Data &in, bool reduced) const |
interpolates data on nodes in 'in' onto (reduced) face elements in 'out' | |
virtual void | nodesToDOF (escript::Data &out, escript::Data &in) const |
converts data on nodes in 'in' to degrees of freedom in 'out' | |
virtual void | dofToNodes (escript::Data &out, escript::Data &in) const |
converts data on degrees of freedom in 'in' to nodes in 'out' | |
![]() | |
void | copyData (escript::Data &out, escript::Data &in) const |
copies data in 'in' to 'out' (both must be on same function space) | |
void | averageData (escript::Data &out, escript::Data &in) const |
averages data in 'in' to 'out' (from non-reduced to reduced fs) | |
void | multiplyData (escript::Data &out, escript::Data &in) const |
copies data in 'in' to 'out' (from reduced to non-reduced fs) | |
void | updateTagsInUse (int fsType) const |
Paso_Pattern * | createPasoPattern (const IndexVector &ptr, const IndexVector &index, const dim_t M, const dim_t N) const |
allocates and returns a Paso pattern structure | |
Paso_Pattern * | createMainPattern () const |
creates the pattern for the main block of the system matrix | |
void | createCouplePatterns (const std::vector< IndexVector > &colIndices, const dim_t N, Paso_Pattern **colPattern, Paso_Pattern **rowPattern) const |
void | addToSystemMatrix (Paso_SystemMatrix *in, const IndexVector &nodes_Eq, dim_t num_Eq, const IndexVector &nodes_Sol, dim_t num_Sol, const std::vector< double > &array) const |
Private Member Functions | |
void | populateSampleIds () |
void | createPattern () |
void | addToMatrixAndRHS (Paso_SystemMatrix *S, escript::Data &F, const std::vector< double > &EM_S, const std::vector< double > &EM_F, bool addS, bool addF, index_t firstNode, dim_t nEq=1, dim_t nComp=1) const |
Private Attributes | |
dim_t | m_gNE0 |
total number of elements in each dimension | |
dim_t | m_gNE1 |
dim_t | m_gNE2 |
double | m_x0 |
location of domain | |
double | m_y0 |
double | m_z0 |
double | m_l0 |
side lengths of domain | |
double | m_l1 |
double | m_l2 |
int | m_NX |
number of spatial subdivisions | |
int | m_NY |
int | m_NZ |
dim_t | m_NE0 |
number of elements for this rank in each dimension including shared | |
dim_t | m_NE1 |
dim_t | m_NE2 |
dim_t | m_ownNE0 |
number of own elements for this rank in each dimension | |
dim_t | m_ownNE1 |
dim_t | m_ownNE2 |
dim_t | m_N0 |
number of nodes for this rank in each dimension | |
dim_t | m_N1 |
dim_t | m_N2 |
dim_t | m_offset0 |
first node on this rank is at (offset0,offset1,offset2) in global mesh | |
dim_t | m_offset1 |
dim_t | m_offset2 |
IndexVector | m_faceOffset |
IndexVector | m_dofId |
vector of sample reference identifiers | |
IndexVector | m_nodeId |
IndexVector | m_elementId |
IndexVector | m_faceId |
IndexVector | m_nodeDistribution |
IndexVector | m_dofMap |
Paso_Connector * | m_connector |
Paso_SystemMatrixPattern * | m_pattern |
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 |
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 |
||
) |
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 createPattern(), m_gNE0, m_gNE1, m_gNE2, m_l0, m_l1, m_l2, ripley::RipleyDomain::m_mpiInfo, m_N0, m_N1, m_N2, m_NE0, m_NE1, m_NE2, m_NX, m_NY, m_NZ, m_offset0, m_offset1, m_offset2, m_ownNE0, m_ownNE1, m_ownNE2, populateSampleIds(), Esys_MPIInfo::rank, and Esys_MPIInfo::size.
ripley::Brick::~Brick | ( | ) |
Destructor.
References m_connector, m_pattern, Paso_Connector_free(), and Paso_SystemMatrixPattern_free().
|
private |
References ripley::RipleyDomain::addToSystemMatrix(), getNumDOF(), escript::Data::getSampleDataRW(), INDEX2, m_dofMap, m_N0, and m_N1.
Referenced by assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), assemblePDESingle(), assemblePDESingleReduced(), assemblePDESystem(), and assemblePDESystemReduced().
|
protectedvirtual |
populates the data object 'arg' with the node coordinates
Implements ripley::RipleyDomain.
References escript::Data::getDataC(), getFirstCoordAndSpacing(), getNumNodes(), escript::Data::getSampleDataRW(), isDataPointShapeEqual(), m_N0, m_N1, m_N2, 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_faceOffset, m_gNE0, m_gNE1, m_gNE2, m_l0, m_l1, m_l2, m_N0, m_N1, m_N2, m_NE0, m_NE1, m_NE2, 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_faceOffset, m_gNE0, m_gNE1, m_gNE2, m_l0, m_l1, m_l2, m_NE0, m_NE1, m_offset0, m_offset1, m_offset2, m_ownNE0, m_ownNE1, m_ownNE2, ripley::ReducedElements, and ripley::ReducedFaceElements.
|
protectedvirtual |
assembles boundary conditions of a single PDE into the system matrix 'mat' and the right hand side 'rhs'
Implements ripley::RipleyDomain.
References escript::Data::actsExpanded(), addToMatrixAndRHS(), getSampleDataRO(), INDEX2, escript::Data::isEmpty(), m_faceOffset, m_gNE0, m_gNE1, m_gNE2, m_l0, m_l1, m_l2, m_N0, m_N1, m_N2, m_NE0, m_NE1, m_NE2, and escript::Data::requireWrite().
|
protectedvirtual |
assembles boundary conditions of a single PDE with reduced order into the system matrix 'mat' and the right hand side 'rhs'
Implements ripley::RipleyDomain.
References addToMatrixAndRHS(), getSampleDataRO(), INDEX2, escript::Data::isEmpty(), m_faceOffset, m_gNE0, m_gNE1, m_gNE2, m_l0, m_l1, m_l2, m_N0, m_N1, m_N2, m_NE0, m_NE1, m_NE2, and escript::Data::requireWrite().
|
protectedvirtual |
assembles boundary conditions of a system of PDEs into the system matrix 'mat' and the right hand side 'rhs'
Implements ripley::RipleyDomain.
References escript::Data::actsExpanded(), addToMatrixAndRHS(), escript::Data::getDataPointSize(), getSampleDataRO(), INDEX2, INDEX3, INDEX4, escript::Data::isEmpty(), Paso_SystemMatrix::logical_col_block_size, Paso_SystemMatrix::logical_row_block_size, m_faceOffset, m_gNE0, m_gNE1, m_gNE2, m_l0, m_l1, m_l2, m_N0, m_N1, m_N2, m_NE0, m_NE1, m_NE2, and escript::Data::requireWrite().
|
protectedvirtual |
assembles boundary conditions of a system of PDEs with reduced order into the system matrix 'mat' and the right hand side 'rhs'
Implements ripley::RipleyDomain.
References addToMatrixAndRHS(), escript::Data::getDataPointSize(), getSampleDataRO(), INDEX2, INDEX4, escript::Data::isEmpty(), Paso_SystemMatrix::logical_col_block_size, Paso_SystemMatrix::logical_row_block_size, m_faceOffset, m_gNE0, m_gNE1, m_gNE2, m_l0, m_l1, m_l2, m_N0, m_N1, m_N2, m_NE0, m_NE1, m_NE2, and escript::Data::requireWrite().
|
protectedvirtual |
assembles a single PDE into the system matrix 'mat' and the right hand side 'rhs'
Implements ripley::RipleyDomain.
References escript::Data::actsExpanded(), addToMatrixAndRHS(), getSampleDataRO(), INDEX2, INDEX3, escript::Data::isEmpty(), m_gNE0, m_gNE1, m_gNE2, m_l0, m_l1, m_l2, m_N0, m_N1, m_NE0, m_NE1, m_NE2, and escript::Data::requireWrite().
|
protectedvirtual |
assembles a single PDE with reduced order into the system matrix 'mat' and the right hand side 'rhs'
Implements ripley::RipleyDomain.
References addToMatrixAndRHS(), getSampleDataRO(), INDEX2, escript::Data::isEmpty(), m_gNE0, m_gNE1, m_gNE2, m_l0, m_l1, m_l2, m_N0, m_N1, m_NE0, m_NE1, m_NE2, and escript::Data::requireWrite().
|
protectedvirtual |
assembles a system of PDEs into the system matrix 'mat' and the right hand side 'rhs'
Implements ripley::RipleyDomain.
References escript::Data::actsExpanded(), addToMatrixAndRHS(), escript::Data::getDataPointSize(), getSampleDataRO(), INDEX2, INDEX3, INDEX4, INDEX5, escript::Data::isEmpty(), Paso_SystemMatrix::logical_col_block_size, Paso_SystemMatrix::logical_row_block_size, m_gNE0, m_gNE1, m_gNE2, m_l0, m_l1, m_l2, m_N0, m_N1, m_NE0, m_NE1, m_NE2, and escript::Data::requireWrite().
|
protectedvirtual |
assembles a system of PDEs with reduced order into the system matrix 'mat' and the right hand side 'rhs'
Implements ripley::RipleyDomain.
References addToMatrixAndRHS(), escript::Data::getDataPointSize(), getSampleDataRO(), INDEX2, INDEX3, INDEX4, escript::Data::isEmpty(), Paso_SystemMatrix::logical_col_block_size, Paso_SystemMatrix::logical_row_block_size, m_gNE0, m_gNE1, m_gNE2, m_l0, m_l1, m_l2, m_N0, m_N1, m_NE0, m_NE1, m_NE2, and escript::Data::requireWrite().
|
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, m_dofId, m_elementId, m_faceId, m_nodeId, ripley::Nodes, ripley::ReducedDegreesOfFreedom, ripley::ReducedElements, ripley::ReducedFaceElements, and ripley::ReducedNodes.
|
private |
References ripley::RipleyDomain::createCouplePatterns(), ripley::RipleyDomain::createMainPattern(), getNumNodes(), m_connector, m_dofMap, m_gNE0, m_gNE1, m_gNE2, ripley::RipleyDomain::m_mpiInfo, m_N0, m_N1, m_N2, m_nodeDistribution, m_NX, m_NY, m_NZ, m_offset0, m_offset1, m_offset2, m_pattern, MATRIX_FORMAT_DEFAULT, nz, Paso_Connector_alloc(), Paso_Distribution_alloc(), Paso_Distribution_free(), Paso_Pattern_free(), Paso_SharedComponents_alloc(), Paso_SharedComponents_free(), Paso_SystemMatrixPattern_alloc(), and Esys_MPIInfo::rank.
Referenced by Brick().
|
protectedvirtual |
converts data on degrees of freedom in 'in' to nodes in 'out'
Implements ripley::RipleyDomain.
References escript::Data::getDataPointSize(), getNumDOF(), getNumNodes(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), m_connector, m_dofMap, Paso_Coupler_alloc(), Paso_Coupler_finishCollect(), Paso_Coupler_free(), Paso_Coupler_startCollect(), 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(), getFirstCoordAndSpacing(), getNumElementsPerDim(), getNumNodesPerDim(), m_elementId, ripley::RipleyDomain::m_mpiInfo, m_N0, m_N1, m_N2, m_nodeId, weipa::NUM_SILO_FILES, Esys_MPIInfo::rank, and Esys_MPIInfo::size.
|
virtual |
|
virtual |
returns the first coordinate value and the node spacing along given dimension as a pair
Implements ripley::RipleyDomain.
References m_gNE0, m_gNE1, m_gNE2, m_l0, m_l1, m_l2, m_offset0, m_offset1, m_offset2, m_x0, m_y0, and m_z0.
Referenced by assembleCoordinates(), dump(), Print_Mesh_Info(), and setToSize().
|
inlinevirtual |
returns the node distribution vector
Implements ripley::RipleyDomain.
|
inlinevirtual |
returns the number of data points summed across all MPI processes
Implements ripley::RipleyDomain.
Referenced by populateSampleIds().
|
protectedvirtual |
returns the number of degrees of freedom per MPI rank
Implements ripley::RipleyDomain.
References m_gNE0, m_gNE1, m_gNE2, m_NX, m_NY, and m_NZ.
Referenced by addToMatrixAndRHS(), dofToNodes(), ownSample(), and populateSampleIds().
|
inlineprotectedvirtual |
returns the number of elements per MPI rank
Implements ripley::RipleyDomain.
Referenced by populateSampleIds(), and setToSize().
|
virtual |
returns the number of elements per MPI rank in each dimension
Implements ripley::RipleyDomain.
References m_NE0, m_NE1, and m_NE2.
Referenced by dump().
|
protectedvirtual |
returns the number of face elements on current MPI rank
Implements ripley::RipleyDomain.
References getNumFacesPerBoundary().
Referenced by populateSampleIds().
|
virtual |
returns the number of face elements in the order (left,right,bottom,top,[front,back]) on current MPI rank
Implements ripley::RipleyDomain.
References ripley::RipleyDomain::m_mpiInfo, m_NE0, m_NE1, m_NE2, m_NX, m_NY, m_NZ, m_offset0, m_offset1, m_offset2, and Esys_MPIInfo::rank.
Referenced by getNumFaceElements(), ownSample(), and populateSampleIds().
|
inlineprotectedvirtual |
returns the number of nodes per MPI rank
Implements ripley::RipleyDomain.
Referenced by assembleCoordinates(), createPattern(), dofToNodes(), populateSampleIds(), and Print_Mesh_Info().
|
virtual |
returns the number of nodes per MPI rank in each dimension
Implements ripley::RipleyDomain.
References m_N0, m_N1, and m_N2.
Referenced by dump().
|
virtual |
returns the number of spatial subdivisions in each dimension
Implements ripley::RipleyDomain.
|
protectedvirtual |
|
protectedvirtual |
|
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_N0, m_N1, m_NE0, m_NE1, m_NE2, 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_N0, m_N1, m_N2, m_NE0, m_NE1, m_NE2, and escript::Data::requireWrite().
|
protectedvirtual |
converts data on nodes in 'in' to degrees of freedom in 'out'
Implements ripley::RipleyDomain.
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), m_gNE0, m_gNE1, m_gNE2, m_N0, m_N1, m_NX, m_NY, m_NZ, m_offset0, m_offset1, m_offset2, and escript::Data::requireWrite().
|
virtual |
|
virtual |
returns true if this rank owns the sample id.
Implements ripley::RipleyDomain.
References ripley::DegreesOfFreedom, ripley::Elements, ripley::FaceElements, ripley::RipleyDomain::getMPISize(), getNumDOF(), getNumFacesPerBoundary(), m_dofMap, m_N0, m_N1, m_N2, m_NE0, m_NE1, ripley::Nodes, ripley::ReducedDegreesOfFreedom, ripley::ReducedElements, ripley::ReducedFaceElements, and ripley::ReducedNodes.
|
private |
References ripley::Elements, ripley::FaceElements, getNumDataPointsGlobal(), getNumDOF(), getNumElements(), getNumFaceElements(), getNumFacesPerBoundary(), getNumNodes(), m_dofId, m_elementId, ripley::RipleyDomain::m_elementTags, m_faceId, m_faceOffset, ripley::RipleyDomain::m_faceTags, m_gNE0, m_gNE1, ripley::RipleyDomain::m_mpiInfo, m_N0, m_N1, m_N2, m_NE0, m_NE1, m_NE2, m_nodeDistribution, m_nodeId, ripley::RipleyDomain::m_nodeTags, m_offset0, m_offset1, m_offset2, 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 getFirstCoordAndSpacing(), getNumNodes(), m_N0, m_N1, and m_nodeId.
|
virtual |
Implements ripley::RipleyDomain.
References ripley::Elements, escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), escript::Data::getNumDataPointsPerSample(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), m_N0, m_N1, m_N2, m_NE0, m_NE1, m_NE2, m_offset0, m_offset1, m_offset2, ripley::Nodes, ripley::ReducedElements, and escript::Data::requireWrite().
|
virtual |
Implements ripley::RipleyDomain.
References ripley::Elements, escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), escript::Data::getNumDataPointsPerSample(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), m_N0, m_N1, m_N2, m_NE0, m_NE1, m_NE2, m_offset0, m_offset1, m_offset2, ripley::Nodes, ripley::ReducedElements, and escript::Data::requireWrite().
|
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_NE0, m_NE1, m_NE2, 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, getFirstCoordAndSpacing(), escript::Data::getFunctionSpace(), escript::Data::getNumDataPointsPerSample(), getNumElements(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), INDEX2, m_faceOffset, m_NE0, m_NE1, m_NE2, ripley::ReducedElements, ripley::ReducedFaceElements, and escript::Data::requireWrite().
|
private |
Referenced by createPattern(), dofToNodes(), and ~Brick().
|
private |
vector of sample reference identifiers
Referenced by borrowSampleReferenceIDs(), and populateSampleIds().
|
private |
Referenced by addToMatrixAndRHS(), createPattern(), dofToNodes(), and ownSample().
|
private |
Referenced by borrowSampleReferenceIDs(), dump(), 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(), assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), interpolateNodesOnFaces(), populateSampleIds(), setToNormal(), and setToSize().
|
private |
total number of elements in each dimension
Referenced by assembleGradient(), assembleIntegrate(), assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), assemblePDESingle(), assemblePDESingleReduced(), assemblePDESystem(), assemblePDESystemReduced(), Brick(), createPattern(), getFirstCoordAndSpacing(), getNumDOF(), insertNeighbourNodes(), nodesToDOF(), operator==(), and populateSampleIds().
|
private |
Referenced by assembleGradient(), assembleIntegrate(), assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), assemblePDESingle(), assemblePDESingleReduced(), assemblePDESystem(), assemblePDESystemReduced(), Brick(), createPattern(), getFirstCoordAndSpacing(), getNumDOF(), insertNeighbourNodes(), nodesToDOF(), operator==(), and populateSampleIds().
|
private |
Referenced by assembleGradient(), assembleIntegrate(), assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), assemblePDESingle(), assemblePDESingleReduced(), assemblePDESystem(), assemblePDESystemReduced(), Brick(), createPattern(), getFirstCoordAndSpacing(), getNumDOF(), insertNeighbourNodes(), nodesToDOF(), and operator==().
|
private |
side lengths of domain
Referenced by assembleGradient(), assembleIntegrate(), assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), assemblePDESingle(), assemblePDESingleReduced(), assemblePDESystem(), assemblePDESystemReduced(), Brick(), getFirstCoordAndSpacing(), and operator==().
|
private |
Referenced by assembleGradient(), assembleIntegrate(), assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), assemblePDESingle(), assemblePDESingleReduced(), assemblePDESystem(), assemblePDESystemReduced(), Brick(), getFirstCoordAndSpacing(), and operator==().
|
private |
Referenced by assembleGradient(), assembleIntegrate(), assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), assemblePDESingle(), assemblePDESingleReduced(), assemblePDESystem(), assemblePDESystemReduced(), Brick(), getFirstCoordAndSpacing(), and operator==().
|
private |
number of nodes for this rank in each dimension
Referenced by addToMatrixAndRHS(), assembleCoordinates(), assembleGradient(), assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), assemblePDESingle(), assemblePDESingleReduced(), assemblePDESystem(), assemblePDESystemReduced(), Brick(), createPattern(), dump(), getNumNodesPerDim(), interpolateNodesOnElements(), interpolateNodesOnFaces(), nodesToDOF(), ownSample(), populateSampleIds(), Print_Mesh_Info(), readBinaryGrid(), and readNcGrid().
|
private |
Referenced by addToMatrixAndRHS(), assembleCoordinates(), assembleGradient(), assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), assemblePDESingle(), assemblePDESingleReduced(), assemblePDESystem(), assemblePDESystemReduced(), Brick(), createPattern(), dump(), getNumNodesPerDim(), interpolateNodesOnElements(), interpolateNodesOnFaces(), nodesToDOF(), ownSample(), populateSampleIds(), Print_Mesh_Info(), readBinaryGrid(), and readNcGrid().
|
private |
Referenced by assembleCoordinates(), assembleGradient(), assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), Brick(), createPattern(), dump(), getNumNodesPerDim(), interpolateNodesOnFaces(), ownSample(), populateSampleIds(), readBinaryGrid(), and readNcGrid().
|
private |
number of elements for this rank in each dimension including shared
Referenced by assembleGradient(), assembleIntegrate(), assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), assemblePDESingle(), assemblePDESingleReduced(), assemblePDESystem(), assemblePDESystemReduced(), Brick(), getNumElementsPerDim(), getNumFacesPerBoundary(), interpolateNodesOnElements(), interpolateNodesOnFaces(), ownSample(), populateSampleIds(), readBinaryGrid(), readNcGrid(), setToNormal(), and setToSize().
|
private |
Referenced by assembleGradient(), assembleIntegrate(), assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), assemblePDESingle(), assemblePDESingleReduced(), assemblePDESystem(), assemblePDESystemReduced(), Brick(), getNumElementsPerDim(), getNumFacesPerBoundary(), interpolateNodesOnElements(), interpolateNodesOnFaces(), ownSample(), populateSampleIds(), readBinaryGrid(), readNcGrid(), setToNormal(), and setToSize().
|
private |
Referenced by assembleGradient(), assemblePDEBoundarySingle(), assemblePDEBoundarySingleReduced(), assemblePDEBoundarySystem(), assemblePDEBoundarySystemReduced(), assemblePDESingle(), assemblePDESingleReduced(), assemblePDESystem(), assemblePDESystemReduced(), Brick(), getNumElementsPerDim(), getNumFacesPerBoundary(), interpolateNodesOnElements(), interpolateNodesOnFaces(), populateSampleIds(), readBinaryGrid(), readNcGrid(), setToNormal(), and setToSize().
|
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(), getNumFacesPerBoundary(), getNumSubdivisionsPerDim(), insertNeighbourNodes(), nodesToDOF(), and operator==().
|
private |
Referenced by Brick(), createPattern(), getNumDOF(), getNumFacesPerBoundary(), getNumSubdivisionsPerDim(), insertNeighbourNodes(), nodesToDOF(), and operator==().
|
private |
Referenced by Brick(), createPattern(), getNumDOF(), getNumFacesPerBoundary(), getNumSubdivisionsPerDim(), insertNeighbourNodes(), nodesToDOF(), and operator==().
|
private |
first node on this rank is at (offset0,offset1,offset2) in global mesh
Referenced by assembleIntegrate(), Brick(), createPattern(), getFirstCoordAndSpacing(), getNumFacesPerBoundary(), nodesToDOF(), populateSampleIds(), readBinaryGrid(), and readNcGrid().
|
private |
|
private |
|
private |
number of own elements for this rank in each dimension
Referenced by assembleIntegrate(), and Brick().
|
private |
Referenced by assembleIntegrate(), and Brick().
|
private |
Referenced by assembleIntegrate(), and Brick().
|
private |
Referenced by createPattern(), getPattern(), and ~Brick().
|
private |
location of domain
Referenced by getFirstCoordAndSpacing(), and operator==().
|
private |
Referenced by getFirstCoordAndSpacing(), and operator==().
|
private |
Referenced by getFirstCoordAndSpacing(), and operator==().