1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
|
// grid.cc -- classes for a 2D uniform tensor-product grid
// $Id$
//
// grid_arrays::grid_arrays
// grid::grid
//
#include <stdio.h>
#include <assert.h>
#include <limits.h>
#include <math.h>
#include <float.h>
#include "jt/stdc.h"
#include "jt/util++.hh" // jtutil::how_many_in_range(),
// round<fp>::, fuzzy<fp>::
#include "jt/array.hh"
#include "jt/linear_map.hh"
#include "fp.hh"
#include "coords.hh"
#include "grid.hh"
//*****************************************************************************
//
// This function constructs a grid_arrays object.
//
grid_arrays::grid_arrays(const grid_arrays::array_pars &array_pars_in,
int N_gridfns_in)
: gridfn_data_
(0, N_gridfns_in-1,
array_pars_in.min_irho - array_pars_in.min_rho_N_ghost_zones,
array_pars_in.max_irho + array_pars_in.max_rho_N_ghost_zones,
array_pars_in.min_isigma - array_pars_in.min_sigma_N_ghost_zones,
array_pars_in.max_isigma + array_pars_in.max_sigma_N_ghost_zones),
N_gridfns_(N_gridfns_in),
min_irho_(array_pars_in.min_irho),
max_irho_(array_pars_in.max_irho),
min_isigma_(array_pars_in.min_isigma),
max_isigma_(array_pars_in.max_isigma),
full_grid__min_irho_
(array_pars_in.min_irho - array_pars_in.min_rho_N_ghost_zones),
full_grid__max_irho_
(array_pars_in.max_irho + array_pars_in.max_rho_N_ghost_zones),
full_grid__min_isigma_
(array_pars_in.min_isigma - array_pars_in.min_sigma_N_ghost_zones),
full_grid__max_isigma_
(array_pars_in.max_isigma + array_pars_in.max_sigma_N_ghost_zones)
// no comma
{ }
//*****************************************************************************
//
// This function constructs a grid object.
//
grid::grid(const grid_arrays::array_pars &grid_array_pars_in,
const grid::grid_pars &grid_pars_in,
int N_gridfns_in,
bool verbose_flag = false)
: grid_arrays(grid_array_pars_in,
N_gridfns_in),
rho_map_
(grid_array_pars_in.min_irho
- grid_array_pars_in.min_rho_N_ghost_zones,
grid_array_pars_in.max_irho
+ grid_array_pars_in.max_rho_N_ghost_zones,
jtutil::radians_of_degrees(
grid_pars_in.min_drho
- grid_array_pars_in.min_rho_N_ghost_zones
* grid_pars_in.delta_drho
),
jtutil::radians_of_degrees(grid_pars_in.delta_drho),
jtutil::radians_of_degrees(
grid_pars_in.max_drho
+ grid_array_pars_in.max_rho_N_ghost_zones
* grid_pars_in.delta_drho
)),
sigma_map_
(grid_array_pars_in.min_isigma
- grid_array_pars_in.min_sigma_N_ghost_zones,
grid_array_pars_in.max_isigma
+ grid_array_pars_in.max_sigma_N_ghost_zones,
jtutil::radians_of_degrees(
grid_pars_in.min_dsigma
- grid_array_pars_in.min_sigma_N_ghost_zones
* grid_pars_in.delta_dsigma
),
jtutil::radians_of_degrees(grid_pars_in.delta_dsigma),
jtutil::radians_of_degrees(
grid_pars_in.max_dsigma
+ grid_array_pars_in.max_sigma_N_ghost_zones
* grid_pars_in.delta_dsigma
)),
min_rho_(jtutil::radians_of_degrees(grid_pars_in.min_drho)),
max_rho_(jtutil::radians_of_degrees(grid_pars_in.max_drho)),
min_sigma_(jtutil::radians_of_degrees(grid_pars_in.min_dsigma)),
max_sigma_(jtutil::radians_of_degrees(grid_pars_in.max_dsigma))
// no comma
{
if (verbose_flag)
then printf("grid::grid(): created %d*%d grid (%d gridfn(s))\n",
N_irho(), N_isigma(), N_gridfns());
}
|