PetscKspLinearSolver_t Derived Type

type, public, extends(GenericLinSolver_t) :: PetscKspLinearSolver_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(PETSCMatrix_t), public :: A
character(len=LINE_LENGTH), public :: preconditioner

Type-Bound Procedures

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 => PETSc_construct

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

    Arguments

    Type IntentOptional Attributes Name
    class(PetscKspLinearSolver_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 :: SetRHSValues => PETSc_SetRHSValues

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

    Arguments

    Type IntentOptional Attributes Name
    class(PetscKspLinearSolver_t), intent(inout) :: this
    integer, intent(in) :: nvalues
    integer, intent(in), dimension(:) :: irow
    real(kind=8), intent(in), dimension(:) :: values

procedure, public :: SetRHSValue => PETSc_SetRHSValue

  • private subroutine PETSc_SetRHSValue(this, irow, value)

    Arguments

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

procedure, public :: GetXValues => PETSc_GetXValues

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

    Arguments

    Type IntentOptional Attributes Name
    class(PetscKspLinearSolver_t), intent(inout) :: this
    integer, intent(in) :: nvalues
    integer, intent(in), dimension(:) :: irow
    real(kind=8), intent(in), dimension(:) :: values

procedure, public :: GetXValue => PETSc_GetXValue

  • private subroutine PETSc_GetXValue(this, irow, x_i)

    Arguments

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

procedure, public :: GetX => PETSc_GetX

  • private function PETSc_GetX(this) result(x)

    Arguments

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

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

procedure, public :: SetOperatorDt => PETSc_SetOperatorDt

  • private subroutine PETSc_SetOperatorDt(this, dt)

    Arguments

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

procedure, public :: ReSetOperatorDt => PETSc_ReSetOperatorDt

  • private subroutine PETSc_ReSetOperatorDt(this, dt)

    Arguments

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

procedure, public :: AssemblyRHS => PETSc_AssemblyRHS

  • private subroutine PETSc_AssemblyRHS(this)

    Arguments

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

procedure, public :: SaveMat

  • private subroutine SaveMat(this, filename)

    Arguments

    Type IntentOptional Attributes Name
    class(PetscKspLinearSolver_t), intent(inout) :: this
    character(len=*), optional :: filename

procedure, public :: solve => PETSc_solve

  • private subroutine PETSc_solve(this, nEqn, nGradEqn, ComputeTimeDerivative, tol, maxiter, time, dt, ComputeA)

    Arguments

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

procedure, public :: destroy => PETSc_Destroy

  • private subroutine PETSc_Destroy(this)

    Arguments

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

procedure, public :: SetRHS => PETSc_SetRHS

  • private subroutine PETSc_SetRHS(this, RHS)

    Arguments

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

procedure, public :: SetPreconditioner => PETSc_SetPreconditioner

  • private subroutine PETSc_SetPreconditioner(this)

    Arguments

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

procedure, public :: GetXnorm => PETSc_GetXnorm

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

    Arguments

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

    Return Value real(kind=RP)

procedure, public :: GetRnorm => PETSc_GetRnorm

  • private function PETSc_GetRnorm(this) result(rnorm)

    Arguments

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

    Return Value real(kind=RP)