escript  Revision_
Namespaces | Classes | Typedefs | Enumerations | Functions | Variables
dudley Namespace Reference

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} }
 

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

void dudley::Assemble_AverageElementData ( const ElementFile elements,
escript::Data out,
const escript::Data in 
)

◆ Assemble_CopyElementData()

void dudley::Assemble_CopyElementData ( const ElementFile elements,
escript::Data out,
const escript::Data in 
)

◆ Assemble_CopyNodalData()

void dudley::Assemble_CopyNodalData ( const NodeFile nodes,
escript::Data out,
const escript::Data in 
)

◆ Assemble_getNormal()

void dudley::Assemble_getNormal ( const NodeFile nodes,
const ElementFile elements,
escript::Data normals 
)

◆ Assemble_getSize()

void dudley::Assemble_getSize ( const NodeFile nodes,
const ElementFile elements,
escript::Data size 
)

◆ Assemble_gradient()

void dudley::Assemble_gradient ( const NodeFile nodes,
const ElementFile elements,
escript::Data gradient,
const escript::Data data 
)

◆ Assemble_integrate()

void dudley::Assemble_integrate ( const NodeFile nodes,
const ElementFile elements,
const escript::Data data,
std::vector< double > &  integrals 
)

◆ Assemble_interpolate()

void dudley::Assemble_interpolate ( const NodeFile nodes,
const ElementFile elements,
const escript::Data data,
escript::Data output 
)

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

void dudley::Assemble_LumpedSystem ( const NodeFile nodes,
const ElementFile elements,
escript::Data lumpedMat,
const escript::Data D,
bool  useHRZ 
)

◆ Assemble_NodeCoordinates()

void dudley::Assemble_NodeCoordinates ( const NodeFile nodes,
escript::Data x 
)

◆ Assemble_PDE()

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 
)

◆ Assemble_PDE_Points()

template<typename Scalar = double>
void dudley::Assemble_PDE_Points ( const AssembleParameters p,
const escript::Data d_dirac,
const escript::Data y_dirac 
)

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

template void dudley::Assemble_PDE_Points< escript::DataTypes::cplx_t > ( const AssembleParameters p,
const escript::Data d,
const escript::Data y 
)

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

template void dudley::Assemble_PDE_Points< escript::DataTypes::real_t > ( const AssembleParameters p,
const escript::Data d,
const escript::Data y 
)

◆ Assemble_PDE_Single_2D()

template<typename Scalar = double>
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 
)

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

template<typename Scalar = double>
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 
)

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

template<typename Scalar = double>
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 
)

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

template<typename Scalar = double>
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 
)

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

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

Referenced by brick_driver().

◆ brick_driver() [1/2]

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

const char * dudley::getElementName ( ElementTypeId  id)

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

bool dudley::hasReducedIntegrationOrder ( const escript::Data in)
inline

◆ IndexList_insertElements()

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

◆ IndexList_insertElementsWithRowRangeNoMainDiagonal()

void dudley::IndexList_insertElementsWithRowRangeNoMainDiagonal ( IndexList indexList,
index_t  firstRow,
index_t  lastRow,
const ElementFile elements,
const index_t *  map 
)

◆ readGmsh()

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(), and MPI_COMM_WORLD.

Referenced by BOOST_PYTHON_MODULE(), and finley::readGmsh_driver().

◆ readMesh()

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(), and MPI_COMM_WORLD.

Referenced by BOOST_PYTHON_MODULE().

◆ rectangle()

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

Referenced by rectangle_driver().

◆ rectangle_driver() [1/2]

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