aboutsummaryrefslogtreecommitdiff
path: root/src/patch/patch_info.hh
diff options
context:
space:
mode:
Diffstat (limited to 'src/patch/patch_info.hh')
-rw-r--r--src/patch/patch_info.hh67
1 files changed, 67 insertions, 0 deletions
diff --git a/src/patch/patch_info.hh b/src/patch/patch_info.hh
new file mode 100644
index 0000000..7f58f21
--- /dev/null
+++ b/src/patch/patch_info.hh
@@ -0,0 +1,67 @@
+// patch_info.hh -- POD struct of minimal info varying from one patch to another
+// $Id$
+
+//
+// prerequisites:
+// <stdio.h>
+// <assert.h>
+// <math.h>
+// "../jtutil/util.hh"
+// "../jtutil//array.hh"
+// "../jtutil/linear_map.hh"
+// "coords.hh"
+// "grid.hh"
+//
+
+//*****************************************************************************
+
+//
+// This (POD, and hence static-initializable) struct gives a minimal
+// set of information which varies from one patch to another.
+//
+// The member functions allow a patch to be constructed from this struct
+// together with the additional information provided by their arguments.
+// This doesn't allow the most general possible type of patch (eg it
+// constrains all ghost zones to have the same width), but does cover
+// the common casees.
+//
+// Arguments for member functions:
+// N_ghost_points = Width in grid points of all ghost zones.
+// N_extend_points = Number of grid points to extend each patch past
+// "just touching" so as to overlap neighboring patches.
+// Thus patches overlap by
+// N_overlap_points = 2*N_extend_points + 1
+// grid points. For example, with N_extend_points == 2,
+// here are the grid points of two neighboring patches:
+// x x x x x X X
+// |
+// O O o o o o o
+// Here | marks the "just touching" boundary,
+// x and o the grid points before this extension,
+// and X and O the extra grid points added by this
+// extension.
+// delta_drho_dsigma = Grid spacing (both rho and sigma) in degrees.
+//
+struct patch_info
+ {
+ const char* name;
+ bool is_plus;
+ char ctype;
+ fp min_drho, max_drho;
+ fp min_dsigma, max_dsigma;
+
+ // compute and return reference to struct grid_arrays::grid_array_pars
+ // ... result refers to internal static buffer;
+ // the usual caveats about lifetimes/overwriting apply
+ const grid_arrays::grid_array_pars&
+ grid_array_pars(int N_ghost_points, int N_extend_points,
+ fp delta_drho_dsigma)
+ const;
+
+ // compute and return reference to struct grid::grid_pars
+ // ... result refers to internal static buffer;
+ // the usual caveats about lifetimes/overwriting apply
+ const grid::grid_pars& grid_pars(int N_extend_points,
+ fp delta_drho_dsigma)
+ const;
+ };