escript  Revision_
dudley/src/NodeFile.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-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 by Centre for Geoscience Computing (GeoComp)
14 *
15 *****************************************************************************/
16 
17 #ifndef __DUDLEY_NODEFILE_H__
18 #define __DUDLEY_NODEFILE_H__
19 
20 #include "Dudley.h"
21 #include "NodeMapping.h"
22 
23 #include <escript/Distribution.h>
24 
25 #ifdef ESYS_HAVE_PASO
26 #include <paso/Coupler.h>
27 #endif
28 #ifdef ESYS_HAVE_TRILINOS
29 #include <trilinoswrap/types.h>
30 #endif
31 
32 namespace escript {
33  struct IndexList;
34 }
35 
36 namespace dudley {
37 
38 class NodeFile
39 {
40 public:
41 
44  NodeFile(int nDim, escript::JMPI MPIInfo);
45 
47  ~NodeFile();
48 
51 
53  void freeTable();
54 
55  void print() const;
56 
57  inline index_t getFirstNode() const;
58  inline index_t getLastNode() const;
59  inline dim_t getGlobalNumNodes() const;
60  inline const index_t* borrowGlobalNodesIndex() const;
61 
63  inline dim_t getNumNodes() const;
64 
66  inline dim_t getNumDegreesOfFreedom() const;
67 
69  inline dim_t getNumDegreesOfFreedomTargets() const;
70 
72  inline const index_t* borrowNodesTarget() const;
73 
75  inline const index_t* borrowDegreesOfFreedomTarget() const;
76 
78  inline const index_t* borrowTargetDegreesOfFreedom() const;
79 
81  inline const index_t* borrowTargetNodes() const;
82 
83  inline void updateTagList();
84 
88 
89  dim_t createDenseNodeLabeling(IndexVector& nodeDistribution,
91 
93  const IndexVector& nodeDistribution);
94 
95  void assignMPIRankToDOFs(int* mpiRankOfDOF,
96  const IndexVector& distribution);
97 
98  void copyTable(index_t offset, index_t idOffset, index_t dofOffset,
99  const NodeFile* in);
100 
104  void gather(const index_t* index, const NodeFile* in);
105 
106  void gather_global(const index_t* index, const NodeFile* in);
107 
108  void setCoordinates(const escript::Data& newX);
109 
111  void setTags(int newTag, const escript::Data& mask);
112 
113  std::pair<index_t,index_t> getDOFRange() const;
114 
115 #ifdef ESYS_HAVE_TRILINOS
116  void createTrilinosGraph(const escript::IndexList* indexList);
117  esys_trilinos::const_TrilinosGraph_ptr getTrilinosGraph() const {
118  return m_graph;
119  }
120 #endif
121 
122 private:
123  std::pair<index_t,index_t> getGlobalIdRange() const;
124  std::pair<index_t,index_t> getGlobalDOFRange() const;
125  std::pair<index_t,index_t> getGlobalNodeIDIndexRange() const;
126  dim_t prepareLabeling(const std::vector<short>& mask, IndexVector& buffer,
127  IndexVector& distribution, bool useNodes);
129 
132 
134  dim_t numNodes;
135 
136 #ifdef ESYS_HAVE_TRILINOS
137  esys_trilinos::const_TrilinosGraph_ptr m_graph;
139 #endif
140 
141 public:
145  int numDim;
147  index_t* Id;
149  int* Tag;
151  std::vector<int> tagsInUse;
152 
158  double* Coordinates;
161 
164 
167 
168 #ifdef ESYS_HAVE_PASO
169  paso::Connector_ptr degreesOfFreedomConnector;
170 #endif
171  // these are the packed versions of Id
173 
176  int status;
177 };
178 
179 //
180 // implementation of inline methods
181 //
182 
183 inline index_t NodeFile::getFirstNode() const
184 {
185  return nodesDistribution->getFirstComponent();
186 }
187 
188 inline index_t NodeFile::getLastNode() const
189 {
190  return nodesDistribution->getLastComponent();
191 }
192 
193 inline dim_t NodeFile::getGlobalNumNodes() const
194 {
195  return nodesDistribution->getGlobalNumComponents();
196 }
197 
198 inline const index_t* NodeFile::borrowGlobalNodesIndex() const
199 {
200  return globalNodesIndex;
201 }
202 
203 inline dim_t NodeFile::getNumNodes() const
204 {
205  return numNodes;
206 }
207 
209 {
210  return dofDistribution->getMyNumComponents();
211 }
212 
214 {
216 }
217 
218 inline const index_t* NodeFile::borrowNodesTarget() const
219 {
220  return nodesMapping.map;
221 }
222 
224 {
226 }
227 
228 inline const index_t* NodeFile::borrowTargetNodes() const
229 {
230  return nodesMapping.target;
231 }
232 
234 {
236 }
237 
238 inline void NodeFile::updateTagList()
239 {
241 }
242 
243 
244 } // namespace dudley
245 
246 #endif // __DUDLEY_NODEFILE_H__
247 
dudley::NodeFile::globalDegreesOfFreedom
index_t * globalDegreesOfFreedom
Definition: dudley/src/NodeFile.h:155
finley::NodeFile::updateTagList
void updateTagList()
Definition: finley/src/NodeFile.h:324
finley::util::getFlaggedMinMaxInt
IndexPair getFlaggedMinMaxInt(dim_t N, const index_t *values, index_t ignore)
Definition: finley/src/Util.cpp:327
MPI_Status
int MPI_Status
Definition: EsysMPI.h:43
escript::Data::getNumDataPointsPerSample
int getNumDataPointsPerSample() const
Return the number of data points per sample.
Definition: Data.h:530
finley::NodeFile::NodeFile
NodeFile(int nDim, escript::JMPI MPIInfo)
Definition: finley/src/NodeFile.cpp:114
escript::Data::isComplex
bool isComplex() const
True if components of this data are stored as complex.
Definition: Data.cpp:1163
dudley::NodeFile::gather
void gather(const index_t *index, const NodeFile *in)
Definition: NodeFile_gather.cpp:75
finley::NodeFile::globalReducedNodesIndex
index_t * globalReducedNodesIndex
Definition: finley/src/NodeFile.h:179
escript::DataTypes::real_t
double real_t
type of all real-valued scalars in escript
Definition: DataTypes.h:73
finley::NodeMapping
Definition: finley/src/NodeMapping.h:40
dudley::NodeMapping::numTargets
dim_t numTargets
size of map (number of target nodes, e.g. DOF, reduced DOF, etc.)
Definition: dudley/src/NodeMapping.h:118
dudley::NodeFile::nodesDistribution
escript::Distribution_ptr nodesDistribution
MPI distribution of nodes.
Definition: dudley/src/NodeFile.h:162
dudley::NodeFile::numDim
int numDim
number of spatial dimensions
Definition: dudley/src/NodeFile.h:144
finley::NodeFile::createDenseDOFLabeling
dim_t createDenseDOFLabeling()
Definition: finley/src/NodeFile.cpp:535
finley::NodeMapping::assign
void assign(const std::vector< index_t > &theTarget, index_t unused)
Definition: finley/src/NodeMapping.h:63
DUDLEY_INITIAL_STATUS
#define DUDLEY_INITIAL_STATUS
Definition: Dudley.h:77
dudley::NodeFile
Definition: dudley/src/NodeFile.h:37
finley::NodeFile::getGlobalIdRange
std::pair< index_t, index_t > getGlobalIdRange() const
Definition: finley/src/NodeFile.cpp:236
finley::NodeFile::globalDegreesOfFreedom
index_t * globalDegreesOfFreedom
Definition: finley/src/NodeFile.h:171
escript::Distribution_ptr
boost::shared_ptr< Distribution > Distribution_ptr
Definition: Distribution.h:35
dudley::NodeFile::createNodeMappings
void createNodeMappings(const IndexVector &dofDistribution, const IndexVector &nodeDistribution)
Definition: NodeFile_createMappings.cpp:234
dudley::NodeFile::setCoordinates
void setCoordinates(const escript::Data &newX)
Definition: dudley/src/NodeFile.cpp:182
dudley::NodeFile::createDOFMappingAndCoupling
void createDOFMappingAndCoupling()
Definition: NodeFile_createMappings.cpp:39
finley::NodeFile::getGlobalDOFRange
std::pair< index_t, index_t > getGlobalDOFRange() const
Definition: finley/src/NodeFile.cpp:241
INDEX2
#define INDEX2(_X1_, _X2_, _N1_)
Definition: index.h:21
dudley::NodeFile::borrowTargetDegreesOfFreedom
const index_t * borrowTargetDegreesOfFreedom() const
returns the mapping from local degrees of freedom to a target
Definition: dudley/src/NodeFile.h:232
finley::NodeFile::assignMPIRankToDOFs
void assignMPIRankToDOFs(std::vector< int > &mpiRankOfDOF, const IndexVector &distribution)
Definition: finley/src/NodeFile.cpp:448
finley::NodeFile::Tag
int * Tag
Tag[i] is the tag of node i.
Definition: finley/src/NodeFile.h:164
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:1975
dudley::util::getMinMaxInt
IndexPair getMinMaxInt(int dim, dim_t N, const index_t *values)
Definition: dudley/src/Util.cpp:181
finley::NodeMapping::clear
void clear()
resets both map and target.
Definition: finley/src/NodeMapping.h:54
finley::NodeFile::nodesDistribution
escript::Distribution_ptr nodesDistribution
MPI distribution of nodes.
Definition: finley/src/NodeFile.h:184
NodeFile.h
MPI_SUM
#define MPI_SUM
Definition: EsysMPI.h:50
dudley::NodeFile::getNumNodes
dim_t getNumNodes() const
returns the number of FEM nodes (on this rank)
Definition: dudley/src/NodeFile.h:202
dudley::NodeFile::createDenseDOFLabeling
dim_t createDenseDOFLabeling()
Definition: NodeFile_createDenseLabelings.cpp:32
finley::NodeFile::reducedNodesId
index_t * reducedNodesId
Definition: finley/src/NodeFile.h:201
finley::NodeFile::globalReducedDOFIndex
index_t * globalReducedDOFIndex
Definition: finley/src/NodeFile.h:176
finley::NodeFile::numNodes
dim_t numNodes
number of nodes
Definition: finley/src/NodeFile.h:149
dudley::NodeFile::print
void print() const
Definition: dudley/src/NodeFile.cpp:118
paso::SharedComponents
Definition: SharedComponents.h:51
dudley::NodeFile::MPIInfo
escript::JMPI MPIInfo
MPI information.
Definition: dudley/src/NodeFile.h:142
finley::NodeFile::reducedNodesMapping
NodeMapping reducedNodesMapping
Definition: finley/src/NodeFile.h:155
dudley::NodeFile::getGlobalIdRange
std::pair< index_t, index_t > getGlobalIdRange() const
Definition: dudley/src/NodeFile.cpp:167
dudley::NodeFile::updateTagList
void updateTagList()
Definition: dudley/src/NodeFile.h:237
dudley::NodeFile::setTags
void setTags(int newTag, const escript::Data &mask)
set tags to newTag where mask > 0
Definition: dudley/src/NodeFile.cpp:211
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:120
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:1363
dudley::NodeFile::getLastNode
index_t getLastNode() const
Definition: dudley/src/NodeFile.h:187
finley::NodeFile::gather
void gather(const index_t *index, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:331
finley::NodeFile::createDOFMappingAndCoupling
void createDOFMappingAndCoupling(bool reduced)
Definition: finley/src/NodeFile.cpp:782
dudley::NodeFile::nodesMapping
NodeMapping nodesMapping
Definition: dudley/src/NodeFile.h:129
finley::NodeFile::getGlobalNodeIDIndexRange
std::pair< index_t, index_t > getGlobalNodeIDIndexRange() const
Definition: finley/src/NodeFile.cpp:246
dudley::NodeFile::getGlobalDOFRange
std::pair< index_t, index_t > getGlobalDOFRange() const
Definition: dudley/src/NodeFile.cpp:172
Dudley.h
paso::Connector
Definition: Coupler.h:57
dudley::NodeMapping
Definition: dudley/src/NodeMapping.h:37
dudley::NodeFile::status
int status
Definition: dudley/src/NodeFile.h:175
dudley::NodeFile::getGlobalNodeIDIndexRange
std::pair< index_t, index_t > getGlobalNodeIDIndexRange() const
Definition: dudley/src/NodeFile.cpp:177
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:104
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:40
escript::Distribution
Definition: Distribution.h:42
MPI_INT
#define MPI_INT
Definition: EsysMPI.h:44
finley::NodeFile::reducedDegreesOfFreedomMapping
NodeMapping reducedDegreesOfFreedomMapping
Definition: finley/src/NodeFile.h:146
dudley::NodeFile::copyTable
void copyTable(index_t offset, index_t idOffset, index_t dofOffset, const NodeFile *in)
Definition: dudley/src/NodeFile.cpp:135
MPI_MAX
#define MPI_MAX
Definition: EsysMPI.h:52
dudley::NodeFile::borrowDegreesOfFreedomTarget
const index_t * borrowDegreesOfFreedomTarget() const
returns the mapping from target to the local degrees of freedom
Definition: dudley/src/NodeFile.h:222
dudley::NodeFile::freeTable
void freeTable()
empties the node table and frees all memory
Definition: dudley/src/NodeFile.cpp:100
finley::NodeFile::getNumNodes
dim_t getNumNodes() const
returns the number of FEM nodes (on this rank)
Definition: finley/src/NodeFile.h:254
dudley::NodeFile::borrowNodesTarget
const index_t * borrowNodesTarget() const
returns the mapping from target to the local nodes
Definition: dudley/src/NodeFile.h:217
finley::NodeFile::createNodeMappings
void createNodeMappings(const IndexVector &indexReducedNodes, const IndexVector &dofDistribution, const IndexVector &nodeDistribution)
Definition: finley/src/NodeFile.cpp:1014
escript::Data::getNumSamples
int getNumSamples() const
Return the number of samples.
Definition: Data.h:519
dudley::NodeFile::getNumDegreesOfFreedomTargets
dim_t getNumDegreesOfFreedomTargets() const
returns the number of degrees of freedom targets (own and shared)
Definition: dudley/src/NodeFile.h:212
finley::NodeFile::Coordinates
double * Coordinates
Coordinates[INDEX2(k,i,numDim)] is the k-th coordinate of node i.
Definition: finley/src/NodeFile.h:173
dudley
A suite of factory methods for creating 2D and 3D dudley domains.
Definition: dudley/src/Assemble.h:31
escript::Data
Data represents a collection of datapoints.
Definition: Data.h:62
dudley::NodeFile::assignMPIRankToDOFs
void assignMPIRankToDOFs(int *mpiRankOfDOF, const IndexVector &distribution)
Definition: dudley/src/NodeFile.cpp:230
escript::DataTypes::dim_t
index_t dim_t
Definition: DataTypes.h:87
escript::JMPI
boost::shared_ptr< JMPI_ > JMPI
Definition: EsysMPI.h:70
dudley::NodeFile::degreesOfFreedomMapping
NodeMapping degreesOfFreedomMapping
Definition: dudley/src/NodeFile.h:130
dudley::NodeFile::borrowTargetNodes
const index_t * borrowTargetNodes() const
returns the mapping from local nodes to a target
Definition: dudley/src/NodeFile.h:227
finley::NodeFile::createDenseReducedLabeling
dim_t createDenseReducedLabeling(const std::vector< short > &reducedMask, bool useNodes)
Definition: finley/src/NodeFile.cpp:712
dudley::NodeFile::tagsInUse
std::vector< int > tagsInUse
vector of tags which are actually used
Definition: dudley/src/NodeFile.h:150
finley::util::getMinMaxInt
IndexPair getMinMaxInt(int dim, dim_t N, const index_t *values)
Definition: finley/src/Util.cpp:300
dudley::NodeFile::gather_global
void gather_global(const index_t *index, const NodeFile *in)
Definition: NodeFile_gather.cpp:83
finley::NodeFile::~NodeFile
~NodeFile()
destructor
Definition: finley/src/NodeFile.cpp:132
finley::NodeFile::MPIInfo
escript::JMPI MPIInfo
MPI information.
Definition: finley/src/NodeFile.h:158
finley::NodeFile::prepareLabeling
dim_t prepareLabeling(const std::vector< short > &mask, IndexVector &buffer, IndexVector &distribution, bool useNodes)
Definition: finley/src/NodeFile.cpp:474
finley::NodeFile::freeTable
void freeTable()
empties the node table and frees all memory
Definition: finley/src/NodeFile.cpp:172
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:106
dudley::NodeFile::createDenseNodeLabeling
dim_t createDenseNodeLabeling(IndexVector &nodeDistribution, const IndexVector &dofDistribution)
escript::AssertException
An exception class for assertions within escript.
Definition: EsysException.h:69
dudley::NodeMapping::target
index_t * target
target[i] defines the target of FEM node i=0,...,numNodes
Definition: dudley/src/NodeMapping.h:115
finley::NodeFile::Id
index_t * Id
Id[i] is the unique ID number of FEM node i.
Definition: finley/src/NodeFile.h:162
NodeMapping.h
finley::NodeFile::createDenseNodeLabeling
dim_t createDenseNodeLabeling(IndexVector &nodeDistribution, const IndexVector &dofDistribution)
Definition: finley/src/NodeFile.cpp:598
finley::NodeFile::nodesMapping
NodeMapping nodesMapping
Definition: finley/src/NodeFile.h:144
NodeFile.h
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:87
finley::NodeFile::status
int status
Definition: finley/src/NodeFile.h:207
finley::NodeFile::setCoordinates
void setCoordinates(const escript::Data &newX)
copies the array newX into this->coordinates
Definition: finley/src/NodeFile.cpp:252
paso::SharedComponents_ptr
boost::shared_ptr< SharedComponents > SharedComponents_ptr
Definition: SharedComponents.h:46
finley::NodeFile::print
void print() const
Definition: finley/src/NodeFile.cpp:206
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:34
dudley::NodeFile::NodeFile
NodeFile(int nDim, escript::JMPI MPIInfo)
Definition: dudley/src/NodeFile.cpp:54
dudley::NodeFile::getFirstNode
index_t getFirstNode() const
Definition: dudley/src/NodeFile.h:182
dudley::NodeFile::getGlobalNumNodes
dim_t getGlobalNumNodes() const
Definition: dudley/src/NodeFile.h:192
finley::NodeFile::reducedDegreesOfFreedomDistribution
escript::Distribution_ptr reducedDegreesOfFreedomDistribution
Definition: finley/src/NodeFile.h:187
dudley::util::setValuesInUse
void setValuesInUse(const int *values, dim_t numValues, std::vector< int > &valuesInUse, escript::JMPI mpiinfo)
Definition: dudley/src/Util.cpp:246
MPI_DOUBLE
#define MPI_DOUBLE
Definition: EsysMPI.h:45
dudley::NodeFile::getDOFRange
std::pair< index_t, index_t > getDOFRange() const
Definition: dudley/src/NodeFile.cpp:156
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:73
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:186
dudley::NodeMapping::map
index_t * map
maps the target nodes back to the FEM nodes: target[map[i]]=i
Definition: dudley/src/NodeMapping.h:121
finley::NodeFile::getDOFRange
std::pair< index_t, index_t > getDOFRange() const
Definition: finley/src/NodeFile.cpp:225
escript::DataTypes::index_t
int index_t
type for array/matrix indices used both globally and on each rank
Definition: DataTypes.h:82
dudley::NodeFile::dofDistribution
escript::Distribution_ptr dofDistribution
MPI distribution of degrees of freedom.
Definition: dudley/src/NodeFile.h:165
finley::NodeFile
Definition: finley/src/NodeFile.h:39
escript
Definition: AbstractContinuousDomain.cpp:22
finley::NodeFile::reducedDegreesOfFreedomId
index_t * reducedDegreesOfFreedomId
Definition: finley/src/NodeFile.h:203
finley::NodeFile::degreesOfFreedomMapping
NodeMapping degreesOfFreedomMapping
Definition: finley/src/NodeFile.h:145
finley::NodeFile::globalNodesIndex
index_t * globalNodesIndex
assigns each local node a global unique ID in a dense labeling
Definition: finley/src/NodeFile.h:181
dudley::NodeFile::Id
index_t * Id
Id[i] is the unique ID number of FEM node i.
Definition: dudley/src/NodeFile.h:146
dudley::NodeFile::Tag
int * Tag
Tag[i] is the tag of node i.
Definition: dudley/src/NodeFile.h:148
finley::NodeFile::reducedNodesDistribution
escript::Distribution_ptr reducedNodesDistribution
Definition: finley/src/NodeFile.h:185
paso::Connector_ptr
boost::shared_ptr< Connector > Connector_ptr
Definition: Coupler.h:48
dudley::NodeFile::numNodes
dim_t numNodes
number of nodes
Definition: dudley/src/NodeFile.h:133
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:61
finley::NodeFile::degreesOfFreedomId
index_t * degreesOfFreedomId
Definition: finley/src/NodeFile.h:202
escript::IndexList
Definition: escriptcore/src/IndexList.h:27
dudley::NodeFile::borrowGlobalNodesIndex
const index_t * borrowGlobalNodesIndex() const
Definition: dudley/src/NodeFile.h:197
finley::NodeFile::scatter
void scatter(const index_t *index, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:320
finley::NodeFile::gather_global
void gather_global(const index_t *index, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:339
escript::shipString
bool shipString(const char *src, char **dest, MPI_Comm &comm)
Definition: EsysMPI.cpp:174
finley::NodeFile::tagsInUse
std::vector< int > tagsInUse
vector of tags which are actually used
Definition: finley/src/NodeFile.h:166
dudley::NodeFile::degreesOfFreedomId
index_t * degreesOfFreedomId
Definition: dudley/src/NodeFile.h:171
dudley::NodeFile::~NodeFile
~NodeFile()
destructor
Definition: dudley/src/NodeFile.cpp:68
finley
A suite of factory methods for creating various finley domains.
Definition: finley/src/Assemble.h:31
finley::NodeFile::setTags
void setTags(int newTag, const escript::Data &mask)
set tags to newTag where mask > 0
Definition: finley/src/NodeFile.cpp:277
FINLEY_INITIAL_STATUS
#define FINLEY_INITIAL_STATUS
Definition: Finley.h:89
finley::NodeFile::numDim
int numDim
number of spatial dimensions
Definition: finley/src/NodeFile.h:160
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:77
finley::util::packMask
std::vector< index_t > packMask(const std::vector< short > &mask)
Definition: finley/src/Util.cpp:354
dudley::NodeFile::getNumDegreesOfFreedom
dim_t getNumDegreesOfFreedom() const
returns the number of degrees of freedom (on this rank)
Definition: dudley/src/NodeFile.h:207
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:137
dudley::NodeFile::Coordinates
double * Coordinates
Coordinates[INDEX2(k,i,numDim)] is the k-th coordinate of node i.
Definition: dudley/src/NodeFile.h:157
escript::ValueError
An exception class that signals an invalid argument value.
Definition: EsysException.h:99
dudley::NodeMapping::clear
void clear()
resets both map and target
Definition: dudley/src/NodeMapping.h:54
finley::NodeFile::copyTable
void copyTable(index_t offset, index_t idOffset, index_t dofOffset, const NodeFile *in)
Definition: finley/src/NodeFile.cpp:295
dudley::NodeFile::globalNodesIndex
index_t * globalNodesIndex
assigns each local node a global unique ID in a dense labeling
Definition: dudley/src/NodeFile.h:159
escript::DataTypes::IndexVector
std::vector< index_t > IndexVector
Definition: DataTypes.h:85
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:101