escript  Revision_
ElementType.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2010-2018 by The University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Apache License, version 2.0
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development 2012-2013 by School of Earth Sciences
13 * Development from 2014-2017 by Centre for Geoscience Computing (GeoComp)
14 * Development from 2019 by School of Earth and Environmental Sciences
15 **
16 *****************************************************************************/
17 
18 #ifndef __DUDLEY_ELEMENTTYPE_H__
19 #define __DUDLEY_ELEMENTTYPE_H__
20 
21 #include <string>
22 
23 namespace dudley {
24 
25 typedef enum {
33  Dudley_NoRef = 7 // marks end of list
35 
36 inline ElementTypeId eltTypeFromString(const std::string& s)
37 {
38  if (s == "Point1")
39  return Dudley_Point1;
40  else if (s == "Line2")
41  return Dudley_Line2;
42  else if (s == "Tri3")
43  return Dudley_Tri3;
44  else if (s == "Tet4")
45  return Dudley_Tet4;
46  else if (s == "Line2Face")
47  return Dudley_Line2Face;
48  else if (s == "Tri3Face")
49  return Dudley_Tri3Face;
50  else if (s == "Tet4Face")
51  return Dudley_Tet4Face;
52  else
53  return Dudley_NoRef;
54 }
55 
56 }
57 
58 #endif // __DUDLEY_ELEMENTTYPE_H__
59 
dudley::ElementFile_Jacobians::DSDX
double * DSDX
Definition: dudley/src/ElementFile.h:49
dudley::ElementFile_Jacobians::numShapes
int numShapes
number of shape functions
Definition: dudley/src/ElementFile.h:40
finley::ElementFile_Jacobians::ElementFile_Jacobians
ElementFile_Jacobians(const_ShapeFunction_ptr basis)
Definition: finley/src/ElementFile_jacobians.cpp:23
finley::ElementFile::jacobians_reducedS_reducedQ
ElementFile_Jacobians * jacobians_reducedS_reducedQ
Definition: finley/src/ElementFile.h:171
dudley::ElementFile::Tag
int * Tag
Tag[i] is the tag of element i.
Definition: dudley/src/ElementFile.h:121
finley::Assemble_jacobians_3D_M2D_E2D
void Assemble_jacobians_3D_M2D_E2D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:666
dudley::ElementFile_Jacobians
Definition: dudley/src/ElementFile.h:29
dudley::Assemble_jacobians_3D_M2D_E2D
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)
Definition: dudley/src/Assemble_jacobians.cpp:255
dudley::Dudley_Point1
@ Dudley_Point1
Definition: ElementType.h:26
dudley::DudleyException
Definition: DudleyException.h:26
dudley::ElementFile::jacobians_reducedQ
ElementFile_Jacobians * jacobians_reducedQ
Definition: dudley/src/ElementFile.h:167
dudley::NodeFile::numDim
int numDim
number of spatial dimensions
Definition: dudley/src/NodeFile.h:146
dudley::ElementFile::createColoring
void createColoring(dim_t numNodes, const index_t *degreeOfFreedom)
Definition: ElementFile_createColoring.cpp:25
finley::ElementFile::jacobians
ElementFile_Jacobians * jacobians
jacobians of the shape function used for solution approximation
Definition: finley/src/ElementFile.h:159
DUDLEY_INITIAL_STATUS
#define DUDLEY_INITIAL_STATUS
Definition: Dudley.h:67
dudley::NodeFile
Definition: dudley/src/NodeFile.h:40
finley::ElementFile::jacobians_reducedS
ElementFile_Jacobians * jacobians_reducedS
Definition: finley/src/ElementFile.h:163
INDEX2
#define INDEX2(_X1_, _X2_, _N1_)
Definition: index.h:23
finley::ElementFile_Jacobians::numShapesTotal
int numShapesTotal
total number of shape functions = BasisFunctions->numShapes * numSides
Definition: finley/src/ElementFile.h:49
dudley::Dudley_Tet4Face
@ Dudley_Tet4Face
Definition: ElementType.h:32
dudley::util::getMinMaxInt
IndexPair getMinMaxInt(int dim, dim_t N, const index_t *values)
Definition: dudley/src/Util.cpp:159
dudley::ElementFile::Nodes
index_t * Nodes
Nodes[INDEX(k, i, numNodes)] is the k-th node in the i-th element.
Definition: dudley/src/ElementFile.h:133
finley::ElementFile_Jacobians::volume
double * volume
local volume
Definition: finley/src/ElementFile.h:56
finley::FinleyException
Definition: FinleyException.h:27
finley::ElementFile_Jacobians::node_selection
const int * node_selection
Definition: finley/src/ElementFile.h:52
finley::ElementFile_Jacobians
Definition: finley/src/ElementFile.h:29
dudley::ElementFile::allocTable
void allocTable(dim_t NE)
allocates the element table within an element file to hold NE elements
Definition: dudley/src/ElementFile.cpp:54
finley::Assemble_jacobians_2D_M1D_E1D
void Assemble_jacobians_2D_M1D_E1D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:140
dudley::ElementFile_Jacobians::numQuad
int numQuad
number of quadrature nodes used to calculate jacobians
Definition: dudley/src/ElementFile.h:38
dudley::Dudley_Tri3Face
@ Dudley_Tri3Face
Definition: ElementType.h:31
finley::Assemble_jacobians_1D
void Assemble_jacobians_1D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:50
finley::const_ReferenceElement_ptr
boost::shared_ptr< const ReferenceElement > const_ReferenceElement_ptr
Definition: ReferenceElements.h:214
dudley::ElementFile::Owner
int * Owner
Owner[i] contains the rank that owns element i.
Definition: dudley/src/ElementFile.h:124
dudley::ElementFile_Jacobians::absD
double * absD
used to compute volume
Definition: dudley/src/ElementFile.h:44
Util.h
finley::Assemble_jacobians_3D_M2D_E2D_C
void Assemble_jacobians_3D_M2D_E2D_C(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:733
dudley::ElementFile::jacobians
ElementFile_Jacobians * jacobians
jacobians of the shape function used for solution approximation
Definition: dudley/src/ElementFile.h:163
finley::ElementFile::Nodes
index_t * Nodes
Definition: finley/src/ElementFile.h:144
dudley::QuadNums
static const int QuadNums[4][2]
Definition: ShapeTable.h:75
dudley::ElementFile::distributeByRankOfDOF
void distributeByRankOfDOF(const int *mpiRankOfDOF, const index_t *nodesId)
redistributes the elements including overlap by rank
Definition: ElementFile_distributeByRankOfDOF.cpp:24
dudley::NodeFile::status
int status
Definition: dudley/src/NodeFile.h:177
dudley::ElementFile_Jacobians::status
int status
status of mesh when jacobians were updated last time
Definition: dudley/src/ElementFile.h:34
MPI_INT
#define MPI_INT
Definition: EsysMPI.h:46
dudley::ElementFile::maxColor
index_t maxColor
maximum color value
Definition: dudley/src/ElementFile.h:144
finley::Assemble_jacobians_3D_M2D_E3D_C
void Assemble_jacobians_3D_M2D_E3D_C(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:533
finley::ElementFile_Jacobians::~ElementFile_Jacobians
~ElementFile_Jacobians()
Definition: finley/src/ElementFile_jacobians.cpp:34
finley::NodeFile::Coordinates
double * Coordinates
Coordinates[INDEX2(k,i,numDim)] is the k-th coordinate of node i.
Definition: finley/src/NodeFile.h:175
dudley::ElementFile::minColor
index_t minColor
minimum color value
Definition: dudley/src/ElementFile.h:141
finley::ElementFile::numElements
dim_t numElements
number of elements
Definition: finley/src/ElementFile.h:122
dudley
A suite of factory methods for creating 2D and 3D dudley domains.
Definition: dudley/src/Assemble.h:32
finley::Assemble_jacobians_3D
void Assemble_jacobians_3D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:376
finley::ElementFile::jacobians_reducedQ
ElementFile_Jacobians * jacobians_reducedQ
Definition: finley/src/ElementFile.h:167
finley::ElementFile_Jacobians::numElements
dim_t numElements
number of elements
Definition: finley/src/ElementFile.h:54
dudley::Dudley_Line2Face
@ Dudley_Line2Face
Definition: ElementType.h:30
dudley::Assemble_jacobians_2D
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)
Definition: dudley/src/Assemble_jacobians.cpp:56
escript::DataTypes::dim_t
index_t dim_t
Definition: DataTypes.h:65
dudley::ElementFile::numElements
dim_t numElements
number of elements
Definition: dudley/src/ElementFile.h:113
dudley::Assemble_jacobians_3D
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)
Definition: dudley/src/Assemble_jacobians.cpp:180
ElementFile.h
finley::ElementFile_Jacobians::numQuadTotal
int numQuadTotal
Definition: finley/src/ElementFile.h:41
finley::Assemble_jacobians_3D_M2D_E3D
void Assemble_jacobians_3D_M2D_E3D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:452
dudley::ElementFile::Id
index_t * Id
Definition: dudley/src/ElementFile.h:118
finley::ElementFile::Id
index_t * Id
Definition: finley/src/ElementFile.h:126
dudley::ElementFile::numDim
int numDim
number of spatial dimensions of the domain
Definition: dudley/src/ElementFile.h:147
dudley::ElementFile::MPIInfo
escript::JMPI MPIInfo
Definition: dudley/src/ElementFile.h:110
ShapeTable.h
finley::NodeFile::status
int status
Definition: finley/src/NodeFile.h:209
dudley::ElementFile_Jacobians::numDim
int numDim
number of spatial dimensions
Definition: dudley/src/ElementFile.h:36
finley::Assemble_jacobians_2D
void Assemble_jacobians_2D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:87
dudley::Assemble_jacobians_2D_M1D_E1D
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)
Definition: dudley/src/Assemble_jacobians.cpp:134
finley::ElementFile_Jacobians::offsets
const int * offsets
offset to sides (borrowed reference)
Definition: finley/src/ElementFile.h:45
finley::ElementFile_Jacobians::status
int status
status of mesh when jacobians were updated last time
Definition: finley/src/ElementFile.h:34
dudley::ElementFile::numLocalDim
int numLocalDim
dimension of the element e.g. 2 for a line in 2D or 3D
Definition: dudley/src/ElementFile.h:150
escript::DataTypes::index_t
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:60
finley::NodeFile
Definition: finley/src/NodeFile.h:42
finley::ElementFile::borrowJacobians
ElementFile_Jacobians * borrowJacobians(const NodeFile *, bool, bool) const
Definition: finley/src/ElementFile_jacobians.cpp:41
dudley::Dudley_Tet4
@ Dudley_Tet4
Definition: ElementType.h:29
finley::Assemble_jacobians_2D_M1D_E2D
void Assemble_jacobians_2D_M1D_E2D(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:246
finley::ElementFile_Jacobians::numSides
int numSides
number of sides (=1 normal, =2 contact)
Definition: finley/src/ElementFile.h:43
dudley::ElementFile_Jacobians::numElements
dim_t numElements
number of elements
Definition: dudley/src/ElementFile.h:42
dudley::ElementFile_Jacobians::quadweight
double quadweight
used to compute volume
Definition: dudley/src/ElementFile.h:46
finley::Assemble_jacobians_2D_M1D_E1D_C
void Assemble_jacobians_2D_M1D_E1D_C(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:186
dudley::ElementFile_Jacobians::ElementFile_Jacobians
ElementFile_Jacobians()
Definition: dudley/src/ElementFile_jacobians.cpp:24
finley::ElementFile_Jacobians::numDim
int numDim
number of spatial dimensions
Definition: finley/src/ElementFile.h:36
dudley::ElementFile::Color
index_t * Color
Definition: dudley/src/ElementFile.h:138
finley::const_ShapeFunction_ptr
boost::shared_ptr< const ShapeFunction > const_ShapeFunction_ptr
Definition: ShapeFunctions.h:100
dudley::Dudley_NoRef
@ Dudley_NoRef
Definition: ElementType.h:33
finley::ElementFile_Jacobians::BasisFunctions
const_ShapeFunction_ptr BasisFunctions
basis function used
Definition: finley/src/ElementFile.h:38
finley::ElementFile_Jacobians::DSDX
double * DSDX
Definition: finley/src/ElementFile.h:59
finley::Assemble_jacobians_2D_M1D_E2D_C
void Assemble_jacobians_2D_M1D_E2D_C(const double *coordinates, int numQuad, const double *QuadWeights, int numShape, dim_t numElements, int numNodes, const index_t *nodes, const double *DSDv, int numTest, const double *DTDv, double *dTdX, double *volume, const index_t *elementId)
Definition: finley/src/Assemble_jacobians.cpp:300
finley::ElementFile::referenceElementSet
const_ReferenceElementSet_ptr referenceElementSet
the reference element to be used
Definition: finley/src/ElementFile.h:120
finley::ElementFile_Jacobians::numSub
int numSub
number of subelements
Definition: finley/src/ElementFile.h:47
dudley::Dudley_Line2
@ Dudley_Line2
Definition: ElementType.h:27
finley
A suite of factory methods for creating various finley domains.
Definition: finley/src/Assemble.h:32
FINLEY_INITIAL_STATUS
#define FINLEY_INITIAL_STATUS
Definition: Finley.h:77
finley::NodeFile::numDim
int numDim
number of spatial dimensions
Definition: finley/src/NodeFile.h:162
ESYS_ASSERT
#define ESYS_ASSERT(a, b)
EsysAssert is a MACRO that will throw an exception if the boolean condition specified is false.
Definition: Assert.h:79
dudley::Dudley_Tri3
@ Dudley_Tri3
Definition: ElementType.h:28
dudley::NodeFile::Coordinates
double * Coordinates
Coordinates[INDEX2(k,i,numDim)] is the k-th coordinate of node i.
Definition: dudley/src/NodeFile.h:159
escript::ValueError
An exception class that signals an invalid argument value.
Definition: EsysException.h:90
dudley::ElementTypeId
ElementTypeId
Definition: ElementType.h:25
dudley::eltTypeFromString
ElementTypeId eltTypeFromString(const std::string &s)
Definition: ElementType.h:36
dudley::ElementFile_Jacobians::~ElementFile_Jacobians
~ElementFile_Jacobians()
Definition: dudley/src/ElementFile_jacobians.cpp:35
Assemble.h
dudley::ElementFile::numNodes
int numNodes
number of nodes per element
Definition: dudley/src/ElementFile.h:130
dudley::ElementFile::borrowJacobians
ElementFile_Jacobians * borrowJacobians(const NodeFile *nodes, bool reducedOrder) const
Definition: dudley/src/ElementFile_jacobians.cpp:41
finley::ElementFile::numNodes
int numNodes
number of nodes per element
Definition: finley/src/ElementFile.h:138