control_iteration Module


Uses

  • module~~control_iteration~~UsesGraph module~control_iteration control_iteration iso_fortran_env iso_fortran_env module~control_iteration->iso_fortran_env module~module_calculate module_calculate module~control_iteration->module~module_calculate module~module_input module_input module~control_iteration->module~module_input calculate_wrf calculate_wrf module~module_calculate->calculate_wrf module~calculate_density calculate_density module~module_calculate->module~calculate_density module~calculate_gcc calculate_gcc module~module_calculate->module~calculate_gcc module~calculate_hcf calculate_hcf module~module_calculate->module~calculate_hcf module~calculate_linalg calculate_linalg module~module_calculate->module~calculate_linalg module~calculate_specific_heat calculate_specific_heat module~module_calculate->module~calculate_specific_heat module~calculate_thermal_conductivity calculate_thermal_conductivity module~module_calculate->module~calculate_thermal_conductivity module~calculate_volumetric_heat_capacity calculate_volumetric_heat_capacity module~module_calculate->module~calculate_volumetric_heat_capacity module~inout_input inout_input module~module_input->module~inout_input module~calculate_density->iso_fortran_env module~calculate_density->module~module_input module~module_core module_core module~calculate_density->module~module_core module~calculate_gcc->iso_fortran_env module~calculate_gcc->module~module_input module~calculate_gcc->module~module_core module~calculate_hcf->iso_fortran_env module~calculate_hcf->module~module_input module~calculate_hcf->module~module_core module~calculate_linalg_matrix_ops calculate_linalg_matrix_ops module~calculate_linalg->module~calculate_linalg_matrix_ops module~calculate_linalg_matvec calculate_linalg_matvec module~calculate_linalg->module~calculate_linalg_matvec module~calculate_linalg_vector_ops calculate_linalg_vector_ops module~calculate_linalg->module~calculate_linalg_vector_ops module~calculate_specific_heat->iso_fortran_env module~calculate_specific_heat->module~module_input module~calculate_specific_heat->module~module_core module~calculate_thermal_conductivity->iso_fortran_env module~calculate_thermal_conductivity->module~module_input module~calculate_thermal_conductivity->module~module_core module~calculate_volumetric_heat_capacity->iso_fortran_env module~calculate_volumetric_heat_capacity->module~calculate_density module~calculate_volumetric_heat_capacity->module~inout_input module~calculate_volumetric_heat_capacity->module~module_core module~inout_input->iso_fortran_env json_module json_module module~inout_input->json_module module~inout_project_settings inout_project_settings module~inout_input->module~inout_project_settings module~inout_input->module~module_core stdlib_logger stdlib_logger module~inout_input->stdlib_logger stdlib_strings stdlib_strings module~inout_input->stdlib_strings module~calculate_linalg_matrix_ops->iso_fortran_env module~calculate_linalg_matrix_ops->module~module_core module~calculate_linalg_matvec->iso_fortran_env module~calculate_linalg_matvec->module~module_core module~calculate_linalg_vector_ops->iso_fortran_env module~inout_project_settings->iso_fortran_env module~inout_project_settings->module~module_core core_check_nan core_check_nan module~module_core->core_check_nan module~core_allocate core_allocate module~module_core->module~core_allocate module~core_check_range core_check_range module~module_core->module~core_check_range module~core_deallocate core_deallocate module~module_core->module~core_deallocate module~core_error core_error module~module_core->module~core_error module~core_fortran_utils core_fortran_utils module~module_core->module~core_fortran_utils module~core_string_utils core_string_utils module~module_core->module~core_string_utils module~core_types core_types module~module_core->module~core_types module~core_unique core_unique module~module_core->module~core_unique module~core_vtk core_vtk module~module_core->module~core_vtk module~core_vtk_vtk_constants core_vtk_vtk_constants module~module_core->module~core_vtk_vtk_constants module~core_allocate->iso_fortran_env module~core_allocate->module~core_error module~core_check_range->iso_fortran_env module~core_deallocate->iso_fortran_env module~core_deallocate->module~core_error module~core_error->iso_fortran_env module~core_error->stdlib_logger module~core_fortran_utils_memory_stats_wrapper core_fortran_utils_memory_stats_wrapper module~core_fortran_utils->module~core_fortran_utils_memory_stats_wrapper module~core_fortran_utils_signal_flag_wrapper core_fortran_utils_signal_flag_wrapper module~core_fortran_utils->module~core_fortran_utils_signal_flag_wrapper module~core_fortran_utils_system_info_wrapper core_fortran_utils_system_info_wrapper module~core_fortran_utils->module~core_fortran_utils_system_info_wrapper module~core_string_utils->iso_fortran_env module~core_string_utils->module~core_allocate module~core_types_array core_types_array module~core_types->module~core_types_array module~core_types_gauss core_types_gauss module~core_types->module~core_types_gauss module~core_types_pointer core_types_pointer module~core_types->module~core_types_pointer module~core_types_variable core_types_variable module~core_types->module~core_types_variable module~core_types_vector core_types_vector module~core_types->module~core_types_vector module~module_type_matrix module_type_matrix module~core_types->module~module_type_matrix module~core_unique->iso_fortran_env module~core_unique->module~core_allocate stdlib_sorting stdlib_sorting module~core_unique->stdlib_sorting module~core_vtk->iso_fortran_env module~core_vtk->module~core_allocate module~core_vtk->module~core_deallocate module~core_vtk->module~core_types module~core_vtk->module~core_unique module~core_vtk->module~core_vtk_vtk_constants iso_c_binding iso_c_binding module~core_vtk->iso_c_binding module~core_vtk_vtk_wrapper core_vtk_vtk_wrapper module~core_vtk->module~core_vtk_vtk_wrapper module~core_vtk_vtu_wrapper core_vtk_vtu_wrapper module~core_vtk->module~core_vtk_vtu_wrapper module~core_vtk->stdlib_sorting module~core_vtk_vtk_constants->iso_fortran_env module~core_fortran_utils_memory_stats_wrapper->iso_fortran_env module~core_c_utils core_c_utils module~core_fortran_utils_memory_stats_wrapper->module~core_c_utils module~core_fortran_utils_signal_flag_wrapper->iso_fortran_env module~core_fortran_utils_signal_flag_wrapper->stdlib_logger module~core_fortran_utils_signal_flag_wrapper->iso_c_binding module~core_c_utils_signal_flag core_c_utils_signal_flag module~core_fortran_utils_signal_flag_wrapper->module~core_c_utils_signal_flag module~core_fortran_utils_system_info_wrapper->iso_fortran_env module~core_fortran_utils_system_info_wrapper->stdlib_strings module~core_fortran_utils_system_info_wrapper->iso_c_binding module~core_fortran_utils_system_info_wrapper->module~core_c_utils module~core_types_array->iso_fortran_env module~core_types_array->module~core_allocate module~core_types_array->module~core_deallocate module~core_types_gauss->iso_fortran_env module~core_types_pointer->iso_fortran_env module~core_types_variable->iso_fortran_env module~core_types_variable->module~core_allocate module~core_types_vector->iso_fortran_env module~core_vtk_vtk_wrapper->iso_c_binding module~core_vtk_vtu_wrapper->iso_c_binding module~core_types_matrix core_types_matrix module~module_type_matrix->module~core_types_matrix module~core_types_matrix_coo core_types_matrix_coo module~module_type_matrix->module~core_types_matrix_coo module~core_types_matrix_crs core_types_matrix_crs module~module_type_matrix->module~core_types_matrix_crs module~core_types_matrix_dense core_types_matrix_dense module~module_type_matrix->module~core_types_matrix_dense module~core_c_utils->iso_c_binding module~core_c_utils->module~core_c_utils_signal_flag module~core_c_utils_memory_stats core_c_utils_memory_stats module~core_c_utils->module~core_c_utils_memory_stats module~core_c_utils_system_info core_c_utils_system_info module~core_c_utils->module~core_c_utils_system_info module~core_c_utils_signal_flag->iso_c_binding module~core_types_matrix->iso_fortran_env module~core_types_matrix_coo->iso_fortran_env module~core_types_matrix_coo->module~core_allocate module~core_types_matrix_coo->module~core_deallocate module~core_types_matrix_coo->module~core_types_matrix module~core_types_matrix_crs->iso_fortran_env module~core_types_matrix_crs->module~core_allocate module~core_types_matrix_crs->module~core_deallocate module~core_types_matrix_crs->module~core_types_matrix module~core_types_matrix_dense->iso_fortran_env module~core_types_matrix_dense->module~core_allocate module~core_types_matrix_dense->module~core_deallocate module~core_types_matrix_dense->module~core_types_matrix module~core_c_utils_memory_stats->iso_c_binding module~core_c_utils_system_info->iso_c_binding

Used by

  • module~~control_iteration~~UsedByGraph module~control_iteration control_iteration module~module_control module_control module~module_control->module~control_iteration module~hydraulic_hydraulic_assemble hydraulic_hydraulic_assemble module~hydraulic_hydraulic_assemble->module~module_control module~module_properties module_properties module~hydraulic_hydraulic_assemble->module~module_properties module~input_output input_output module~input_output->module~module_control module~input_output->module~module_properties module~main_ftdss Main_FTDSS module~main_ftdss->module~module_control module~module_hydraulic module_hydraulic module~main_ftdss->module~module_hydraulic module~module_output module_output module~main_ftdss->module~module_output module~main_ftdss->module~module_properties module~module_thermal module_thermal module~main_ftdss->module~module_thermal module~main_hydraulic main_hydraulic module~main_hydraulic->module~module_control module~main_hydraulic->module~hydraulic_hydraulic_assemble module~main_hydraulic->module~module_properties module~main_thermal main_thermal module~main_thermal->module~module_control module~main_thermal->module~module_properties module~properties_properties_manager properties_properties_manager module~properties_properties_manager->module~module_control module~input_output_base input_output_base module~input_output_base->module~input_output module~input_output_obaservation input_output_obaservation module~input_output_obaservation->module~input_output module~input_output_overall_base input_output_overall_base module~input_output_overall_base->module~input_output module~input_output_overall_vtk input_output_overall_vtk module~input_output_overall_vtk->module~input_output module~input_output_overall_vtu input_output_overall_vtu module~input_output_overall_vtu->module~input_output module~input_output_system_logger input_output_system_logger module~input_output_system_logger->module~input_output module~main_hydraulic_crs main_hydraulic_crs module~main_hydraulic_crs->module~main_hydraulic module~main_thermal_crs main_thermal_crs module~main_thermal_crs->module~main_thermal module~module_hydraulic->module~main_hydraulic module~module_output->module~input_output module~module_properties->module~properties_properties_manager module~module_thermal->module~main_thermal

Derived Types

type, public ::  type_iteration

Components

Type Visibility Attributes Name Initial
character(len=:), private, allocatable :: algorithm
type(type_iterator_config), private :: config
real(kind=real64), private :: init_res_norm_inf = 0.0d0
real(kind=real64), private :: init_res_norm_l2 = 0.0d0
real(kind=real64), private :: init_upd_norm_inf = 0.0d0
real(kind=real64), private :: init_upd_norm_l2 = 0.0d0
logical, private :: is_converged = .false.
integer(kind=int32), private :: iter = 0
integer(kind=int32), private :: step = 0

Type-Bound Procedures

procedure, public, pass(self) :: check_convergence
procedure, public, pass(self) :: get_algorithm_name
procedure, public, pass(self) :: get_iter
procedure, public, pass(self) :: get_step
procedure, public, pass(self) :: has_converged => get_status
procedure, public, pass(self) :: increment_iter
procedure, public, pass(self) :: increment_step
procedure, public, pass(self) :: initialize => initialize_type_iteration
procedure, public, pass(self) :: reset_step
procedure, public, pass(self) :: reset_timestep
procedure, public, pass(self) :: set_initial_norms
procedure, public, pass(self) :: should_continue => continue_loop

type, private ::  type_iterator_config

Components

Type Visibility Attributes Name Initial
type(type_convergence), public :: convergence
integer(kind=int32), public :: max_iterations
integer(kind=int32), public :: update_frequency

Functions

private function continue_loop(self) result(should_continue_loop)

Arguments

Type IntentOptional Attributes Name
class(type_iteration), intent(in) :: self

Return Value logical

private pure function get_algorithm_name(self) result(algorithm_name)

Arguments

Type IntentOptional Attributes Name
class(type_iteration), intent(in) :: self

Return Value character(len=:), allocatable

private pure function get_iter(self) result(iter)

Arguments

Type IntentOptional Attributes Name
class(type_iteration), intent(in) :: self

Return Value integer(kind=int32)

private pure function get_status(self) result(is_converged)

Arguments

Type IntentOptional Attributes Name
class(type_iteration), intent(in) :: self

Return Value logical

private pure function get_step(self) result(step)

Arguments

Type IntentOptional Attributes Name
class(type_iteration), intent(in) :: self

Return Value integer(kind=int32)


Subroutines

private subroutine check_convergence(self, res_vec, upd_vec)

Arguments

Type IntentOptional Attributes Name
class(type_iteration), intent(inout) :: self
real(kind=real64), intent(in) :: res_vec(:)
real(kind=real64), intent(in) :: upd_vec(:)

private subroutine increment_iter(self)

Arguments

Type IntentOptional Attributes Name
class(type_iteration), intent(inout) :: self

private subroutine increment_step(self)

Arguments

Type IntentOptional Attributes Name
class(type_iteration), intent(inout) :: self

private subroutine initialize_type_iteration(self, input)

Arguments

Type IntentOptional Attributes Name
class(type_iteration), intent(out) :: self
type(type_input), intent(in) :: input

private subroutine reset_step(self)

Arguments

Type IntentOptional Attributes Name
class(type_iteration), intent(inout) :: self

private subroutine reset_timestep(self)

Arguments

Type IntentOptional Attributes Name
class(type_iteration), intent(inout) :: self

private subroutine set_initial_norms(self, res_vec, upd_vec)

Arguments

Type IntentOptional Attributes Name
class(type_iteration), intent(inout) :: self
real(kind=real64), intent(in), optional :: res_vec(:)
real(kind=real64), intent(in), optional :: upd_vec(:)