ESYS13  Revision_
NodeData.h
Go to the documentation of this file.
00001 
00002 /*******************************************************
00003 *
00004 * Copyright (c) 2003-2012 by University of Queensland
00005 * Earth Systems Science Computational Center (ESSCC)
00006 * http://www.uq.edu.au/esscc
00007 *
00008 * Primary Business: Queensland, Australia
00009 * Licensed under the Open Software License version 3.0
00010 * http://www.opensource.org/licenses/osl-3.0.php
00011 *
00012 *******************************************************/
00013 
00014 #ifndef __WEIPA_NODEDATA_H__
00015 #define __WEIPA_NODEDATA_H__
00016 
00017 #include <weipa/weipa.h>
00018 #include <ostream>
00019 
00020 namespace weipa {
00021 
00023 class NodeData
00024 {
00025 public:
00027     virtual void writeCoordinatesVTK(std::ostream& os, int ownIndex) = 0;
00028 
00030     virtual StringVec getVarNames() const = 0;
00031 
00033     virtual std::string getName() const = 0;
00034 
00036     virtual std::string getFullSiloName() const = 0;
00037 
00039     virtual const IntVec& getNodeIDs() const = 0;
00040 
00042     virtual const IntVec& getNodeDistribution() const = 0;
00043 
00045     virtual const IntVec& getGlobalNodeIndices() const = 0;
00046 
00048     virtual const CoordArray& getCoords() const = 0;
00049 
00051     virtual int getNumDims() const = 0;
00052 
00054     virtual int getNumNodes() const = 0;
00055 
00057     virtual int getGlobalNumNodes() const = 0;
00058 
00059 protected:
00061     virtual ~NodeData() {}
00062 };
00063 
00064 } // namespace weipa
00065 
00066 #endif // __WEIPA_NODEDATA_H__
00067