escript
Revision_
|
A suite of factory methods for creating 2D and 3D dudley domains. More...
Namespaces | |
util | |
Classes | |
struct | AssembleParameters |
class | DudleyDomain |
DudleyDomain implements the AbstractContinuousDomain interface for the Dudley library. More... | |
class | DudleyException |
class | ElementFile |
struct | ElementFile_Jacobians |
class | NodeFile |
struct | NodeMapping |
Typedefs | |
typedef std::map< std::string, int > | TagMap |
Enumerations | |
enum | { DegreesOfFreedom = 1, Nodes = 3, Elements = 4, ReducedElements = 10, FaceElements = 5, ReducedFaceElements = 11, Points = 6 } |
enum | SystemMatrixType { SMT_PASO = 1<<8, SMT_TRILINOS = 1<<10, SMT_COMPLEX = 1<<16, SMT_UNROLL = 1<<17 } |
enum | ElementTypeId { Dudley_Point1 = 0, Dudley_Line2 = 1, Dudley_Tri3 = 2, Dudley_Tet4 = 3, Dudley_Line2Face = 4, Dudley_Tri3Face = 5, Dudley_Tet4Face = 6, Dudley_NoRef = 7 } |
Functions | |
void | Assemble_PDE (const NodeFile *nodes, const ElementFile *elements, escript::ASM_ptr S, escript::Data &F, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y) |
template<typename Scalar = double> | |
void | Assemble_PDE_Points (const AssembleParameters &p, const escript::Data &d_dirac, const escript::Data &y_dirac) |
template<typename Scalar = double> | |
void | Assemble_PDE_Single_2D (const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y) |
template<typename Scalar = double> | |
void | Assemble_PDE_Single_3D (const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y) |
template<typename Scalar = double> | |
void | Assemble_PDE_System_2D (const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y) |
template<typename Scalar = double> | |
void | Assemble_PDE_System_3D (const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y) |
template<typename Scalar > | |
void | Assemble_addToSystemMatrix (escript::AbstractSystemMatrix *S, const std::vector< index_t > &Nodes, int numEq, const std::vector< Scalar > &array) |
void | Assemble_LumpedSystem (const NodeFile *nodes, const ElementFile *elements, escript::Data &lumpedMat, const escript::Data &D, bool useHRZ) |
void | Assemble_AverageElementData (const ElementFile *elements, escript::Data &out, const escript::Data &in) |
averages data More... | |
void | Assemble_CopyElementData (const ElementFile *elements, escript::Data &out, const escript::Data &in) |
copies data between different types of elements More... | |
void | Assemble_CopyNodalData (const NodeFile *nodes, escript::Data &out, const escript::Data &in) |
copies data between different types of nodal representations More... | |
void | Assemble_NodeCoordinates (const NodeFile *nodes, escript::Data &x) |
copies node coordinates into expanded Data object x More... | |
void | Assemble_getNormal (const NodeFile *nodes, const ElementFile *elements, escript::Data &normals) |
calculates the normal vector at quadrature points on face elements More... | |
void | Assemble_getSize (const NodeFile *nodes, const ElementFile *elements, escript::Data &size) |
void | Assemble_gradient (const NodeFile *nodes, const ElementFile *elements, escript::Data &gradient, const escript::Data &data) |
void | Assemble_integrate (const NodeFile *nodes, const ElementFile *elements, const escript::Data &data, std::vector< double > &integrals) |
integrates data on quadrature points More... | |
void | Assemble_interpolate (const NodeFile *nodes, const ElementFile *elements, const escript::Data &data, escript::Data &output) |
interpolates nodal data in a data array onto elements (=integration points) More... | |
void | Assemble_jacobians_2D (const double *coordinates, int numQuad, dim_t numElements, int numNodes, const index_t *nodes, double *dTdX, double *absD, double *quadWeight, const index_t *elementId) |
void | Assemble_jacobians_2D_M1D_E1D (const double *coordinates, int numQuad, dim_t numElements, int numNodes, const index_t *nodes, double *dTdX, double *absD, double *quadWeight, const index_t *elementId) |
void | Assemble_jacobians_3D (const double *coordinates, int numQuad, dim_t numElements, int numNodes, const index_t *nodes, double *dTdX, double *abs_D, double *quadWeight, const index_t *elementId) |
void | Assemble_jacobians_3D_M2D_E2D (const double *coordinates, int numQuad, dim_t numElements, int numNodes, const index_t *nodes, double *dTdX, double *absD, double *quadWeight, const index_t *elementId) |
template<> | |
void | Assemble_addToSystemMatrix< real_t > (escript::AbstractSystemMatrix *S, const std::vector< index_t > &Nodes, int numEq, const std::vector< real_t > &array) |
template<> | |
void | Assemble_addToSystemMatrix< cplx_t > (escript::AbstractSystemMatrix *S, const std::vector< index_t > &Nodes, int numEq, const std::vector< cplx_t > &array) |
void | setNumSamplesError (const char *c, int n0, int n1) |
void | setShapeError (const char *c, int num, const int *dims) |
template void | Assemble_PDE_Points< escript::DataTypes::real_t > (const AssembleParameters &p, const escript::Data &d, const escript::Data &y) |
template void | Assemble_PDE_Points< escript::DataTypes::cplx_t > (const AssembleParameters &p, const escript::Data &d, const escript::Data &y) |
template void | Assemble_PDE_Single_2D< escript::DataTypes::real_t > (const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y) |
template void | Assemble_PDE_Single_2D< escript::DataTypes::cplx_t > (const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y) |
template void | Assemble_PDE_Single_3D< escript::DataTypes::real_t > (const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y) |
template void | Assemble_PDE_Single_3D< escript::DataTypes::cplx_t > (const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y) |
template void | Assemble_PDE_System_2D< escript::DataTypes::real_t > (const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y) |
template void | Assemble_PDE_System_2D< escript::DataTypes::cplx_t > (const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y) |
template void | Assemble_PDE_System_3D< escript::DataTypes::real_t > (const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y) |
template void | Assemble_PDE_System_3D< escript::DataTypes::cplx_t > (const AssembleParameters &p, const escript::Data &A, const escript::Data &B, const escript::Data &C, const escript::Data &D, const escript::Data &X, const escript::Data &Y) |
void | cleanupAndThrow (DudleyDomain *dom, string msg) |
Domain_ptr | readMesh (const std::string &fileName, int integrationOrder=-1, int reducedIntegrationOrder=-1, bool optimize=false) |
reads a mesh from a fly file. For MPI parallel runs fans out the mesh to multiple processes. More... | |
Domain_ptr | readGmsh (const std::string &fileName, int numDim, int integrationOrder=-1, int reducedIntegrationOrder=-1, bool optimize=false) |
reads a gmsh mesh file More... | |
Domain_ptr | brick (escript::JMPI jmpi, dim_t n0=1, dim_t n1=1, dim_t n2=1, int order=1, double l0=1.0, double l1=1.0, double l2=1.0, bool periodic0=false, bool periodic1=false, bool periodic2=false, int integrationOrder=-1, int reducedIntegrationOrder=-1, bool useElementsOnFace=false, bool useFullElementOrder=false, bool optimize=false) |
Creates a rectangular mesh with n0 x n1 x n2 elements over the brick [0,l0] x [0,l1] x [0,l2]. More... | |
Domain_ptr | brick_driver (const bp::list &args) |
Domain_ptr | rectangle (escript::JMPI jmpi, dim_t n0=1, dim_t n1=1, int order=1, double l0=1.0, double l1=1.0, bool periodic0=false, bool periodic1=false, int integrationOrder=-1, int reducedIntegrationOrder=-1, bool useElementsOnFace=false, bool useFullElementOrder=false, bool optimize=false) |
Creates a 2-dimensional rectangular mesh with n0 x n1 x 2 Tri3 elements over the rectangle [0,l0] x [0,l1]. The doubling of elements is due to splitting of rectangular elements. More... | |
Domain_ptr | rectangle_driver (const bp::list &args) |
escript::Domain_ptr | brick_driver (const boost::python::list &args) |
Python driver for brick() More... | |
escript::Domain_ptr | rectangle_driver (const boost::python::list &args) |
Python driver for rectangle() More... | |
bool | hasReducedIntegrationOrder (const escript::Data &in) |
ElementTypeId | eltTypeFromString (const std::string &s) |
void | IndexList_insertElements (IndexList *index_list, const ElementFile *elements, const index_t *map) |
void | IndexList_insertElementsWithRowRangeNoMainDiagonal (IndexList *indexList, index_t firstRow, index_t lastRow, const ElementFile *elements, const index_t *map) |
static std::pair< index_t, index_t > | getGlobalRange (dim_t n, const index_t *id, escript::JMPI mpiInfo) |
static void | gatherEntries (dim_t n, const index_t *index, index_t min_index, index_t max_index, index_t *Id_out, const index_t *Id_in, int *Tag_out, const int *Tag_in, index_t *globalDegreesOfFreedom_out, const index_t *globalDegreesOfFreedom_in, int numDim, real_t *Coordinates_out, const real_t *Coordinates_in) |
static void | scatterEntries (dim_t n, const index_t *index, index_t min_index, index_t max_index, index_t *Id_out, const index_t *Id_in, int *Tag_out, const int *Tag_in, index_t *globalDegreesOfFreedom_out, const index_t *globalDegreesOfFreedom_in, int numDim, real_t *Coordinates_out, const real_t *Coordinates_in) |
bool | getQuadShape (dim_t dim, bool reduced, const double **shapearr) |
const char * | getElementName (ElementTypeId id) |
Variables | |
static const double | DTDV_1D [2][2] = { {-1., 1}, {-1., 1.} } |
static const double | DTDV_2D [3 *3][2] |
static const double | DTDV_3D [4][3] |
static const int | localDims [8] = { 0, 1, 2, 3, 0, 1, 2, 0 } |
static const int | Dims [8] = { 0, 1, 2, 3, 1, 2, 3, 0 } |
static const int | numNodesOnFaceMap [8] = { 1, 2, 3, 4, 1, 2, 4, -1 } |
static const int | shiftNodesMap [8][4] = { {0}, {1, 0}, {1, 2, 0}, {-1}, {0, 1, 2}, {1, 0, 2}, {1, 2, 0, 3}, {0} } |
static const int | reverseNodesMap [8][4] = { {-1}, {-1}, {0, 2, 1}, {-1}, {-1}, {-1}, {0, 2, 1, 3}, {0} } |
static const double | QuadWeight [4][2] = { {0, 0}, {1., 0.5}, {0.5, 1. / 6}, {1. / 6, 1. / 24} } |
static const int | QuadNums [4][2] = { {0, 0}, {1, 2}, {1, 3}, {1, 4} } |
A suite of factory methods for creating 2D and 3D dudley domains.
Some utility routines.
typedef std::map<std::string, int> dudley::TagMap |
anonymous enum |
void dudley::Assemble_addToSystemMatrix | ( | escript::AbstractSystemMatrix * | S, |
const std::vector< index_t > & | Nodes, | ||
int | numEq, | ||
const std::vector< Scalar > & | array | ||
) |
Adds the matrix array[Eq,Eq,NN,NN] onto the matrix S. The rows/columns are given by i_Eq+Eq*Nodes[Nodes[j_Eq]] (i_Eq=0:Eq; j_Eq=0:NN_Eq). The routine has to be called from a parallel region and assumes that array is fully packed.
Referenced by Assemble_PDE_Points(), Assemble_PDE_Single_2D(), Assemble_PDE_Single_3D(), Assemble_PDE_System_2D(), and Assemble_PDE_System_3D().
void dudley::Assemble_addToSystemMatrix< cplx_t > | ( | escript::AbstractSystemMatrix * | S, |
const std::vector< index_t > & | Nodes, | ||
int | numEq, | ||
const std::vector< cplx_t > & | array | ||
) |
References paso::SystemMatrix::block_size, paso::SystemMatrix::col_block_size, paso::SystemMatrix::col_coupleBlock, INDEX4, paso::SystemMatrix::mainBlock, MATRIX_FORMAT_OFFSET1, paso::SystemMatrix::pattern, paso::SystemMatrix::row_block_size, paso::SystemMatrix::row_coupleBlock, S, and paso::SystemMatrix::type.
void dudley::Assemble_addToSystemMatrix< real_t > | ( | escript::AbstractSystemMatrix * | S, |
const std::vector< index_t > & | Nodes, | ||
int | numEq, | ||
const std::vector< real_t > & | array | ||
) |
References MATRIX_FORMAT_CSC, S, and paso::SystemMatrix::type.
void dudley::Assemble_AverageElementData | ( | const ElementFile * | elements, |
escript::Data & | out, | ||
const escript::Data & | in | ||
) |
averages data
References escript::Data::actsExpanded(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), hasReducedIntegrationOrder(), INDEX2, dudley::ElementFile::numDim, dudley::ElementFile::numElements, escript::Data::numSamplesEqual(), QuadNums, QuadWeight, and escript::Data::requireWrite().
Referenced by dudley::DudleyDomain::interpolateOnDomain().
void dudley::Assemble_CopyElementData | ( | const ElementFile * | elements, |
escript::Data & | out, | ||
const escript::Data & | in | ||
) |
copies data between different types of elements
References escript::Data::actsExpanded(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), hasReducedIntegrationOrder(), dudley::ElementFile::numDim, dudley::ElementFile::numElements, escript::Data::numSamplesEqual(), QuadNums, and escript::Data::requireWrite().
Referenced by dudley::DudleyDomain::interpolateOnDomain().
void dudley::Assemble_CopyNodalData | ( | const NodeFile * | nodes, |
escript::Data & | out, | ||
const escript::Data & | in | ||
) |
copies data between different types of nodal representations
References escript::Data::actsExpanded(), dudley::NodeFile::borrowDegreesOfFreedomTarget(), dudley::NodeFile::borrowTargetDegreesOfFreedom(), paso::util::copy(), DUDLEY_DEGREES_OF_FREEDOM, DUDLEY_NODES, escript::Data::getDataPointSize(), escript::Data::getDataRO(), escript::Data::getFunctionSpace(), escript::Data::getNumDataPoints(), dudley::NodeFile::getNumDegreesOfFreedom(), dudley::NodeFile::getNumNodes(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), dudley::NodeFile::MPIInfo, escript::Data::numSamplesEqual(), and escript::Data::requireWrite().
Referenced by dudley::DudleyDomain::interpolateOnDomain().
void dudley::Assemble_getNormal | ( | const NodeFile * | nodes, |
const ElementFile * | elements, | ||
escript::Data & | normals | ||
) |
calculates the normal vector at quadrature points on face elements
References escript::Data::actsExpanded(), dudley::NodeFile::Coordinates, DTDV_1D, DTDV_2D, DTDV_3D, dudley::util::gather(), escript::Data::getSampleDataRW(), hasReducedIntegrationOrder(), INDEX2, escript::Data::isDataPointShapeEqual(), dudley::ElementFile::Nodes, dudley::util::normalVector(), dudley::NodeFile::numDim, dudley::ElementFile::numDim, dudley::ElementFile::numElements, dudley::ElementFile::numLocalDim, dudley::ElementFile::numNodes, escript::Data::numSamplesEqual(), escript::Data::requireWrite(), and dudley::util::smallMatMult().
Referenced by dudley::DudleyDomain::setToNormal().
void dudley::Assemble_getSize | ( | const NodeFile * | nodes, |
const ElementFile * | elements, | ||
escript::Data & | size | ||
) |
calculates the minimum distance between two vertices of elements and assigns the value to each quadrature point in size
References escript::Data::actsExpanded(), dudley::NodeFile::Coordinates, dudley::util::gather(), escript::Data::getSampleDataRW(), hasReducedIntegrationOrder(), INDEX2, escript::Data::isDataPointShapeEqual(), dudley::ElementFile::Nodes, dudley::NodeFile::numDim, dudley::ElementFile::numDim, dudley::ElementFile::numElements, dudley::ElementFile::numNodes, escript::Data::numSamplesEqual(), and escript::Data::requireWrite().
Referenced by dudley::DudleyDomain::setToSize().
void dudley::Assemble_gradient | ( | const NodeFile * | nodes, |
const ElementFile * | elements, | ||
escript::Data & | gradient, | ||
const escript::Data & | data | ||
) |
Assemblage of Jacobians: calculates the gradient of nodal data at quadrature points
References escript::Data::actsExpanded(), dudley::ElementFile::borrowJacobians(), dudley::NodeFile::borrowTargetDegreesOfFreedom(), dudley::ElementFile_Jacobians::DSDX, DUDLEY_DEGREES_OF_FREEDOM, DUDLEY_NODES, escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), dudley::NodeFile::getNumDegreesOfFreedom(), dudley::NodeFile::getNumNodes(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), hasReducedIntegrationOrder(), INDEX2, INDEX4, INDEX5, dudley::ElementFile::MPIInfo, dudley::ElementFile::Nodes, dudley::ElementFile_Jacobians::numDim, dudley::ElementFile::numElements, dudley::ElementFile::numNodes, dudley::ElementFile_Jacobians::numQuad, escript::Data::numSamplesEqual(), dudley::ElementFile_Jacobians::numShapes, and escript::Data::requireWrite().
Referenced by dudley::DudleyDomain::setToGradient().
void dudley::Assemble_integrate | ( | const NodeFile * | nodes, |
const ElementFile * | elements, | ||
const escript::Data & | data, | ||
std::vector< double > & | integrals | ||
) |
integrates data on quadrature points
References dudley::ElementFile_Jacobians::absD, escript::Data::actsExpanded(), dudley::ElementFile::borrowJacobians(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), hasReducedIntegrationOrder(), INDEX2, dudley::NodeFile::MPIInfo, dudley::ElementFile::numElements, dudley::ElementFile_Jacobians::numQuad, escript::Data::numSamplesEqual(), dudley::ElementFile::Owner, and dudley::ElementFile_Jacobians::quadweight.
Referenced by dudley::DudleyDomain::setToIntegrals().
void dudley::Assemble_interpolate | ( | const NodeFile * | nodes, |
const ElementFile * | elements, | ||
const escript::Data & | data, | ||
escript::Data & | output | ||
) |
interpolates nodal data in a data array onto elements (=integration points)
References escript::Data::actsExpanded(), dudley::NodeFile::borrowTargetDegreesOfFreedom(), dudley::NodeFile::borrowTargetNodes(), DUDLEY_DEGREES_OF_FREEDOM, DUDLEY_NODES, escript::Data::getDataPointSize(), escript::Data::getFunctionSpace(), dudley::NodeFile::getNumDegreesOfFreedom(), dudley::NodeFile::getNumNodes(), getQuadShape(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), hasReducedIntegrationOrder(), INDEX2, INDEX3, dudley::ElementFile::MPIInfo, dudley::ElementFile::Nodes, dudley::ElementFile::numDim, dudley::ElementFile::numElements, dudley::ElementFile::numNodes, escript::Data::numSamplesEqual(), escript::Data::requireWrite(), and dudley::util::smallMatSetMult1().
Referenced by dudley::DudleyDomain::interpolateOnDomain().
void dudley::Assemble_jacobians_2D | ( | const double * | coordinates, |
int | numQuad, | ||
dim_t | numElements, | ||
int | numNodes, | ||
const index_t * | nodes, | ||
double * | dTdX, | ||
double * | absD, | ||
double * | quadWeight, | ||
const index_t * | elementId | ||
) |
void dudley::Assemble_jacobians_2D_M1D_E1D | ( | const double * | coordinates, |
int | numQuad, | ||
dim_t | numElements, | ||
int | numNodes, | ||
const index_t * | nodes, | ||
double * | dTdX, | ||
double * | absD, | ||
double * | quadWeight, | ||
const index_t * | elementId | ||
) |
References DIM, INDEX2, and INDEX4.
Referenced by dudley::ElementFile::borrowJacobians().
void dudley::Assemble_jacobians_3D | ( | const double * | coordinates, |
int | numQuad, | ||
dim_t | numElements, | ||
int | numNodes, | ||
const index_t * | nodes, | ||
double * | dTdX, | ||
double * | abs_D, | ||
double * | quadWeight, | ||
const index_t * | elementId | ||
) |
References DIM, DTDV_3D, INDEX2, and INDEX4.
Referenced by dudley::ElementFile::borrowJacobians().
void dudley::Assemble_jacobians_3D_M2D_E2D | ( | const double * | coordinates, |
int | numQuad, | ||
dim_t | numElements, | ||
int | numNodes, | ||
const index_t * | nodes, | ||
double * | dTdX, | ||
double * | absD, | ||
double * | quadWeight, | ||
const index_t * | elementId | ||
) |
References DIM, INDEX2, and INDEX4.
Referenced by dudley::ElementFile::borrowJacobians().
void dudley::Assemble_LumpedSystem | ( | const NodeFile * | nodes, |
const ElementFile * | elements, | ||
escript::Data & | lumpedMat, | ||
const escript::Data & | D, | ||
bool | useHRZ | ||
) |
Assembles the mass matrix in lumped form. The coefficient D has to be defined on the integration points or not present. lumpedMat
has to be initialized before the routine is called.
References dudley::ElementFile_Jacobians::absD, escript::Data::actsExpanded(), dudley::util::addScatter(), dudley::ElementFile::Color, dudley::AssembleParameters::DOF, dudley::AssembleParameters::DOF_UpperBound, DUDLEY_ELEMENTS, DUDLEY_FACE_ELEMENTS, DUDLEY_POINTS, DUDLEY_REDUCED_ELEMENTS, DUDLEY_REDUCED_FACE_ELEMENTS, escript::Data::getDataPointShape(), escript::Data::getFunctionSpace(), getQuadShape(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), INDEX2, INDEX3, escript::Data::isEmpty(), dudley::AssembleParameters::jac, dudley::ElementFile::minColor, dudley::AssembleParameters::NN, dudley::ElementFile::Nodes, dudley::ElementFile::numDim, dudley::ElementFile::numElements, dudley::AssembleParameters::numEqu, dudley::AssembleParameters::numQuad, escript::Data::numSamplesEqual(), dudley::AssembleParameters::numShapes, dudley::ElementFile_Jacobians::quadweight, escript::Data::requireWrite(), and S.
Referenced by dudley::DudleyDomain::addPDEToLumpedSystem().
void dudley::Assemble_NodeCoordinates | ( | const NodeFile * | nodes, |
escript::Data & | x | ||
) |
copies node coordinates into expanded Data object x
References escript::Data::actsExpanded(), dudley::NodeFile::Coordinates, DUDLEY_NODES, escript::Data::getDataPointShape(), escript::Data::getFunctionSpace(), dudley::NodeFile::getNumNodes(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), INDEX2, dudley::NodeFile::numDim, escript::Data::numSamplesEqual(), and escript::Data::requireWrite().
Referenced by dudley::DudleyDomain::setToX().
void dudley::Assemble_PDE | ( | const NodeFile * | nodes, |
const ElementFile * | elements, | ||
escript::ASM_ptr | S, | ||
escript::Data & | F, | ||
const escript::Data & | A, | ||
const escript::Data & | B, | ||
const escript::Data & | C, | ||
const escript::Data & | D, | ||
const escript::Data & | X, | ||
const escript::Data & | Y | ||
) |
References DUDLEY_ELEMENTS, DUDLEY_FACE_ELEMENTS, DUDLEY_POINTS, DUDLEY_REDUCED_ELEMENTS, DUDLEY_REDUCED_FACE_ELEMENTS, escript::Data::getFunctionSpace(), escript::FunctionSpace::getTypeCode(), escript::Data::isComplex(), escript::Data::isDataPointShapeEqual(), escript::Data::isEmpty(), dudley::AssembleParameters::numDim, dudley::ElementFile::numElements, dudley::AssembleParameters::numEqu, dudley::AssembleParameters::numQuad, escript::Data::numSamplesEqual(), setNumSamplesError(), and setShapeError().
Referenced by dudley::DudleyDomain::addPDEToRHS(), dudley::DudleyDomain::addPDEToSystem(), and dudley::DudleyDomain::addPDEToTransportProblem().
void dudley::Assemble_PDE_Points | ( | const AssembleParameters & | p, |
const escript::Data & | d_dirac, | ||
const escript::Data & | y_dirac | ||
) |
References dudley::util::addScatter(), Assemble_addToSystemMatrix(), dudley::ElementFile::Color, dudley::AssembleParameters::DOF, dudley::AssembleParameters::DOF_UpperBound, dudley::AssembleParameters::elements, dudley::AssembleParameters::F, escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, escript::Data::isEmpty(), dudley::ElementFile::minColor, dudley::AssembleParameters::NN, dudley::ElementFile::Nodes, dudley::ElementFile::numElements, dudley::AssembleParameters::numEqu, escript::Data::requireWrite(), dudley::AssembleParameters::S, and escript::Scalar().
template void dudley::Assemble_PDE_Points< escript::DataTypes::cplx_t > | ( | const AssembleParameters & | p, |
const escript::Data & | d, | ||
const escript::Data & | y | ||
) |
template void dudley::Assemble_PDE_Points< escript::DataTypes::real_t > | ( | const AssembleParameters & | p, |
const escript::Data & | d, | ||
const escript::Data & | y | ||
) |
void dudley::Assemble_PDE_Single_2D | ( | const AssembleParameters & | p, |
const escript::Data & | A, | ||
const escript::Data & | B, | ||
const escript::Data & | C, | ||
const escript::Data & | D, | ||
const escript::Data & | X, | ||
const escript::Data & | Y | ||
) |
References dudley::ElementFile_Jacobians::absD, escript::Data::actsExpanded(), dudley::util::addScatter(), Assemble_addToSystemMatrix(), dudley::ElementFile::Color, DIM, dudley::AssembleParameters::DOF, dudley::AssembleParameters::DOF_UpperBound, dudley::ElementFile_Jacobians::DSDX, dudley::AssembleParameters::elements, dudley::AssembleParameters::F, escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, INDEX4, INDEX5, escript::Data::isEmpty(), dudley::AssembleParameters::jac, dudley::ElementFile::minColor, dudley::AssembleParameters::NN, dudley::ElementFile::Nodes, dudley::ElementFile::numElements, dudley::AssembleParameters::numEqu, dudley::AssembleParameters::numQuad, dudley::AssembleParameters::numShapes, dudley::ElementFile_Jacobians::quadweight, escript::Data::requireWrite(), dudley::AssembleParameters::S, S, escript::Scalar(), and dudley::AssembleParameters::shapeFns.
template void dudley::Assemble_PDE_Single_2D< escript::DataTypes::cplx_t > | ( | const AssembleParameters & | p, |
const escript::Data & | A, | ||
const escript::Data & | B, | ||
const escript::Data & | C, | ||
const escript::Data & | D, | ||
const escript::Data & | X, | ||
const escript::Data & | Y | ||
) |
template void dudley::Assemble_PDE_Single_2D< escript::DataTypes::real_t > | ( | const AssembleParameters & | p, |
const escript::Data & | A, | ||
const escript::Data & | B, | ||
const escript::Data & | C, | ||
const escript::Data & | D, | ||
const escript::Data & | X, | ||
const escript::Data & | Y | ||
) |
void dudley::Assemble_PDE_Single_3D | ( | const AssembleParameters & | p, |
const escript::Data & | A, | ||
const escript::Data & | B, | ||
const escript::Data & | C, | ||
const escript::Data & | D, | ||
const escript::Data & | X, | ||
const escript::Data & | Y | ||
) |
References dudley::ElementFile_Jacobians::absD, escript::Data::actsExpanded(), dudley::util::addScatter(), Assemble_addToSystemMatrix(), dudley::ElementFile::Color, DIM, dudley::AssembleParameters::DOF, dudley::AssembleParameters::DOF_UpperBound, dudley::ElementFile_Jacobians::DSDX, dudley::AssembleParameters::elements, dudley::AssembleParameters::F, escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, INDEX4, INDEX5, escript::Data::isEmpty(), dudley::AssembleParameters::jac, dudley::ElementFile::minColor, dudley::AssembleParameters::NN, dudley::ElementFile::Nodes, dudley::ElementFile::numElements, dudley::AssembleParameters::numEqu, dudley::AssembleParameters::numQuad, dudley::AssembleParameters::numShapes, dudley::ElementFile_Jacobians::quadweight, escript::Data::requireWrite(), dudley::AssembleParameters::S, S, escript::Scalar(), and dudley::AssembleParameters::shapeFns.
template void dudley::Assemble_PDE_Single_3D< escript::DataTypes::cplx_t > | ( | const AssembleParameters & | p, |
const escript::Data & | A, | ||
const escript::Data & | B, | ||
const escript::Data & | C, | ||
const escript::Data & | D, | ||
const escript::Data & | X, | ||
const escript::Data & | Y | ||
) |
template void dudley::Assemble_PDE_Single_3D< escript::DataTypes::real_t > | ( | const AssembleParameters & | p, |
const escript::Data & | A, | ||
const escript::Data & | B, | ||
const escript::Data & | C, | ||
const escript::Data & | D, | ||
const escript::Data & | X, | ||
const escript::Data & | Y | ||
) |
void dudley::Assemble_PDE_System_2D | ( | const AssembleParameters & | p, |
const escript::Data & | A, | ||
const escript::Data & | B, | ||
const escript::Data & | C, | ||
const escript::Data & | D, | ||
const escript::Data & | X, | ||
const escript::Data & | Y | ||
) |
References dudley::ElementFile_Jacobians::absD, escript::Data::actsExpanded(), dudley::util::addScatter(), Assemble_addToSystemMatrix(), dudley::ElementFile::Color, DIM, dudley::AssembleParameters::DOF, dudley::AssembleParameters::DOF_UpperBound, dudley::ElementFile_Jacobians::DSDX, dudley::AssembleParameters::elements, dudley::AssembleParameters::F, escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, INDEX4, INDEX5, INDEX6, escript::Data::isEmpty(), dudley::AssembleParameters::jac, dudley::ElementFile::minColor, dudley::AssembleParameters::NN, dudley::ElementFile::Nodes, dudley::ElementFile::numElements, dudley::AssembleParameters::numEqu, dudley::AssembleParameters::numQuad, dudley::AssembleParameters::numShapes, dudley::ElementFile_Jacobians::quadweight, escript::Data::requireWrite(), dudley::AssembleParameters::S, S, escript::Scalar(), and dudley::AssembleParameters::shapeFns.
template void dudley::Assemble_PDE_System_2D< escript::DataTypes::cplx_t > | ( | const AssembleParameters & | p, |
const escript::Data & | A, | ||
const escript::Data & | B, | ||
const escript::Data & | C, | ||
const escript::Data & | D, | ||
const escript::Data & | X, | ||
const escript::Data & | Y | ||
) |
template void dudley::Assemble_PDE_System_2D< escript::DataTypes::real_t > | ( | const AssembleParameters & | p, |
const escript::Data & | A, | ||
const escript::Data & | B, | ||
const escript::Data & | C, | ||
const escript::Data & | D, | ||
const escript::Data & | X, | ||
const escript::Data & | Y | ||
) |
void dudley::Assemble_PDE_System_3D | ( | const AssembleParameters & | p, |
const escript::Data & | A, | ||
const escript::Data & | B, | ||
const escript::Data & | C, | ||
const escript::Data & | D, | ||
const escript::Data & | X, | ||
const escript::Data & | Y | ||
) |
References dudley::ElementFile_Jacobians::absD, escript::Data::actsExpanded(), dudley::util::addScatter(), Assemble_addToSystemMatrix(), dudley::ElementFile::Color, DIM, dudley::AssembleParameters::DOF, dudley::AssembleParameters::DOF_UpperBound, dudley::ElementFile_Jacobians::DSDX, dudley::AssembleParameters::elements, dudley::AssembleParameters::F, escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), INDEX2, INDEX3, INDEX4, INDEX5, INDEX6, escript::Data::isEmpty(), dudley::AssembleParameters::jac, dudley::ElementFile::minColor, dudley::AssembleParameters::NN, dudley::ElementFile::Nodes, dudley::ElementFile::numElements, dudley::AssembleParameters::numEqu, dudley::AssembleParameters::numQuad, dudley::AssembleParameters::numShapes, dudley::ElementFile_Jacobians::quadweight, escript::Data::requireWrite(), dudley::AssembleParameters::S, S, escript::Scalar(), and dudley::AssembleParameters::shapeFns.
template void dudley::Assemble_PDE_System_3D< escript::DataTypes::cplx_t > | ( | const AssembleParameters & | p, |
const escript::Data & | A, | ||
const escript::Data & | B, | ||
const escript::Data & | C, | ||
const escript::Data & | D, | ||
const escript::Data & | X, | ||
const escript::Data & | Y | ||
) |
template void dudley::Assemble_PDE_System_3D< escript::DataTypes::real_t > | ( | const AssembleParameters & | p, |
const escript::Data & | A, | ||
const escript::Data & | B, | ||
const escript::Data & | C, | ||
const escript::Data & | D, | ||
const escript::Data & | X, | ||
const escript::Data & | Y | ||
) |
escript::Domain_ptr dudley::brick | ( | escript::JMPI | jmpi, |
dim_t | n0 = 1 , |
||
dim_t | n1 = 1 , |
||
dim_t | n2 = 1 , |
||
int | order = 1 , |
||
double | l0 = 1.0 , |
||
double | l1 = 1.0 , |
||
double | l2 = 1.0 , |
||
bool | periodic0 = false , |
||
bool | periodic1 = false , |
||
bool | periodic2 = false , |
||
int | integrationOrder = -1 , |
||
int | reducedIntegrationOrder = -1 , |
||
bool | useElementsOnFace = false , |
||
bool | useFullElementOrder = false , |
||
bool | optimize = false |
||
) |
Creates a rectangular mesh with n0 x n1 x n2 elements over the brick [0,l0] x [0,l1] x [0,l2].
jmpi | pointer to MPI world information structure |
n0,n1,n2 | number of elements in each dimension |
order | ignored |
l0,l1,l2 | length of each side of brick |
integrationOrder | ignored |
reducedIntegrationOrder | ignored |
optimize |
Referenced by brick_driver().
escript::Domain_ptr dudley::brick_driver | ( | const boost::python::list & | args | ) |
Domain_ptr dudley::brick_driver | ( | const bp::list & | args | ) |
References brick(), escript::makeInfo(), and MPI_COMM_WORLD.
Referenced by BOOST_PYTHON_MODULE().
|
inline |
Referenced by dudley::DudleyDomain::load().
|
inline |
References Dudley_Line2, Dudley_Line2Face, Dudley_NoRef, Dudley_Point1, Dudley_Tet4, Dudley_Tet4Face, Dudley_Tri3, and Dudley_Tri3Face.
|
static |
References INDEX2.
Referenced by dudley::NodeFile::gather(), and dudley::NodeFile::gather_global().
const char * dudley::getElementName | ( | ElementTypeId | id | ) |
References Dudley_Line2, Dudley_Line2Face, Dudley_Point1, Dudley_Tet4, Dudley_Tet4Face, Dudley_Tri3, and Dudley_Tri3Face.
Referenced by dudley::ElementFile::ElementFile().
|
static |
References dudley::util::getMinMaxInt(), and MPI_MAX.
Referenced by dudley::NodeFile::getGlobalDOFRange(), dudley::NodeFile::getGlobalIdRange(), and dudley::NodeFile::getGlobalNodeIDIndexRange().
bool dudley::getQuadShape | ( | dim_t | dim, |
bool | reduced, | ||
const double ** | shapearr | ||
) |
References _dudley_s_alpha, and _dudley_s_beta.
Referenced by Assemble_interpolate(), Assemble_LumpedSystem(), and dudley::AssembleParameters::AssembleParameters().
|
inline |
References escript::Data::getFunctionSpace(), escript::FunctionSpace::getTypeCode(), ReducedElements, and ReducedFaceElements.
Referenced by Assemble_AverageElementData(), Assemble_CopyElementData(), Assemble_getNormal(), Assemble_getSize(), Assemble_gradient(), Assemble_integrate(), Assemble_interpolate(), and dudley::ElementFile::setTags().
void dudley::IndexList_insertElements | ( | IndexList * | index_list, |
const ElementFile * | elements, | ||
const index_t * | map | ||
) |
inserts the contributions from the element matrices of elements into the row index col.
References dudley::ElementFile::Color, INDEX2, escript::IndexList::insertIndex(), dudley::ElementFile::minColor, dudley::ElementFile::Nodes, dudley::ElementFile::numElements, dudley::ElementFile::numNodes, and dudley::ElementFile::numShapes.
Referenced by dudley::DudleyDomain::createMappings().
void dudley::IndexList_insertElementsWithRowRangeNoMainDiagonal | ( | IndexList * | indexList, |
index_t | firstRow, | ||
index_t | lastRow, | ||
const ElementFile * | elements, | ||
const index_t * | map | ||
) |
References dudley::ElementFile::Color, INDEX2, escript::IndexList::insertIndex(), dudley::ElementFile::minColor, dudley::ElementFile::Nodes, dudley::ElementFile::numElements, and dudley::ElementFile::numNodes.
Referenced by dudley::DudleyDomain::optimizeDOFDistribution(), and dudley::DudleyDomain::optimizeDOFLabeling().
escript::Domain_ptr dudley::readGmsh | ( | const std::string & | fileName, |
int | numDim, | ||
int | integrationOrder = -1 , |
||
int | reducedIntegrationOrder = -1 , |
||
bool | optimize = false |
||
) |
reads a gmsh mesh file
fileName | the name of the file |
numDim | spatial dimensionality |
integrationOrder | ignored |
reducedIntegrationOrder | ignored |
optimize | whether to optimize the node labels |
References escript::makeInfo(), and MPI_COMM_WORLD.
Referenced by BOOST_PYTHON_MODULE(), and finley::readGmsh_driver().
escript::Domain_ptr dudley::readMesh | ( | const std::string & | fileName, |
int | integrationOrder = -1 , |
||
int | reducedIntegrationOrder = -1 , |
||
bool | optimize = false |
||
) |
reads a mesh from a fly file. For MPI parallel runs fans out the mesh to multiple processes.
fileName | the name of the file |
integrationOrder | ignored |
reducedIntegrationOrder | ignored |
optimize | whether to optimize the node labels |
References escript::makeInfo(), and MPI_COMM_WORLD.
Referenced by BOOST_PYTHON_MODULE().
escript::Domain_ptr dudley::rectangle | ( | escript::JMPI | jmpi, |
dim_t | n0 = 1 , |
||
dim_t | n1 = 1 , |
||
int | order = 1 , |
||
double | l0 = 1.0 , |
||
double | l1 = 1.0 , |
||
bool | periodic0 = false , |
||
bool | periodic1 = false , |
||
int | integrationOrder = -1 , |
||
int | reducedIntegrationOrder = -1 , |
||
bool | useElementsOnFace = false , |
||
bool | useFullElementOrder = false , |
||
bool | optimize = false |
||
) |
Creates a 2-dimensional rectangular mesh with n0 x n1 x 2 Tri3 elements over the rectangle [0,l0] x [0,l1]. The doubling of elements is due to splitting of rectangular elements.
jmpi | pointer to MPI world information structure |
n0,n1 | number of elements in each dimension |
order | ignored |
l0,l1 | length of each side of rectangle |
periodic0,periodic1 | ignored |
integrationOrder | ignored |
reducedIntegrationOrder | ignored |
useElementsOnFace | ignored |
useFullElementOrder | ignored |
optimize | whether to optimize labelling |
Referenced by rectangle_driver().
escript::Domain_ptr dudley::rectangle_driver | ( | const boost::python::list & | args | ) |
Python driver for rectangle()
args | see rectangle() definition for order of params |
Domain_ptr dudley::rectangle_driver | ( | const bp::list & | args | ) |
References escript::makeInfo(), MPI_COMM_WORLD, and rectangle().
Referenced by BOOST_PYTHON_MODULE().
|
static |
References INDEX2.
Referenced by dudley::NodeFile::gather_global().
|
inline |
Referenced by Assemble_PDE().
|
inline |
Referenced by Assemble_PDE().
|
static |
Referenced by dudley::ElementFile::ElementFile().
|
static |
Referenced by Assemble_getNormal().
|
static |
Referenced by Assemble_getNormal(), and Assemble_jacobians_2D().
|
static |
Referenced by Assemble_getNormal(), and Assemble_jacobians_3D().
|
static |
Referenced by dudley::ElementFile::ElementFile().
|
static |
|
static |
|
static |
Referenced by Assemble_AverageElementData().
|
static |
|
static |