abst_thermal Derived Type

type, public, abstract :: abst_thermal


Inherits

type~~abst_thermal~~InheritsGraph type~abst_thermal abst_thermal abst_solver abst_solver type~abst_thermal->abst_solver solver type~type_crs type_crs type~abst_thermal->type~type_crs KT_star type~type_variable type_variable type~abst_thermal->type~type_variable Qw, Qice, Si type~abst_matrix abst_matrix type~type_crs->type~abst_matrix

Inherited by

type~~abst_thermal~~InheritedByGraph type~abst_thermal abst_thermal type~type_ftdss type_ftdss type~type_ftdss->type~abst_thermal thermal type~type_thermal_crs type_thermal_crs type~type_thermal_crs->type~abst_thermal

Components

Type Visibility Attributes Name Initial
real(kind=real64), public, allocatable :: FT(:)
type(type_crs), public :: KT_star
real(kind=real64), public, allocatable :: PHIT(:)

Nonlinear solver

type(type_variable), public :: Qice
type(type_variable), public :: Qw
type(type_variable), public :: Si
character(len=:), public, allocatable :: algorithm

Solver

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

Type-Bound Procedures

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

  • subroutine abst_compute(self, domain, property, temperature, porosity, controls, bc) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(abst_thermal), intent(inout) :: self
    type(type_domain), intent(inout) :: domain
    type(type_properties_manager), intent(in) :: property
    type(type_variable), intent(inout) :: temperature
    type(type_variable), intent(inout) :: porosity
    type(type_controls), intent(inout) :: controls
    type(type_bc), intent(inout) :: bc

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

  • subroutine abst_shift(self) Prototype

    Arguments

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

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

  • subroutine abst_solve(self, temperature, controls) Prototype

    Arguments

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

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

  • subroutine abst_update(self, domain, property, temperature, porosity, controls) Prototype

    Arguments

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

Source Code

    type, abstract :: abst_thermal
        type(type_variable) :: Qw
        type(type_variable) :: Qice
        type(type_variable) :: Si

        type(type_crs) :: KT_star
        real(real64), allocatable :: FT(:)
        real(real64), allocatable :: PHIT(:)

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

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

        procedure(abst_assemble_global_thermal), nopass, pointer :: assemble_global => null()
    contains
        procedure(abst_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_thermal