solve_type_thermal_crs Module Subroutine

module subroutine solve_type_thermal_crs(self, temperature, controls)

Arguments

Type IntentOptional Attributes Name
class(type_thermal_crs), intent(inout) :: self
type(type_variable), intent(inout) :: temperature
type(type_controls), intent(in) :: controls

Calls

proc~~solve_type_thermal_crs~~CallsGraph proc~solve_type_thermal_crs solve_type_thermal_crs check check proc~solve_type_thermal_crs->check proc~get_algorithm_name~2 type_iteration%get_algorithm_name proc~solve_type_thermal_crs->proc~get_algorithm_name~2 proc~get_time type_time%get_time proc~solve_type_thermal_crs->proc~get_time solve solve proc~solve_type_thermal_crs->solve

Called by

proc~~solve_type_thermal_crs~~CalledByGraph proc~solve_type_thermal_crs solve_type_thermal_crs interface~solve_type_thermal_crs type_thermal_crs%solve_type_thermal_crs interface~solve_type_thermal_crs->proc~solve_type_thermal_crs proc~compute_type_thermal_crs compute_type_thermal_crs proc~compute_type_thermal_crs->interface~solve_type_thermal_crs interface~compute_type_thermal_crs type_thermal_crs%compute_type_thermal_crs interface~compute_type_thermal_crs->proc~compute_type_thermal_crs

Source Code

    module subroutine solve_type_thermal_crs(self, temperature, controls)
        implicit none
        class(type_thermal_crs), intent(inout) :: self
        type(type_variable), intent(inout) :: temperature
        type(type_controls), intent(in) :: controls

        integer(int32) :: stat

        select case (trim(controls%iteration%get_algorithm_name()))
        case ("none")
            call self%solver%solve(self%KT_star, self%PHIT, temperature%new(:), stat)
            temperature%dif(:) = temperature%new(:) - temperature%pre(:)
        case ("newton", "modified_newton", "picard")
            call self%solver%solve(self%KT_star, self%PHIT, temperature%dif(:), stat)
            temperature%new(:) = temperature%pre(:) + temperature%dif(:)
        end select
        call self%solver%check(stat, controls%time%get_time())
    end subroutine solve_type_thermal_crs