XGC1
checkpoint_files.hpp
Go to the documentation of this file.
1 #ifndef CHECKPOINT_FILES_HPP
2 #define CHECKPOINT_FILES_HPP
3 
4 #include "sml.hpp"
5 #include "plasma.hpp"
6 #include "electric_field.hpp"
7 #include "grid.hpp"
9 #include "DM_wrapper.hpp"
10 #include "diagnostics.hpp"
11 #include "sheath.hpp"
12 #include "charge.hpp"
13 #include "perturbed_B_field.hpp"
14 #include "sources.hpp"
15 
16 enum class RestartOption{
17  Final,
18  NotFinal
19 };
20 
21 // These are initialized in xgc.cpp but accessed via ADIOS2 lookup.
24 
27 
28 
29  public:
30 
32  int run_count;
34 
36  run_count = 1;
37  nlr.use_namelist("sml_param");
38  restart_write_period = nlr.get<int>("sml_restart_write_period",10000000); // Number of time steps between each simulation checkpoint.
39  restart_write_after_last_timestep = nlr.get<bool>("sml_restart_write_after_last_timestep", true); // Whether to write a checkpoint file after the final time step of the simulation.
40 
41 
42  nlr.use_namelist("adios_param");
43  adios_stage_restart = nlr.get<bool>("adios_stage_restart",false); // Enable/disable Adios stage mode for checkpoint file
44  adios_stage_restart_f0 = nlr.get<bool>("adios_stage_restartf0",false); // Enable/disable Adios stage mode for f0 checkpoint file
45 
46 
47  // Initialize and open streams
48  stream.Init("restart");
49  }
50 
52 
53  bool write_restart_now(int gstep);
54 
55  void write(const Simulation<DeviceType>& sml,
56  const Grid<DeviceType>& grid,
58  ElectricField<DeviceType>& electric_field,
59  Plasma& plasma,
60  const Sheath<DeviceType>& sheath,
61  const Charges& charges,
62  const PerturbedBField<DeviceType>& perturbed_B_field,
63  const VelocityGrid& vgrid,
64  const Sources& sources,
66  DMWrapper& pseudo_inv_dm,
67  Diagnostics& diagnostics,
68  RestartOption restart_option=RestartOption::NotFinal);
69 
70  void read(Simulation<DeviceType>& sml,
71  Plasma& plasma,
72  ElectricField<DeviceType>& electric_field,
73  Sheath<DeviceType>& sheath,
74  Charges& charges,
75  PerturbedBField<DeviceType>& perturbed_B_field,
77  const Grid<DeviceType>& grid,
79  const VelocityGrid& vgrid,
80  const Sources& sources);
81 
82 };
83 
84 #endif
RestartOption
Definition: checkpoint_files.hpp:16
Definition: checkpoint_files.hpp:22
CheckpointFiles(NLReader::NamelistReader &nlr)
Definition: checkpoint_files.hpp:35
XGC_IO_Stream stream
Definition: checkpoint_files.hpp:23
bool adios_stage_restart
Enable/disable Adios stage mode for xgc.restart.
Definition: checkpoint_files.hpp:25
bool restart_write_after_last_timestep
Whether to write checkpoint after the final time step.
Definition: checkpoint_files.hpp:33
int run_count
How many times the simulation has been restarted.
Definition: checkpoint_files.hpp:32
void write(const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, ElectricField< DeviceType > &electric_field, Plasma &plasma, const Sheath< DeviceType > &sheath, const Charges &charges, const PerturbedBField< DeviceType > &perturbed_B_field, const VelocityGrid &vgrid, const Sources &sources, DomainDecomposition< DeviceType > &pol_decomp, DMWrapper &pseudo_inv_dm, Diagnostics &diagnostics, RestartOption restart_option=RestartOption::NotFinal)
Definition: checkpoint_files.cpp:50
void read(Simulation< DeviceType > &sml, Plasma &plasma, ElectricField< DeviceType > &electric_field, Sheath< DeviceType > &sheath, Charges &charges, PerturbedBField< DeviceType > &perturbed_B_field, DomainDecomposition< DeviceType > &pol_decomp, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, const VelocityGrid &vgrid, const Sources &sources)
Definition: checkpoint_files.cpp:142
int restart_write_period
How many steps between restart writes.
Definition: checkpoint_files.hpp:31
bool write_restart_now(int gstep)
Definition: checkpoint_files.cpp:269
bool adios_stage_restart_f0
Enable/disable Adios stage mode for xgc.restartf0.
Definition: checkpoint_files.hpp:26
bool do_restart(NLReader::NamelistReader &nlr)
Definition: checkpoint_files.cpp:251
Definition: magnetic_field.hpp:12
Definition: NamelistReader.hpp:199
T get(const string &param, const T default_val, int val_ind=0)
Definition: NamelistReader.hpp:392
void use_namelist(const string &namelist, Options required=Required)
Definition: NamelistReader.hpp:366
Definition: perturbed_B_field.hpp:12
Definition: plasma.hpp:13
Definition: sheath.hpp:49
Definition: sml.hpp:10
Definition: xgc_io.hpp:24
void Init(const std::string &IOName)
Definition: xgc_io.hpp:29
Definition: magnetic_field.F90:1
subroutine plasma(grid, itr, p, dene_out, deni_out, Te_out, Ti_out, Vparai_out, ignore_vacuum)
Calculate the plasma density, temperature, and parallel velocity for a point in triangle itr using pl...
Definition: neutral_totalf.F90:1541
Definition: charge.hpp:66
Definition: DM_wrapper.hpp:34
Definition: diagnostics.hpp:21
Definition: electric_field.hpp:76
Definition: sources.hpp:22
Definition: velocity_grid.hpp:8