MEF90DefMechSplit Derived Type

type, public, abstract, extends(MEF90Object) :: MEF90DefMechSplit

MEF90DefMechSplit: The abstract class used to define an energy split for handling unilateral contact


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(D2EEDInterface), public, deferred, pass(self) :: D2EED

  • subroutine D2EEDInterface(self, HookesLaw, phi, psi, D2EEDPlus, D2EEDMinus, ierr) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90DefMechSplit), 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

procedure(DEEDInterface), public, deferred, pass(self) :: DEED

  • subroutine DEEDInterface(self, HookesLaw, phi, DEEDPlus, DEEDMinus, ierr) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90DefMechSplit), 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

procedure(EEDInterface), public, deferred, pass(self) :: EED

  • subroutine EEDInterface(self, HookesLaw, phi, EEDPlus, EEDMinus, ierr) Prototype

    Arguments

    Type IntentOptional Attributes Name
    class(MEF90DefMechSplit), 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

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

  • private subroutine MEF90Object_setFromOptions(self, ierr)

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

    MEF90Object_setFromOptions: generic version of the setFromOptions method for all MEF90Objects, which just prints the object if -verbose is set to a high value Can be overridden in classes if they have options to set.

    Arguments

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

procedure(setupInterface), public, deferred, pass(self) :: setup

  • subroutine setupInterface(self, Strain, ierr) Prototype

    Arguments

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

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

  • private subroutine MEF90Object_view(self, viewer, ierr)

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

    MEF90Object_view: Views a MEF90Object and flagged it as viewed so that it is not viewed multiple times when -verbose is set to a high value

    Arguments

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

procedure(MEF90ObjectViewInterface), public, deferred, pass(self) :: view_internal

  • subroutine MEF90ObjectViewInterface(self, viewer, ierr) Prototype

    Arguments

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