m_MEF90_DefMechAT1 Module



Derived Types

type, public, extends(MEF90DefMechAT_Type) ::  MEF90DefMechAT1_Type

Components

Type Visibility Attributes Name Initial
integer(kind=C_INT32_T), public :: aOrder = -1
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 => D2aAT1
procedure, public, pass(self) :: D2w => D2wAT1
procedure, public, pass(self) :: Da => DaAT1
procedure, public, pass(self) :: Dw => DwAT1
procedure, public, pass(self) :: a => aAT1
procedure, public, pass(self) :: setFromOptions => MEF90DefMechAT1_setFromOptions
procedure, public, pass(self) :: view => MEF90Object_view
procedure, public, pass(self) :: view_internal => MEF90DefMechAT_View
procedure, public, pass(self) :: w => wAT1

Functions

private function D2aAT1(self, alpha)

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

D2aAT1: the second derivative of the "a" function of the standard AT1 model, i.e. $a''(\alpha) = 2(1-\eta)$

Arguments

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

Return Value real(kind=c_double)

private function D2wAT1(self, alpha)

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

D2wAT1: the second derivative of the "w" function of the standard AT1 model, i.e. $w''(\alpha) = 0$

Arguments

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

Return Value real(kind=c_double)

private function DaAT1(self, alpha)

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

DaAT1: the derivative of the "a" function of the standard AT1 model, i.e. $a'(\alpha) = -2(1-\eta)(1-\alpha)$

Arguments

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

Return Value real(kind=c_double)

private function DwAT1(self, alpha)

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

DwAT1: the derivative of the "w" function of the standard AT1 model, i.e. $w'(\alpha) = 1$

Arguments

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

Return Value real(kind=c_double)

private function aAT1(self, alpha)

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

aAT1: the "a" function of the standard AT1 model, i.e. $a(\alpha) = \eta + (1-\eta)(1-\alpha)^2$

Arguments

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

Return Value real(kind=c_double)

private function wAT1(self, alpha)

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

wAT1: the "w" function of the standard AT1 model, i.e. $w(\alpha) = \alpha$

Arguments

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

Return Value real(kind=c_double)


Subroutines

private subroutine MEF90DefMechAT1_setFromOptions(self, ierr)

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

MEF90DefMechAT1_setFromOptions: initializes a MEF90_DefMechAT1_Type from options

Arguments

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