abst_hydraulic Derived Type

type, public, abstract :: abst_hydraulic


Inherits

type~~abst_hydraulic~~InheritsGraph type~abst_hydraulic abst_hydraulic abst_solver abst_solver type~abst_hydraulic->abst_solver solver type~type_crs type_crs type~abst_hydraulic->type~type_crs KH_star type~type_dp_3d type_dp_3d type~abst_hydraulic->type~type_dp_3d water_flux type~abst_matrix abst_matrix type~type_crs->type~abst_matrix

Inherited by

type~~abst_hydraulic~~InheritedByGraph type~abst_hydraulic abst_hydraulic type~type_ftdss type_ftdss type~type_ftdss->type~abst_hydraulic hydraulic type~type_hydraulic_crs type_hydraulic_crs type~type_hydraulic_crs->type~abst_hydraulic

Components

Type Visibility Attributes Name Initial
real(kind=real64), public, allocatable :: FH(:)
type(type_crs), public :: KH_star
real(kind=real64), public, allocatable :: PHIH(:)

Nonlinear solver

character(len=:), public, allocatable :: algorithm

Solver

procedure(abst_assemble_global_hydraulic), public, nopass, pointer :: assemble_global => null()
integer(kind=int32), public :: order
class(abst_solver), public, allocatable :: solver
type(type_dp_3d), public :: water_flux

Type-Bound Procedures

procedure(abst_compute), public, deferred, pass(self) :: compute

procedure(abst_shift), public, deferred, pass(self) :: shift

  • subroutine abst_shift(self) Prototype

    Arguments

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

procedure(abst_solve), public, deferred, pass(self) :: solve

  • subroutine abst_solve(self, pressure, controls) Prototype

    Arguments

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

procedure(abst_hydraulic_update), public, deferred, pass(self) :: update

  • subroutine abst_hydraulic_update(self, domain, property, pressure, porosity) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(abst_hydraulic), intent(inout) :: self
    type(type_domain), intent(inout), target :: domain
    type(type_properties_manager), intent(inout) :: property
    real(kind=real64), intent(in) :: pressure(:)
    real(kind=real64), intent(in) :: porosity(:)

Source Code

    type, abstract :: abst_hydraulic
        type(type_dp_3d) :: water_flux

        type(type_crs) :: KH_star
        real(real64), allocatable :: FH(:)
        real(real64), allocatable :: PHIH(:)

        !! Nonlinear solver
        character(:), allocatable :: algorithm

        !! Solver
        class(abst_solver), allocatable :: solver
        integer(int32) :: order

        procedure(abst_assemble_global_hydraulic), nopass, pointer :: assemble_global => null()
    contains
        procedure(abst_hydraulic_update), pass(self), deferred :: update
        procedure(abst_shift), pass(self), deferred :: shift
        procedure(abst_solve), pass(self), deferred :: solve
        procedure(abst_compute), pass(self), deferred :: compute
    end type abst_hydraulic