Skip to content

Commit b79e7f3

Browse files
committed
make real_t typedefs public
1 parent da38808 commit b79e7f3

File tree

7 files changed

+44
-25
lines changed

7 files changed

+44
-25
lines changed

libmpdata++/solvers/detail/mpdata_rhs_vip_common.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,10 @@ namespace libmpdataxx
4343
template <class ct_params_t, int minhalo>
4444
class mpdata_rhs_vip_common : public mpdata_rhs<ct_params_vip_default_t<ct_params_t>, minhalo>
4545
{
46+
using parent_t = mpdata_rhs<ct_params_vip_default_t<ct_params_t>, minhalo>;
47+
4648
public:
4749
using ix = typename ct_params_t::ix;
48-
using parent_t = mpdata_rhs<ct_params_vip_default_t<ct_params_t>, minhalo>;
4950
using real_t = typename ct_params_t::real_t;
5051

5152
protected:

libmpdata++/solvers/detail/mpdata_rhs_vip_prs_sgs_common.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ namespace libmpdataxx
3636
class mpdata_rhs_vip_prs_sgs_common : public mpdata_rhs_vip_prs<ct_params_t, minhalo>
3737
{
3838
using parent_t = mpdata_rhs_vip_prs<ct_params_t, minhalo>;
39+
40+
public:
41+
3942
using real_t = typename ct_params_t::real_t;
4043

4144
protected:

libmpdata++/solvers/detail/mpdata_rhs_vip_prs_sgs_smg.hpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ namespace libmpdataxx
1818
class mpdata_rhs_vip_prs_sgs_smg : public detail::mpdata_rhs_vip_prs_sgs_common<ct_params_t, minhalo>
1919
{
2020
using parent_t = detail::mpdata_rhs_vip_prs_sgs_common<ct_params_t, minhalo>;
21+
22+
public:
23+
2124
using real_t = typename ct_params_t::real_t;
2225

2326
protected:

libmpdata++/solvers/detail/solver_1d.hpp

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ namespace libmpdataxx
2525
{
2626
using parent_t = solver_common<ct_params_t, n_tlev, minhalo>;
2727

28+
public:
29+
30+
using real_t = typename ct_params_t::real_t;
31+
2832
protected:
2933

3034
const rng_t i; //TODO: to be removed
@@ -65,21 +69,21 @@ namespace libmpdataxx
6569
this->mem->barrier();
6670
}
6771

68-
typename parent_t::real_t courant_number(const arrvec_t<typename parent_t::arr_t> &arrvec) final
72+
real_t courant_number(const arrvec_t<typename parent_t::arr_t> &arrvec) final
6973
{
70-
stat_field(this->ijk) = typename parent_t::real_t(0.5) * (abs(arrvec[0](i+h) + arrvec[0](i-h)));
74+
stat_field(this->ijk) = real_t(0.5) * (abs(arrvec[0](i+h) + arrvec[0](i-h)));
7175
return this->mem->max(this->rank, stat_field(this->ijk));
7276
}
7377

74-
typename parent_t::real_t max_abs_vctr_div(const arrvec_t<typename parent_t::arr_t> &arrvec) final
78+
real_t max_abs_vctr_div(const arrvec_t<typename parent_t::arr_t> &arrvec) final
7579
{
7680
stat_field(this->ijk) = abs((arrvec[0](i+h) - arrvec[0](i-h)));
7781
return this->mem->max(this->rank, stat_field(this->ijk));
7882
}
7983

80-
void scale_gc(const typename parent_t::real_t time,
81-
const typename parent_t::real_t cur_dt,
82-
const typename parent_t::real_t old_dt) final
84+
void scale_gc(const real_t time,
85+
const real_t cur_dt,
86+
const real_t old_dt) final
8387
{
8488
this->mem->GC[0](rng_t(i.first(), i.last()-1)^h) *= cur_dt / old_dt;
8589
this->xchng_vctr_alng(this->mem->GC);
@@ -99,7 +103,7 @@ namespace libmpdataxx
99103

100104
struct rt_params_t : parent_t::rt_params_t
101105
{
102-
typename parent_t::real_t di = 0;
106+
real_t di = 0;
103107
};
104108

105109
protected:

libmpdata++/solvers/detail/solver_2d.hpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ namespace libmpdataxx
2626
{
2727
using parent_t = solver_common<ct_params_t, n_tlev, minhalo>;
2828

29+
public:
30+
31+
using real_t = typename ct_params_t::real_t;
32+
2933
protected:
3034

3135
const rng_t i, j; // TODO: to be removed
@@ -191,23 +195,23 @@ namespace libmpdataxx
191195
// TODO: same in 1D
192196
if (!opts::isset(ct_params_t::opts, opts::dfl))
193197
{
194-
typename ct_params_t::real_t max_abs_div = max_abs_vctr_div(this->mem->GC);
198+
real_t max_abs_div = max_abs_vctr_div(this->mem->GC);
195199

196200
if (max_abs_div > this->max_abs_div_eps)
197201
throw std::runtime_error("initial advector field is divergent");
198202
}
199203
}
200204

201-
typename parent_t::real_t courant_number(const arrvec_t<typename parent_t::arr_t> &arrvec) final
205+
real_t courant_number(const arrvec_t<typename parent_t::arr_t> &arrvec) final
202206
{
203-
stat_field(this->ijk) = typename parent_t::real_t(0.5) * (
207+
stat_field(this->ijk) = real_t(0.5) * (
204208
abs(arrvec[0](i+h, j) + arrvec[0](i-h, j))
205209
+ abs(arrvec[1](i, j+h) + arrvec[1](i, j-h))
206210
) / formulae::G<ct_params_t::opts, 0>(*this->mem->G, i, j);
207211
return this->mem->max(this->rank, stat_field(this->ijk));
208212
}
209213

210-
typename parent_t::real_t max_abs_vctr_div(const arrvec_t<typename parent_t::arr_t> &arrvec) final
214+
real_t max_abs_vctr_div(const arrvec_t<typename parent_t::arr_t> &arrvec) final
211215
{
212216
stat_field(this->ijk) = abs(
213217
(arrvec[0](i+h, j) - arrvec[0](i-h, j))
@@ -216,9 +220,9 @@ namespace libmpdataxx
216220
return this->mem->max(this->rank, stat_field(this->ijk));
217221
}
218222

219-
void scale_gc(const typename parent_t::real_t time,
220-
const typename parent_t::real_t cur_dt,
221-
const typename parent_t::real_t old_dt) final
223+
void scale_gc(const real_t time,
224+
const real_t cur_dt,
225+
const real_t old_dt) final
222226
{
223227
this->mem->GC[0](rng_t(i.first(), i.last()-1)^h, j) *= cur_dt / old_dt;
224228
this->mem->GC[1](i, rng_t(j.first(), j.last()-1)^h) *= cur_dt / old_dt;
@@ -241,7 +245,7 @@ namespace libmpdataxx
241245

242246
struct rt_params_t : parent_t::rt_params_t
243247
{
244-
typename parent_t::real_t di = 0, dj = 0;
248+
real_t di = 0, dj = 0;
245249
};
246250

247251
protected:

libmpdata++/solvers/detail/solver_3d.hpp

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,10 @@ namespace libmpdataxx
2626
{
2727
using parent_t = solver_common<ct_params_t, n_tlev, minhalo>;
2828

29+
public:
30+
31+
using real_t = typename ct_params_t::real_t;
32+
2933
protected:
3034

3135
const rng_t i, j, k; // TODO: we have ijk in solver_common - could it be removed?
@@ -232,24 +236,24 @@ namespace libmpdataxx
232236
// TODO: same in 1D
233237
if (!opts::isset(ct_params_t::opts, opts::dfl))
234238
{
235-
typename ct_params_t::real_t max_abs_div = max_abs_vctr_div(this->mem->GC);
239+
real_t max_abs_div = max_abs_vctr_div(this->mem->GC);
236240

237241
if (max_abs_div > this->max_abs_div_eps)
238242
throw std::runtime_error("initial advector field is divergent");
239243
}
240244
}
241245

242-
typename parent_t::real_t courant_number(const arrvec_t<typename parent_t::arr_t> &arrvec) final
246+
real_t courant_number(const arrvec_t<typename parent_t::arr_t> &arrvec) final
243247
{
244-
stat_field(this->ijk) = typename parent_t::real_t(0.5) * (
248+
stat_field(this->ijk) = real_t(0.5) * (
245249
abs(arrvec[0](i+h, j, k) + arrvec[0](i-h, j, k))
246250
+ abs(arrvec[1](i, j+h, k) + arrvec[1](i, j-h, k))
247251
+ abs(arrvec[2](i, j, k+h) + arrvec[2](i, j, k-h))
248252
) / formulae::G<ct_params_t::opts, 0>(*this->mem->G, i, j, k);
249253
return this->mem->max(this->rank, stat_field(this->ijk));
250254
}
251255

252-
typename parent_t::real_t max_abs_vctr_div(const arrvec_t<typename parent_t::arr_t> &arrvec) final
256+
real_t max_abs_vctr_div(const arrvec_t<typename parent_t::arr_t> &arrvec) final
253257
{
254258
stat_field(this->ijk) = abs(
255259
(arrvec[0](i+h, j, k) - arrvec[0](i-h, j, k))
@@ -260,9 +264,9 @@ namespace libmpdataxx
260264
return this->mem->max(this->rank, stat_field(this->ijk));
261265
}
262266

263-
void scale_gc(const typename parent_t::real_t time,
264-
const typename parent_t::real_t cur_dt,
265-
const typename parent_t::real_t old_dt) final
267+
void scale_gc(const real_t time,
268+
const real_t cur_dt,
269+
const real_t old_dt) final
266270
{
267271
this->mem->GC[0](rng_t(i.first(), i.last()-1)^h, j, k) *= cur_dt / old_dt;
268272
this->mem->GC[1](i, rng_t(j.first(), j.last()-1)^h, k) *= cur_dt / old_dt;
@@ -289,7 +293,7 @@ namespace libmpdataxx
289293

290294
struct rt_params_t : parent_t::rt_params_t
291295
{
292-
typename parent_t::real_t di = 0, dj = 0, dk = 0;
296+
real_t di = 0, dj = 0, dk = 0;
293297
};
294298

295299
protected:

libmpdata++/solvers/detail/solver_common.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ namespace libmpdataxx
4040
enum { n_tlev = n_tlev_ };
4141

4242
using ct_params_t_ = ct_params_t; // propagate ct_params_t mainly for output purposes
43-
typedef typename ct_params_t::real_t real_t;
43+
using real_t = typename ct_params_t::real_t;
4444
typedef blitz::Array<real_t, n_dims> arr_t;
4545
using bcp_t = std::unique_ptr<bcond::detail::bcond_common<real_t, halo>>;
4646

0 commit comments

Comments
 (0)