m_MEF90_DefMechSplitNone Module



Derived Types

type, public, extends(MEF90DefMechSplit) ::  MEF90DefMechSplitNone

Components

Type Visibility Attributes Name Initial
integer(kind=C_INT32_T), public :: comm
logical(kind=C_BOOL), public :: isHybrid = PETSC_FALSE
character(kind=c_char, len=MEF90MXSTRLEN), public :: name = "NULL"
character(kind=c_char, len=MEF90MXSTRLEN), public :: prefix
integer, public :: quadratureOrder = 0
class(mef90Mat), public, allocatable :: strain
character(len=MEF90MXSTRLEN), public :: type = ''

Type-Bound Procedures

procedure, public, pass(self) :: D2EED => D2EEDNone
procedure, public, pass(self) :: DEED => DEEDNone
procedure, public, pass(self) :: EED => EEDNone
procedure, public, pass(self) :: setFromOptions => MEF90DefMechSplitNone_setFromOptions
procedure, public, pass(self) :: setup => setupNONE
procedure, public, pass(self) :: view => MEF90Object_view
procedure, public, pass(self) :: view_internal => MEF90DefMechSplitNone_view

Subroutines

private subroutine D2EEDNone(self, HookesLaw, phi, psi, D2EEDPlus, D2EEDMinus, ierr)

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

D2EEDNone: Compute the second derivative of the positive and negative part of the elastic energy density (positive and negative stress) evaluated at the strain tensor Strain. without a split, D2EEDPlus = HookesLaw, D2EEDMinus = 0

Arguments

Type IntentOptional Attributes Name
class(MEF90DefMechSplitNone), intent(in) :: self
class(MEF90HookesLaw), intent(in) :: HookesLaw
class(mef90Mat), intent(in) :: phi
class(mef90Mat), intent(in) :: psi
real(kind=C_DOUBLE), intent(out) :: D2EEDPlus
real(kind=C_DOUBLE), intent(out) :: D2EEDMinus
integer(kind=C_INT32_T), intent(inout) :: ierr

private subroutine DEEDNone(self, HookesLaw, phi, DEEDPlus, DEEDMinus, ierr)

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

DEEDNone: Compute the derivative of the positive and negative part of the elastic energy density (positive and negative stress) evaluated at the strain tensor Strain. without a split, we have DEEDPlus = HookesLaw Strain DEEDMinus = 0

Arguments

Type IntentOptional Attributes Name
class(MEF90DefMechSplitNone), intent(in) :: self
class(MEF90HookesLaw), intent(in) :: HookesLaw
class(mef90Mat), intent(in) :: phi
real(kind=C_DOUBLE), intent(out) :: DEEDPlus
real(kind=C_DOUBLE), intent(out) :: DEEDMinus
integer(kind=C_INT32_T), intent(inout) :: ierr

private subroutine EEDNone(self, HookesLaw, phi, EEDPlus, EEDMinus, ierr)

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

EEDNone: Compute the positive and negative part of the elastic energy density associated with a strain tensor without a split, we have EEDPlus = 1/2 HookesLaw Strain \cdot Strain EEDMinus = 0

Arguments

Type IntentOptional Attributes Name
class(MEF90DefMechSplitNone), intent(in) :: self
class(MEF90HookesLaw), intent(in) :: HookesLaw
class(mef90Mat), intent(in) :: phi
real(kind=C_DOUBLE), intent(out) :: EEDPlus
real(kind=C_DOUBLE), intent(out) :: EEDMinus
integer(kind=C_INT32_T), intent(inout) :: ierr

private subroutine MEF90DefMechSplitNone_setFromOptions(self, ierr)

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

MEF90DefMechSplitNone_setFromOptions: the default constructor for a MEF90DefMechSplitNone

Arguments

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

private subroutine MEF90DefMechSplitNone_view(self, viewer, ierr)

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

MEF90DefMechSplitNone_view: view a MEF90DefMechSplitNone

Arguments

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

private subroutine setupNONE(self, Strain, ierr)

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

setupNONE: the setup routine for a MEF90DefMechSplitNone, which does nothing since there is no split

Arguments

Type IntentOptional Attributes Name
class(MEF90DefMechSplitNone), intent(inout) :: self
class(mef90Mat), intent(in) :: Strain
integer(kind=C_INT32_T), intent(inout) :: ierr