1 |
|
2 |
/******************************************************* |
3 |
* |
4 |
* Copyright (c) 2003-2010 by University of Queensland |
5 |
* Earth Systems Science Computational Center (ESSCC) |
6 |
* http://www.uq.edu.au/esscc |
7 |
* |
8 |
* Primary Business: Queensland, Australia |
9 |
* Licensed under the Open Software License version 3.0 |
10 |
* http://www.opensource.org/licenses/osl-3.0.php |
11 |
* |
12 |
*******************************************************/ |
13 |
|
14 |
#ifndef __WEIPA_NODEDATA_H__ |
15 |
#define __WEIPA_NODEDATA_H__ |
16 |
|
17 |
#include <weipa/weipa.h> |
18 |
#include <ostream> |
19 |
|
20 |
namespace weipa { |
21 |
|
22 |
/// \brief |
23 |
class NodeData |
24 |
{ |
25 |
public: |
26 |
/// \brief Writes coordinates to a stream in VTK text format. |
27 |
virtual void writeCoordinatesVTK(std::ostream& os, int ownIndex) = 0; |
28 |
|
29 |
/// \brief Returns a vector with the mesh variable names. |
30 |
virtual StringVec getVarNames() const = 0; |
31 |
|
32 |
/// \brief Returns the name of this node mesh. |
33 |
virtual std::string getName() const = 0; |
34 |
|
35 |
/// \brief Returns full Silo mesh name, e.g. "/block0000/Nodes". |
36 |
virtual std::string getFullSiloName() const = 0; |
37 |
|
38 |
/// \brief Returns the node ID array. |
39 |
virtual const IntVec& getNodeIDs() const = 0; |
40 |
|
41 |
/// \brief Returns the node distribution array |
42 |
virtual const IntVec& getNodeDistribution() const = 0; |
43 |
|
44 |
/// \brief Returns the global node index array. |
45 |
virtual const IntVec& getGlobalNodeIndices() const = 0; |
46 |
|
47 |
/// \brief Returns the coordinates of the mesh nodes. |
48 |
virtual const CoordArray& getCoords() const = 0; |
49 |
|
50 |
/// \brief Returns the dimensionality of this mesh (2 or 3). |
51 |
virtual int getNumDims() const = 0; |
52 |
|
53 |
/// \brief Returns the number of mesh nodes. |
54 |
virtual int getNumNodes() const = 0; |
55 |
|
56 |
/// \brief Returns the total number of mesh nodes for a distributed mesh. |
57 |
virtual int getGlobalNumNodes() const = 0; |
58 |
|
59 |
protected: |
60 |
/// \brief Virtual destructor |
61 |
virtual ~NodeData() {} |
62 |
}; |
63 |
|
64 |
} // namespace weipa |
65 |
|
66 |
#endif // __WEIPA_NODEDATA_H__ |
67 |
|