ESScript  Revision_4488
NodeData.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2013 by University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development since 2012 by School of Earth Sciences
13 *
14 *****************************************************************************/
15 
16 #ifndef __WEIPA_NODEDATA_H__
17 #define __WEIPA_NODEDATA_H__
18 
19 #include <weipa/weipa.h>
20 #include <ostream>
21 
22 namespace weipa {
23 
25 class NodeData
26 {
27 public:
29  virtual void writeCoordinatesVTK(std::ostream& os, int ownIndex) = 0;
30 
32  virtual StringVec getVarNames() const = 0;
33 
35  virtual std::string getName() const = 0;
36 
38  virtual std::string getFullSiloName() const = 0;
39 
41  virtual const IntVec& getNodeIDs() const = 0;
42 
44  virtual const IntVec& getNodeDistribution() const = 0;
45 
47  virtual const IntVec& getGlobalNodeIndices() const = 0;
48 
50  virtual const CoordArray& getCoords() const = 0;
51 
53  virtual int getNumDims() const = 0;
54 
56  virtual int getNumNodes() const = 0;
57 
59  virtual int getGlobalNumNodes() const = 0;
60 
61 protected:
63  virtual ~NodeData() {}
64 };
65 
66 } // namespace weipa
67 
68 #endif // __WEIPA_NODEDATA_H__
69