m_MEF90_DefMechAT2 Module



Derived Types

type, public, extends(MEF90DefMechAT_Type) ::  MEF90DefMechAT2_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 => D2aAT2
procedure, public, pass(self) :: D2w => D2wAT2
procedure, public, pass(self) :: Da => DaAT2
procedure, public, pass(self) :: Dw => DwAT2
procedure, public, pass(self) :: a => aAT2
procedure, public, pass(self) :: setFromOptions => MEF90DefMechAT2_setFromOptions
procedure, public, pass(self) :: view => MEF90Object_view
procedure, public, pass(self) :: view_internal => MEF90DefMechAT_View
procedure, public, pass(self) :: w => wAT2

Functions

private function D2aAT2(self, alpha)

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

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

Arguments

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

Return Value real(kind=c_double)

private function D2wAT2(self, alpha)

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

D2wAT2: the second derivative of the "w" function of the standard AT2 model, i.e. $w''(\alpha) = 2$

Arguments

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

Return Value real(kind=c_double)

private function DaAT2(self, alpha)

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

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

Arguments

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

Return Value real(kind=c_double)

private function DwAT2(self, alpha)

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

DwAT2: the derivative of the "w" function of the standard AT2 model, i.e. $w'(\alpha) = 2\alpha$

Arguments

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

Return Value real(kind=c_double)

private function aAT2(self, alpha)

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

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

Arguments

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

Return Value real(kind=c_double)

private function wAT2(self, alpha)

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

wAT2: the "w" function of the standard AT2 model, i.e. $w(\alpha) = \alpha^2$

Arguments

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

Return Value real(kind=c_double)


Subroutines

private subroutine MEF90DefMechAT2_setFromOptions(self, ierr)

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

MEF90DefMechAT2_setFromOptions: initializes a MEF90_DefMechAT2_Type from options

Arguments

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