- the new parameter tbfor determines the time when the forcing starts
to be introduced gradually; the parameter tefor determines at what
time the forcing operates with the full power; the transition between
tbfor and tefor is described by sinus function;
- the new parameter toplev stores the level of refinement larger or
equal to maxlev; this level cannot be set in the config.in, but is
determined during the initiation or restarting the job;
- several subroutines have been updated to use toplev instead of
maxlev;
- the subroutine flux_rk2() updates one dimensional fluxes using the
2nd order Runge-Kutta method, and then calculates the averaged flux,
which is used to update the block variables;
- instead of calculating all fluxes at once in update_flux(), select
the direction as a subroutine argument and calculate only the flux
along this direction;
- directional fluxes are needed for the directional RK integration of
the numerical fluxes;
- update subroutines flux_euler(), flux_rk2(), and flux_rk3() to use
new update_flux() subroutine;
- a new module COORDS handles the mesh variables which needed to be
separated from the MESH module since they are used in PROBLEM module,
which is required by MESH module; this created a circular dependency;
by introducing a new COORDS module we removed that problem;
- allow for time varying shapes;
- remove unnecessary configuration parameters for the boundaries
problem and give the remaining parameters more descriptive names;
- place the star always in the origin of the coordinate system, which
is the focus point of the satellite orbit, as well;
- make the satellite orbiting around the main star with a given period
discribed by a parameter 'tsat'; the satellite orbit is an elipse
described by the minimum distance from the focus point 'dsat' and
eccentricity 'esat';
- subroutine update_shapes() has been rewritten so now it works well
with both CONSERVATIVE=Y and CONSERVATIVE=N;
- since we are calling update_shapes() only once per step per block
now, it gives a small performance optimization;
- the diffusion of Psi in MHD-GLM requires spacial step dxmin, so
update the diffusion so it works after the last commit changes;
- call find_new_timestep() after job restart, since some parameters
could change;
- subroutine update_maximum_speed() has been replaced with
find_new_timestep(), which first finds the minimum spacial step
dxmin, then finds the maximum speed in the domain, and finally
estimates new time step;
- dx_min has been removed from MESH module, since it is not required
anymore;
- if we use forcing in the case of adiabatic equation of state, the
total energy of each cell must be updated by the kinetic energy
injected to this cell; otherwise the energy conservation will be
violated;
- implement subroutine flux_rk2() which calculates fluxes at time t and
t + dt and averages them; then the calculated flux is passed to
variable update;
- implement subroutine advance_solution() which advances an array of
conserved variables using fluxes provided as an argument;
- use advance_solution() in update_solution();
- subroutine boundary_correct_fluxes() sweeps over all leafs and if it
finds that a neighbor is at higher level, performs a correction of
the numerical flux of current block in this direction; this
subroutine does not support MPI yet!;
- subroutine correct_flux() performs the atual correction of the
numerical flux; only part belonging to domain is updated, since ghost
zones are updated anyway in the next step during the variable update;
- call boundary_correct_flux() from evolve();
- after calculating an integrals of fluxes with a given order we
performed one step updated of the conserved variables stored in data
blocks using corresponding numerical flux stored in the same data
block; the subroutine which performs update is called
update_solution();
- change order of calculating terms; first perform the main update
of the conserved variables, then add forcing and source terms; in
this way we do not change time step which determines the stability of
scheme before the conserved variables enter Riemann solver; this is
especially important in highly supersonic simulations, when in the
presence of very low density, even small change of velocity can make
the scheme numerically unstable;