MEF90DefMechAT1exp_Type Derived Type

type, public, extends(MEF90DefMechAT_Type) :: MEF90DefMechAT1exp_Type

AT1exp, a variant of AT1 model with an exponential stiffness interpolation function:

$a_b(s) = 1 + (e^{-bs} - 1) / (1 - e^-b)$ if $b /= 0$ $a_0(s) = 1-s$

$a$ is convex if $b > 1$ and $a_b'(0) = -b / (1-e^{-b}) < -2$ if $b < 3/2$


Components

Type Visibility Attributes Name Initial
integer(kind=C_INT32_T), public :: aOrder = -1
real(kind=C_DOUBLE), public :: b = 1.0_kr
integer(kind=C_INT32_T), public :: comm
real(kind=C_DOUBLE), public :: cw = -1.0_Kr
real(kind=C_DOUBLE), public :: fractureToughness = 0.0_Kr
real(kind=C_DOUBLE), public :: internalLength = -1.0_Kr
logical(kind=C_BOOL), public :: isElastic = PETSC_FALSE
character(kind=c_char, len=MEF90MXSTRLEN), public :: name = "NULL"
character(kind=c_char, len=MEF90MXSTRLEN), public :: prefix
real(kind=C_DOUBLE), public :: residualStiffness = 0.0_Kr
class(mef90Mat), public, allocatable :: toughnessAnisotropyMatrix
character(len=MEF90MXSTRLEN), public :: type = ''
integer(kind=C_INT32_T), public :: wOrder = -1

Type-Bound Procedures

procedure, public, pass(self) :: D2a => D2aAT1exp

  • private function D2aAT1exp(self, alpha)

    Author
    Blaise Bourdin (2020, bourdin@lsu.edu)

    D2aAT1exp: the second derivative of the "a" function of the standard AT1exp model

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90DefMechAT1exp_Type), intent(in) :: self
    real(kind=C_DOUBLE) :: alpha

    Return Value real(kind=c_double)

procedure, public, pass(self) :: D2w => D2wAT1exp

  • private function D2wAT1exp(self, alpha)

    Author
    Blaise Bourdin (2020, bourdin@lsu.edu)

    D2wAT1exp: the second derivative of the "w" function of the standard AT1exp model

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90DefMechAT1exp_Type), intent(in) :: self
    real(kind=C_DOUBLE) :: alpha

    Return Value real(kind=c_double)

procedure, public, pass(self) :: Da => DaAT1exp

  • private function DaAT1exp(self, alpha)

    Author
    Blaise Bourdin (2020, bourdin@lsu.edu)

    DaAT1exp: the derivative of the "a" function of the standard AT1exp model

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90DefMechAT1exp_Type), intent(in) :: self
    real(kind=C_DOUBLE) :: alpha

    Return Value real(kind=c_double)

procedure, public, pass(self) :: Dw => DwAT1exp

  • private function DwAT1exp(self, alpha)

    Author
    Blaise Bourdin (2020, bourdin@lsu.edu)

    DwAT1exp: the derivative of the "w" function of the standard AT1exp model

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90DefMechAT1exp_Type), intent(in) :: self
    real(kind=C_DOUBLE) :: alpha

    Return Value real(kind=c_double)

procedure, public, pass(self) :: a => aAT1exp

  • private function aAT1exp(self, alpha)

    Author
    Blaise Bourdin (2020, bourdin@lsu.edu)

    aAT1exp: the "a" function of the standard AT1exp model

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90DefMechAT1exp_Type), intent(in) :: self
    real(kind=C_DOUBLE) :: alpha

    Return Value real(kind=c_double)

procedure, public, pass(self) :: setFromOptions => MEF90DefMechAT1exp_setFromOptions

  • private subroutine MEF90DefMechAT1exp_setFromOptions(self, ierr)

    Author
    Blaise Bourdin (2025, bourdin@mcmaster.ca)

    MEF90DefMechAT1exp_setFromOptions: initializes a MEF90_DefMechAT1exp_Type from options

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90DefMechAT1exp_Type), intent(inout) :: self
    integer(kind=C_INT32_T), intent(inout) :: ierr

procedure, public, pass(self) :: view => MEF90DefMechAT1exp_View

  • private subroutine MEF90DefMechAT1exp_View(self, viewer, ierr)

    Author
    Blaise Bourdin (2025, bourdin@mcmaster.ca)

    MEF90DefMechAT1exp_view: the default viewer for a MEF90_DefMechAT_Type

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90DefMechAT1exp_Type), intent(in) :: self
    type(tPetscViewer), intent(in) :: viewer
    integer(kind=C_INT32_T), intent(inout) :: ierr

procedure, public, pass(self) :: view_internal => MEF90DefMechAT_View

  • public subroutine MEF90DefMechAT_View(self, viewer, ierr)

    Author
    Blaise Bourdin (2025, bourdin@mcmaster.ca)

    MEF90DefMechAT_view: the default viewer for a MEF90_DefMechAT_Type

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90DefMechAT_Type), intent(in) :: self
    type(tPetscViewer), intent(in) :: viewer
    integer(kind=C_INT32_T), intent(inout) :: ierr

procedure, public, pass(self) :: w => wAT1exp

  • private function wAT1exp(self, alpha)

    Author
    Blaise Bourdin (2020, bourdin@lsu.edu)

    wAT1exp: the "w" function of the standard AT1exp model, i.e.

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90DefMechAT1exp_Type), intent(in) :: self
    real(kind=C_DOUBLE) :: alpha

    Return Value real(kind=c_double)