m_MEF90_DefMechAssembly3D Module



Subroutines

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

Author
Blaise Bourdin (2012-19, bourdin@lsu.edu) Erwan Tanne (2012-19, erwan.tanne@gmail.com) Blaise Bourdin (2022, bourdin@mcmaster.ca) Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechBilinearFormDamage:

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(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechBilinearFormDisplacement(snesDisplacement, displacement, A, M, MEF90DefMechCtx, ierr)

Author
Blaise Bourdin (2012-20, bourdin@lsu.edu) Erwan Tanne (2012-20, erwan.tanne@gmail.com) Blaise Bourdin (2022-26, bourdin@mcmaster.ca) Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechBilinearFormDisplacement:

Arguments

Type IntentOptional Attributes Name
type(tSNES), intent(in) :: snesDisplacement
type(tVec), intent(in) :: displacement
type(tMat), intent(inout) :: A
type(tMat), intent(inout) :: M
type(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
integer(kind=C_INT32_T), intent(inout) :: ierr

public subroutine MEF90DefMechCohesiveEnergy(MEF90DefMechCtx, cohesiveEnergy, ierr)

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

MEF90DefMechCohesiveEnergy:

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 MEF90DefMechCrackVolume(MEF90DefMechCtx, CrackVolume, ierr)

Author
Erwan Tanne (2016-2021, erwan.tanne@gmail.com) Blaise Bourdin (2016-2021, bourdin@lsu.edu) Blaise Bourdin (2022, bourdin@mcmaster.ca) Alexis Marboeuf (2022, marboeua@mcmaster.ca)

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 MEF90DefMechElasticEnergy(MEF90DefMechCtx, energy, ierr)

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

MEF90DefMechElasticEnergy:

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 MEF90DefMechOperatorDamage(snesDamage, damage, residual, MEF90DefMechCtx, ierr)

Author
Blaise Bourdin (2012-20, bourdin@lsu.edu) Erwan Tanne (2012-20, erwan.tanne@gmail.com) Blaise Bourdin (2022-26, bourdin@mcmaster.ca) Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechOperatorDamage: Build the operator. When called in type(tSNES), the solution time should always match the target time, so there is no need for interpolation of the forces, external, and boundary values

Arguments

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

public subroutine MEF90DefMechOperatorDisplacement(snesDisplacement, displacement, residual, MEF90DefMechCtx, ierr)

Author
Blaise Bourdin (2012-20, bourdin@lsu.edu) Erwan Tanne (2012-20, erwan.tanne@gmail.com) Blaise Bourdin (2022-26, bourdin@mcmaster.ca) Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechOperatorDisplacement: Build the operator. When called in type(tSNES), the solution time should always match the target time, so there is no need for interpolation of the forces, external, and boundary values

Arguments

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

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

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

MEF90DefMechPlasticDissipation:

Arguments

Type IntentOptional Attributes Name
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 MEF90DefMechStress(MEF90DefMechCtx, stress, ierr)

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

MEF90DefMechStress:

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 (2014-2020, bourdin@lsu.edu) Blaise Bourdin (2022, bourdin@mcmaster.ca) Alexis Marboeuf (2022, marboeua@mcmaster.ca)

MEF90DefMechSurfaceEnergy:

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, MEF90DefMechCtx, ierr)

Author
Alexis Marboeuf (2012-2022, marboeua@mcmaster.ca) Blaise Bourdin (2023, bourdin@mcmaster.ca)

MEF90DefMechTAOGradientDamage:

Arguments

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

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

Author
Alexis Marboeuf (2022, marboeua@mcmaster.ca) Blaise Bourdin (2023, bourdin@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(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
integer(kind=C_INT32_T), intent(inout) :: ierr

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

Author
Alexis Marboeuf (2022, marboeua@mcmaster.ca) Blaise Bourdin (2023, bourdin@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(MEF90DefMech_Type), intent(in) :: MEF90DefMechCtx
integer(kind=C_INT32_T), intent(inout) :: ierr

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

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

MEF90DefMechWork:

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