GenericLinSolver_t Derived Type

type, public :: GenericLinSolver_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-Bound Procedures

procedure, public :: construct => Construct

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

    Arguments

    Type IntentOptional Attributes Name
    class(GenericLinSolver_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 :: 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 :: SetRHS

  • private subroutine SetRHS(this, RHS)

    Arguments

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

procedure, public :: solve

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

    Arguments

    Type IntentOptional Attributes Name
    class(GenericLinSolver_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 :: 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 :: GetX

  • private function GetX(this) result(x)

    Arguments

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

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

procedure, public :: destroy

  • private subroutine destroy(this)

    Arguments

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

procedure, public :: SetOperatorDt

  • private subroutine SetOperatorDt(this, dt)

    Arguments

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

procedure, public :: ReSetOperatorDt

  • private subroutine ReSetOperatorDt(this, dt)

    Arguments

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

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 :: Getxnorm

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

    Arguments

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

    Return Value real(kind=RP)

procedure, public :: Getrnorm

  • private function Getrnorm(this) result(rnorm)

    Arguments

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

    Return Value real(kind=RP)

procedure, public :: ComputeANextStep

  • private function ComputeANextStep(this) result(ComputeA)

    Arguments

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

    Return Value logical