ESScript  Revision_4488
weipa/src/RipleyDomain.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_RIPLEYDOMAIN_H__
17 #define __WEIPA_RIPLEYDOMAIN_H__
18 
19 #include <weipa/DomainChunk.h>
20 #include <weipa/RipleyElements.h>
21 #include <boost/enable_shared_from_this.hpp>
22 
23 namespace weipa {
24 
34 class RipleyDomain : public DomainChunk, public boost::enable_shared_from_this<RipleyDomain>
35 {
36 public:
37  RipleyDomain();
38  RipleyDomain(const RipleyDomain& m);
39  virtual ~RipleyDomain() {}
40  virtual bool initFromEscript(const escript::AbstractDomain* domain);
41  virtual bool initFromFile(const std::string& filename);
42  virtual bool writeToSilo(DBfile* dbfile, const std::string& pathInSilo,
43  const StringVec& labels, const StringVec& units,
44  bool writeMeshData);
45  virtual void reorderGhostZones(int ownIndex);
46  virtual void removeGhostZones(int ownIndex);
47  virtual StringVec getMeshNames() const;
48  virtual StringVec getVarNames() const;
49  virtual ElementData_ptr getElementsByName(const std::string& name) const;
50  virtual NodeData_ptr getMeshByName(const std::string& name) const;
51  virtual DataVar_ptr getDataVarByName(const std::string& name) const;
52  virtual Centering getCenteringForFunctionSpace(int fsCode) const;
53  virtual NodeData_ptr getMeshForFunctionSpace(int fsCode) const;
54  virtual ElementData_ptr getElementsForFunctionSpace(int fsCode) const;
55  virtual NodeData_ptr getNodes() const { return nodes; }
56  virtual std::string getSiloPath() const { return siloPath; }
57  virtual void setSiloPath(const std::string& path) { siloPath = path; }
58 
59 private:
64  std::string siloPath;
65 };
66 
67 } // namespace weipa
68 
69 #endif // __WEIPA_RIPLEYDOMAIN_H__
70