diff options
author | Anton Khirnov <anton@khirnov.net> | 2018-08-07 16:16:23 +0200 |
---|---|---|
committer | Anton Khirnov <anton@khirnov.net> | 2018-08-07 16:16:23 +0200 |
commit | 665170edf5b1346463e3e7d58bc6a4395deba45a (patch) | |
tree | a33d767fa56a09c4a3588f341d03f8be27d0c7c9 | |
parent | b9baa0a97a4e6d7436dd602c68118dbb6403e938 (diff) |
Interp: allow the user to specify maximum reflevel for interpolation
-rw-r--r-- | Carpet/CarpetInterp/src/interp.cc | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/Carpet/CarpetInterp/src/interp.cc b/Carpet/CarpetInterp/src/interp.cc index 0e1474e21..d5283bf62 100644 --- a/Carpet/CarpetInterp/src/interp.cc +++ b/Carpet/CarpetInterp/src/interp.cc @@ -343,9 +343,10 @@ namespace CarpetInterp { vector<int> num_time_derivs; CCTK_REAL current_time, delta_time; int prolongation_order_time; + int table_maxrl = -1; { - int const iret = extract_parameter_table_options + int iret = extract_parameter_table_options (cctkGH, param_table_handle, N_interp_points, N_input_arrays, N_output_arrays, @@ -356,6 +357,14 @@ namespace CarpetInterp { timer_CDI->stop (0); return iret; } + + iret = Util_TableGetInt (param_table_handle, + &table_maxrl, "max_reflevel"); + if (iret == UTIL_ERROR_TABLE_NO_SUCH_KEY) { + } else if (iret != 1) { + CCTK_WARN (CCTK_WARN_ALERT, "internal error"); + return -1; + } } // Find range of refinement levels @@ -365,9 +374,14 @@ namespace CarpetInterp { arrdata.AT(coord_group).AT(m).hh->reflevels()); } int const minrl = want_global_mode ? 0 : reflevel; - int const maxrl = want_global_mode ? - arrdata.AT(coord_group).AT(0).hh->reflevels() : reflevel+1; - //int maxrl = reflevel + 1; + + int maxrl; + if (table_maxrl >= 0) + maxrl = table_maxrl; + else if (want_global_mode) + maxrl = arrdata.AT(coord_group).AT(0).hh->reflevels(); + else + maxrl = reflevel+1; // Find maximum number of components over all levels and maps int maxncomps = 0; |