m_MEF90_DefMechAT1exp Module



Derived Types

type, public, extends(MEF90DefMechAT_Type) ::  MEF90DefMechAT1exp_Type

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

Read more…

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
procedure, public, pass(self) :: D2w => D2wAT1exp
procedure, public, pass(self) :: Da => DaAT1exp
procedure, public, pass(self) :: Dw => DwAT1exp
procedure, public, pass(self) :: a => aAT1exp
procedure, public, pass(self) :: setFromOptions => MEF90DefMechAT1exp_setFromOptions
procedure, public, pass(self) :: view => MEF90DefMechAT1exp_View
procedure, public, pass(self) :: view_internal => MEF90DefMechAT_View
procedure, public, pass(self) :: w => wAT1exp

Functions

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)

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)

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)

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)

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)

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)


Subroutines

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

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