MONC
|
This contains the CFL test. It will perform the local advective CFL and Galilean transfromation calculations, compute the global values of these, then check the cfl criterion and determine an absolute new dtm. Depending upon the maximum and increment values this is then smoothed into a new dtm value. The value of dtm is physically set to this new value at the start of the next timestep. More...
Functions/Subroutines | |
type(component_descriptor_type) function, public | cfltest_get_descriptor () |
Provides the descriptor back to the caller and is used in component registration. More... | |
subroutine | initialisation_callback (current_state) |
Called at initialisation, will read in configuration and use either configured or default values. More... | |
subroutine | timestep_callback (current_state) |
Called at each timestep, this will only do the CFL computation every nncfl timesteps (or every timestep up to nncfl) but will ratchet up to the absolute (target) dtm as needed. More... | |
subroutine | update_dtm_based_on_absolute (current_state, cfl_number) |
Updates the (new) dtm value, which is actioned after time step completion, based upon the absolute value. This is incremented towards the absolute if that is too large a step, and even if the absolute value has not been updated in this timestep, this ratcheting will still occur if needed. More... | |
subroutine | perform_cfl_and_galilean_transformation_calculation (current_state) |
Performs the CFL and Galilean transformation calculations. First locally and then will determine the global value of each calculation. If U, V or W are not active then these are set to 0 and the calculation use these values. More... | |
subroutine | get_global_values (local_zumin, local_zumax, local_zvmin, local_zvmax, local_cvel_z, local_cvis, global_zumin, global_zumax, global_zvmin, global_zvmax, global_cvel_z, global_cvis, parallel_state) |
Gets the global reduction values based upon the local contributions of CFL and Galilean transformations provided. More... | |
Variables | |
real(kind=default_precision) | tollerance |
real(kind=default_precision) | cvismax |
real(kind=default_precision) | cvelmax |
real(kind=default_precision) | dtmmax |
real(kind=default_precision) | dtmmin |
real(kind=default_precision) | rincmax |
logical | l_monitor_cfl |
This contains the CFL test. It will perform the local advective CFL and Galilean transfromation calculations, compute the global values of these, then check the cfl criterion and determine an absolute new dtm. Depending upon the maximum and increment values this is then smoothed into a new dtm value. The value of dtm is physically set to this new value at the start of the next timestep.
type(component_descriptor_type) function, public cfltest_mod::cfltest_get_descriptor |
Provides the descriptor back to the caller and is used in component registration.
Definition at line 31 of file cfltest.F90.
|
private |
Gets the global reduction values based upon the local contributions of CFL and Galilean transformations provided.
local_zumin | Local contribution to ZU minimum |
local_zumax | Local contribution to ZU maximum |
local_zvmin | Local contribution to ZV minimum |
local_zvmax | Local contribution to ZV maximum |
local_cvel_z | Local contribution to component of Courant number in z |
local_cvis | Local contribution to viscous Courant number |
global_zumin | Globally reduced value of ZU minimum |
global_zumax | Globally reduced value of ZU maximum |
global_zvmin | Globally reduced value of ZV minimum |
global_zvmax | Globally reduced value of ZV maximum |
global_cvel_z | Globally reduced value of contribution to component of Courant number in z |
global_cvis | Globally reduced value of contribution to viscous Courant number |
parallel_state | The parallel state |
Definition at line 200 of file cfltest.F90.
|
private |
Called at initialisation, will read in configuration and use either configured or default values.
current_state | The current model state |
Definition at line 40 of file cfltest.F90.
|
private |
Performs the CFL and Galilean transformation calculations. First locally and then will determine the global value of each calculation. If U, V or W are not active then these are set to 0 and the calculation use these values.
current_state | The current model state |
Definition at line 138 of file cfltest.F90.
|
private |
Called at each timestep, this will only do the CFL computation every nncfl timesteps (or every timestep up to nncfl) but will ratchet up to the absolute (target) dtm as needed.
current_state | The current model state |
Definition at line 59 of file cfltest.F90.
|
private |
Updates the (new) dtm value, which is actioned after time step completion, based upon the absolute value. This is incremented towards the absolute if that is too large a step, and even if the absolute value has not been updated in this timestep, this ratcheting will still occur if needed.
current_state | The current model state |
Definition at line 95 of file cfltest.F90.
|
private |
Definition at line 23 of file cfltest.F90.
|
private |
Definition at line 23 of file cfltest.F90.
|
private |
Definition at line 23 of file cfltest.F90.
|
private |
Definition at line 23 of file cfltest.F90.
|
private |
Definition at line 24 of file cfltest.F90.
|
private |
Definition at line 23 of file cfltest.F90.
|
private |
Definition at line 23 of file cfltest.F90.