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