diff options
Diffstat (limited to 'CarpetDev/CarpetIOF5/src/write.cc')
-rw-r--r-- | CarpetDev/CarpetIOF5/src/write.cc | 284 |
1 files changed, 0 insertions, 284 deletions
diff --git a/CarpetDev/CarpetIOF5/src/write.cc b/CarpetDev/CarpetIOF5/src/write.cc deleted file mode 100644 index bba4523f9..000000000 --- a/CarpetDev/CarpetIOF5/src/write.cc +++ /dev/null @@ -1,284 +0,0 @@ -#include <sstream> - -#include "cctk.h" -#include "cctk_Arguments.h" -#include "cctk_Parameters.h" - -#include "carpet.hh" - -#include "data_region.hh" -#include "file.hh" -#include "simulation.hh" -#include "tensor_component.hh" -#include "timestep.hh" -#include "topology.hh" -#include "write.hh" - - - -namespace CarpetIOF5 { - - namespace write { - - void - write_meta (cGH const * const cctkGH, - F5::file_t & file, - int const group, - int const variable) - { - DECLARE_CCTK_PARAMETERS; - - if (verbose or veryverbose) - { - CCTK_VInfo (CCTK_THORNSTRING, - "OutputVarAs/write_meta"); - } - - F5::timestep_t timestep (file, cctkGH->cctk_time); - - if (Carpet::is_meta_mode()) - { - for (Carpet::mglevel_iterator mglevel_iter (cctkGH); - ! mglevel_iter.done(); - mglevel_iter.step()) - { - write_one_mglevel (cctkGH, timestep, group, variable); - } - } - else - { - write_one_mglevel (cctkGH, timestep, group, variable); - } - } - - - - void - write_one_mglevel (cGH const * const cctkGH, - F5::timestep_t & timestep, - int const group, - int const variable) - { - DECLARE_CCTK_PARAMETERS; - - if (verbose or veryverbose) - { - CCTK_VInfo (CCTK_THORNSTRING, - "OutputVarAs/write_one_mglevel mglevel=%d", - Carpet::mglevel); - } - - ostringstream namebuf; - namebuf << "convlevel=" << cctkGH->cctk_convlevel; - string const namestr = namebuf.str(); - char const * const name = namestr.c_str(); - F5::simulation_t simulation (timestep, name); - - int const grouptype = CCTK_GroupTypeI (group); - assert (grouptype >= 0); - switch (grouptype) - { - case CCTK_ARRAY: - case CCTK_SCALAR: - { - if (Carpet::do_global_mode) - { - write_global (cctkGH, simulation, group, variable); - } - } - break; - case CCTK_GF: - { - if (Carpet::is_global_mode()) - { - for (Carpet::reflevel_iterator reflevel_iter (cctkGH); - ! reflevel_iter.done(); - reflevel_iter.step()) - { - write_one_reflevel (cctkGH, simulation, group, variable); - } - } - else - { - write_one_reflevel (cctkGH, simulation, group, variable); - } - } - break; - default: - assert (0); - } - } - - - - void - write_global (cGH const * const cctkGH, - F5::simulation_t & simulation, - int const group, - int const variable) - { - DECLARE_CCTK_PARAMETERS; - - if (verbose or veryverbose) - { - CCTK_INFO ("OutputVarAs/write_global"); - } - - F5::unigrid_topology_t topology (simulation); - - int const grouptype = CCTK_GroupTypeI (group); - assert (grouptype >= 0); - assert (grouptype == CCTK_SCALAR or grouptype == CCTK_ARRAY); - - vect<CCTK_REAL, dim> level_origin, level_delta; - for (int d=0; d<dim; ++d) - { - level_origin[d] = 0.0; - level_delta[d] = 1.0; - } - F5::Cartesian_coordinate_system_t coordinate_system - (topology, level_origin, level_delta); - - F5::physical_quantity_t physical_quantity (coordinate_system, group); - - F5::tensor_component_t tensor_component (physical_quantity, variable); - - int const myproc = CCTK_MyProc (cctkGH); - dh * const dd = Carpet::arrdata.at(group).at(0).dd; - bbox<int, dim> const & region - = dd->boxes.at(Carpet::mglevel).at(0).at(myproc).exterior; - - F5::data_region_t data_region (tensor_component, region); - - void const * const varptr = CCTK_VarDataPtrI (cctkGH, 0, variable); - assert (varptr != 0); - int const vartype = CCTK_VarTypeI (variable); - assert (vartype >= 0); - data_region.write (varptr, vartype); - } - - - - void - write_one_reflevel (cGH const * const cctkGH, - F5::simulation_t & simulation, - int const group, - int const variable) - { - DECLARE_CCTK_PARAMETERS; - - if (verbose or veryverbose) - { - CCTK_VInfo (CCTK_THORNSTRING, - "OutputVarAs/write_one_reflevel reflevel=%d", - Carpet::reflevel); - } - - int const grouptype = CCTK_GroupTypeI (group); - assert (grouptype >= 0); - assert (grouptype == CCTK_GF); - - F5::mesh_refinement_topology_t topology - (simulation, Carpet::reflevel, Carpet::maxreflevels, - Carpet::spacereflevelfact, Carpet::maxspacereflevelfact); - - if (Carpet::is_level_mode()) - { - for (Carpet::map_iterator map_iter (cctkGH, grouptype); - ! map_iter.done(); - map_iter.step()) - { - write_one_map (cctkGH, topology, group, variable); - } - } - else - { - write_one_map (cctkGH, topology, group, variable); - } - } - - - - void - write_one_map (cGH const * const cctkGH, - F5::topology_t & topology, - int const group, - int const variable) - { - DECLARE_CCTK_PARAMETERS; - - if (verbose or veryverbose) - { - CCTK_VInfo (CCTK_THORNSTRING, - "OutputVarAs/write_one_map map=%d", Carpet::map); - } - - vect<CCTK_REAL, dim> level_origin, level_delta; - for (int d=0; d<dim; ++d) - { - DECLARE_CCTK_ARGUMENTS; - level_origin[d] = CCTK_ORIGIN_SPACE(d); - level_delta[d] = CCTK_DELTA_SPACE(d); - } - F5::Cartesian_coordinate_system_t coordinate_system - (topology, level_origin, level_delta); - - F5::physical_quantity_t physical_quantity (coordinate_system, group); - - F5::tensor_component_t tensor_component (physical_quantity, variable); - - if (Carpet::is_singlemap_mode()) - { - int const grouptype = CCTK_GroupTypeI (group); - assert (grouptype >= 0); - - for (Carpet::component_iterator component_iter (cctkGH, grouptype); - ! component_iter.done(); - component_iter.step()) - { - write_one_component (cctkGH, tensor_component); - } - } - else - { - write_one_component (cctkGH, tensor_component); - } - } - - - - void - write_one_component (cGH const * const cctkGH, - F5::tensor_component_t & tensor_component) - { - DECLARE_CCTK_PARAMETERS; - - if (verbose or veryverbose) - { - CCTK_VInfo (CCTK_THORNSTRING, - "OutputVarAs/write_one_component component=%d", - Carpet::component); - } - - gh * const hh = Carpet::vhh.at(Carpet::map); - if (hh->is_local (Carpet::reflevel, Carpet::component)) - { - dh * const dd = Carpet::vdd.at(Carpet::map); - bbox<int, dim> const & region - = (dd->boxes.at(Carpet::mglevel).at(Carpet::reflevel) - .at(Carpet::component).exterior); - - F5::data_region_t data_region (tensor_component, region); - - int const variable = tensor_component.get_variable(); - void const * const varptr = CCTK_VarDataPtrI (cctkGH, 0, variable); - assert (varptr != 0); - int const vartype = CCTK_VarTypeI (variable); - assert (vartype >= 0); - data_region.write (varptr, vartype); - } - } - - } // namespace write - -} // namespace CarpetIOF5 |