escript Revision_
|
Rectangle is the 2-dimensional implementation of a SpeckleyDomain. More...
#include <Rectangle.h>
Public Member Functions | |
Rectangle (int order, 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]. | |
~Rectangle () | |
Destructor. | |
virtual std::string | getDescription () const |
returns a description for this domain | |
virtual bool | operator== (const escript::AbstractDomain &other) const |
equality operator | |
virtual void | write (const std::string &filename) const |
writes the current mesh to a file with the given name | |
void | dump (const std::string &filename) const |
dumps the mesh to a file with the given name | |
virtual void | readNcGrid (escript::Data &out, std::string filename, std::string varname, const ReaderParameters ¶ms) const |
reads grid data from a netCDF file into a Data object | |
virtual void | readBinaryGrid (escript::Data &out, std::string filename, const ReaderParameters ¶ms) const |
reads grid data from a raw binary file into a Data object | |
virtual void | readBinaryGridFromZipped (escript::Data &out, std::string filename, const ReaderParameters ¶ms) const |
reads grid data from a compressed raw binary file into a Data object | |
virtual void | writeBinaryGrid (const escript::Data &in, std::string filename, int byteOrder, int dataType) const |
writes a Data object to a file in raw binary format | |
const dim_t * | borrowSampleReferenceIDs (int fsType) const |
returns the array of reference numbers for a function space type | |
virtual bool | ownSample (int fs_code, 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 dim_t | 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 const dim_t * | getNumNodesPerDim () const |
returns the number of nodes per MPI rank in each dimension | |
virtual const dim_t * | getNumElementsPerDim () const |
returns the number of elements per MPI rank in each dimension | |
virtual const dim_t * | getNumFacesPerBoundary () const |
returns the number of face elements in the order (left,right,bottom,top) on current MPI rank | |
virtual IndexVector | getNodeDistribution () const |
returns the node distribution vector | |
virtual const int * | getNumSubdivisionsPerDim () const |
returns the number of spatial subdivisions in each dimension | |
virtual double | getLocalCoordinate (index_t index, int dim) const |
returns the index'th coordinate value in given dimension for this rank | |
virtual boost::python::tuple | getGridParameters () const |
returns the tuple (origin, spacing, number_of_elements) | |
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. | |
virtual Assembler_ptr | createAssembler (std::string type, const DataMap &options) const |
Creates and returns an assembler of the requested type. | |
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 | |
const double * | getLength () const |
returns the lengths of the domain | |
![]() | |
SpeckleyDomain (dim_t dim, int order, escript::SubWorld_ptr p=escript::SubWorld_ptr()) | |
Constructor with number of dimensions. Allocates MPI info structure. | |
~SpeckleyDomain () | |
Destructor. | |
virtual escript::JMPI | getMPI () const |
returns a reference to the MPI information wrapper for this domain | |
virtual int | getMPISize () const |
returns the number of processors used for this domain | |
virtual int | getMPIRank () const |
returns the MPI rank of this processor | |
virtual void | MPIBarrier () const |
if compiled for MPI then executes an MPI_Barrier, else does nothing | |
virtual bool | onMasterProcessor () const |
returns true if on MPI processor 0, else false | |
MPI_Comm | getMPIComm () const |
returns the MPI communicator | |
virtual bool | isValidFunctionSpaceType (int fsType) const |
returns true if the argument is a valid function space type for this domain | |
virtual std::string | functionSpaceTypeAsString (int fsType) const |
returns a description for the given function space type code | |
virtual int | getDim () const |
returns the number of spatial dimensions of the domain | |
virtual bool | operator!= (const escript::AbstractDomain &other) const |
inequality operator | |
virtual std::pair< int, dim_t > | getDataShape (int fsType) const |
returns the number of data points per sample, and the number of samples as a pair. | |
int | getTagFromSampleNo (int fsType, dim_t sampleNo) const |
returns the tag key for the given sample number | |
virtual void | setTagMap (const std::string &name, int tag) |
sets a map from a clear tag name to a tag key | |
virtual int | getTag (const std::string &name) const |
returns the tag key for tag name | |
virtual bool | isValidTagName (const std::string &name) const |
returns true if name is a defined tag name | |
virtual std::string | showTagNames () const |
returns all tag names in a single string separated by commas | |
virtual void | setNewX (const escript::Data &arg) |
assigns new location to the domain. | |
virtual void | interpolateOnDomain (escript::Data &target, const escript::Data &source) const |
interpolates data given on source onto target where source and target have to be given on the same domain | |
virtual bool | probeInterpolationOnDomain (int fsType_source, int fsType_target) const |
returns true if data on fsType_source can be interpolated onto fsType_target, false otherwise | |
virtual signed char | preferredInterpolationOnDomain (int fsType_source, int fsType_target) const |
Preferred direction of interpolation. If you really need to test for a particular direction, then use probeInterpolation. | |
bool | commonFunctionSpace (const std::vector< int > &fs, int &resultcode) const |
given a vector of FunctionSpace type codes, passes back a code which all can be interpolated to | |
virtual escript::Data | getX () const |
returns locations in the SEM nodes | |
virtual escript::Data | getNormal () const |
returns boundary normals at the quadrature point on the face elements | |
virtual escript::Data | getSize () const |
returns the element size | |
virtual void | setToX (escript::Data &arg) const |
copies the location of data points into arg. The domain of arg has to match this domain. | |
virtual void | setToGradient (escript::Data &out, const escript::Data &in) const |
copies the gradient of 'in' into 'out'. The actual function space to be considered for the gradient is defined by 'in'. Both arguments have to be defined on this domain. | |
virtual void | setTags (int fsType, int newTag, const escript::Data &mask) const |
assigns new tag newTag to all samples of given function space with a positive value of mask for any of its sample points | |
virtual bool | isCellOriented (int fsType) const |
returns true if data on this domain and given function space type has to be considered as cell centered data | |
virtual StatusType | getStatus () const |
returns a status indicator of the domain. The status identifier should be unique over the lifetime of the object but may be updated if changes to the domain happen, e.g. modifications to its geometry. | |
virtual int | getNumberOfTagsInUse (int fsType) const |
returns the number of tags in use for a function space type | |
virtual const int * | borrowListOfTagsInUse (int fsType) const |
returns a pointer to the list of tags in use for a function space type | |
virtual bool | canTag (int fsType) const |
checks if this domain allows tags for the specified function space type | |
virtual int | getApproximationOrder (int fsType) const |
returns the approximation order used for a function space | |
virtual bool | supportsContactElements () const |
returns true if this domain supports contact elements, false otherwise | |
virtual int | getContinuousFunctionCode () const |
returns a continuous FunctionSpace code | |
virtual int | getReducedContinuousFunctionCode () const |
returns a continuous on reduced order nodes FunctionSpace code | |
virtual int | getFunctionCode () const |
returns a function FunctionSpace code | |
virtual int | getReducedFunctionCode () const |
returns a function with reduced integration order FunctionSpace code | |
virtual int | getFunctionOnBoundaryCode () const |
returns a function on boundary FunctionSpace code | |
virtual int | getReducedFunctionOnBoundaryCode () const |
returns a function on boundary with reduced integration order FunctionSpace code | |
virtual int | getFunctionOnContactZeroCode () const |
return a FunctionOnContactZero code | |
virtual int | getReducedFunctionOnContactZeroCode () const |
returns a FunctionOnContactZero code with reduced integration order | |
virtual int | getFunctionOnContactOneCode () const |
returns a FunctionOnContactOne code | |
virtual int | getReducedFunctionOnContactOneCode () const |
returns a FunctionOnContactOne code with reduced integration order | |
virtual int | getSolutionCode () const |
returns a Solution FunctionSpace code | |
virtual int | getReducedSolutionCode () const |
returns a ReducedSolution FunctionSpace code | |
virtual int | getDiracDeltaFunctionsCode () const |
returns a DiracDeltaFunctions FunctionSpace code | |
virtual int | getSystemMatrixTypeId (const boost::python::object &options) const |
returns the identifier of the matrix type to be used for the global stiffness matrix when a particular solver, package, preconditioner, and symmetric matrix is used | |
virtual int | getTransportTypeId (int solver, int preconditioner, int package, bool symmetry) const |
returns the identifier of the transport problem type to be used when a particular solver, preconditioner, package and symmetric matrix is used | |
virtual void | setToIntegrals (std::vector< real_t > &integrals, const escript::Data &arg) const |
copies the integrals of the function defined by arg into integrals. arg has to be defined on this domain. | |
virtual void | setToIntegrals (std::vector< cplx_t > &integrals, const escript::Data &arg) const |
virtual void | addToSystem (escript::AbstractSystemMatrix &mat, escript::Data &rhs, const DataMap &data, Assembler_ptr assembler) const |
adds a PDE onto the stiffness matrix mat and rhs, used for custom solvers with varying arguments counts and so on | |
virtual void | addToSystemFromPython (escript::AbstractSystemMatrix &mat, escript::Data &rhs, const boost::python::list &data, Assembler_ptr assembler) const |
a wrapper for addToSystem that allows calling from Python | |
virtual void | addToRHS (escript::Data &rhs, const DataMap &data, Assembler_ptr assembler) const |
adds a PDE onto rhs, used for custom solvers with varying arguments counts and so on | |
virtual void | addToRHSFromPython (escript::Data &rhs, const boost::python::list &data, Assembler_ptr assembler) const |
a wrapper for addToRHS that allows calling from Python | |
virtual void | addPDEToTransportProblem (escript::AbstractTransportProblem &tp, escript::Data &source, const DataMap &data, Assembler_ptr assembler) const |
adds a PDE onto a transport problem | |
void | addPDEToTransportProblemFromPython (escript::AbstractTransportProblem &tp, escript::Data &source, const boost::python::list &data, Assembler_ptr assembler) const |
adds a PDE onto a transport problem | |
virtual escript::ASM_ptr | newSystemMatrix (int row_blocksize, const escript::FunctionSpace &row_functionspace, int column_blocksize, const escript::FunctionSpace &column_functionspace, int type) const |
creates a stiffness matrix and initializes it with zeros | |
virtual escript::ATP_ptr | newTransportProblem (int blocksize, const escript::FunctionSpace &functionspace, int type) const |
creates a transport problem | |
virtual bool | supportsFilter (const boost::python::tuple &t) const |
returns true if this domain can handle the specified tuple of filter options. | |
Assembler_ptr | createAssemblerFromPython (const std::string type, const boost::python::list &options) const |
int | getOrder () const |
returns the order of the domain | |
![]() | |
AbstractContinuousDomain () | |
Default constructor for AbstractContinuousDomain. | |
virtual | ~AbstractContinuousDomain () |
Destructor for AbstractContinuousDomain. | |
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&. | |
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 | |
virtual void | addPDEToTransportProblem (AbstractTransportProblem &tp, escript::Data &source, const escript::Data &M, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y, const escript::Data &d, const escript::Data &y, const escript::Data &d_contact, const escript::Data &y_contact, const escript::Data &d_dirac, const escript::Data &y_dirac) const |
adds a PDE onto a transport problem | |
![]() | |
Domain_ptr | getPtr () |
Returns smart pointer which is managing this object. If one does not exist yet it creates one. | |
const_Domain_ptr | getPtr () const |
virtual | ~AbstractDomain () |
Destructor for AbstractDomain. | |
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 | getNumDOF () const |
returns the number of degrees of freedom per MPI rank | |
virtual void | assembleCoordinates (escript::Data &arg) const |
populates the data object 'arg' with the node coordinates | |
virtual void | assembleGradient (escript::Data &out, const escript::Data &in) const |
computes the gradient of 'in' and puts the result in 'out' | |
virtual void | assembleIntegrate (std::vector< real_t > &integrals, const escript::Data &arg) const |
copies the integrals of the function defined by 'arg' into 'integrals' | |
virtual void | assembleIntegrate (std::vector< cplx_t > &integrals, const escript::Data &arg) const |
virtual void | interpolateNodesOnElements (escript::Data &out, const escript::Data &in, bool reduced) const |
interpolates data on nodes in 'in' onto elements in 'out' | |
virtual void | interpolateElementsOnNodes (escript::Data &out, const escript::Data &in) const |
interpolates data on elements in 'in' onto nodes in 'out' | |
virtual dim_t | getDofOfNode (dim_t node) const |
virtual void | reduceElements (escript::Data &out, const escript::Data &in) const |
interpolates from Element -> ReducedElement | |
![]() | |
template<typename Scalar > | |
void | copyData (escript::Data &out, const escript::Data &in) const |
copies data in 'in' to 'out' (both must be on same function space) | |
void | updateTagsInUse (int fsType) const |
void | addToSystemMatrix (escript::AbstractSystemMatrix *mat, const IndexVector &nodes, dim_t numEq, const DoubleVector &array) const |
void | addPoints (const std::vector< double > &coords, const std::vector< int > &tags) |
template<typename Scalar > | |
void | multiplyData (escript::Data &out, const escript::Data &in) const |
expands ReducedFunction (in) to Function (out) | |
Private Member Functions | |
template<typename Scalar > | |
void | gradient_order2 (escript::Data &, const escript::Data &) const |
template<typename Scalar > | |
void | gradient_order3 (escript::Data &, const escript::Data &) const |
template<typename Scalar > | |
void | gradient_order4 (escript::Data &, const escript::Data &) const |
template<typename Scalar > | |
void | gradient_order5 (escript::Data &, const escript::Data &) const |
template<typename Scalar > | |
void | gradient_order6 (escript::Data &, const escript::Data &) const |
template<typename Scalar > | |
void | gradient_order7 (escript::Data &, const escript::Data &) const |
template<typename Scalar > | |
void | gradient_order8 (escript::Data &, const escript::Data &) const |
template<typename Scalar > | |
void | gradient_order9 (escript::Data &, const escript::Data &) const |
template<typename Scalar > | |
void | gradient_order10 (escript::Data &, const escript::Data &) const |
template<typename Scalar > | |
void | reduction_order2 (const escript::Data &, escript::Data &) const |
template<typename Scalar > | |
void | reduction_order3 (const escript::Data &, escript::Data &) const |
template<typename Scalar > | |
void | reduction_order4 (const escript::Data &, escript::Data &) const |
template<typename Scalar > | |
void | reduction_order5 (const escript::Data &, escript::Data &) const |
template<typename Scalar > | |
void | reduction_order6 (const escript::Data &, escript::Data &) const |
template<typename Scalar > | |
void | reduction_order7 (const escript::Data &, escript::Data &) const |
template<typename Scalar > | |
void | reduction_order8 (const escript::Data &, escript::Data &) const |
template<typename Scalar > | |
void | reduction_order9 (const escript::Data &, escript::Data &) const |
template<typename Scalar > | |
void | reduction_order10 (const escript::Data &, escript::Data &) const |
template<typename Scalar > | |
void | integral_order2 (std::vector< Scalar > &, const escript::Data &) const |
template<typename Scalar > | |
void | integral_order3 (std::vector< Scalar > &, const escript::Data &) const |
template<typename Scalar > | |
void | integral_order4 (std::vector< Scalar > &, const escript::Data &) const |
template<typename Scalar > | |
void | integral_order5 (std::vector< Scalar > &, const escript::Data &) const |
template<typename Scalar > | |
void | integral_order6 (std::vector< Scalar > &, const escript::Data &) const |
template<typename Scalar > | |
void | integral_order7 (std::vector< Scalar > &, const escript::Data &) const |
template<typename Scalar > | |
void | integral_order8 (std::vector< Scalar > &, const escript::Data &) const |
template<typename Scalar > | |
void | integral_order9 (std::vector< Scalar > &, const escript::Data &) const |
template<typename Scalar > | |
void | integral_order10 (std::vector< Scalar > &, const escript::Data &) const |
template<typename Scalar > | |
void | assembleIntegrateWorker (std::vector< Scalar > &integrals, const escript::Data &arg) const |
template<typename Scalar > | |
void | interpolateNodesOnElementsWorker (escript::Data &out, const escript::Data &in, bool reduced) const |
template<typename Scalar > | |
void | interpolateElementsOnNodesWorker (escript::Data &out, const escript::Data &in) const |
void | interpolateFromCorners (escript::Data &out) const |
void | populateSampleIds () |
template<typename ValueType > | |
void | readBinaryGridImpl (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 |
dim_t | findNode (const double *coords) const |
finds the node that the given point coordinates belong to | |
Private Attributes | |
dim_t | m_gNE [2] |
total number of elements in each dimension | |
double | m_origin [2] |
origin of domain | |
double | m_length [2] |
side lengths of domain | |
double | m_dx [2] |
grid spacings / cell sizes of domain | |
int | m_NX [2] |
number of spatial subdivisions | |
dim_t | m_NE [2] |
number of elements for this rank in each dimension including shared | |
dim_t | m_NN [2] |
number of nodes for this rank in each dimension | |
dim_t | m_offset [2] |
first node on this rank is at (offset0,offset1) in global mesh | |
dim_t | m_faceCount [4] |
number of face elements per edge (left, right, bottom, top) | |
IndexVector | m_dofId |
vector of sample reference identifiers | |
IndexVector | m_nodeId |
IndexVector | m_elementId |
IndexVector | m_nodeDistribution |
Friends | |
class | DefaultAssembler2D |
class | WaveAssembler2D |
Additional Inherited Members | |
![]() | |
typedef int | StatusType |
![]() | |
int | m_numDim |
StatusType | m_status |
escript::JMPI | m_mpiInfo |
TagMap | m_tagMap |
std::vector< int > | m_nodeTags |
std::vector< int > | m_nodeTagsInUse |
std::vector< int > | m_elementTags |
std::vector< int > | m_elementTagsInUse |
std::vector< DiracPoint > | m_diracPoints |
IndexVector | m_diracPointNodeIDs |
assembler_t | assembler_type |
int | m_order |
element order (will be m_order + 1 quad points in each axis) | |
Rectangle is the 2-dimensional implementation of a SpeckleyDomain.
speckley::Rectangle::Rectangle | ( | int | order, |
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].
n0,n1 | number of elements in each dimension |
x0,y0,x1,y1 | coordinates of bottom-left and top-right corners |
d0,d1 | number of subdivisions in each dimension |
References speckley::SpeckleyDomain::addPoints(), speckley::factorise(), m_dx, m_gNE, m_length, speckley::SpeckleyDomain::m_mpiInfo, m_NE, m_NN, m_NX, m_offset, speckley::SpeckleyDomain::m_order, m_origin, populateSampleIds(), and speckley::SpeckleyDomain::setTagMap().
speckley::Rectangle::~Rectangle | ( | ) |
Destructor.
|
protectedvirtual |
populates the data object 'arg' with the node coordinates
Implements speckley::SpeckleyDomain.
References getLocalCoordinate(), getNumNodes(), escript::Data::getSampleDataRW(), escript::Data::isDataPointShapeEqual(), m_NN, speckley::SpeckleyDomain::m_numDim, escript::Data::numSamplesEqual(), and escript::Data::requireWrite().
|
protectedvirtual |
computes the gradient of 'in' and puts the result in 'out'
Implements speckley::SpeckleyDomain.
References speckley::Elements, escript::function(), escript::Data::getFunctionSpace(), escript::FunctionSpace::getTypeCode(), gradient_order10(), gradient_order2(), gradient_order3(), gradient_order4(), gradient_order5(), gradient_order6(), gradient_order7(), gradient_order8(), gradient_order9(), escript::Data::isComplex(), and speckley::SpeckleyDomain::m_order.
|
protectedvirtual |
Implements speckley::SpeckleyDomain.
References assembleIntegrateWorker().
|
protectedvirtual |
copies the integrals of the function defined by 'arg' into 'integrals'
Implements speckley::SpeckleyDomain.
References assembleIntegrateWorker().
|
private |
References escript::Data::actsExpanded(), speckley::Elements, escript::Data::getFunctionSpace(), speckley::SpeckleyDomain::getMPIRank(), escript::Data::getNumberOfTaggedValues(), escript::FunctionSpace::getTypeCode(), integral_order10(), integral_order2(), integral_order3(), integral_order4(), integral_order5(), integral_order6(), integral_order7(), integral_order8(), integral_order9(), speckley::SpeckleyDomain::m_order, and speckley::Points.
Referenced by assembleIntegrate(), and assembleIntegrate().
|
virtual |
returns the array of reference numbers for a function space type
fsType | The function space type |
Implements speckley::SpeckleyDomain.
References speckley::DegreesOfFreedom, speckley::Elements, speckley::SpeckleyDomain::m_diracPointNodeIDs, m_elementId, m_nodeId, speckley::Nodes, speckley::Points, and speckley::ReducedElements.
|
virtual |
Creates and returns an assembler of the requested type.
Reimplemented from speckley::SpeckleyDomain.
References DefaultAssembler2D, m_dx, m_NE, m_NN, and WaveAssembler2D.
|
virtual |
dumps the mesh to a file with the given name
filename | The name of the output file |
Implements speckley::SpeckleyDomain.
References getDescription(), getLocalCoordinate(), m_elementId, speckley::SpeckleyDomain::m_mpiInfo, m_NE, m_NN, and m_nodeId.
|
privatevirtual |
finds the node that the given point coordinates belong to
Implements speckley::SpeckleyDomain.
References m_dx, m_length, m_NE, m_NN, speckley::SpeckleyDomain::m_numDim, m_offset, speckley::SpeckleyDomain::m_order, and m_origin.
|
virtual |
Implements speckley::SpeckleyDomain.
References m_nodeId.
|
inlinevirtual |
returns the tuple (origin, spacing, number_of_elements)
Implements speckley::SpeckleyDomain.
|
inlinevirtual |
returns the lengths of the domain
Implements speckley::SpeckleyDomain.
|
inlinevirtual |
returns the index'th coordinate value in given dimension for this rank
Implements speckley::SpeckleyDomain.
References ESYS_ASSERT, m_dx, m_NN, m_offset, speckley::SpeckleyDomain::m_order, m_origin, and speckley::point_locations.
Referenced by assembleCoordinates(), dump(), and Print_Mesh_Info().
|
inlinevirtual |
returns the node distribution vector
Implements speckley::SpeckleyDomain.
|
inlinevirtual |
returns the number of data points summed across all MPI processes
Implements speckley::SpeckleyDomain.
References m_gNE, and speckley::SpeckleyDomain::m_order.
Referenced by populateSampleIds().
|
inlineprotectedvirtual |
returns the number of degrees of freedom per MPI rank
Implements speckley::SpeckleyDomain.
References getNumNodes().
|
inlineprotectedvirtual |
returns the number of elements per MPI rank
Implements speckley::SpeckleyDomain.
References m_NE.
Referenced by populateSampleIds(), and setToSize().
|
inlinevirtual |
returns the number of elements per MPI rank in each dimension
Implements speckley::SpeckleyDomain.
|
inlinevirtual |
returns the number of face elements in the order (left,right,bottom,top) on current MPI rank
Implements speckley::SpeckleyDomain.
|
inlineprotectedvirtual |
returns the number of nodes per MPI rank
Implements speckley::SpeckleyDomain.
References m_NN.
Referenced by assembleCoordinates(), getNumDOF(), populateSampleIds(), and Print_Mesh_Info().
|
inlinevirtual |
returns the number of nodes per MPI rank in each dimension
Implements speckley::SpeckleyDomain.
|
inlinevirtual |
returns the number of spatial subdivisions in each dimension
Implements speckley::SpeckleyDomain.
|
private |
References escript::Data::actsExpanded(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, INDEX4, m_dx, m_NE, and escript::Data::requireWrite().
Referenced by assembleGradient().
|
private |
References escript::Data::actsExpanded(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, INDEX4, m_dx, m_NE, and escript::Data::requireWrite().
Referenced by assembleGradient().
|
private |
References escript::Data::actsExpanded(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, INDEX4, m_dx, m_NE, and escript::Data::requireWrite().
Referenced by assembleGradient().
|
private |
References escript::Data::actsExpanded(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, INDEX4, m_dx, m_NE, and escript::Data::requireWrite().
Referenced by assembleGradient().
|
private |
References escript::Data::actsExpanded(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, INDEX4, m_dx, m_NE, and escript::Data::requireWrite().
Referenced by assembleGradient().
|
private |
References escript::Data::actsExpanded(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, INDEX4, m_dx, m_NE, and escript::Data::requireWrite().
Referenced by assembleGradient().
|
private |
References escript::Data::actsExpanded(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, INDEX4, m_dx, m_NE, and escript::Data::requireWrite().
Referenced by assembleGradient().
|
private |
References escript::Data::actsExpanded(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, INDEX4, m_dx, m_NE, and escript::Data::requireWrite().
Referenced by assembleGradient().
|
private |
References escript::Data::actsExpanded(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, INDEX4, m_dx, m_NE, and escript::Data::requireWrite().
Referenced by assembleGradient().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), INDEX2, INDEX3, m_dx, and m_NE.
Referenced by assembleIntegrateWorker().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), INDEX2, INDEX3, m_dx, and m_NE.
Referenced by assembleIntegrateWorker().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), INDEX2, INDEX3, m_dx, and m_NE.
Referenced by assembleIntegrateWorker().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), INDEX2, INDEX3, m_dx, and m_NE.
Referenced by assembleIntegrateWorker().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), INDEX2, INDEX3, m_dx, and m_NE.
Referenced by assembleIntegrateWorker().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), INDEX2, INDEX3, m_dx, and m_NE.
Referenced by assembleIntegrateWorker().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), INDEX2, INDEX3, m_dx, and m_NE.
Referenced by assembleIntegrateWorker().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), INDEX2, INDEX3, m_dx, and m_NE.
Referenced by assembleIntegrateWorker().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), INDEX2, INDEX3, m_dx, and m_NE.
Referenced by assembleIntegrateWorker().
|
virtual |
interpolates data given on source onto target where source and target are given on different domains
Implements speckley::SpeckleyDomain.
References m_dx, and speckley::SpeckleyDomain::m_mpiInfo.
|
protectedvirtual |
interpolates data on elements in 'in' onto nodes in 'out'
Implements speckley::SpeckleyDomain.
References interpolateElementsOnNodesWorker(), and escript::Data::isComplex().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), INDEX3, m_NE, speckley::SpeckleyDomain::m_order, speckley::ReducedElements, and escript::Data::requireWrite().
Referenced by interpolateElementsOnNodes().
|
private |
|
protectedvirtual |
interpolates data on nodes in 'in' onto elements in 'out'
Implements speckley::SpeckleyDomain.
References interpolateNodesOnElementsWorker(), and escript::Data::isComplex().
|
private |
|
virtual |
equality operator
Reimplemented from speckley::SpeckleyDomain.
References m_gNE, m_length, m_NX, speckley::SpeckleyDomain::m_order, and m_origin.
|
virtual |
returns true if this rank owns the sample id.
Implements speckley::SpeckleyDomain.
References speckley::Elements, speckley::SpeckleyDomain::getMPIRank(), speckley::SpeckleyDomain::getMPISize(), m_nodeDistribution, m_nodeId, and speckley::Nodes.
|
private |
References speckley::Elements, getNumDataPointsGlobal(), getNumElements(), getNumNodes(), m_elementId, speckley::SpeckleyDomain::m_elementTags, m_faceCount, speckley::SpeckleyDomain::m_mpiInfo, m_NE, m_NN, m_nodeDistribution, m_nodeId, speckley::SpeckleyDomain::m_nodeTags, m_NX, m_offset, speckley::Nodes, and speckley::SpeckleyDomain::updateTagsInUse().
Referenced by Rectangle().
|
virtual |
writes information about the mesh to standard output
full | whether to print additional data |
Reimplemented from speckley::SpeckleyDomain.
References getLocalCoordinate(), getNumNodes(), m_NN, m_nodeId, and speckley::SpeckleyDomain::Print_Mesh_Info().
|
virtual |
determines whether interpolation from source to target is possible
Implements speckley::SpeckleyDomain.
References speckley::probeInterpolationAcross().
|
virtual |
Returns a Data object filled with random data passed through filter.
Implements escript::AbstractDomain.
References speckley::probeInterpolationAcross().
|
virtual |
reads grid data from a raw binary file into a Data object
Implements speckley::SpeckleyDomain.
References speckley::ReaderParameters::dataType, speckley::DATATYPE_FLOAT32, speckley::DATATYPE_FLOAT64, speckley::DATATYPE_INT32, and readBinaryGridImpl().
|
virtual |
reads grid data from a compressed raw binary file into a Data object
Implements speckley::SpeckleyDomain.
References speckley::ReaderParameters::dataType, speckley::DATATYPE_FLOAT32, speckley::DATATYPE_FLOAT64, and speckley::DATATYPE_INT32.
|
private |
References speckley::byte_swap32(), speckley::byte_swap64(), speckley::ReaderParameters::byteOrder, speckley::BYTEORDER_NATIVE, speckley::ReaderParameters::first, escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), escript::Data::getNumDataPointsPerSample(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), interpolateFromCorners(), m_NE, m_NN, m_offset, speckley::SpeckleyDomain::m_order, speckley::ReaderParameters::multiplier, speckley::Nodes, speckley::ReaderParameters::numValues, escript::Data::requireWrite(), and speckley::ReaderParameters::reverse.
Referenced by readBinaryGrid().
|
virtual |
reads grid data from a netCDF file into a Data object
Implements speckley::SpeckleyDomain.
References speckley::ReaderParameters::first, escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), escript::Data::getNumDataPointsPerSample(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), m_NE, m_offset, speckley::ReaderParameters::multiplier, speckley::Nodes, speckley::ReaderParameters::numValues, escript::Data::requireWrite(), and speckley::ReaderParameters::reverse.
|
protectedvirtual |
interpolates from Element -> ReducedElement
Implements speckley::SpeckleyDomain.
References escript::Data::isComplex(), speckley::SpeckleyDomain::m_order, reduction_order10(), reduction_order2(), reduction_order3(), reduction_order4(), reduction_order5(), reduction_order6(), reduction_order7(), reduction_order8(), and reduction_order9().
Referenced by interpolateNodesOnElementsWorker().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, and m_NE.
Referenced by reduceElements().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, and m_NE.
Referenced by reduceElements().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, and m_NE.
Referenced by reduceElements().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, and m_NE.
Referenced by reduceElements().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, and m_NE.
Referenced by reduceElements().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, and m_NE.
Referenced by reduceElements().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, and m_NE.
Referenced by reduceElements().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, and m_NE.
Referenced by reduceElements().
|
private |
References escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, and m_NE.
Referenced by reduceElements().
|
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 speckley::SpeckleyDomain.
|
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 speckley::SpeckleyDomain.
References speckley::Elements, escript::Data::getFunctionSpace(), getNumElements(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), speckley::SpeckleyDomain::m_order, speckley::point_locations, and escript::Data::requireWrite().
|
virtual |
writes the current mesh to a file with the given name
filename | The name of the file to write to |
Implements speckley::SpeckleyDomain.
|
virtual |
writes a Data object to a file in raw binary format
Implements speckley::SpeckleyDomain.
References speckley::DATATYPE_FLOAT32, speckley::DATATYPE_FLOAT64, speckley::DATATYPE_INT32, and writeBinaryGridImpl().
|
private |
References speckley::byte_swap32(), speckley::byte_swap64(), speckley::BYTEORDER_NATIVE, escript::FileWriter::close(), escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), escript::Data::getNumDataPointsPerSample(), escript::Data::getSampleDataRO(), escript::FunctionSpace::getTypeCode(), m_gNE, m_NE, m_NN, m_offset, speckley::SpeckleyDomain::m_order, speckley::SpeckleyDomain::MPIBarrier(), speckley::Nodes, escript::FileWriter::openFile(), and escript::FileWriter::writeAt().
Referenced by writeBinaryGrid().
|
friend |
Referenced by createAssembler().
|
friend |
Referenced by createAssembler().
|
private |
vector of sample reference identifiers
|
private |
grid spacings / cell sizes of domain
Referenced by createAssembler(), findNode(), getGridParameters(), getLocalCoordinate(), gradient_order10(), gradient_order2(), gradient_order3(), gradient_order4(), gradient_order5(), gradient_order6(), gradient_order7(), gradient_order8(), gradient_order9(), integral_order10(), integral_order2(), integral_order3(), integral_order4(), integral_order5(), integral_order6(), integral_order7(), integral_order8(), integral_order9(), interpolateAcross(), and Rectangle().
|
private |
Referenced by borrowSampleReferenceIDs(), dump(), and populateSampleIds().
|
private |
number of face elements per edge (left, right, bottom, top)
Referenced by populateSampleIds().
|
private |
total number of elements in each dimension
Referenced by getGridParameters(), getNumDataPointsGlobal(), operator==(), Rectangle(), and writeBinaryGridImpl().
|
private |
side lengths of domain
Referenced by findNode(), operator==(), and Rectangle().
|
private |
number of elements for this rank in each dimension including shared
Referenced by createAssembler(), dump(), findNode(), getNumElements(), gradient_order10(), gradient_order2(), gradient_order3(), gradient_order4(), gradient_order5(), gradient_order6(), gradient_order7(), gradient_order8(), gradient_order9(), integral_order10(), integral_order2(), integral_order3(), integral_order4(), integral_order5(), integral_order6(), integral_order7(), integral_order8(), integral_order9(), interpolateElementsOnNodesWorker(), interpolateNodesOnElementsWorker(), populateSampleIds(), readBinaryGridImpl(), readNcGrid(), Rectangle(), reduction_order10(), reduction_order2(), reduction_order3(), reduction_order4(), reduction_order5(), reduction_order6(), reduction_order7(), reduction_order8(), reduction_order9(), and writeBinaryGridImpl().
|
private |
number of nodes for this rank in each dimension
Referenced by assembleCoordinates(), createAssembler(), dump(), findNode(), getLocalCoordinate(), getNumNodes(), interpolateFromCorners(), interpolateNodesOnElementsWorker(), populateSampleIds(), Print_Mesh_Info(), readBinaryGridImpl(), Rectangle(), and writeBinaryGridImpl().
|
private |
Referenced by ownSample(), and populateSampleIds().
|
private |
Referenced by borrowSampleReferenceIDs(), dump(), getDofOfNode(), ownSample(), populateSampleIds(), and Print_Mesh_Info().
|
private |
number of spatial subdivisions
Referenced by operator==(), populateSampleIds(), and Rectangle().
|
private |
first node on this rank is at (offset0,offset1) in global mesh
Referenced by findNode(), getLocalCoordinate(), populateSampleIds(), readBinaryGridImpl(), readNcGrid(), Rectangle(), and writeBinaryGridImpl().
|
private |
origin of domain
Referenced by findNode(), getGridParameters(), getLocalCoordinate(), operator==(), and Rectangle().