aboutsummaryrefslogtreecommitdiff
path: root/CarpetDev/CarpetIOF5_standalone/src/coordinate_system.hh
diff options
context:
space:
mode:
Diffstat (limited to 'CarpetDev/CarpetIOF5_standalone/src/coordinate_system.hh')
-rw-r--r--CarpetDev/CarpetIOF5_standalone/src/coordinate_system.hh104
1 files changed, 104 insertions, 0 deletions
diff --git a/CarpetDev/CarpetIOF5_standalone/src/coordinate_system.hh b/CarpetDev/CarpetIOF5_standalone/src/coordinate_system.hh
new file mode 100644
index 000000000..2b67b4561
--- /dev/null
+++ b/CarpetDev/CarpetIOF5_standalone/src/coordinate_system.hh
@@ -0,0 +1,104 @@
+#ifndef COORDINATE_SYSTEM_HH
+#define COORDINATE_SYSTEM_HH
+
+#include <hdf5.h>
+
+#include "cctk.h"
+
+#include "defs.hh"
+#include "vect.hh"
+
+#include "topology.hh"
+
+
+
+namespace CarpetIOF5 {
+
+ namespace F5 {
+
+ class coordinate_system_t {
+
+ coordinate_system_t ();
+ coordinate_system_t (coordinate_system_t const &);
+ coordinate_system_t operator= (coordinate_system_t const &);
+
+ protected:
+
+ topology_t & m_topology;
+
+ string m_name;
+
+ hid_t m_hdf5_coordinate_system;
+
+ coordinate_system_t (topology_t & topology);
+
+ public:
+
+ virtual
+ ~ coordinate_system_t ();
+
+ topology_t &
+ get_topology ()
+ const;
+
+ hid_t
+ get_hdf5_coordinate_system ()
+ const;
+
+ void
+ get_link_destination (int proc,
+ string & filename,
+ string & objectname)
+ const;
+
+ virtual bool
+ invariant ()
+ const;
+
+ };
+
+
+
+ class Cartesian_coordinate_system_t : public coordinate_system_t {
+
+ vect<CCTK_REAL, dim> m_level_origin;
+ vect<CCTK_REAL, dim> m_level_delta;
+
+ Cartesian_coordinate_system_t ();
+ Cartesian_coordinate_system_t (Cartesian_coordinate_system_t const &);
+ Cartesian_coordinate_system_t
+ operator= (Cartesian_coordinate_system_t const &);
+
+ public:
+
+ Cartesian_coordinate_system_t (topology_t & topology,
+ vect<CCTK_REAL, dim> const & level_origin,
+ vect<CCTK_REAL, dim> const & level_delta);
+
+ Cartesian_coordinate_system_t (topology_t & topology,
+ vect<CCTK_REAL, dim> const & coarse_origin,
+ vect<CCTK_REAL, dim> const & coarse_delta,
+ vect<int, dim> const & level_offset,
+ vect<int, dim> const & level_offset_denominator);
+
+ private:
+
+ void
+ init ();
+
+ public:
+
+ virtual
+ ~ Cartesian_coordinate_system_t ();
+
+ virtual bool
+ invariant ()
+ const;
+
+ };
+
+ } // namespace F5
+
+} // namespace CarpetIOF5
+
+#endif // #ifndef COORDINATE_SYSTEM_HH