UNIVERS  15.3
UNIVERS base processing software API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
sim_fdm_scheme_iso_it.hpp
1 /* sim_fdm_scheme_iso_it.hpp */
2 /* $Id$ */
3 #ifndef __sim_fdm_scheme_iso_it_hpp
4 #define __sim_fdm_scheme_iso_it_hpp
5 
6 #include <s2proc/sim_service.hpp>
7 
11 namespace sim
12 {
16  namespace fdm
17  {
19  struct GridIso
20  {
21  public:
22 
25  n(0), m(0)
26  {/* nothing to do */}
27 
29  GridIso(const int i_n, const int i_m);
30 
31  int n;
32  int m;
33  std::vector<CoordT> lambdah;
34  std::vector<CoordT> lambdav;
35  std::vector<CoordT> muh;
36  std::vector<CoordT> muv;
37  std::vector<CoordT> rho;
38  };
39 
40  class Snapshot;
41 
46  {
47  public:
48 
49  SchemeIsoIt(const GridIso &grid,
50  const Snapshot &fp,
51  const Snapshot &f,
52  Snapshot &fn,
53  const TimeT &i_dt);
54 
55  void init(const GridIso &grid,
56  const Snapshot &fp,
57  const Snapshot &f,
58  Snapshot &fn,
59  const TimeT &i_dt);
60 
61 
62  SchemeIsoIt& operator++();
63 
64  void step(const size_t &x_step, const size_t &z_step);
65 
67  void reset();
68 
69 
71  void do_scheme_full_form();
72 
74  void do_scheme_short_form();
75 
76  void do_stacey_top();
77 
78  void do_stacey_bottom();
79 
80  void do_stacey_left();
81 
82  void do_stacey_right();
83 
84  void do_corners_boundary_conds();
85 
86  void do_top_left_corner();
87 
88  void do_top_right_corner();
89 
90  void do_bottom_left_corner();
91 
92  void do_bottom_right_corner();
93 
94  // protected:
95 
96  size_t cur_ind;
97  size_t cur_n;
98  size_t cur_m;
99  size_t x_size;
100  size_t z_size;
101  const CoordT *pdx;
102  const CoordT *pdz;
103  TimeT dt;
104  TimeT dt2;
105  const AmplT *pup;
106  const AmplT *pwp;
107  const AmplT *pu;
108  const AmplT *pw;
109  AmplT *pun;
110  AmplT *pwn;
111  const CoordT *pden;
112  const CoordT *plambdah;
113  const CoordT *plambdav;
114  const CoordT *pmuh;
115  const CoordT *pmuv;
116 
117  }; // class SchemeIsoIt
118 
119  }; // finite differences modeling namespace
120 
121 }; // simulation namespace
122 
123 #endif /* sim_fdm_scheme_iso_it.hpp */
Definition: sim_fdm_snapshot.hpp:23
Definition: sim_fdm_scheme_iso_it.hpp:19
Definition: sim_fdm_scheme_iso_it.hpp:45
GridIso()
Definition: sim_fdm_scheme_iso_it.hpp:24