17 #ifndef __FINLEY_NODEFILE_H__ 18 #define __FINLEY_NODEFILE_H__ 24 #include <paso/Coupler.h> 25 #include <paso/Distribution.h> 67 const std::vector<index_t>& dofDistribution,
68 const std::vector<index_t>& nodeDistribution);
71 const std::vector<index_t>& dofDistribution);
74 void assignMPIRankToDOFs(std::vector<int>& mpiRankOfDOF,
const std::vector<index_t>& distribution);
93 std::vector<index_t>& buffer,
94 std::vector<index_t>& distribution,
bool useNodes);
264 #endif // __FINLEY_NODEFILE_H__ void assignMPIRankToDOFs(std::vector< int > &mpiRankOfDOF, const std::vector< index_t > &distribution)
Definition: finley/src/NodeFile.cpp:459
const std::vector< index_t > & borrowReducedDegreesOfFreedomTarget() const
Definition: finley/src/NodeFile.h:231
paso::Connector_ptr degreesOfFreedomConnector
Definition: finley/src/NodeFile.h:139
paso::Distribution_ptr reducedDegreesOfFreedomDistribution
Definition: finley/src/NodeFile.h:137
index_t * degreesOfFreedomId
Definition: finley/src/NodeFile.h:144
index_t * borrowGlobalReducedNodesIndex() const
Definition: finley/src/NodeFile.h:191
index_t * Id
Id[i] is the id number of node i. It needs to be unique.
Definition: finley/src/NodeFile.h:114
std::pair< index_t, index_t > getGlobalNodeIDIndexRange() const
Definition: finley/src/NodeFile.cpp:292
void gather(const index_t *index, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:347
NodeMapping nodesMapping
Definition: finley/src/NodeFile.h:97
std::vector< int > tagsInUse
vector of tags which are actually used
Definition: finley/src/NodeFile.h:118
void copyTable(index_t offset, index_t idOffset, index_t dofOffset, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:310
int numDim
number of spatial dimensions
Definition: finley/src/NodeFile.h:112
int status
Definition: finley/src/NodeFile.h:149
const std::vector< index_t > & borrowNodesTarget() const
Definition: finley/src/NodeFile.h:216
const std::vector< index_t > & borrowReducedNodesTarget() const
Definition: finley/src/NodeFile.h:221
void createDOFMappingAndCoupling(bool reduced)
Definition: finley/src/NodeFile.cpp:791
dim_t getNumReducedDegreesOfFreedom() const
Definition: finley/src/NodeFile.h:211
const index_t * borrowTargetReducedDegreesOfFreedom() const
Definition: finley/src/NodeFile.h:251
dim_t getNumDegreesOfFreedom() const
Definition: finley/src/NodeFile.h:206
paso::Distribution_ptr degreesOfFreedomDistribution
Definition: finley/src/NodeFile.h:136
NodeMapping degreesOfFreedomMapping
Definition: finley/src/NodeFile.h:104
void setValuesInUse(const int *values, const int numValues, std::vector< int > &valuesInUse, esysUtils::JMPI &mpiinfo)
Definition: finley/src/Util.cpp:350
index_t * globalReducedNodesIndex
Definition: finley/src/NodeFile.h:130
dim_t getNumNodes() const
returns the number of FEM nodes
Definition: finley/src/NodeFile.h:196
dim_t createDenseReducedLabeling(const std::vector< short > &reducedMask, bool useNodes)
Definition: finley/src/NodeFile.cpp:721
void scatter(const index_t *index, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:337
boost::shared_ptr< Distribution > Distribution_ptr
Definition: Distribution.h:36
index_t * globalDegreesOfFreedom
Definition: finley/src/NodeFile.h:122
void freeTable()
frees the node table within this node file
Definition: finley/src/NodeFile.cpp:150
index_t getFirstReducedNode() const
Definition: finley/src/NodeFile.h:176
void createNodeMappings(const std::vector< index_t > &indexReducedNodes, const std::vector< index_t > &dofDistribution, const std::vector< index_t > &nodeDistribution)
Definition: finley/src/NodeFile.cpp:1007
dim_t getNumReducedNodes() const
Definition: finley/src/NodeFile.h:201
Definition: finley/src/Assemble.h:32
index_t * reducedNodesId
these are the packed versions of Id
Definition: finley/src/NodeFile.h:143
index_t getFirstNode() const
Definition: finley/src/NodeFile.h:156
dim_t prepareLabeling(const std::vector< short > &mask, std::vector< index_t > &buffer, std::vector< index_t > &distribution, bool useNodes)
Definition: finley/src/NodeFile.cpp:483
void gather_global(const index_t *index, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:355
void allocTable(dim_t numNodes)
allocates the node table within this node file to hold NN nodes.
Definition: finley/src/NodeFile.cpp:114
index_t * globalReducedDOFIndex
Definition: finley/src/NodeFile.h:127
paso::Distribution_ptr nodesDistribution
Definition: finley/src/NodeFile.h:134
dim_t getNumTargets() const
returns the number of target nodes (number of items in the map array)
Definition: finley/src/NodeMapping.h:75
Definition: finley/src/NodeMapping.h:29
index_t getLastReducedNode() const
Definition: finley/src/NodeFile.h:181
std::pair< index_t, index_t > getGlobalDOFRange() const
Definition: finley/src/NodeFile.cpp:273
NodeFile(int nDim, esysUtils::JMPI &mpiInfo)
Definition: finley/src/NodeFile.cpp:89
Data represents a collection of datapoints.
Definition: Data.h:68
void updateTagList()
Definition: finley/src/NodeFile.h:256
Definition: finley/src/NodeFile.h:30
std::vector< index_t > target
target[i] defines the target of FEM node i=0,...,numNodes-1
Definition: finley/src/NodeMapping.h:78
dim_t createDenseDOFLabeling()
Definition: finley/src/NodeFile.cpp:544
index_t * reducedDegreesOfFreedomId
Definition: finley/src/NodeFile.h:145
void print() const
Definition: finley/src/NodeFile.cpp:177
void setTags(const int newTag, const escript::Data &mask)
sets tags to newTag where mask>0
Definition: finley/src/NodeFile.cpp:223
std::vector< index_t > map
maps the target nodes back to the FEM nodes: target[map[i]]=i
Definition: finley/src/NodeMapping.h:80
esysUtils::JMPI MPIInfo
MPI information.
Definition: finley/src/NodeFile.h:108
int index_t
Definition: types.h:24
const index_t * borrowTargetNodes() const
Definition: finley/src/NodeFile.h:236
std::pair< index_t, index_t > getGlobalIdRange() const
Definition: finley/src/NodeFile.cpp:255
index_t getGlobalNumReducedNodes() const
Definition: finley/src/NodeFile.h:186
void setCoordinates(const escript::Data &newX)
copies the array newX into this->coordinates
Definition: finley/src/NodeFile.cpp:197
const index_t * borrowTargetReducedNodes() const
Definition: finley/src/NodeFile.h:241
dim_t createDenseNodeLabeling(std::vector< index_t > &nodeDistribution, const std::vector< index_t > &dofDistribution)
Definition: finley/src/NodeFile.cpp:607
boost::shared_ptr< Connector > Connector_ptr
Definition: Coupler.h:35
paso::Distribution_ptr reducedNodesDistribution
Definition: finley/src/NodeFile.h:135
const std::vector< index_t > & borrowDegreesOfFreedomTarget() const
Definition: finley/src/NodeFile.h:226
index_t dim_t
Definition: types.h:27
NodeMapping reducedNodesMapping
Definition: finley/src/NodeFile.h:103
index_t getGlobalNumNodes() const
Definition: finley/src/NodeFile.h:166
index_t * borrowGlobalNodesIndex() const
Definition: finley/src/NodeFile.h:171
NodeMapping reducedDegreesOfFreedomMapping
Definition: finley/src/NodeFile.h:105
dim_t numNodes
number of nodes
Definition: finley/src/NodeFile.h:110
double * Coordinates
Coordinates[INDEX2(k,i,numDim)] is the k-th coordinate of node i.
Definition: finley/src/NodeFile.h:124
const index_t * borrowTargetDegreesOfFreedom() const
Definition: finley/src/NodeFile.h:246
boost::shared_ptr< JMPI_ > JMPI
Definition: Esys_MPI.h:79
std::pair< index_t, index_t > getDOFRange() const
Definition: finley/src/NodeFile.cpp:244
index_t getLastNode() const
Definition: finley/src/NodeFile.h:161
int * Tag
Tag[i] is the tag of node i.
Definition: finley/src/NodeFile.h:116
paso::Connector_ptr reducedDegreesOfFreedomConnector
Definition: finley/src/NodeFile.h:140
index_t * globalNodesIndex
assigns each local reduced node a global unique Id in a dense labeling
Definition: finley/src/NodeFile.h:132
~NodeFile()
destructor
Definition: finley/src/NodeFile.cpp:108