escript  Revision_
dudley/src/NodeFile.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2020 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_NODEFILE_H__
19 #define __DUDLEY_NODEFILE_H__
20 
21 #include "Dudley.h"
22 #include "NodeMapping.h"
23 
24 #include <escript/Distribution.h>
25 
26 #ifdef ESYS_HAVE_PASO
27 #include <paso/Coupler.h>
28 #endif
29 #ifdef ESYS_HAVE_TRILINOS
30 #include <trilinoswrap/types.h>
31 #endif
32 
33 namespace escript {
34  struct IndexList;
35 }
36 
37 namespace dudley {
38 
39 class NodeFile
40 {
41 public:
42 
45  NodeFile(int nDim, escript::JMPI MPIInfo);
46 
48  ~NodeFile();
49 
52 
54  void freeTable();
55 
56  void print() const;
57 
58  inline index_t getFirstNode() const;
59  inline index_t getLastNode() const;
60  inline dim_t getGlobalNumNodes() const;
61  inline const index_t* borrowGlobalNodesIndex() const;
62 
64  inline dim_t getNumNodes() const;
65 
67  inline dim_t getNumDegreesOfFreedom() const;
68 
70  inline dim_t getNumDegreesOfFreedomTargets() const;
71 
73  inline const index_t* borrowNodesTarget() const;
74 
76  inline const index_t* borrowDegreesOfFreedomTarget() const;
77 
79  inline const index_t* borrowTargetDegreesOfFreedom() const;
80 
82  inline const index_t* borrowTargetNodes() const;
83 
84  inline void updateTagList();
85 
89 
92 
94  const IndexVector& nodeDistribution);
95 
96  void assignMPIRankToDOFs(int* mpiRankOfDOF,
97  const IndexVector& distribution);
98 
99  void copyTable(index_t offset, index_t idOffset, index_t dofOffset,
100  const NodeFile* in);
101 
105  void gather(const index_t* index, const NodeFile* in);
106 
107  void gather_global(const index_t* index, const NodeFile* in);
108 
109  void setCoordinates(const escript::Data& newX);
110 
112  void setTags(int newTag, const escript::Data& mask);
113 
114  std::pair<index_t,index_t> getDOFRange() const;
115 
116 #ifdef ESYS_HAVE_TRILINOS
117  void createTrilinosGraph(const escript::IndexList* indexList);
118  esys_trilinos::const_TrilinosGraph_ptr getTrilinosGraph() const {
119  return m_graph;
120  }
121 #endif
122 
123 private:
124  std::pair<index_t,index_t> getGlobalIdRange() const;
125  std::pair<index_t,index_t> getGlobalDOFRange() const;
126  std::pair<index_t,index_t> getGlobalNodeIDIndexRange() const;
127  dim_t prepareLabeling(const std::vector<short>& mask, IndexVector& buffer,
128  IndexVector& distribution, bool useNodes);
130 
133 
136 
137 #ifdef ESYS_HAVE_TRILINOS
138  esys_trilinos::const_TrilinosGraph_ptr m_graph;
140 #endif
141 
142 public:
146  int numDim;
150  int* Tag;
152  std::vector<int> tagsInUse;
153 
159  double* Coordinates;
162 
165 
168 
169 #ifdef ESYS_HAVE_PASO
170  paso::Connector_ptr degreesOfFreedomConnector;
171 #endif
172  // these are the packed versions of Id
174 
177  int status;
178 };
179 
180 //
181 // implementation of inline methods
182 //
183 
185 {
186  return nodesDistribution->getFirstComponent();
187 }
188 
190 {
191  return nodesDistribution->getLastComponent();
192 }
193 
195 {
196  return nodesDistribution->getGlobalNumComponents();
197 }
198 
200 {
201  return globalNodesIndex;
202 }
203 
205 {
206  return numNodes;
207 }
208 
210 {
211  return dofDistribution->getMyNumComponents();
212 }
213 
215 {
217 }
218 
220 {
221  return nodesMapping.map;
222 }
223 
225 {
227 }
228 
230 {
231  return nodesMapping.target;
232 }
233 
235 {
237 }
238 
240 {
242 }
243 
244 
245 } // namespace dudley
246 
247 #endif // __DUDLEY_NODEFILE_H__
248 
dudley::NodeFile::globalDegreesOfFreedom
index_t * globalDegreesOfFreedom
Definition: dudley/src/NodeFile.h:157
finley::NodeFile::updateTagList
void updateTagList()
Definition: finley/src/NodeFile.h:326
finley::util::getFlaggedMinMaxInt
IndexPair getFlaggedMinMaxInt(dim_t N, const index_t *values, index_t ignore)
Definition: finley/src/Util.cpp:305
MPI_Status
int MPI_Status
Definition: EsysMPI.h:47
escript::Data::getNumDataPointsPerSample
int getNumDataPointsPerSample() const
Return the number of data points per sample.
Definition: Data.h:544
finley::NodeFile::NodeFile
NodeFile(int nDim, escript::JMPI MPIInfo)
Definition: finley/src/NodeFile.cpp:104
escript::Data::isComplex
bool isComplex() const
True if components of this data are stored as complex.
Definition: Data.cpp:1160
dudley::NodeFile::gather
void gather(const index_t *index, const NodeFile *in)
Definition: NodeFile_gather.cpp:77
finley::NodeFile::globalReducedNodesIndex
index_t * globalReducedNodesIndex
Definition: finley/src/NodeFile.h:181
escript::DataTypes::real_t
double real_t
type of all real-valued scalars in escript
Definition: DataTypes.h:52
finley::NodeMapping
Definition: finley/src/NodeMapping.h:30
dudley::NodeMapping::numTargets
dim_t numTargets
size of map (number of target nodes, e.g. DOF, reduced DOF, etc.)
Definition: dudley/src/NodeMapping.h:96
dudley::NodeFile::nodesDistribution
escript::Distribution_ptr nodesDistribution
MPI distribution of nodes.
Definition: dudley/src/NodeFile.h:164
dudley::NodeFile::numDim
int numDim
number of spatial dimensions
Definition: dudley/src/NodeFile.h:146
finley::NodeFile::createDenseDOFLabeling
dim_t createDenseDOFLabeling()
Definition: finley/src/NodeFile.cpp:525
finley::NodeMapping::assign
void assign(const std::vector< index_t > &theTarget, index_t unused)
Definition: finley/src/NodeMapping.h:41
DUDLEY_INITIAL_STATUS
#define DUDLEY_INITIAL_STATUS
Definition: Dudley.h:67
dudley::NodeFile
Definition: dudley/src/NodeFile.h:40
finley::NodeFile::getGlobalIdRange
std::pair< index_t, index_t > getGlobalIdRange() const
Definition: finley/src/NodeFile.cpp:226
finley::NodeFile::globalDegreesOfFreedom
index_t * globalDegreesOfFreedom
Definition: finley/src/NodeFile.h:173
escript::Distribution_ptr
boost::shared_ptr< Distribution > Distribution_ptr
Definition: Distribution.h:25
dudley::NodeFile::createNodeMappings
void createNodeMappings(const IndexVector &dofDistribution, const IndexVector &nodeDistribution)
Definition: NodeFile_createMappings.cpp:224
dudley::NodeFile::setCoordinates
void setCoordinates(const escript::Data &newX)
Definition: dudley/src/NodeFile.cpp:172
dudley::NodeFile::createDOFMappingAndCoupling
void createDOFMappingAndCoupling()
Definition: NodeFile_createMappings.cpp:29
finley::NodeFile::getGlobalDOFRange
std::pair< index_t, index_t > getGlobalDOFRange() const
Definition: finley/src/NodeFile.cpp:231
INDEX2
#define INDEX2(_X1_, _X2_, _N1_)
Definition: index.h:23
dudley::NodeFile::borrowTargetDegreesOfFreedom
const index_t * borrowTargetDegreesOfFreedom() const
returns the mapping from local degrees of freedom to a target
Definition: dudley/src/NodeFile.h:234
finley::NodeFile::assignMPIRankToDOFs
void assignMPIRankToDOFs(std::vector< int > &mpiRankOfDOF, const IndexVector &distribution)
Definition: finley/src/NodeFile.cpp:438
finley::NodeFile::Tag
int * Tag
Tag[i] is the tag of node i.
Definition: finley/src/NodeFile.h:166
escript::Data::getSampleDataRO
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:1991
dudley::util::getMinMaxInt
IndexPair getMinMaxInt(int dim, dim_t N, const index_t *values)
Definition: dudley/src/Util.cpp:159
finley::FinleyException
Definition: FinleyException.h:27
finley::NodeMapping::clear
void clear()
resets both map and target.
Definition: finley/src/NodeMapping.h:32
finley::NodeFile::nodesDistribution
escript::Distribution_ptr nodesDistribution
MPI distribution of nodes.
Definition: finley/src/NodeFile.h:186
NodeFile.h
MPI_SUM
#define MPI_SUM
Definition: EsysMPI.h:54
dudley::NodeFile::getNumNodes
dim_t getNumNodes() const
returns the number of FEM nodes (on this rank)
Definition: dudley/src/NodeFile.h:204
dudley::NodeFile::createDenseDOFLabeling
dim_t createDenseDOFLabeling()
Definition: NodeFile_createDenseLabelings.cpp:22
finley::NodeFile::reducedNodesId
index_t * reducedNodesId
Definition: finley/src/NodeFile.h:203
finley::NodeFile::globalReducedDOFIndex
index_t * globalReducedDOFIndex
Definition: finley/src/NodeFile.h:178
finley::NodeFile::numNodes
dim_t numNodes
number of nodes
Definition: finley/src/NodeFile.h:151
dudley::NodeFile::print
void print() const
Definition: dudley/src/NodeFile.cpp:108
paso::SharedComponents
Definition: SharedComponents.h:41
dudley::NodeFile::MPIInfo
escript::JMPI MPIInfo
MPI information.
Definition: dudley/src/NodeFile.h:144
finley::NodeFile::reducedNodesMapping
NodeMapping reducedNodesMapping
Definition: finley/src/NodeFile.h:157
dudley::NodeFile::getGlobalIdRange
std::pair< index_t, index_t > getGlobalIdRange() const
Definition: dudley/src/NodeFile.cpp:157
dudley::NodeFile::updateTagList
void updateTagList()
Definition: dudley/src/NodeFile.h:239
dudley::NodeFile::setTags
void setTags(int newTag, const escript::Data &mask)
set tags to newTag where mask > 0
Definition: dudley/src/NodeFile.cpp:201
escript::checkResult
bool checkResult(int res, int &mres, const JMPI &info)
Everyone puts in their error code and everyone gets the largest one.
Definition: EsysMPI.cpp:110
escript::Data::getDataPointSize
int getDataPointSize() const
Return the size of the data point. It is the product of the data point shape dimensions.
Definition: Data.cpp:1360
dudley::NodeFile::getLastNode
index_t getLastNode() const
Definition: dudley/src/NodeFile.h:189
finley::NodeFile::gather
void gather(const index_t *index, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:321
finley::NodeFile::createDOFMappingAndCoupling
void createDOFMappingAndCoupling(bool reduced)
Definition: finley/src/NodeFile.cpp:772
dudley::NodeFile::nodesMapping
NodeMapping nodesMapping
Definition: dudley/src/NodeFile.h:131
finley::NodeFile::getGlobalNodeIDIndexRange
std::pair< index_t, index_t > getGlobalNodeIDIndexRange() const
Definition: finley/src/NodeFile.cpp:236
dudley::NodeFile::getGlobalDOFRange
std::pair< index_t, index_t > getGlobalDOFRange() const
Definition: dudley/src/NodeFile.cpp:162
Dudley.h
paso::Connector
Definition: Coupler.h:47
dudley::NodeMapping
Definition: dudley/src/NodeMapping.h:28
dudley::NodeFile::status
int status
Definition: dudley/src/NodeFile.h:177
dudley::NodeFile::getGlobalNodeIDIndexRange
std::pair< index_t, index_t > getGlobalNodeIDIndexRange() const
Definition: dudley/src/NodeFile.cpp:167
finley::NodeMapping::target
std::vector< index_t > target
target[i] defines the target of FEM node i=0,...,numNodes-1
Definition: finley/src/NodeMapping.h:82
finley::getGlobalRange
static std::pair< index_t, index_t > getGlobalRange(dim_t n, const index_t *id, escript::JMPI mpiInfo)
Definition: finley/src/NodeFile.cpp:30
escript::Distribution
Definition: Distribution.h:33
MPI_INT
#define MPI_INT
Definition: EsysMPI.h:48
finley::NodeFile::reducedDegreesOfFreedomMapping
NodeMapping reducedDegreesOfFreedomMapping
Definition: finley/src/NodeFile.h:148
dudley::NodeFile::copyTable
void copyTable(index_t offset, index_t idOffset, index_t dofOffset, const NodeFile *in)
Definition: dudley/src/NodeFile.cpp:125
MPI_MAX
#define MPI_MAX
Definition: EsysMPI.h:56
dudley::NodeFile::borrowDegreesOfFreedomTarget
const index_t * borrowDegreesOfFreedomTarget() const
returns the mapping from target to the local degrees of freedom
Definition: dudley/src/NodeFile.h:224
dudley::NodeFile::freeTable
void freeTable()
empties the node table and frees all memory
Definition: dudley/src/NodeFile.cpp:90
finley::NodeFile::getNumNodes
dim_t getNumNodes() const
returns the number of FEM nodes (on this rank)
Definition: finley/src/NodeFile.h:256
dudley::NodeFile::borrowNodesTarget
const index_t * borrowNodesTarget() const
returns the mapping from target to the local nodes
Definition: dudley/src/NodeFile.h:219
finley::NodeFile::createNodeMappings
void createNodeMappings(const IndexVector &indexReducedNodes, const IndexVector &dofDistribution, const IndexVector &nodeDistribution)
Definition: finley/src/NodeFile.cpp:1004
escript::Data::getNumSamples
int getNumSamples() const
Return the number of samples.
Definition: Data.h:533
dudley::NodeFile::getNumDegreesOfFreedomTargets
dim_t getNumDegreesOfFreedomTargets() const
returns the number of degrees of freedom targets (own and shared)
Definition: dudley/src/NodeFile.h:214
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
A suite of factory methods for creating 2D and 3D dudley domains.
Definition: dudley/src/Assemble.h:32
escript::Data
Data represents a collection of datapoints.
Definition: Data.h:64
dudley::NodeFile::assignMPIRankToDOFs
void assignMPIRankToDOFs(int *mpiRankOfDOF, const IndexVector &distribution)
Definition: dudley/src/NodeFile.cpp:220
escript::DataTypes::dim_t
index_t dim_t
Definition: DataTypes.h:66
escript::JMPI
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:74
dudley::NodeFile::degreesOfFreedomMapping
NodeMapping degreesOfFreedomMapping
Definition: dudley/src/NodeFile.h:132
dudley::NodeFile::borrowTargetNodes
const index_t * borrowTargetNodes() const
returns the mapping from local nodes to a target
Definition: dudley/src/NodeFile.h:229
NodeMapping.h
finley::NodeFile::createDenseReducedLabeling
dim_t createDenseReducedLabeling(const std::vector< short > &reducedMask, bool useNodes)
Definition: finley/src/NodeFile.cpp:702
dudley::NodeFile::tagsInUse
std::vector< int > tagsInUse
vector of tags which are actually used
Definition: dudley/src/NodeFile.h:152
finley::util::getMinMaxInt
IndexPair getMinMaxInt(int dim, dim_t N, const index_t *values)
Definition: finley/src/Util.cpp:278
dudley::NodeFile::gather_global
void gather_global(const index_t *index, const NodeFile *in)
Definition: NodeFile_gather.cpp:85
finley::NodeFile::~NodeFile
~NodeFile()
destructor
Definition: finley/src/NodeFile.cpp:122
finley::NodeFile::MPIInfo
escript::JMPI MPIInfo
MPI information.
Definition: finley/src/NodeFile.h:160
finley::NodeFile::prepareLabeling
dim_t prepareLabeling(const std::vector< short > &mask, IndexVector &buffer, IndexVector &distribution, bool useNodes)
Definition: finley/src/NodeFile.cpp:464
finley::NodeFile::freeTable
void freeTable()
empties the node table and frees all memory
Definition: finley/src/NodeFile.cpp:162
finley::NodeMapping::map
std::vector< index_t > map
maps the target nodes back to the FEM nodes: target[map[i]]=i
Definition: finley/src/NodeMapping.h:84
dudley::NodeFile::createDenseNodeLabeling
dim_t createDenseNodeLabeling(IndexVector &nodeDistribution, const IndexVector &dofDistribution)
escript::AssertException
An exception class for assertions within escript.
Definition: EsysException.h:70
dudley::NodeMapping::target
index_t * target
target[i] defines the target of FEM node i=0,...,numNodes
Definition: dudley/src/NodeMapping.h:93
finley::NodeFile::Id
index_t * Id
Id[i] is the unique ID number of FEM node i.
Definition: finley/src/NodeFile.h:164
finley::NodeFile::createDenseNodeLabeling
dim_t createDenseNodeLabeling(IndexVector &nodeDistribution, const IndexVector &dofDistribution)
Definition: finley/src/NodeFile.cpp:588
finley::NodeFile::nodesMapping
NodeMapping nodesMapping
Definition: finley/src/NodeFile.h:146
finley::gatherEntries
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, double *Coordinates_out, const double *Coordinates_in)
Definition: finley/src/NodeFile.cpp:77
finley::NodeFile::status
int status
Definition: finley/src/NodeFile.h:209
finley::NodeFile::setCoordinates
void setCoordinates(const escript::Data &newX)
copies the array newX into this->coordinates
Definition: finley/src/NodeFile.cpp:242
paso::SharedComponents_ptr
boost::shared_ptr< SharedComponents > SharedComponents_ptr
Definition: SharedComponents.h:36
finley::NodeFile::print
void print() const
Definition: finley/src/NodeFile.cpp:196
dudley::getGlobalRange
static std::pair< index_t, index_t > getGlobalRange(dim_t n, const index_t *id, escript::JMPI mpiInfo)
Definition: dudley/src/NodeFile.cpp:24
dudley::NodeFile::NodeFile
NodeFile(int nDim, escript::JMPI MPIInfo)
Definition: dudley/src/NodeFile.cpp:44
dudley::NodeFile::getFirstNode
index_t getFirstNode() const
Definition: dudley/src/NodeFile.h:184
dudley::NodeFile::getGlobalNumNodes
dim_t getGlobalNumNodes() const
Definition: dudley/src/NodeFile.h:194
finley::NodeFile::reducedDegreesOfFreedomDistribution
escript::Distribution_ptr reducedDegreesOfFreedomDistribution
Definition: finley/src/NodeFile.h:189
dudley::util::setValuesInUse
void setValuesInUse(const int *values, dim_t numValues, std::vector< int > &valuesInUse, escript::JMPI mpiinfo)
Definition: dudley/src/Util.cpp:224
MPI_DOUBLE
#define MPI_DOUBLE
Definition: EsysMPI.h:49
dudley::NodeFile::getDOFRange
std::pair< index_t, index_t > getDOFRange() const
Definition: dudley/src/NodeFile.cpp:146
dudley::NodeFile::allocTable
void allocTable(dim_t numNodes)
allocates the node table within this node file to hold numNodes nodes.
Definition: dudley/src/NodeFile.cpp:63
dudley::NodeFile::prepareLabeling
dim_t prepareLabeling(const std::vector< short > &mask, IndexVector &buffer, IndexVector &distribution, bool useNodes)
finley::NodeFile::degreesOfFreedomDistribution
escript::Distribution_ptr degreesOfFreedomDistribution
Definition: finley/src/NodeFile.h:188
dudley::NodeMapping::map
index_t * map
maps the target nodes back to the FEM nodes: target[map[i]]=i
Definition: dudley/src/NodeMapping.h:99
finley::NodeFile::getDOFRange
std::pair< index_t, index_t > getDOFRange() const
Definition: finley/src/NodeFile.cpp:215
escript::DataTypes::index_t
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:61
dudley::NodeFile::dofDistribution
escript::Distribution_ptr dofDistribution
MPI distribution of degrees of freedom.
Definition: dudley/src/NodeFile.h:167
finley::NodeFile
Definition: finley/src/NodeFile.h:42
escript
Definition: AbstractContinuousDomain.cpp:23
finley::NodeFile::reducedDegreesOfFreedomId
index_t * reducedDegreesOfFreedomId
Definition: finley/src/NodeFile.h:205
finley::NodeFile::degreesOfFreedomMapping
NodeMapping degreesOfFreedomMapping
Definition: finley/src/NodeFile.h:147
finley::NodeFile::globalNodesIndex
index_t * globalNodesIndex
assigns each local node a global unique ID in a dense labeling
Definition: finley/src/NodeFile.h:183
dudley::NodeFile::Id
index_t * Id
Id[i] is the unique ID number of FEM node i.
Definition: dudley/src/NodeFile.h:148
dudley::NodeFile::Tag
int * Tag
Tag[i] is the tag of node i.
Definition: dudley/src/NodeFile.h:150
finley::NodeFile::reducedNodesDistribution
escript::Distribution_ptr reducedNodesDistribution
Definition: finley/src/NodeFile.h:187
paso::Connector_ptr
boost::shared_ptr< Connector > Connector_ptr
Definition: Coupler.h:38
dudley::NodeFile::numNodes
dim_t numNodes
number of nodes
Definition: dudley/src/NodeFile.h:135
finley::scatterEntries
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, double *Coordinates_out, const double *Coordinates_in)
Definition: finley/src/NodeFile.cpp:51
finley::NodeFile::degreesOfFreedomId
index_t * degreesOfFreedomId
Definition: finley/src/NodeFile.h:204
escript::IndexList
Definition: escriptcore/src/IndexList.h:29
dudley::NodeFile::borrowGlobalNodesIndex
const index_t * borrowGlobalNodesIndex() const
Definition: dudley/src/NodeFile.h:199
finley::NodeFile::scatter
void scatter(const index_t *index, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:310
finley::NodeFile::gather_global
void gather_global(const index_t *index, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:329
escript::shipString
bool shipString(const char *src, char **dest, MPI_Comm &comm)
Definition: EsysMPI.cpp:164
finley::NodeFile::tagsInUse
std::vector< int > tagsInUse
vector of tags which are actually used
Definition: finley/src/NodeFile.h:168
dudley::NodeFile::degreesOfFreedomId
index_t * degreesOfFreedomId
Definition: dudley/src/NodeFile.h:173
dudley::NodeFile::~NodeFile
~NodeFile()
destructor
Definition: dudley/src/NodeFile.cpp:58
finley
A suite of factory methods for creating various finley domains.
Definition: finley/src/Assemble.h:32
finley::NodeFile::setTags
void setTags(int newTag, const escript::Data &mask)
set tags to newTag where mask > 0
Definition: finley/src/NodeFile.cpp:267
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
finley::util::packMask
std::vector< index_t > packMask(const std::vector< short > &mask)
Definition: finley/src/Util.cpp:332
dudley::NodeFile::getNumDegreesOfFreedom
dim_t getNumDegreesOfFreedom() const
returns the number of degrees of freedom (on this rank)
Definition: dudley/src/NodeFile.h:209
finley::NodeFile::allocTable
void allocTable(dim_t numNodes)
allocates the node table within this node file to hold numNodes nodes.
Definition: finley/src/NodeFile.cpp:127
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:100
dudley::NodeMapping::clear
void clear()
resets both map and target
Definition: dudley/src/NodeMapping.h:32
finley::NodeFile::copyTable
void copyTable(index_t offset, index_t idOffset, index_t dofOffset, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:285
dudley::NodeFile::globalNodesIndex
index_t * globalNodesIndex
assigns each local node a global unique ID in a dense labeling
Definition: dudley/src/NodeFile.h:161
escript::DataTypes::IndexVector
std::vector< index_t > IndexVector
Definition: DataTypes.h:64
finley::NodeMapping::getNumTargets
dim_t getNumTargets() const
returns the number of target nodes (number of items in the map array)
Definition: finley/src/NodeMapping.h:79