escript Revision_
dudley Namespace Reference

A suite of factory methods for creating 2D and 3D dudley domains. More...

Namespaces

namespace  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)
 
template<typename Scalar >
void Assemble_AverageElementData (const ElementFile *elements, escript::Data &out, const escript::Data &in)
 averages data
 
template<typename Scalar >
void Assemble_CopyElementData (const ElementFile *elements, escript::Data &out, const escript::Data &in)
 copies data between different types of elements
 
template<typename Scalar >
void Assemble_CopyNodalData (const NodeFile *nodes, escript::Data &out, const escript::Data &in)
 copies data between different types of nodal representations
 
void Assemble_NodeCoordinates (const NodeFile *nodes, escript::Data &x)
 copies node coordinates into expanded Data object x
 
void Assemble_getNormal (const NodeFile *nodes, const ElementFile *elements, escript::Data &normals)
 calculates the normal vector at quadrature points on face elements
 
void Assemble_getSize (const NodeFile *nodes, const ElementFile *elements, escript::Data &size)
 
template<typename Scalar >
void Assemble_gradient (const NodeFile *nodes, const ElementFile *elements, escript::Data &gradient, const escript::Data &data)
 
template<typename Scalar >
void Assemble_integrate (const NodeFile *nodes, const ElementFile *elements, const escript::Data &data, std::vector< Scalar > &integrals)
 integrates data on quadrature points
 
template<typename Scalar >
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)
 
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)
 
template void Assemble_AverageElementData< escript::DataTypes::real_t > (const ElementFile *elements, escript::Data &out, const escript::Data &in)
 
template void Assemble_AverageElementData< escript::DataTypes::cplx_t > (const ElementFile *elements, escript::Data &out, const escript::Data &in)
 
template void Assemble_CopyElementData< escript::DataTypes::real_t > (const ElementFile *elements, escript::Data &out, const escript::Data &in)
 
template void Assemble_CopyElementData< escript::DataTypes::cplx_t > (const ElementFile *elements, escript::Data &out, const escript::Data &in)
 
template void Assemble_CopyNodalData< escript::DataTypes::real_t > (const NodeFile *nodes, escript::Data &out, const escript::Data &in)
 
template void Assemble_CopyNodalData< escript::DataTypes::cplx_t > (const NodeFile *nodes, escript::Data &out, const escript::Data &in)
 
template void Assemble_gradient< escript::DataTypes::real_t > (const NodeFile *nodes, const ElementFile *elements, escript::Data &out, const escript::Data &data)
 
template void Assemble_gradient< escript::DataTypes::cplx_t > (const NodeFile *nodes, const ElementFile *elements, escript::Data &out, const escript::Data &data)
 
template void Assemble_integrate< real_t > (const NodeFile *nodes, const ElementFile *elements, const escript::Data &data, std::vector< real_t > &out)
 
template void Assemble_integrate< cplx_t > (const NodeFile *nodes, const ElementFile *elements, const escript::Data &data, std::vector< cplx_t > &out)
 
template void Assemble_interpolate< escript::DataTypes::real_t > (const NodeFile *nodes, const ElementFile *elements, const escript::Data &data, escript::Data &interpolated_data)
 
template void Assemble_interpolate< escript::DataTypes::cplx_t > (const NodeFile *nodes, const ElementFile *elements, const escript::Data &data, escript::Data &interpolated_data)
 
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.
 
Domain_ptr readGmsh (const std::string &fileName, int numDim, int integrationOrder=-1, int reducedIntegrationOrder=-1, bool optimize=false)
 reads a gmsh mesh file
 
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].
 
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.
 
Domain_ptr rectangle_driver (const bp::list &args)
 
DUDLEY_DLL_API escript::Domain_ptr brick_driver (const boost::python::list &args)
 Python driver for brick()
 
DUDLEY_DLL_API escript::Domain_ptr rectangle_driver (const boost::python::list &args)
 Python driver for rectangle()
 
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_tgetGlobalRange (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} }
 

Detailed Description

A suite of factory methods for creating 2D and 3D dudley domains.

Some utility routines.

Typedef Documentation

◆ TagMap

typedef std::map<std::string, int> dudley::TagMap

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
DegreesOfFreedom 
Nodes 
Elements 
ReducedElements 
FaceElements 
ReducedFaceElements 
Points 

◆ ElementTypeId

Enumerator
Dudley_Point1 
Dudley_Line2 
Dudley_Tri3 
Dudley_Tet4 
Dudley_Line2Face 
Dudley_Tri3Face 
Dudley_Tet4Face 
Dudley_NoRef 

◆ SystemMatrixType

Enumerator
SMT_PASO 
SMT_TRILINOS 
SMT_COMPLEX 
SMT_UNROLL 

Function Documentation

◆ Assemble_addToSystemMatrix()

template<typename Scalar >
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().

◆ Assemble_addToSystemMatrix< cplx_t >()

template<>
void dudley::Assemble_addToSystemMatrix< cplx_t > ( escript::AbstractSystemMatrix * S,
const std::vector< index_t > & Nodes,
int numEq,
const std::vector< cplx_t > & array )

◆ Assemble_addToSystemMatrix< real_t >()

template<>
void dudley::Assemble_addToSystemMatrix< real_t > ( escript::AbstractSystemMatrix * S,
const std::vector< index_t > & Nodes,
int numEq,
const std::vector< real_t > & array )

◆ Assemble_AverageElementData()

◆ Assemble_AverageElementData< escript::DataTypes::cplx_t >()

◆ Assemble_AverageElementData< escript::DataTypes::real_t >()

◆ Assemble_CopyElementData()

◆ Assemble_CopyElementData< escript::DataTypes::cplx_t >()

template void dudley::Assemble_CopyElementData< escript::DataTypes::cplx_t > ( const ElementFile * elements,
escript::Data & out,
const escript::Data & in )

◆ Assemble_CopyElementData< escript::DataTypes::real_t >()

template void dudley::Assemble_CopyElementData< escript::DataTypes::real_t > ( const ElementFile * elements,
escript::Data & out,
const escript::Data & in )

◆ Assemble_CopyNodalData()

◆ Assemble_CopyNodalData< escript::DataTypes::cplx_t >()

template void dudley::Assemble_CopyNodalData< escript::DataTypes::cplx_t > ( const NodeFile * nodes,
escript::Data & out,
const escript::Data & in )

◆ Assemble_CopyNodalData< escript::DataTypes::real_t >()

template void dudley::Assemble_CopyNodalData< escript::DataTypes::real_t > ( const NodeFile * nodes,
escript::Data & out,
const escript::Data & in )

◆ Assemble_getNormal()

◆ Assemble_getSize()

◆ Assemble_gradient()

◆ Assemble_gradient< escript::DataTypes::cplx_t >()

template void dudley::Assemble_gradient< escript::DataTypes::cplx_t > ( const NodeFile * nodes,
const ElementFile * elements,
escript::Data & out,
const escript::Data & data )

◆ Assemble_gradient< escript::DataTypes::real_t >()

template void dudley::Assemble_gradient< escript::DataTypes::real_t > ( const NodeFile * nodes,
const ElementFile * elements,
escript::Data & out,
const escript::Data & data )

◆ Assemble_integrate()

◆ Assemble_integrate< cplx_t >()

template void dudley::Assemble_integrate< cplx_t > ( const NodeFile * nodes,
const ElementFile * elements,
const escript::Data & data,
std::vector< cplx_t > & out )

◆ Assemble_integrate< real_t >()

template void dudley::Assemble_integrate< real_t > ( const NodeFile * nodes,
const ElementFile * elements,
const escript::Data & data,
std::vector< real_t > & out )

◆ Assemble_interpolate()

◆ Assemble_interpolate< escript::DataTypes::cplx_t >()

template void dudley::Assemble_interpolate< escript::DataTypes::cplx_t > ( const NodeFile * nodes,
const ElementFile * elements,
const escript::Data & data,
escript::Data & interpolated_data )

◆ Assemble_interpolate< escript::DataTypes::real_t >()

template void dudley::Assemble_interpolate< escript::DataTypes::real_t > ( const NodeFile * nodes,
const ElementFile * elements,
const escript::Data & data,
escript::Data & interpolated_data )

◆ Assemble_jacobians_2D()

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 )

◆ Assemble_jacobians_2D_M1D_E1D()

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().

◆ Assemble_jacobians_3D()

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().

◆ Assemble_jacobians_3D_M2D_E2D()

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().

◆ Assemble_LumpedSystem()

◆ Assemble_NodeCoordinates()

◆ Assemble_PDE()

◆ Assemble_PDE_Points()

◆ Assemble_PDE_Points< escript::DataTypes::cplx_t >()

◆ Assemble_PDE_Points< escript::DataTypes::real_t >()

◆ Assemble_PDE_Single_2D()

◆ Assemble_PDE_Single_2D< escript::DataTypes::cplx_t >()

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 )

◆ Assemble_PDE_Single_2D< escript::DataTypes::real_t >()

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 )

◆ Assemble_PDE_Single_3D()

◆ Assemble_PDE_Single_3D< escript::DataTypes::cplx_t >()

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 )

◆ Assemble_PDE_Single_3D< escript::DataTypes::real_t >()

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 )

◆ Assemble_PDE_System_2D()

◆ Assemble_PDE_System_2D< escript::DataTypes::cplx_t >()

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 )

◆ Assemble_PDE_System_2D< escript::DataTypes::real_t >()

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 )

◆ Assemble_PDE_System_3D()

◆ Assemble_PDE_System_3D< escript::DataTypes::cplx_t >()

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 )

◆ Assemble_PDE_System_3D< escript::DataTypes::real_t >()

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 )

◆ brick()

DUDLEY_DLL_API 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].

Parameters
jmpipointer to MPI world information structure
n0,n1,n2number of elements in each dimension
orderignored
l0,l1,l2length of each side of brick
integrationOrderignored
reducedIntegrationOrderignored
optimize

References dudley::DudleyDomain::create3D().

Referenced by brick_driver().

◆ brick_driver() [1/2]

DUDLEY_DLL_API escript::Domain_ptr dudley::brick_driver ( const boost::python::list & args)

Python driver for brick()

Parameters
argssee brick() definition for order of params

◆ brick_driver() [2/2]

Domain_ptr dudley::brick_driver ( const bp::list & args)

◆ cleanupAndThrow()

void dudley::cleanupAndThrow ( DudleyDomain * dom,
string msg )
inline

◆ eltTypeFromString()

ElementTypeId dudley::eltTypeFromString ( const std::string & s)
inline

◆ gatherEntries()

static void dudley::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

◆ getElementName()

◆ getGlobalRange()

static std::pair< index_t, index_t > dudley::getGlobalRange ( dim_t n,
const index_t * id,
escript::JMPI mpiInfo )
static

◆ getQuadShape()

bool dudley::getQuadShape ( dim_t dim,
bool reduced,
const double ** shapearr )

◆ hasReducedIntegrationOrder()

◆ IndexList_insertElements()

void dudley::IndexList_insertElements ( IndexList * index_list,
const ElementFile * elements,
const index_t * map )

◆ IndexList_insertElementsWithRowRangeNoMainDiagonal()

◆ readGmsh()

DUDLEY_DLL_API 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

Parameters
fileNamethe name of the file
numDimspatial dimensionality
integrationOrderignored
reducedIntegrationOrderignored
optimizewhether to optimize the node labels

References escript::makeInfo(), MPI_COMM_WORLD, and dudley::DudleyDomain::readGmsh().

Referenced by BOOST_PYTHON_MODULE().

◆ readMesh()

DUDLEY_DLL_API 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.

Parameters
fileNamethe name of the file
integrationOrderignored
reducedIntegrationOrderignored
optimizewhether to optimize the node labels

References escript::makeInfo(), MPI_COMM_WORLD, and dudley::DudleyDomain::read().

Referenced by BOOST_PYTHON_MODULE().

◆ rectangle()

DUDLEY_DLL_API 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.

Parameters
jmpipointer to MPI world information structure
n0,n1number of elements in each dimension
orderignored
l0,l1length of each side of rectangle
periodic0,periodic1ignored
integrationOrderignored
reducedIntegrationOrderignored
useElementsOnFaceignored
useFullElementOrderignored
optimizewhether to optimize labelling

References dudley::DudleyDomain::create2D().

Referenced by rectangle_driver().

◆ rectangle_driver() [1/2]

DUDLEY_DLL_API escript::Domain_ptr dudley::rectangle_driver ( const boost::python::list & args)

Python driver for rectangle()

Parameters
argssee rectangle() definition for order of params

◆ rectangle_driver() [2/2]

Domain_ptr dudley::rectangle_driver ( const bp::list & args)

◆ scatterEntries()

static void dudley::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 )
static

References INDEX2.

Referenced by dudley::NodeFile::gather_global().

◆ setNumSamplesError()

void dudley::setNumSamplesError ( const char * c,
int n0,
int n1 )
inline

Referenced by Assemble_PDE().

◆ setShapeError()

void dudley::setShapeError ( const char * c,
int num,
const int * dims )
inline

Referenced by Assemble_PDE().

Variable Documentation

◆ Dims

const int dudley::Dims[8] = { 0, 1, 2, 3, 1, 2, 3, 0 }
static

◆ DTDV_1D

const double dudley::DTDV_1D[2][2] = { {-1., 1}, {-1., 1.} }
static

Referenced by Assemble_getNormal().

◆ DTDV_2D

const double dudley::DTDV_2D[3 *3][2]
static
Initial value:
= {
{-1, 1}, {0, -1.}, {0, 1},
{-1, 1}, {0, -1.}, {0, 1},
{-1, 1}, {0, -1.}, {0, 1}
}

Referenced by Assemble_getNormal(), and Assemble_jacobians_2D().

◆ DTDV_3D

const double dudley::DTDV_3D[4][3]
static
Initial value:
= {
{-1, -1, -1},
{ 1, 0, 0},
{ 0, 1, 0},
{ 0, 0, 1}
}

Referenced by Assemble_getNormal(), and Assemble_jacobians_3D().

◆ localDims

const int dudley::localDims[8] = { 0, 1, 2, 3, 0, 1, 2, 0 }
static

◆ numNodesOnFaceMap

const int dudley::numNodesOnFaceMap[8] = { 1, 2, 3, 4, 1, 2, 4, -1 }
static

◆ QuadNums

const int dudley::QuadNums[4][2] = { {0, 0}, {1, 2}, {1, 3}, {1, 4} }
static

◆ QuadWeight

const double dudley::QuadWeight[4][2] = { {0, 0}, {1., 0.5}, {0.5, 1. / 6}, {1. / 6, 1. / 24} }
static

◆ reverseNodesMap

const int dudley::reverseNodesMap[8][4] = { {-1}, {-1}, {0, 2, 1}, {-1}, {-1}, {-1}, {0, 2, 1, 3}, {0} }
static

◆ shiftNodesMap

const int dudley::shiftNodesMap[8][4] = { {0}, {1, 0}, {1, 2, 0}, {-1}, {0, 1, 2}, {1, 0, 2}, {1, 2, 0, 3}, {0} }
static