ETS-Core  version:0.0.4-46-ge2d8
Core actors for the ETS-6
 All Classes Files Functions Variables Pages
Functions/Subroutines
ets_init.f90 File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine ets_init (COREPROF_IN, EQUILIBRIUM_IN, CORESOLVER_IN, COREPROF_OUT, EQUILIBRIUM_OUT, CORESOLVER_OUT, SOLVER_INDEX, Activate_Edge_Workflow, codeparameters, user_out_outputFlag, user_out_diagnosticInfo)
 The ETS_INIT returns an instance of the IDS core_profiles, COREPROF_OUT, IDS equilibrium, EQUILIBRIUM_OUT, and the IDS transport_solver_numerics, CORESOLVER_OUT, that enable you to run the ::transport-solver, as well as the flag Activate_Edge_Workflow that should be used to activate the EDGE sub-workflows in the ETS_WORKFLOW_IMAS.xml. More...
 
subroutine assign_run_settings (codeparam_string, COMPOSITION, PROFILES, IMPURITY, GRID_SETTINGS, RESTRICTIONS, Activate_Edge_Workflow)
 Parse the input xml, codeparam_string, and use the content to fill the output COMPOSITION, PROFILES, IMPURITY and Activate_Edge_Workflow. More...
 
subroutine validate_equation (coreprof_in, profiles, grid_settings, solver_index, output_flag, output_message)
 Verify that the boundary conditions are set up correctly. In particular, check that whenever you are predicting any density equation, then quasi-neutrality is set for at least one plasma species (ions or electrons). More...
 
subroutine validate_profiles (COREPROF_IN, OUTPUT_FLAG, OUTPUT_MESSAGE)
 
subroutine validate_equilibrium (EQUILIBRIUM_IN, OUTPUT_FLAG, OUTPUT_MESSAGE)
 
subroutine init_ids (COMPOSITION_OUT, GRID_SETTINGS, COREPROF_IN, EQUILIBRIUM_IN, COREPROF_OUT, EQUILIBRIUM_OUT, PROFILES, RESTRICTIONS, OUTPUT_FLAG, OUTPUT_MESSAGE)
 
subroutine setup_grid (GRID_SETTINGS, COREPROF_IN, RHO_TOR_NORM)
 
subroutine update_equations (PROFILES, COREPROF, EQUILIBRIUM)
 
subroutine update_bc (RHO, PROF, BND_TYPE, BND_RHO, BND_VALUE)
 
subroutine commit_run_settings (COMPOSITION, PROFILES, IMPURITY, COREPROF, CORESOLVER, user_out_outputFlag, user_out_diagnosticInfo)
 
subroutine fill_bc (IEQ, EQUATION, ION_INDEX, STATE_INDEX, TYPE, COEFF_INNER, COEFF_OUTER, POSITION, CORESOLVER)
 

Function/Subroutine Documentation

subroutine ets_init::assign_run_settings ( character(len=132), dimension(:), intent(in), pointer  codeparam_string,
type (plasma_composition), intent(out)  COMPOSITION,
type (plasma_profiles), intent(out)  PROFILES,
type (impurity_profiles), intent(out)  IMPURITY,
type(type_grid_settings), intent(out)  GRID_SETTINGS,
type (profile_restrictions), intent(out)  RESTRICTIONS,
integer, intent(out)  Activate_Edge_Workflow 
)

Parse the input xml, codeparam_string, and use the content to fill the output COMPOSITION, PROFILES, IMPURITY and Activate_Edge_Workflow.

Definition at line 186 of file ets_init.f90.

References ets_plasma::allocate_composition(), ets_plasma::allocate_impurity_profiles(), and ets_plasma::allocate_plasma_profiles().

Here is the call graph for this function:

subroutine ets_init::commit_run_settings ( type (plasma_composition)  COMPOSITION,
type (plasma_profiles)  PROFILES,
type (impurity_profiles)  IMPURITY,
type (ids_core_profiles), intent(inout)  COREPROF,
type (ids_transport_solver_numerics), intent(inout)  CORESOLVER,
integer (ids_int), intent(out)  user_out_outputFlag,
character (len=:), intent(inout), pointer  user_out_diagnosticInfo 
)
subroutine ets_init ( type (ids_core_profiles), intent(in)  COREPROF_IN,
type (ids_equilibrium), intent(in)  EQUILIBRIUM_IN,
type (ids_transport_solver_numerics), intent(in)  CORESOLVER_IN,
type (ids_core_profiles), intent(out)  COREPROF_OUT,
type (ids_equilibrium), intent(out)  EQUILIBRIUM_OUT,
type (ids_transport_solver_numerics), intent(out)  CORESOLVER_OUT,
integer, intent(in)  SOLVER_INDEX,
integer (ids_int), intent(out)  Activate_Edge_Workflow,
type (ids_parameters_input), intent(in)  codeparameters,
integer (ids_int), intent(out)  user_out_outputFlag,
character(len=:), intent(out), pointer  user_out_diagnosticInfo 
)

The ETS_INIT returns an instance of the IDS core_profiles, COREPROF_OUT, IDS equilibrium, EQUILIBRIUM_OUT, and the IDS transport_solver_numerics, CORESOLVER_OUT, that enable you to run the ::transport-solver, as well as the flag Activate_Edge_Workflow that should be used to activate the EDGE sub-workflows in the ETS_WORKFLOW_IMAS.xml.

The values in COREPROF_OUT are based on data in COREPROF_IN. However, the plasma composition (ion and impurity species) is set up as requested in the xml-input, supplied in codeparametersparameters_input. Important missing fields are infered from EQUILIBRIUM_IN.

The CORESOLVER_OUT and the Activate_Edge_Workflow are created from the values in codeparametersparameters_input.

Developers:   D.Kalupin, T.Jonsson, J.Ferreira
Contacts:     Denis.Kalupin@euro-fusion.org

Definition at line 22 of file ets_init.f90.

References assign_run_settings(), commit_run_settings(), init_ids(), ids_sanitiser::sanitise_idss(), update_equations(), validate_equation(), validate_equilibrium(), and validate_profiles().

Referenced by run_test().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine ets_init::fill_bc ( integer (ids_int)  IEQ,
character (len=ids_string_length)  EQUATION,
integer (ids_int)  ION_INDEX,
integer (ids_int)  STATE_INDEX,
integer (ids_int), dimension(2)  TYPE,
real (ids_real), dimension(3)  COEFF_INNER,
real (ids_real), dimension(3)  COEFF_OUTER,
real (ids_real), dimension(2)  POSITION,
type (ids_transport_solver_numerics)  CORESOLVER 
)

Definition at line 1879 of file ets_init.f90.

References ets_plasma::bc_type_to_ids().

Referenced by commit_run_settings().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine ets_init::init_ids ( type (plasma_composition), intent(in)  COMPOSITION_OUT,
type (type_grid_settings), intent(in)  GRID_SETTINGS,
type (ids_core_profiles), intent(in)  COREPROF_IN,
type (ids_equilibrium), intent(in)  EQUILIBRIUM_IN,
type (ids_core_profiles), intent(out)  COREPROF_OUT,
type (ids_equilibrium), intent(out)  EQUILIBRIUM_OUT,
type (plasma_profiles), intent(in)  PROFILES,
type(profile_restrictions), intent(in)  RESTRICTIONS,
integer, intent(inout)  OUTPUT_FLAG,
character(*), intent(inout)  OUTPUT_MESSAGE 
)

Definition at line 1222 of file ets_init.f90.

References ids_core_profiles_setup::core_profiles_setup(), get_composition::find_impurity(), get_composition::find_ion(), get_composition::get_prof_composition(), and setup_grid().

Referenced by ets_init().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine ets_init::setup_grid ( type (type_grid_settings), intent(in)  GRID_SETTINGS,
type (ids_core_profiles), intent(in)  COREPROF_IN,
real (ids_real), dimension(:), intent(out), allocatable  RHO_TOR_NORM 
)

Definition at line 1451 of file ets_init.f90.

Referenced by init_ids().

Here is the caller graph for this function:

subroutine ets_init::update_bc ( real(ids_real), dimension(:), intent(in)  RHO,
real(ids_real), dimension(:), intent(in)  PROF,
integer, intent(in)  BND_TYPE,
real(ids_real), intent(in)  BND_RHO,
real(ids_real), intent(inout)  BND_VALUE 
)

Definition at line 1559 of file ets_init.f90.

Referenced by update_equations().

Here is the caller graph for this function:

subroutine ets_init::update_equations ( type (plasma_profiles), intent(inout)  PROFILES,
type (ids_core_profiles), intent(in)  COREPROF,
type (ids_equilibrium), intent(in)  EQUILIBRIUM 
)

Definition at line 1496 of file ets_init.f90.

References update_bc().

Referenced by ets_init().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine ets_init::validate_equation ( type (ids_core_profiles), intent(in)  coreprof_in,
type (plasma_profiles), intent(in)  profiles,
type(type_grid_settings), intent(in)  grid_settings,
integer, intent(in)  solver_index,
integer, intent(out)  output_flag,
character(*), intent(inout)  output_message 
)

Verify that the boundary conditions are set up correctly. In particular, check that whenever you are predicting any density equation, then quasi-neutrality is set for at least one plasma species (ions or electrons).

Definition at line 1048 of file ets_init.f90.

References ets_plasma::bc_type_to_computation_mode_name().

Referenced by ets_init().

Here is the call graph for this function:

Here is the caller graph for this function:

subroutine ets_init::validate_equilibrium ( type (ids_equilibrium), intent(in)  EQUILIBRIUM_IN,
integer, intent(inout)  OUTPUT_FLAG,
character(*), intent(inout)  OUTPUT_MESSAGE 
)

Definition at line 1167 of file ets_init.f90.

Referenced by ets_init().

Here is the caller graph for this function:

subroutine ets_init::validate_profiles ( type (ids_core_profiles), intent(in)  COREPROF_IN,
integer, intent(inout)  OUTPUT_FLAG,
character(*), intent(inout)  OUTPUT_MESSAGE 
)

Definition at line 1123 of file ets_init.f90.

Referenced by ets_init().

Here is the caller graph for this function: