Go to the documentation of this file.
17 #ifndef __FINLEY_NODEFILE_H__
18 #define __FINLEY_NODEFILE_H__
25 #include <escript/Distribution.h>
28 #include <paso/Coupler.h>
30 #ifdef ESYS_HAVE_TRILINOS
31 #include <trilinoswrap/types.h>
190 #ifdef ESYS_HAVE_PASO
194 #ifdef ESYS_HAVE_TRILINOS
195 esys_trilinos::const_TrilinosMap_ptr trilinosRowMap;
196 esys_trilinos::const_TrilinosMap_ptr trilinosReducedRowMap;
197 esys_trilinos::const_TrilinosMap_ptr trilinosColMap;
198 esys_trilinos::const_TrilinosMap_ptr trilinosReducedColMap;
333 #endif // __FINLEY_NODEFILE_H__
void updateTagList()
Definition: finley/src/NodeFile.h:324
NodeFile(int nDim, escript::JMPI MPIInfo)
Definition: finley/src/NodeFile.cpp:114
index_t * globalReducedNodesIndex
Definition: finley/src/NodeFile.h:179
Definition: finley/src/NodeMapping.h:40
dim_t createDenseDOFLabeling()
Definition: finley/src/NodeFile.cpp:535
const IndexVector & borrowReducedNodesTarget() const
Definition: finley/src/NodeFile.h:289
const index_t * borrowTargetReducedNodes() const
Definition: finley/src/NodeFile.h:309
std::pair< index_t, index_t > getGlobalIdRange() const
Definition: finley/src/NodeFile.cpp:236
index_t * globalDegreesOfFreedom
Definition: finley/src/NodeFile.h:171
boost::shared_ptr< Distribution > Distribution_ptr
Definition: Distribution.h:35
const index_t * borrowGlobalReducedNodesIndex() const
Definition: finley/src/NodeFile.h:249
std::pair< index_t, index_t > getGlobalDOFRange() const
Definition: finley/src/NodeFile.cpp:241
dim_t getNumReducedNodes() const
returns the number of reduced order FEM nodes (on this rank)
Definition: finley/src/NodeFile.h:259
void assignMPIRankToDOFs(std::vector< int > &mpiRankOfDOF, const IndexVector &distribution)
Definition: finley/src/NodeFile.cpp:448
int * Tag
Tag[i] is the tag of node i.
Definition: finley/src/NodeFile.h:164
index_t getFirstNode() const
Definition: finley/src/NodeFile.h:214
escript::Distribution_ptr nodesDistribution
MPI distribution of nodes.
Definition: finley/src/NodeFile.h:184
index_t * reducedNodesId
Definition: finley/src/NodeFile.h:201
index_t * globalReducedDOFIndex
Definition: finley/src/NodeFile.h:176
dim_t getNumDegreesOfFreedomTargets() const
returns the number of degrees of freedom targets (own and shared)
Definition: finley/src/NodeFile.h:274
dim_t numNodes
number of nodes
Definition: finley/src/NodeFile.h:149
NodeMapping reducedNodesMapping
Definition: finley/src/NodeFile.h:155
void gather(const index_t *index, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:331
void createDOFMappingAndCoupling(bool reduced)
Definition: finley/src/NodeFile.cpp:782
std::pair< index_t, index_t > getGlobalNodeIDIndexRange() const
Definition: finley/src/NodeFile.cpp:246
const IndexVector & borrowReducedDegreesOfFreedomTarget() const
Definition: finley/src/NodeFile.h:299
dim_t getNumReducedDegreesOfFreedom() const
returns the number of reduced order degrees of freedom (on this rank)
Definition: finley/src/NodeFile.h:269
std::vector< index_t > target
target[i] defines the target of FEM node i=0,...,numNodes-1
Definition: finley/src/NodeMapping.h:104
NodeMapping reducedDegreesOfFreedomMapping
Definition: finley/src/NodeFile.h:146
void setValuesInUse(const int *values, dim_t numValues, std::vector< int > &valuesInUse, escript::JMPI mpiinfo)
Definition: finley/src/Util.cpp:365
dim_t getNumNodes() const
returns the number of FEM nodes (on this rank)
Definition: finley/src/NodeFile.h:254
void createNodeMappings(const IndexVector &indexReducedNodes, const IndexVector &dofDistribution, const IndexVector &nodeDistribution)
Definition: finley/src/NodeFile.cpp:1014
double * Coordinates
Coordinates[INDEX2(k,i,numDim)] is the k-th coordinate of node i.
Definition: finley/src/NodeFile.h:173
Data represents a collection of datapoints.
Definition: Data.h:62
index_t getLastNode() const
Definition: finley/src/NodeFile.h:219
index_t getGlobalNumReducedNodes() const
Definition: finley/src/NodeFile.h:244
index_t dim_t
Definition: DataTypes.h:87
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:70
const index_t * borrowGlobalNodesIndex() const
Definition: finley/src/NodeFile.h:229
dim_t createDenseReducedLabeling(const std::vector< short > &reducedMask, bool useNodes)
Definition: finley/src/NodeFile.cpp:712
~NodeFile()
destructor
Definition: finley/src/NodeFile.cpp:132
escript::JMPI MPIInfo
MPI information.
Definition: finley/src/NodeFile.h:158
dim_t prepareLabeling(const std::vector< short > &mask, IndexVector &buffer, IndexVector &distribution, bool useNodes)
Definition: finley/src/NodeFile.cpp:474
void freeTable()
empties the node table and frees all memory
Definition: finley/src/NodeFile.cpp:172
const IndexVector & borrowNodesTarget() const
Definition: finley/src/NodeFile.h:284
std::vector< index_t > map
maps the target nodes back to the FEM nodes: target[map[i]]=i
Definition: finley/src/NodeMapping.h:106
index_t getFirstReducedNode() const
Definition: finley/src/NodeFile.h:234
index_t * Id
Id[i] is the unique ID number of FEM node i.
Definition: finley/src/NodeFile.h:162
dim_t createDenseNodeLabeling(IndexVector &nodeDistribution, const IndexVector &dofDistribution)
Definition: finley/src/NodeFile.cpp:598
NodeMapping nodesMapping
Definition: finley/src/NodeFile.h:144
int status
Definition: finley/src/NodeFile.h:207
void setCoordinates(const escript::Data &newX)
copies the array newX into this->coordinates
Definition: finley/src/NodeFile.cpp:252
void print() const
Definition: finley/src/NodeFile.cpp:206
escript::Distribution_ptr reducedDegreesOfFreedomDistribution
Definition: finley/src/NodeFile.h:187
escript::Distribution_ptr degreesOfFreedomDistribution
Definition: finley/src/NodeFile.h:186
std::pair< index_t, index_t > getDOFRange() const
Definition: finley/src/NodeFile.cpp:225
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:82
dim_t getGlobalNumNodes() const
Definition: finley/src/NodeFile.h:224
Definition: finley/src/NodeFile.h:39
Definition: AbstractContinuousDomain.cpp:22
index_t * reducedDegreesOfFreedomId
Definition: finley/src/NodeFile.h:203
NodeMapping degreesOfFreedomMapping
Definition: finley/src/NodeFile.h:145
index_t * globalNodesIndex
assigns each local node a global unique ID in a dense labeling
Definition: finley/src/NodeFile.h:181
const index_t * borrowTargetNodes() const
returns the mapping from local nodes to a target
Definition: finley/src/NodeFile.h:304
escript::Distribution_ptr reducedNodesDistribution
Definition: finley/src/NodeFile.h:185
boost::shared_ptr< Connector > Connector_ptr
Definition: Coupler.h:48
const index_t * borrowTargetDegreesOfFreedom() const
Definition: finley/src/NodeFile.h:314
dim_t getNumDegreesOfFreedom() const
returns the number of degrees of freedom (on this rank)
Definition: finley/src/NodeFile.h:264
index_t getLastReducedNode() const
Definition: finley/src/NodeFile.h:239
dim_t getNumReducedDegreesOfFreedomTargets() const
returns the number of reduced degrees of freedom targets (own and shared)
Definition: finley/src/NodeFile.h:279
const index_t * borrowTargetReducedDegreesOfFreedom() const
Definition: finley/src/NodeFile.h:319
index_t * degreesOfFreedomId
Definition: finley/src/NodeFile.h:202
void scatter(const index_t *index, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:320
void gather_global(const index_t *index, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:339
std::vector< int > tagsInUse
vector of tags which are actually used
Definition: finley/src/NodeFile.h:166
A suite of factory methods for creating various finley domains.
Definition: finley/src/Assemble.h:31
void setTags(int newTag, const escript::Data &mask)
set tags to newTag where mask > 0
Definition: finley/src/NodeFile.cpp:277
int numDim
number of spatial dimensions
Definition: finley/src/NodeFile.h:160
void allocTable(dim_t numNodes)
allocates the node table within this node file to hold numNodes nodes.
Definition: finley/src/NodeFile.cpp:137
const IndexVector & borrowDegreesOfFreedomTarget() const
Definition: finley/src/NodeFile.h:294
void copyTable(index_t offset, index_t idOffset, index_t dofOffset, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:295
std::vector< index_t > IndexVector
Definition: DataTypes.h:85
dim_t getNumTargets() const
returns the number of target nodes (number of items in the map array)
Definition: finley/src/NodeMapping.h:101