ESScript  Revision_
FinleyDomain.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_FINLEYDOMAIN_H__
17 #define __WEIPA_FINLEYDOMAIN_H__
18 
19 #include <weipa/DomainChunk.h>
20 #include <weipa/FinleyElements.h>
21 #include <boost/enable_shared_from_this.hpp>
22 
23 namespace finley {
24  class Mesh;
25 }
26 
27 namespace weipa {
28 
40 class FinleyDomain : public DomainChunk, public boost::enable_shared_from_this<FinleyDomain>
41 {
42 public:
43  FinleyDomain();
44  FinleyDomain(const FinleyDomain& m);
45  virtual ~FinleyDomain();
46  virtual bool initFromEscript(const escript::AbstractDomain* domain);
47  virtual bool initFromFile(const std::string& filename);
48  virtual bool writeToSilo(DBfile* dbfile, const std::string& pathInSilo,
49  const StringVec& labels, const StringVec& units,
50  bool writeMeshData);
51  virtual void reorderGhostZones(int ownIndex);
52  virtual void removeGhostZones(int ownIndex);
53  virtual StringVec getMeshNames() const;
54  virtual StringVec getVarNames() const;
55  virtual ElementData_ptr getElementsByName(const std::string& name) const;
56  virtual NodeData_ptr getMeshByName(const std::string& name) const;
57  virtual DataVar_ptr getDataVarByName(const std::string& name) const;
58  virtual Centering getCenteringForFunctionSpace(int fsCode) const;
59  virtual NodeData_ptr getMeshForFunctionSpace(int fsCode) const;
60  virtual ElementData_ptr getElementsForFunctionSpace(int fsCode) const;
61  virtual NodeData_ptr getNodes() const { return nodes; }
62  virtual std::string getSiloPath() const { return siloPath; }
63  virtual void setSiloPath(const std::string& path) { siloPath = path; }
64 
65 private:
66  void cleanup();
67 
73  std::string siloPath;
74 };
75 
76 } // namespace weipa
77 
78 #endif // __WEIPA_FINLEYDOMAIN_H__
79