Restart files checkpoint_*.TAG
¶
Note
These frequency of writing these files are determined by the standard inputs mentioned in the section on restart files in the output control namelist. If nothing is specified then, by default one restart file is written at the end of the run.
Note
A restart file is read only when l_start = .true.
These are unformatted fortran files containing a snapshot of information about spectral coefficients and physical and grid parameters. As the name suggests, these files are used to ‘restart’ a run from a specific time. One such file is read by the code at the beginning and are used as initial conditions for the run. These are very useful for continuing a simulation for a long time on computing clusters where the time for a single run is limited.
The file to be read at the beginning is specified by the input parameter start_file which takes in a string providing path to the file.
These files are written by the subroutine store
.
The following notations will be used for the coefficients of potentials (note that scalar fields like temperature and pressure do not have a poloidal/toroidal decomposition):
Field
Poloidal
Toroidal
Magnetic
b
aj
Velocity
w
z
Temperature
s
Pressure
p
Time derivatives are denoted with a self-explanatory notation. e.g, dbdt
is the first derivative of b
.
The word Last
appended to a variable name denotes that the value is of the
time-step previous to the one during which the file is being written. They are
needed for the time-stepping schemes.
_ic
with a variable name says that it belongs to the Inner Core.
!-------- ! Line 1 !-------- time*tScale, dt*tScale, ra, pr, prmag, ek, radratio, inform, n_r_max, n_theta_max, n_phi_tot, minc, nalias, n_r_ic_max, sigma_ratio if (l_heat): !Run involving heat transport !(Convection) !--------- ! Line 2 !--------- w,z,p,s !--------- ! Line 3 !--------- dsdtLast,dwdtLast,dzdtLast,dpdtLast else: !--------- ! Line 2 !--------- w,z,p !--------- ! Line 3 !--------- dwdtLast,dzdtLast,dpdtLast if (l_mag): !If magnetic run !--------- ! Line 4 !--------- b, aj, dbdtLast, djdtLast if(l_mag .and. l_cond_ic): !If magnetic run !and conducting inner core !--------- ! Line 5 !--------- b_ic, aj_ic, dbdt_icLast, djdt_icLast !-------------------------------------------------- ! Line 4 or 5 or 6 depending on l_mag and l_cond_ic !-------------------------------------------------- lorentz_torque_icLast, lorentz_torque_maLast, !Information about torques, omega_ic1, omegaOsz_ic1, tOmega_ic1, !prescribed rotation and omega_ic2, omegaOsz_ic2, tOmega_ic2, !oscillation rates, omega_ma1, omegaOsz_ma1, tOmega_ma1, !and the time step-size omega_ma2, omegaOsz_ma2, tOmega_ma2, dtNew
The checkpoint files can be read using the python class MagicCheckpoint
.
>>> chk = MagicCheckpoint(filename='checkpoint_end.test')
>>> # print size of poloidal and l_max
>>> print(chk.wpol.shape, chk.l_max)
>>> # convert from cheb to FD using 96 grid points
>>> chk.cheb2fd(96)
>>> write new file
>>> chk.write('checkpoint_fd.test')