FiniteDeform_ Derived Type

type, public :: FiniteDeform_


Components

Type Visibility Attributes Name Initial
type(FEMDomain_), public, pointer :: FEMDomain
real(kind=real64), public, allocatable :: DeformStress(:,:,:)
real(kind=real64), public, allocatable :: DeformStrain(:,:,:)
real(kind=real64), public, allocatable :: DeformStressInit(:,:,:)
real(kind=real64), public, allocatable :: DeformStressinc(:,:,:)
real(kind=real64), public, allocatable :: DeformStressMat(:,:,:)
real(kind=real64), public, allocatable :: DeformStressRHS(:,:)
real(kind=real64), public, allocatable :: DeformVecEBETot(:,:)
real(kind=real64), public, allocatable :: DeformVecEBEInc(:,:)
real(kind=real64), public, allocatable :: DeformVecGloTot(:)
real(kind=real64), public, allocatable :: DeformVecGloInc(:)
real(kind=real64), public, allocatable :: TractionVecGlo(:)
real(kind=real64), public, allocatable :: ResidualVecGlo(:)
real(kind=real64), public, allocatable :: InternalVecGlo(:)
real(kind=real64), public, allocatable :: VolInitCurrEBE(:,:)
real(kind=real64), public, allocatable :: YoungsModulus(:)
real(kind=real64), public, allocatable :: PoissonsRatio(:)
real(kind=real64), public, allocatable :: PorePressure(:)
real(kind=real64), public :: dt
real(kind=real64), public :: error
real(kind=real64), public :: reactionforce
real(kind=real64), public :: nr_tol = 1.0e-8
logical, public :: ReducedIntegration = .false.
logical, public :: infinitesimal = .false.
integer(kind=int32), public :: itr
integer(kind=int32), public :: Step = 0

Type-Bound Procedures

procedure, public :: Solve => SolveFiniteDeformNewton

  • public subroutine SolveFiniteDeformNewton(obj, OptionItr, Solvertype, nr_tol, infinitesimal, restart)

    Arguments

    Type IntentOptional Attributes Name
    class(FiniteDeform_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: OptionItr
    character(len=*), intent(in), optional :: Solvertype
    real(kind=real64), intent(in), optional :: nr_tol
    logical, intent(in), optional :: infinitesimal
    logical, intent(in), optional :: restart

procedure, public :: UpdateSolution => SolveFiniteDeform

  • public subroutine SolveFiniteDeform(obj, OptionItr, Solvertype, nr_tol)

    Arguments

    Type IntentOptional Attributes Name
    class(FiniteDeform_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: OptionItr
    character(len=*), intent(in), optional :: Solvertype
    real(kind=real64), intent(in), optional :: nr_tol

procedure, public :: DivideBC => DevideBCIntoTimestep

procedure, public :: UpdateBC => UpdateBCInTimestep

procedure, public :: UpdateInitConfig

procedure, public :: Setup => SetupFiniteDeform

  • public subroutine SetupFiniteDeform(obj, tol)

    Arguments

    Type IntentOptional Attributes Name
    class(FiniteDeform_), intent(inout) :: obj
    integer(kind=int32), intent(in), optional :: tol

procedure, public :: Update => UpdateFiniteDeform

  • public subroutine UpdateFiniteDeform(obj, restart)

    Arguments

    Type IntentOptional Attributes Name
    class(FiniteDeform_), intent(inout) :: obj
    logical, intent(in), optional :: restart

procedure, public :: Display => DisplayDeformStress

  • public subroutine DisplayDeformStress(obj, DisplayMode, OptionalStep, Name, withDirichlet)

    Arguments

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

procedure, public :: getDBCVector => getDBCVectorDeform

  • public subroutine getDBCVectorDeform(obj, DBCvec)

    Arguments

    Type IntentOptional Attributes Name
    class(FiniteDeform_), intent(in) :: obj
    real(kind=real64), intent(inout), allocatable :: DBCvec(:,:)

procedure, public :: getDispVector => getDispVectorDeform

  • public subroutine getDispVectorDeform(obj, Vector)

    Arguments

    Type IntentOptional Attributes Name
    class(FiniteDeform_), intent(in) :: obj
    real(kind=real64), intent(inout), allocatable :: Vector(:,:)

procedure, public :: getVolume => getVolumeDeform

  • public function getVolumeDeform(obj) result(volume)

    Arguments

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

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

procedure, public :: check => checkFiniteDeform

procedure, public :: import => importFiniteDeform

  • public subroutine importFiniteDeform(obj, YoungsModulus, PoissonsRatio, PorePressure)

    Arguments

    Type IntentOptional Attributes Name
    class(FiniteDeform_), intent(inout) :: obj
    real(kind=real64), intent(in), optional :: YoungsModulus(:)
    real(kind=real64), intent(in), optional :: PoissonsRatio(:)
    real(kind=real64), intent(in), optional :: PorePressure(:)

procedure, public :: export => exportFiniteDeform

  • public subroutine exportFiniteDeform(obj, restart, path)

    Arguments

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

procedure, public :: remove => removeFiniteDeform

procedure, public :: save => saveFiniteDeform

  • public subroutine saveFiniteDeform(obj, path, name)

    Arguments

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

procedure, public :: open => openFiniteDeform

  • public subroutine openFiniteDeform(obj, path, name)

    Arguments

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

procedure, public :: link => linkFiniteDeform