DiffusionEq_ Derived Type

type, public :: DiffusionEq_


Components

Type Visibility Attributes Name Initial
type(FEMDomain_), public, pointer :: FEMDomain
type(FEMDomainp_), public, allocatable :: FEMDomains
type(FEMSolver_), public :: solver
real(kind=real64), public, allocatable :: UnknownValue(:,:)
real(kind=real64), public, allocatable :: UnknownVec(:)
real(kind=real64), public, allocatable :: UnknownValueInit(:,:)
real(kind=real64), public, allocatable :: UnknownValueRate(:,:)
real(kind=real64), public, allocatable :: DiffusionMat(:,:,:)
real(kind=real64), public, allocatable :: Divergence(:,:)
real(kind=real64), public, allocatable :: Flowvector(:,:)
real(kind=real64), public, allocatable :: FluxVector3D(:,:)
real(kind=real64), public, allocatable :: CRS_RHS_n(:)
real(kind=real64), public, allocatable :: Permiability(:)
real(kind=real64), public :: dt
integer(kind=int32), public :: step
logical, public :: explicit = .false.

Type-Bound Procedures

procedure, public :: Setup => SetupDiffusionEq

  • public subroutine SetupDiffusionEq(obj, explicit)

    Arguments

    Type IntentOptional Attributes Name
    class(DiffusionEq_), intent(inout) :: obj
    logical, intent(in), optional :: explicit

procedure, public, pass :: SolveDiffusionEq

  • public subroutine SolveDiffusionEq(obj, Solvertype, restart)

    Arguments

    Type IntentOptional Attributes Name
    class(DiffusionEq_), intent(inout) :: obj
    character(len=*), intent(in), optional :: Solvertype
    logical, intent(in), optional :: restart

generic, public :: solve => SolveDiffusionEq

  • public subroutine SolveDiffusionEq(obj, Solvertype, restart)

    Arguments

    Type IntentOptional Attributes Name
    class(DiffusionEq_), intent(inout) :: obj
    character(len=*), intent(in), optional :: Solvertype
    logical, intent(in), optional :: restart

procedure, public :: getDiffusionField => Solve_oneline_DiffusionEq

  • public function Solve_oneline_DiffusionEq(this, FEMDomains, DiffusionCoeff, Reaction, penalty, FixBoundary, FixValue, C_n, dt, RHS, Matrix, algorithm, AL_lambda, AL_tol, AL_alpha) result(C_field)

    Arguments

    Type IntentOptional Attributes Name
    class(DiffusionEq_), intent(inout) :: this
    type(FEMDomain_), intent(inout) :: FEMDomains(:)
    real(kind=real64), intent(in) :: DiffusionCoeff(:)
    real(kind=real64), intent(in) :: Reaction(:)
    real(kind=real64), intent(in) :: penalty
    integer(kind=int32), intent(in) :: FixBoundary(:)
    real(kind=real64), intent(in) :: FixValue(:)
    real(kind=real64), intent(in) :: C_n(:)
    real(kind=real64), intent(in) :: dt
    real(kind=real64), intent(inout), optional, allocatable :: RHS(:)
    type(CRS_), intent(inout), optional :: Matrix
    character(len=*), intent(in), optional :: algorithm
    real(kind=real64), intent(in), optional :: AL_lambda
    real(kind=real64), intent(in), optional :: AL_tol
    real(kind=real64), intent(in), optional :: AL_alpha

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

procedure, public :: Update => UpdateDiffusionEq

  • public subroutine UpdateDiffusionEq(obj, explicit)

    Arguments

    Type IntentOptional Attributes Name
    class(DiffusionEq_), intent(inout) :: obj
    logical, intent(in), optional :: explicit

procedure, public :: GetMat => GetDiffusionMat

procedure, public :: GetRHS => GetFlowvector

  • public subroutine GetFlowvector(obj)

    Arguments

    Type IntentOptional Attributes Name
    class(DiffusionEq_), intent(inout) :: obj

procedure, public :: GetInitVal => GetUnknownValue

procedure, public :: Display => DisplayDiffusionEq

  • public subroutine DisplayDiffusionEq(obj, OptionalProjectName, DisplayMode, OptionalStep, Name)

    Arguments

    Type IntentOptional Attributes Name
    class(DiffusionEq_), intent(inout) :: obj
    character(len=*), intent(in), optional :: OptionalProjectName
    character(len=*), intent(in), optional :: DisplayMode
    integer(kind=int32), intent(in), optional :: OptionalStep
    character(len=*), intent(in), optional :: Name

procedure, public :: import => importDiffusionEq

  • public subroutine importDiffusionEq(obj, Permiability)

    Arguments

    Type IntentOptional Attributes Name
    class(DiffusionEq_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: Permiability(:)

procedure, public :: export => exportDiffusionEq

  • public subroutine exportDiffusionEq(obj, path, restart)

    Arguments

    Type IntentOptional Attributes Name
    class(DiffusionEq_), intent(inout) :: obj
    character(len=*), intent(in), optional :: path
    logical, intent(in), optional :: restart

procedure, public :: deploy => deployDiffusionEq

procedure, public :: save => saveDiffusionEq

  • public subroutine saveDiffusionEq(obj, path, name)

    Arguments

    Type IntentOptional Attributes Name
    class(DiffusionEq_), intent(inout) :: obj
    character(len=*), intent(in) :: path
    character(len=*), intent(in), optional :: name

procedure, public :: open => openDiffusionEq

  • public subroutine openDiffusionEq(obj, path, name)

    Arguments

    Type IntentOptional Attributes Name
    class(DiffusionEq_), intent(inout) :: obj
    character(len=*), intent(in) :: path
    character(len=*), intent(in), optional :: name

procedure, public :: remove => removeDiffusionEq

procedure, public :: updateByRK4 => updateByRK4DiffusionEq

procedure, public :: check_stability_condition => check_stability_conditionDiffusionEq

  • public subroutine check_stability_conditionDiffusionEq(this, dt, dx, coefficient, passed)

    Arguments

    Type IntentOptional Attributes Name
    class(DiffusionEq_), intent(in) :: this
    real(kind=real64), intent(in) :: dt
    real(kind=real64), intent(in) :: dx
    real(kind=real64), intent(in) :: coefficient
    logical :: passed