solve_type_hydraulic_crs Module Subroutine

module subroutine solve_type_hydraulic_crs(self, pressure, controls)

Arguments

Type IntentOptional Attributes Name
class(type_hydraulic_crs), intent(inout) :: self
type(type_variable), intent(inout) :: pressure
type(type_controls), intent(inout) :: controls

Calls

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

Called by

proc~~solve_type_hydraulic_crs~~CalledByGraph proc~solve_type_hydraulic_crs solve_type_hydraulic_crs interface~solve_type_hydraulic_crs type_hydraulic_crs%solve_type_hydraulic_crs interface~solve_type_hydraulic_crs->proc~solve_type_hydraulic_crs proc~compute_type_hydraulic_crs compute_type_hydraulic_crs proc~compute_type_hydraulic_crs->interface~solve_type_hydraulic_crs interface~compute_type_hydraulic_crs type_hydraulic_crs%compute_type_hydraulic_crs interface~compute_type_hydraulic_crs->proc~compute_type_hydraulic_crs

Source Code

    module subroutine solve_type_hydraulic_crs(self, pressure, controls)
        implicit none
        class(type_hydraulic_crs), intent(inout) :: self
        type(type_variable), intent(inout) :: pressure
        type(type_controls), intent(inout) :: controls

        integer(int32) :: stat

        select case (trim(controls%iteration%get_algorithm_name()))
        case ("none")
            call self%solver%solve(self%KH_star, self%PHIH, pressure%new(:), stat)
            pressure%dif(:) = pressure%new(:) - pressure%pre(:)
        case ("newton", "modified_newton", "picard")
            call self%solver%solve(self%KH_star, self%PHIH, pressure%dif(:), stat)
            pressure%new(:) = pressure%pre(:) + pressure%dif(:)
        end select
        call self%solver%check(stat, controls%time%get_time())

    end subroutine solve_type_hydraulic_crs