| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | 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 |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(MEF90DefMechSplit), | intent(inout) | :: | self | |||
| class(mef90Mat), | intent(in) | :: | Strain | |||
| integer(kind=C_INT32_T), | intent(inout) | :: | ierr |
MEF90DefMechSplit: The abstract class used to define an energy split for handling unilateral contact
| 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 | = | '' |
| procedure(D2EEDInterface), public, deferred, pass(self) :: D2EED | |
| procedure(DEEDInterface), public, deferred, pass(self) :: DEED | |
| procedure(EEDInterface), public, deferred, pass(self) :: EED | |
| procedure, public, pass(self) :: setFromOptions => MEF90Object_setFromOptions | |
| procedure(setupInterface), public, deferred, pass(self) :: setup | |
| procedure, public, pass(self) :: view => MEF90Object_view | |
| procedure(MEF90ObjectViewInterface), public, deferred, pass(self) :: view_internal |
MEF90DefMechSplit_D2SmoothPositiveSquare: the second derivative of MEF90_DefMechSplitHD_PenaltyFunction
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=C_DOUBLE), | intent(in) | :: | x | |||
| real(kind=C_DOUBLE), | intent(in) | :: | gamma |
MEF90DefMechSplit_DSmoothPositiveSquare: the first derivative of MEF90_DefMechSplitHD_PenaltyFunction
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=C_DOUBLE), | intent(in) | :: | x | |||
| real(kind=C_DOUBLE), | intent(in) | :: | gamma |
MEF90DefMechSplit_SmoothPositiveSquare: a low order polynomial C^2 regularization of (max(x,0))**2, defined by 0 if x \le -gamma/2 (x+\gamma/2)^3/3/\gamma if -\gamma/2 < x \le \gamma/2 x^2+gamma^2/12 otherwise
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=C_DOUBLE), | intent(in) | :: | x | |||
| real(kind=C_DOUBLE), | intent(in) | :: | gamma |