codac 2.0.0
Loading...
Searching...
No Matches
codac2_Grid.h
Go to the documentation of this file.
1
9
10#pragma once
11
12#include <fstream>
14
15namespace codac2
16{
17 using GridBox = IntervalVector;
18
19 class Grid
20 {
21 public:
22
23 Grid(std::ifstream& f);
24 Grid(const Vector& dx, const Vector& origin);
25 Grid(const Vector& dx, const Vector& origin, const Eigen::Matrix<int,-1,1>& local_shift);
26
27 size_t dim() const;
28
29 const Vector& dx() const;
30 const Vector& origin() const;
31 const Eigen::Matrix<int,-1,1>& local_shift() const;
32
33 std::pair<GridBox,GridBox> bisect(const GridBox& x) const;
34
35 IntervalVector to_reals(const GridBox& x, bool local_indices = true) const;
36 GridBox to_grid(const IntervalVector& x) const;
37
38 void serialize(std::ofstream& f) const;
39
40 protected:
41
42 Grid();
43 void deserialize(std::ifstream& f);
44
45 protected:
46
47 Vector _dx; // in real values
48 Vector _origin; // in real values
49 Eigen::Matrix<int,-1,1> _local_shift; // in indices
50 };
51}
Definition codac2_OctaSym.h:21
Eigen::Matrix< double,-1, 1 > Vector
Alias for a dynamically-sized column vector of doubles.
Definition codac2_Vector.h:24
Eigen::Matrix< Interval,-1, 1 > IntervalVector
Alias for a dynamic-size column vector of intervals.
Definition codac2_IntervalVector.h:25