m_MEF90_DefMech Module


Uses


Subroutines

public subroutine MEF90DefMechBilinearFormDamage(snesDamage, damage, A, M, PETScCtx, ierr)

Author
Blaise Bourdin (2012-14, bourdin@lsu.edu)

MEF90DefMechBilinearFormDamage: wraps calls to MEF90DefMechBilinearFormDamage from m_MEF90_DefMechAssembly since overloading cannot be used here

Arguments

Type IntentOptional Attributes Name
type(tSNES), intent(in) :: snesDamage
type(tVec), intent(in) :: damage
type(tMat), intent(inout) :: A
type(tMat), intent(inout) :: M
type(c_ptr), intent(in) :: PETScCtx
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechBilinearFormDisplacement(snesDispl, x, A, M, PETScCtx, ierr)

Author
Blaise Bourdin (2012-14, bourdin@lsu.edu)

MEF90DefMechBilinearFormDisplacement: wraps calls to MEF90DefMechBilinearFormDisplacement from m_MEF90_DefMechAssembly since overloading cannot be used here

Arguments

Type IntentOptional Attributes Name
type(tSNES), intent(in) :: snesDispl
type(tVec), intent(in) :: x
type(tMat), intent(inout) :: A
type(tMat), intent(inout) :: M
type(c_ptr), intent(in) :: PETScCtx
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechCohesiveEnergy(MEF90DefMechCtx, cohesiveEnergy, ierr)

Author
Blaise Bourdin (2012-14, bourdin@lsu.edu)

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
real(kind=C_DOUBLE), dimension(:), pointer :: cohesiveEnergy
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechComputeCompositeDamage(damage, damageSets, ierr)

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

MEF90DefMechComputeCompositeDamage: Reconstruct a global damage field by taking the min of all set damage fields Use in multi-phase field for I/O, error on altmin etc

Arguments

Type IntentOptional Attributes Name
type(tVec), intent(in) :: damage
type(tVec), dimension(:), pointer :: damageSets
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechCrackVolume(MEF90DefMechCtx, CrackVolume, ierr)

Author
Erwan Tanne (2016, erwan.tanne@gmail.com)

MEF90DefMechCrackVolume:

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
real(kind=C_DOUBLE), dimension(:), pointer :: CrackVolume
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechCreateSNESDamage(MEF90DefMechCtx, snesDamage, residual, ierr)

Author
Blaise Bourdin (2014, bourdin@lsu.edu) Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechCreateSNESDamage:

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
type(tSNES), intent(out) :: snesDamage
type(tVec), intent(in) :: residual
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechCreateSNESDisplacement(MEF90DefMechCtx, snesDisplacement, residual, ierr)

Author
Blaise Bourdin (2014, bourdin@lsu.edu) Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechCreateSNESDisplacement:

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
type(tSNES), intent(out) :: snesDisplacement
type(tVec), intent(in) :: residual
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechCreateTAODamage(MEF90DefMechCtx, taoDamage, residual, ierr)

Author
Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechCreateTAODamage:

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
type(tTao), intent(out) :: taoDamage
type(tVec), intent(in) :: residual
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechElasticEnergy(MEF90DefMechCtx, energy, ierr)

Author
Blaise Bourdin (2012-14, bourdin@lsu.edu)

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
real(kind=C_DOUBLE), dimension(:), pointer :: energy
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechFormatEXO(MEF90DefMechCtx, time, ierr)

Author
Blaise Bourdin (2014, bourdin@lsu.edu) Blaise Bourdin (2022-2026, bourdin@mcmaster.ca)

MEF90DefMechFormatEXO:

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(inout) :: MEF90DefMechCtx
real(kind=C_DOUBLE), dimension(:), pointer :: time
integer(kind=C_INT32_T), intent(out) :: ierr

public subroutine MEF90DefMechOperatorDamage(snesDamage, damage, residual, PETScCtx, ierr)

Author
Blaise Bourdin (2012-14, bourdin@lsu.edu)

MEF90DefMechOperatorDamage: wraps calls to MEF90DefMechOperatorDamage from m_MEF90_DefMechAssembly since overloading cannot be used here

Arguments

Type IntentOptional Attributes Name
type(tSNES), intent(in) :: snesDamage
type(tVec), intent(in) :: damage
type(tVec), intent(inout) :: residual
type(c_ptr), intent(in) :: PETScCtx
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechOperatorDisplacement(snesTemp, x, residual, PETScCtx, ierr)

Author
Blaise Bourdin (2012-14, bourdin@lsu.edu)

MEF90DefMechOperatorDisplacement: wraps calls to MEF90DefMechOperatorDisplacement from m_MEF90_DefMechAssembly since overloading cannot be used here

Arguments

Type IntentOptional Attributes Name
type(tSNES), intent(in) :: snesTemp
type(tVec), intent(in) :: x
type(tVec), intent(inout) :: residual
type(c_ptr), intent(in) :: PETScCtx
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechPlasticDissipation(x, MEF90DefMechCtx, plasticStrainOld, energy, ierr)

Author
Erwan Tanne (2012-14, erwan.tanne@gmail.com)

Arguments

Type IntentOptional Attributes Name
type(tVec), intent(in) :: x
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
type(tVec), intent(in) :: plasticStrainOld
real(kind=C_DOUBLE), dimension(:), pointer :: energy
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechPlasticStrainUpdate(MEF90DefMechCtx, plasticStrain, x, PlasticStrainOld, plasticStrainPrevious, cumulatedDissipatedPlasticEnergyVariation, cumulatedDissipatedPlasticEnergyOld, ierr)

Author
Blaise Bourdin (2012-14, bourdin@lsu.edu)

MEF90DefMechPlasticStrainUpdate: wraps calls to MEF90DefMechPlasticStrainUpdate from m_MEF90_DefMechPlasticity since overloading cannot be used here

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
type(tVec), intent(inout) :: plasticStrain
type(tVec), intent(in) :: x
type(tVec), intent(in) :: PlasticStrainOld
type(tVec), intent(in) :: plasticStrainPrevious
type(tVec), intent(in) :: cumulatedDissipatedPlasticEnergyVariation
type(tVec), intent(in) :: cumulatedDissipatedPlasticEnergyOld
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechProjectCoordinates_Private(v, ierr)

Arguments

Type IntentOptional Attributes Name
type(tVec), intent(inout) :: v
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechSetTransients(MEF90DefMechCtx, step, time, ierr)

Author
Blaise Bourdin (2012-14, bourdin@lsu.edu) Blaise Bourdin (2026, bourdin@mcmaster.ca) Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechSetTransients:

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(inout) :: MEF90DefMechCtx
integer(kind=C_INT32_T), intent(in) :: step
real(kind=C_DOUBLE), intent(in) :: time
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechStress(MEF90DefMechCtx, stress, ierr)

Author
Blaise Bourdin (2012-14, bourdin@lsu.edu)

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
type(tVec), intent(in) :: stress
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechSurfaceEnergy(MEF90DefMechCtx, energy, ierr)

Author
Blaise Bourdin (2012-14, bourdin@lsu.edu)

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
real(kind=C_DOUBLE), dimension(:), pointer :: energy
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechTAOGradientDamage(taoDamage, damage, residual, PETScCtx, ierr)

Author
Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechTAOGradientDamage:

Arguments

Type IntentOptional Attributes Name
type(tTao), intent(in) :: taoDamage
type(tVec), intent(in) :: damage
type(tVec), intent(inout) :: residual
type(c_ptr), intent(in) :: PETScCtx
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechTAOHessianDamage(taoDamage, damage, A, M, PETScCtx, ierr)

Author
Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechTAOHessianDamage:

Arguments

Type IntentOptional Attributes Name
type(tTao), intent(in) :: taoDamage
type(tVec), intent(in) :: damage
type(tMat), intent(inout) :: A
type(tMat), intent(inout) :: M
type(c_ptr), intent(in) :: PETScCtx
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechTAOObjectiveDamage(taoDamage, damage, energy, PETScCtx, ierr)

Author
Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechTAOObjectiveDamage:

Arguments

Type IntentOptional Attributes Name
type(tTao), intent(in) :: taoDamage
type(tVec), intent(in) :: damage
real(kind=C_DOUBLE), intent(inout) :: energy
type(c_ptr), intent(in) :: PETScCtx
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechTAOUpdateDamageBounds(MEF90DefMechCtx, taoDamage, alpha, ierr)

Author
Blaise Bourdin (2014, bourdin@lsu.edu) Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechTAOUpdateDamageBounds:

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
type(tTao), intent(inout) :: taoDamage
type(tVec), intent(in) :: alpha
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechUpdateDamageBounds(MEF90DefMechCtx, snesDamage, alpha, ierr)

Author
Blaise Bourdin (2014, bourdin@lsu.edu) Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechUpdateDamageBounds:

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
type(tSNES), intent(inout) :: snesDamage
type(tVec), intent(in) :: alpha
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechViewEXO(MEF90DefMechCtx, step, ierr)

Author
Blaise Bourdin (2014, bourdin@lsu.edu) Blaise Bourdin (2026, bourdin@mcmaster.ca) Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechViewEXO: Save all fields in a MEF90DefMech_Type in an exodus file

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
integer(kind=C_INT32_T), intent(in) :: step
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechWork(MEF90DefMechCtx, bodyForceWork, boundaryForceWork, ierr)

Author
Blaise Bourdin (2012-22, bourdin@lsu.edu)

Arguments

Type IntentOptional Attributes Name
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
real(kind=C_DOUBLE), dimension(:), pointer :: bodyForceWork
real(kind=C_DOUBLE), dimension(:), pointer :: boundaryForceWork
integer(kind=C_INT32_T), intent(inout) :: ierr