SeepageFlowClass Module



Interfaces

public interface SWCC

  • public function SWCC_scalar(model, params, theta, psi) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: model
    real(kind=real64), intent(in) :: params(:)
    real(kind=real64), intent(in), optional :: theta
    real(kind=real64), intent(in), optional :: psi

    Return Value real(kind=real64)

  • public function SWCC_vector(model, params, theta, psi, n) result(ret)

    Arguments

    Type IntentOptional Attributes Name
    character(len=*), intent(in) :: model
    real(kind=real64), intent(in) :: params(:)
    real(kind=real64), intent(in), optional :: theta(:)
    real(kind=real64), intent(in), optional :: psi(:)
    integer(kind=int32), intent(in) :: n

    Return Value real(kind=real64), allocatable, (:)


Derived Types

type, public ::  SeepageFlow_

Components

Type Visibility Attributes Name Initial
type(FEMDomain_), public, pointer :: FEMDomain => null()
type(FEMSolver_), public :: solver
character(len=:), public, allocatable :: model
real(kind=real64), public :: rho = 1.0d0
real(kind=real64), public :: g = 9.80d0
real(kind=real64), public, allocatable :: Permiability(:)
real(kind=real64), public, allocatable :: WaterHead(:)
real(kind=real64), public, allocatable :: Velocity(:,:)

Type-Bound Procedures

procedure, public :: init => initSeepageFlow
procedure, public :: fixPressureBoundary => fixPressureBoundarySeepageFlow
procedure, public :: getPressure => getPressureSeepageFlow
procedure, public :: getVelocity => getVelocitySeepageFlow

Functions

public function getPressureSeepageFlow(This, debug, dt, timeIntegral) result(WaterHead)

Arguments

Type IntentOptional Attributes Name
class(SeepageFlow_), intent(inout) :: This
logical, intent(in), optional :: debug
real(kind=real64), intent(in), optional :: dt
character(len=*), intent(in), optional :: timeIntegral

Return Value real(kind=real64), allocatable, (:)

public function getVelocitySeepageFlow(This, Pressure, Permiability, Permiability_field) result(Velocity)

Arguments

Type IntentOptional Attributes Name
class(SeepageFlow_), intent(inout) :: This
real(kind=real64), intent(in) :: Pressure(:)
real(kind=real64), intent(in), optional :: Permiability
real(kind=real64), intent(in), optional :: Permiability_field(:)

Return Value real(kind=real64), allocatable, (:,:)

public function SWCC_scalar(model, params, theta, psi) result(ret)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: model
real(kind=real64), intent(in) :: params(:)
real(kind=real64), intent(in), optional :: theta
real(kind=real64), intent(in), optional :: psi

Return Value real(kind=real64)

public function SWCC_vector(model, params, theta, psi, n) result(ret)

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: model
real(kind=real64), intent(in) :: params(:)
real(kind=real64), intent(in), optional :: theta(:)
real(kind=real64), intent(in), optional :: psi(:)
integer(kind=int32), intent(in) :: n

Return Value real(kind=real64), allocatable, (:)


Subroutines

public subroutine initSeepageFlow(this, femdomain, model, Permiability)

Arguments

Type IntentOptional Attributes Name
class(SeepageFlow_), intent(inout) :: this
type(FEMDomain_), intent(in), target :: femdomain
character(len=*), intent(in) :: model
real(kind=real64), intent(in) :: Permiability(:)

public subroutine fixPressureBoundarySeepageFlow(This, NodeList, Pressure, Pressures, DomainID)

Arguments

Type IntentOptional Attributes Name
class(SeepageFlow_), intent(inout) :: This
integer(kind=int32), intent(in) :: NodeList(:)
real(kind=real64), intent(in), optional :: Pressure
real(kind=real64), intent(in), optional :: Pressures(:)
integer(kind=int32), intent(in), optional :: DomainID