| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| type(tPetscSF), | public | :: | IOToBodyForceSF | ||||
| type(tPetscSF), | public | :: | IOToBoundaryForceSF | ||||
| type(tPetscSF), | public | :: | IOToCohesiveDisplacementSF | ||||
| type(tPetscSF), | public | :: | IOToCumulatedPlasticDissSF | ||||
| type(tPetscSF), | public | :: | IOToDamageSF | ||||
| type(tPetscSF), | public | :: | IOToDisplacementSF | ||||
| type(tPetscSF), | public | :: | IOToPlasticStrainSF | ||||
| type(tPetscSF), | public | :: | IOToPressureForceSF | ||||
| type(tPetscSF), | public | :: | IOToStressSF | ||||
| type(tPetscSF), | public | :: | IOToTemperatureSF | ||||
| type(MEF90Ctx_Type), | public, | pointer | :: | MEF90Ctx | => | null() | |
| type(c_ptr), | public | :: | PETScCtx | = | C_NULL_PTR |
Handle on self, set once in MEF90DefMechCreate with PETScCtx = c_loc(DefMech), and handed to PETSc wherever an application context is expected: SNESSetFunction, SNESSetJacobian, TAOSetObjective, ... The callbacks in m_MEF90_DefMech recover the context with call c_f_pointer(PETScCtx, MEF90DefMechCtx) MEF90DefMech_Type cannot be passed to PETSc directly, the way MEF90DefMechCtx_Type was up to mef90 0.5.2, because extending MEF90Object gives it type-bound procedures and PETSc declares its context arguments as assumed-type. This has to be a component rather than a local or an inline c_loc(), for lifetime reasons that are easy to get wrong: see the note at the top of MEF90/m_MEF90_BaseClass.F90 before changing any of this. |
|
| real(kind=C_DOUBLE), | public | :: | analysisTime | ||||
| type(tVec), | public, | pointer | :: | bodyForce | => | null() |
cell based vec |
| type(tPetscSF), | public | :: | bodyForceToIOSF | ||||
| type(tVec), | public, | pointer | :: | boundaryForce | => | null() | |
| type(tPetscSF), | public | :: | boundaryForceToIOSF | ||||
| type(tVec), | public, | pointer | :: | cohesiveDisplacement | => | null() | |
| type(tPetscSF), | public | :: | cohesiveDisplacementToIOSF | ||||
| integer(kind=C_INT32_T), | public | :: | comm | ||||
| type(tPetscSF), | public | :: | cumulatedPlasticDissToIOSF | ||||
| type(tVec), | public, | pointer | :: | cumulatedPlasticDissipation | => | null() | |
| integer(kind=C_INT32_T), | public | :: | currentSet | = | 0_Ki | ||
| type(tPetscSF), | public | :: | damageConstraintsSF | ||||
| type(tVec), | public, | pointer | :: | damageLocal | => | null() | |
| type(tPetscSF), | public | :: | damageToIOSF | ||||
| integer(kind=C_INT32_T), | public | :: | dim | ||||
| type(tPetscSF), | public | :: | displacementConstraintsSF | ||||
| type(tVec), | public, | pointer | :: | displacementLocal | => | null() |
vertex based vec |
| type(tVec), | public, | pointer | :: | displacementLowerBoundLocal | => | null() | |
| type(tVec), | public, | pointer | :: | displacementPreviousStepLocal | => | null() | |
| type(tPetscSF), | public | :: | displacementToIOSF | ||||
| type(tVec), | public, | pointer | :: | displacementUpperBoundLocal | => | null() | |
| type(tPetscViewer), | public | :: | globalEnergyViewer |
Neither the problem-wide nor the per-set options are stored: they are read from the options database where they are needed, with MEF90DefMechGlobalOptionsSetFromOptions and MEF90DefMech[Cell,Face,Vertex]SetOptionsSetFromOptions, the same way the AT model, the energy split, and the Hooke's law are obtained. The number of sets is obtained from the megaDM with MEF90DMGetNumSets. |
|||
| logical(kind=C_BOOL), | public | :: | hasDisplacementBounds | = | PETSC_FALSE | ||
| logical(kind=C_BOOL), | public | :: | hasUnilateralContact | = | PETSC_FALSE | ||
| type(tDM), | public | :: | megaDM | ||||
| character(kind=c_char, len=MEF90MXSTRLEN), | public | :: | name | = | "NULL" | ||
| type(tVec), | public, | dimension(:), pointer | :: | partialDamageLocal | => | null() | |
| type(tVec), | public, | pointer | :: | plasticStrain | => | null() | |
| type(tPetscSF), | public | :: | plasticStrainToIOSF | ||||
| character(kind=c_char, len=MEF90MXSTRLEN), | public | :: | prefix | ||||
| type(tVec), | public, | pointer | :: | pressureForce | => | null() | |
| type(tPetscSF), | public | :: | pressureForceToIOSF | ||||
| type(tPetscViewer), | public, | dimension(:), pointer | :: | setEnergyViewer | => | null() | |
| type(tVec), | public, | pointer | :: | stress | => | null() | |
| type(tPetscSF), | public | :: | stressToIOSF | ||||
| type(tVec), | public, | pointer | :: | temperatureLocal | => | null() | |
| type(tPetscSF), | public | :: | temperatureToIOSF | ||||
| real(kind=C_DOUBLE), | public | :: | timeStep |
MEF90DefMechSetFromOptions: initializes a MEF90DefMech_Type from options
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(MEF90DefMech_Type), | intent(inout) | :: | self | |||
| integer(kind=C_INT32_T), | intent(inout) | :: | ierr |
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
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(MEF90Object), | intent(in) | :: | self | |||
| type(tPetscViewer), | intent(in) | :: | viewer | |||
| integer(kind=C_INT32_T), | intent(inout) | :: | ierr |
MEF90DefMechView: the default viewer for a MEF90DefMech_Type
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(MEF90DefMech_Type), | intent(in) | :: | self | |||
| type(tPetscViewer), | intent(in) | :: | viewer | |||
| integer(kind=C_INT32_T), | intent(inout) | :: | ierr |