StaticCondSolver_t Derived Type

type, public, extends(GenericLinSolver_t) :: StaticCondSolver_t


Components

Type Visibility Attributes Name Initial
class(JacobianComputer_t), public, allocatable :: Jacobian
logical, public :: converged = .FALSE.
logical, public :: withMPI = .FALSE.
integer, public :: DimPrb
integer, public :: globalDimPrb
integer, public :: niter = 0
integer, public :: JacobianComputation = NUMERICAL_JACOBIAN
type(DGSem), public, pointer :: p_sem => null()
type(StaticCondensedMatrix_t), public :: A
integer, public :: linsolver
class(Matrix_t), public, allocatable :: Mii_inv
class(GenericLinSolver_t), public, allocatable :: matSolver
type(DenseBlockDiagMatrix_t), public :: Mii_LU
type(MatFreeGMRES_t), public :: gmresSolver
real(kind=RP), public :: Ashift = 0._RP
real(kind=RP), public, allocatable :: x(:)
real(kind=RP), public, allocatable :: bi(:)
real(kind=RP), public, allocatable :: bb(:)

Type-Bound Procedures

procedure, public :: SetRHSValue

  • private subroutine SetRHSValue(this, irow, value)

    Arguments

    Type IntentOptional Attributes Name
    class(GenericLinSolver_t), intent(inout) :: this
    integer, intent(in) :: irow
    real(kind=RP), intent(in) :: value

procedure, public :: SetRHSValues

  • private subroutine SetRHSValues(this, nvalues, irow, values)

    Arguments

    Type IntentOptional Attributes Name
    class(GenericLinSolver_t), intent(inout) :: this
    integer, intent(in) :: nvalues
    integer, intent(in), DIMENSION(:) :: irow
    real(kind=RP), intent(in), DIMENSION(:) :: values

procedure, public :: GetXValue

  • private subroutine GetXValue(this, irow, x_i)

    Arguments

    Type IntentOptional Attributes Name
    class(GenericLinSolver_t), intent(inout) :: this
    integer, intent(in) :: irow
    real(kind=RP), intent(out) :: x_i

procedure, public :: AssemblyRHS

  • private subroutine AssemblyRHS(this)

    Arguments

    Type IntentOptional Attributes Name
    class(GenericLinSolver_t), intent(inout) :: this

procedure, public :: SetJacobian

  • private subroutine SetJacobian(this, Matrix)

    Arguments

    Type IntentOptional Attributes Name
    class(GenericLinSolver_t), intent(inout) :: this
    class(Matrix_t), intent(in) :: Matrix

procedure, public :: ComputeANextStep

  • private function ComputeANextStep(this) result(ComputeA)

    Arguments

    Type IntentOptional Attributes Name
    class(GenericLinSolver_t), intent(in) :: this

    Return Value logical

procedure, public :: construct => SCS_construct

  • private subroutine SCS_construct(this, DimPrb, globalDimPrb, nEqn, controlVariables, sem, MatrixShiftFunc)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout), target :: this
    integer, intent(in) :: DimPrb
    integer, intent(in) :: globalDimPrb
    integer, intent(in) :: nEqn
    type(FTValueDictionary), intent(in), optional :: controlVariables
    type(DGSem), optional, target :: sem
    procedure(MatrixShift_FCN) :: MatrixShiftFunc

procedure, public :: destroy => SCS_destruct

  • private subroutine SCS_destruct(this)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout) :: this

procedure, public :: SetOperatorDt => SCS_SetOperatorDt

  • private subroutine SCS_SetOperatorDt(this, dt)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout) :: this
    real(kind=RP), intent(in) :: dt

procedure, public :: ReSetOperatorDt => SCS_ReSetOperatorDt

  • private subroutine SCS_ReSetOperatorDt(this, dt)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout) :: this
    real(kind=RP), intent(in) :: dt

procedure, public :: solve => SCS_solve

  • private subroutine SCS_solve(this, nEqn, nGradEqn, ComputeTimeDerivative, tol, maxiter, time, dt, computeA)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout), target :: this
    integer, intent(in) :: nEqn
    integer, intent(in) :: nGradEqn
    procedure(ComputeTimeDerivative_f) :: ComputeTimeDerivative
    real(kind=RP), optional :: tol
    integer, optional :: maxiter
    real(kind=RP), optional :: time
    real(kind=RP), optional :: dt
    logical, intent(inout), optional :: computeA

procedure, public :: SetRHS => SCS_SetRHS

  • private subroutine SCS_SetRHS(this, RHS)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout) :: this
    real(kind=RP), intent(in) :: RHS(this%DimPrb)

procedure, public :: getCondensedSystem => SCS_getCondensedSystem

  • private subroutine SCS_getCondensedSystem(this)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout) :: this

procedure, public :: getCondensedRHS => SCS_getCondensedRHS

  • private subroutine SCS_getCondensedRHS(this)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout) :: this

procedure, public :: getGlobalArray => SCS_getGlobalArray

  • private subroutine SCS_getGlobalArray(this, x, xi, xb)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout) :: this
    real(kind=RP), intent(out) :: x(this%DimPrb)
    real(kind=RP), intent(in) :: xi(this%A%size_i)
    real(kind=RP), intent(in) :: xb(this%A%size_b)

procedure, public :: getLocalArrays => SCS_getLocalArrays

  • private subroutine SCS_getLocalArrays(this, x, xi, xb)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout) :: this
    real(kind=RP), intent(in) :: x(this%DimPrb)
    real(kind=RP), intent(out) :: xi(this%A%size_i)
    real(kind=RP), intent(out) :: xb(this%A%size_b)

procedure, public :: getSolution => SCS_getSolution

  • private subroutine SCS_getSolution(this, xb)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout) :: this
    real(kind=RP), intent(in) :: xb(this%A%size_b)

procedure, public :: getX => SCS_GetX

  • private function SCS_GetX(this) result(x)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout) :: this

    Return Value real(kind=RP), (this%DimPrb)

procedure, public :: GetXnorm => SCS_GetXnorm

  • private function SCS_GetXnorm(this, TypeOfNorm) result(xnorm)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout) :: this
    character(len=*) :: TypeOfNorm

    Return Value real(kind=RP)

procedure, public :: GetRnorm => SCS_GetRnorm

  • private function SCS_GetRnorm(this) result(rnorm)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout) :: this

    Return Value real(kind=RP)

procedure, public :: MatrixAction => SCS_MatrixAction

  • private function SCS_MatrixAction(this, x) result(v)

    Arguments

    Type IntentOptional Attributes Name
    class(StaticCondSolver_t), intent(inout) :: this
    real(kind=RP), intent(in) :: x(this%A%size_b)

    Return Value real(kind=RP), (this%A%size_b)