Go to the documentation of this file.
18 #ifndef __DUDLEY_ELEMENTFILE_H__
19 #define __DUDLEY_ELEMENTFILE_H__
28 struct ElementFile_Jacobians
98 bool reducedOrder)
const;
183 #endif // __DUDLEY_ELEMENTFILE_H__
double * DSDX
Definition: dudley/src/ElementFile.h:74
int numShapes
number of shape functions
Definition: dudley/src/ElementFile.h:65
int numShapes
number of shape functions
Definition: dudley/src/ElementFile.h:171
int getNumDataPointsPerSample() const
Return the number of data points per sample.
Definition: Data.h:543
bool isComplex() const
True if components of this data are stored as complex.
Definition: Data.cpp:1164
ElementFile_Jacobians * jacobians_reducedS_reducedQ
Definition: finley/src/ElementFile.h:183
std::vector< IndexPair > ValueAndIndexList
Definition: finley/src/Util.h:56
int * Tag
Tag[i] is the tag of element i.
Definition: dudley/src/ElementFile.h:133
index_t minColor
minimum color value
Definition: finley/src/ElementFile.h:165
void scatter(index_t *index, const ElementFile *in)
Definition: finley/src/ElementFile.cpp:156
void copyTable(index_t offset, index_t nodeOffset, index_t idOffset, const ElementFile *in)
Definition: dudley/src/ElementFile.cpp:106
Definition: dudley/src/ElementFile.h:40
double real_t
type of all real-valued scalars in escript
Definition: DataTypes.h:76
void gather(const index_t *index, const ElementFile *in)
Definition: finley/src/ElementFile.cpp:137
Definition: DudleyException.h:37
ElementFile_Jacobians * jacobians_reducedQ
Definition: dudley/src/ElementFile.h:179
void gather(const index_t *index, const ElementFile *in)
Definition: dudley/src/ElementFile.cpp:146
void createColoring(dim_t numNodes, const index_t *degreeOfFreedom)
Definition: ElementFile_createColoring.cpp:37
ElementFile_Jacobians * jacobians
jacobians of the shape function used for solution approximation
Definition: finley/src/ElementFile.h:171
std::pair< index_t, index_t > getNodeRange() const
Definition: dudley/src/ElementFile.h:182
Definition: dudley/src/NodeFile.h:38
void allocTable(dim_t NE)
allocates the element table within an element file to hold NE elements
Definition: finley/src/ElementFile.cpp:77
ElementFile_Jacobians * jacobians_reducedS
Definition: finley/src/ElementFile.h:175
#define INDEX2(_X1_, _X2_, _N1_)
Definition: index.h:22
void swapTable(ElementFile *other)
Definition: dudley/src/ElementFile.cpp:163
boost::shared_ptr< const ReferenceElementSet > const_ReferenceElementSet_ptr
Definition: ReferenceElementSets.h:92
const DataTypes::real_t * getSampleDataRO(DataTypes::RealVectorType::size_type sampleNo, DataTypes::real_t dummy=0) const
Return the sample data for the given sample no. Please do not use this unless you NEED to access samp...
Definition: Data.h:1988
IndexPair getMinMaxInt(int dim, dim_t N, const index_t *values)
Definition: dudley/src/Util.cpp:184
int * Tag
Tag[i] is the tag of element i.
Definition: finley/src/ElementFile.h:141
index_t * Nodes
Nodes[INDEX(k, i, numNodes)] is the k-th node in the i-th element.
Definition: dudley/src/ElementFile.h:145
void freeTable()
deallocates the element table within an element file
Definition: dudley/src/ElementFile.cpp:93
Definition: finley/src/ElementFile.h:40
void allocTable(dim_t NE)
allocates the element table within an element file to hold NE elements
Definition: dudley/src/ElementFile.cpp:66
int numQuad
number of quadrature nodes used to calculate jacobians
Definition: dudley/src/ElementFile.h:63
void createColoring(const IndexVector &dofMap)
Tries to reduce the number of colours used to colour the elements.
Definition: finley/src/ElementFile.cpp:261
boost::shared_ptr< const ReferenceElement > const_ReferenceElement_ptr
Definition: ReferenceElements.h:212
int * Owner
Owner[i] contains the rank that owns element i.
Definition: dudley/src/ElementFile.h:136
void relabelNodes(const IndexVector &newNode, index_t offset)
~ElementFile()
destructor
Definition: finley/src/ElementFile.cpp:67
void markNodes(std::vector< short > &mask, index_t offset) const
Definition: dudley/src/ElementFile.cpp:240
int getDataPointSize() const
Return the size of the data point. It is the product of the data point shape dimensions.
Definition: Data.cpp:1364
double * absD
used to compute volume
Definition: dudley/src/ElementFile.h:69
void setTags(const int newTag, const escript::Data &mask)
Definition: finley/src/ElementFile.cpp:228
ElementFile_Jacobians * jacobians
jacobians of the shape function used for solution approximation
Definition: dudley/src/ElementFile.h:175
index_t * Nodes
Definition: finley/src/ElementFile.h:156
void distributeByRankOfDOF(const std::vector< int > &mpiRankOfDOF, index_t *nodesId)
redistributes the elements including overlap by rank
Definition: finley/src/ElementFile.cpp:342
const char * ename
name of element type
Definition: dudley/src/ElementFile.h:168
void distributeByRankOfDOF(const int *mpiRankOfDOF, const index_t *nodesId)
redistributes the elements including overlap by rank
Definition: ElementFile_distributeByRankOfDOF.cpp:36
index_t maxColor
maximum color value
Definition: finley/src/ElementFile.h:168
int status
status of mesh when jacobians were updated last time
Definition: dudley/src/ElementFile.h:59
#define MPI_INT
Definition: EsysMPI.h:45
ElementFile(const_ReferenceElementSet_ptr refElementSet, escript::JMPI mpiInfo)
Definition: finley/src/ElementFile.cpp:41
index_t maxColor
maximum color value
Definition: dudley/src/ElementFile.h:156
int getNumSamples() const
Return the number of samples.
Definition: Data.h:532
index_t minColor
minimum color value
Definition: dudley/src/ElementFile.h:153
dim_t numElements
number of elements
Definition: finley/src/ElementFile.h:134
static const int localDims[8]
Definition: ShapeTable.h:65
A suite of factory methods for creating 2D and 3D dudley domains.
Definition: dudley/src/Assemble.h:32
ElementFile_Jacobians * jacobians_reducedQ
Definition: finley/src/ElementFile.h:179
int * Owner
Owner[i] contains the rank that owns element i.
Definition: finley/src/ElementFile.h:144
Data represents a collection of datapoints.
Definition: Data.h:63
index_t dim_t
Definition: DataTypes.h:90
escript::JMPI MPIInfo
Definition: finley/src/ElementFile.h:129
dim_t numElements
number of elements
Definition: dudley/src/ElementFile.h:125
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:71
void sortValueAndIndex(ValueAndIndexList &array)
orders a ValueAndIndexList by value.
Definition: finley/src/Util.cpp:64
void freeTable()
deallocates the element table within an element file
Definition: finley/src/ElementFile.cpp:103
Definition: dudley/src/ElementFile.h:64
bool hasReducedIntegrationOrder(const escript::Data &in)
Definition: Dudley.h:73
IndexPair getMinMaxInt(int dim, dim_t N, const index_t *values)
Definition: finley/src/Util.cpp:303
index_t * Id
Definition: dudley/src/ElementFile.h:130
bool hasReducedIntegrationOrder(const escript::Data &in)
returns true if the data object is defined on reduced element types
Definition: finley/src/Util.h:62
index_t * Color
Definition: finley/src/ElementFile.h:162
void swap(index_t *r, index_t *c, double *v, int left, int right)
Definition: SparseMatrix.cpp:69
std::vector< IndexPair > ValueAndIndexList
Definition: dudley/src/Util.h:56
void print(const index_t *nodesId) const
prints information about this element file to stdout
Definition: dudley/src/ElementFile.cpp:129
index_t * Id
Definition: finley/src/ElementFile.h:138
int numDim
number of spatial dimensions of the domain
Definition: dudley/src/ElementFile.h:159
escript::JMPI MPIInfo
Definition: dudley/src/ElementFile.h:122
static const int Dims[8]
Definition: ShapeTable.h:66
bool numSamplesEqual(int numDataPointsPerSample, int numSamples) const
Returns true if the number of data points per sample and the number of samples match the respective a...
Definition: Data.h:554
void optimizeOrdering()
reorders the elements so that they are stored close to the nodes
Definition: dudley/src/ElementFile.cpp:176
int numDim
number of spatial dimensions
Definition: dudley/src/ElementFile.h:61
void updateTagList()
Definition: dudley/src/ElementFile.h:187
void sortValueAndIndex(ValueAndIndexList &array)
orders a ValueAndIndexList by value.
Definition: dudley/src/Util.cpp:64
void setValuesInUse(const int *values, dim_t numValues, std::vector< int > &valuesInUse, escript::JMPI mpiinfo)
Definition: dudley/src/Util.cpp:249
ElementFile(ElementTypeId etype, escript::JMPI mpiInfo)
Definition: dudley/src/ElementFile.cpp:37
void relabelNodes(const index_t *newNode, index_t offset)
Definition: dudley/src/ElementFile.cpp:250
int numLocalDim
dimension of the element e.g. 2 for a line in 2D or 3D
Definition: dudley/src/ElementFile.h:162
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:85
void copyTable(index_t offset, index_t nodeOffset, index_t idOffset, const ElementFile *in)
Definition: finley/src/ElementFile.cpp:118
void swapTable(ElementFile *other)
Definition: finley/src/ElementFile.cpp:173
void markNodes(std::vector< short > &mask, int offset, bool useLinear)
Definition: finley/src/ElementFile.cpp:317
dim_t numElements
number of elements
Definition: dudley/src/ElementFile.h:67
double quadweight
used to compute volume
Definition: dudley/src/ElementFile.h:71
std::vector< int > tagsInUse
array of tags which are actually used
Definition: finley/src/ElementFile.h:147
Definition: finley/src/ElementFile.h:74
ElementFile_Jacobians()
Definition: dudley/src/ElementFile_jacobians.cpp:36
index_t * Color
Definition: dudley/src/ElementFile.h:150
const char * getElementName(ElementTypeId id)
Definition: ShapeTable.cpp:116
bool actsExpanded() const
Return true if this Data is expanded or resolves to expanded. That is, if it has a separate value for...
Definition: Data.cpp:1122
void gather(int len, const index_t *index, int numData, const double *in, double *out)
Definition: dudley/src/Util.cpp:69
const_ReferenceElementSet_ptr referenceElementSet
the reference element to be used
Definition: finley/src/ElementFile.h:132
void setTags(int newTag, const escript::Data &mask)
sets element tags to newTag where mask > 0
Definition: dudley/src/ElementFile.cpp:205
void optimizeOrdering()
reorders the elements so that they are stored close to the nodes
Definition: finley/src/ElementFile.cpp:186
void updateTagList()
Definition: finley/src/ElementFile.h:191
A suite of factory methods for creating various finley domains.
Definition: finley/src/Assemble.h:32
#define ESYS_ASSERT(a, b)
EsysAssert is a MACRO that will throw an exception if the boolean condition specified is false.
Definition: Assert.h:78
std::vector< int > tagsInUse
array of tags which are actually used
Definition: dudley/src/ElementFile.h:139
An exception class that signals an invalid argument value.
Definition: EsysException.h:101
ElementTypeId
Definition: ElementType.h:37
ElementTypeId etype
element type ID
Definition: dudley/src/ElementFile.h:165
~ElementFile_Jacobians()
Definition: dudley/src/ElementFile_jacobians.cpp:47
int numNodes
number of nodes per element
Definition: dudley/src/ElementFile.h:142
std::vector< index_t > IndexVector
Definition: DataTypes.h:88
ElementFile_Jacobians * borrowJacobians(const NodeFile *nodes, bool reducedOrder) const
Definition: dudley/src/ElementFile_jacobians.cpp:53
~ElementFile()
Definition: dudley/src/ElementFile.cpp:59
int numNodes
number of nodes per element
Definition: finley/src/ElementFile.h:150