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)
template<typename Scalar >
void | Assemble_AverageElementData (const ElementFile *elements, escript::Data &out, const escript::Data &in)
| averages data More...
template<typename Scalar >
void | Assemble_CopyElementData (const ElementFile *elements, escript::Data &out, const escript::Data &in)
| copies data between different types of elements More...
template<typename Scalar >
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)
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 More...
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) 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)
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. 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

enum dudley::ElementTypeId

Enumerator
Dudley_Point1 |
Dudley_Line2 |
Dudley_Tri3 |
Dudley_Tet4 |
Dudley_Line2Face |
Dudley_Tri3Face |
Dudley_Tet4Face |
Dudley_NoRef |

## SystemMatrixType

enum dudley::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
| ) |  |

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.

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

References MATRIX_FORMAT_CSC, S, and paso::SystemMatrix::type.

## Assemble_AverageElementData()

template<typename Scalar >

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, escript::Data::isComplex(), dudley::ElementFile::numDim, dudley::ElementFile::numElements, escript::Data::numSamplesEqual(), QuadNums, QuadWeight, escript::Data::requireWrite(), and escript::Scalar().

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

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

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

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

## Assemble_CopyElementData()

template<typename Scalar >

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(), escript::Data::isComplex(), dudley::ElementFile::numDim, dudley::ElementFile::numElements, escript::Data::numSamplesEqual(), QuadNums, escript::Data::requireWrite(), and escript::Scalar().

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

template<typename Scalar >

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::getFunctionSpace(), escript::Data::getNumDataPoints(), dudley::NodeFile::getNumDegreesOfFreedom(), dudley::NodeFile::getNumNodes(), escript::Data::getSampleDataRO(), escript::Data::getSampleDataRW(), escript::FunctionSpace::getTypeCode(), escript::Data::isComplex(), dudley::NodeFile::MPIInfo, escript::Data::numSamplesEqual(), escript::Data::requireWrite(), and escript::Scalar().

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

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::isComplex(), 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().

## Assemble_getSize()

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::isComplex(), 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().

## Assemble_gradient()

template<typename Scalar >

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, escript::Data::isComplex(), escript::Data::isLazy(), 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, escript::Data::requireWrite(), and escript::Scalar().

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

template<typename Scalar >

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

integrates data on quadrature points

References dudley::ElementFile_Jacobians::absD, escript::Data::actsExpanded(), Assemble_integrate< cplx_t >(), Assemble_integrate< real_t >(), dudley::ElementFile::borrowJacobians(), escript::Data::getDataPointSize(), escript::Data::getSampleDataRO(), hasReducedIntegrationOrder(), INDEX2, escript::Data::isComplex(), escript::Data::isLazy(), dudley::NodeFile::MPIInfo, dudley::ElementFile::numElements, dudley::ElementFile_Jacobians::numQuad, escript::Data::numSamplesEqual(), dudley::ElementFile::Owner, dudley::ElementFile_Jacobians::quadweight, and escript::Scalar().

Referenced by dudley::DudleyDomain::setToIntegralsWorker().

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

Referenced by Assemble_integrate().

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

Referenced by Assemble_integrate().

## Assemble_interpolate()

template<typename Scalar >

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, escript::Data::isComplex(), escript::Data::isLazy(), dudley::ElementFile::MPIInfo, dudley::ElementFile::Nodes, dudley::ElementFile::numDim, dudley::ElementFile::numElements, dudley::ElementFile::numNodes, escript::Data::numSamplesEqual(), escript::Data::requireWrite(), escript::Scalar(), and dudley::util::smallMatSetMult1().

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

References COMPDXDV0, COMPDXDV1, DIM, DTDV_2D, and INDEX4.

Referenced by dudley::ElementFile::borrowJacobians().

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

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, escript::DataTypes::DataVectorAlt< T >::data(), 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::getExpandedVectorReference(), escript::Data::getFunctionSpace(), getQuadShape(), escript::Data::getSampleDataRO(), escript::FunctionSpace::getTypeCode(), INDEX2, INDEX3, escript::Data::isComplex(), 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().

## Assemble_NodeCoordinates()

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, escript::Data::isComplex(), dudley::NodeFile::numDim, escript::Data::numSamplesEqual(), and escript::Data::requireWrite().

Referenced by dudley::DudleyDomain::setToX().

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

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

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

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

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

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.

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

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.

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

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.

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

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.

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

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

## brick_driver() [1/2]

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

Python driver for brick()

Parameters

  args | see brick() definition for order of params

## brick_driver() [2/2]

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

References brick(), escript::makeInfo(), and MPI_COMM_WORLD.

Referenced by BOOST_PYTHON_MODULE().

## cleanupAndThrow()

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

inline

References dudley::NodeFile::allocTable(), dudley::ElementFile::allocTable(), dudley::ElementFile::Color, dudley::DudleyDomain::createMappings(), dudley::DudleyDomain::getNodes(), escript::AbstractDomain::getPtr(), dudley::ElementFile::Id, INDEX2, escript::load(), escript::makeInfo(), dudley::ElementFile::maxColor, dudley::ElementFile::minColor, MPI_COMM_WORLD, dudley::ElementFile::Nodes, dudley::ElementFile::Owner, dudley::DudleyDomain::setElements(), dudley::DudleyDomain::setFaceElements(), dudley::DudleyDomain::setPoints(), dudley::DudleyDomain::setTagMap(), dudley::ElementFile::Tag, and dudley::ElementFile::updateTagList().

Referenced by dudley::DudleyDomain::load().

## eltTypeFromString()

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

inline

References Dudley_Line2, Dudley_Line2Face, Dudley_NoRef, Dudley_Point1, Dudley_Tet4, Dudley_Tet4Face, Dudley_Tri3, and Dudley_Tri3Face.

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

References INDEX2.

Referenced by dudley::NodeFile::gather(), and dudley::NodeFile::gather_global().

## getElementName()

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

## getGlobalRange()

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

static

References dudley::util::getMinMaxInt(), and MPI_MAX.

Referenced by dudley::NodeFile::getGlobalDOFRange(), dudley::NodeFile::getGlobalIdRange(), and dudley::NodeFile::getGlobalNodeIDIndexRange().

## getQuadShape()

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

## hasReducedIntegrationOrder()

bool dudley::hasReducedIntegrationOrder | ( | const escript::Data & | in | ) |

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

## IndexList_insertElements()

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

## IndexList_insertElementsWithRowRangeNoMainDiagonal()

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

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

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

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

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

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

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

## rectangle_driver() [1/2]

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

Python driver for rectangle()

Parameters

  args | see rectangle() definition for order of params

## rectangle_driver() [2/2]

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

References escript::makeInfo(), MPI_COMM_WORLD, and rectangle().

Referenced by BOOST_PYTHON_MODULE().

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

Referenced by dudley::ElementFile::ElementFile().

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

Referenced by dudley::ElementFile::ElementFile().

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

Referenced by Assemble_AverageElementData(), Assemble_CopyElementData(), and dudley::ElementFile::borrowJacobians().

## QuadWeight

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

static

Referenced by Assemble_AverageElementData().

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