v0.15.4
Loading...
Searching...
No Matches
EshlabianCohesive.hpp
Go to the documentation of this file.
1/**
2 * @file EshlabianCohesive.hpp
3 * @author your name (you@domain.com)
4 * @brief Add cohesive elements to Eshelbian plasticity module
5 * @version 0.1
6 * @date 2025-12-14
7 *
8 * @copyright Copyright (c) 2025
9 *
10 */
11
12#ifndef MOFEM_ESHELBIAN_COHESIVE_HPP
13#define MOFEM_ESHELBIAN_COHESIVE_HPP
14
15namespace EshelbianPlasticity {
16
17MoFEMErrorCode pushCohesiveOpsRhs(
18 EshelbianCore &ep,
19 ForcesAndSourcesCore::GaussHookFun set_integration_at_front_face,
20 boost::shared_ptr<Range> interface_range_ptr,
21 boost::ptr_deque<ForcesAndSourcesCore::UserDataOperator> &pip);
22
23MoFEMErrorCode pushCohesiveOpsLhs(
24 EshelbianCore &ep,
25 ForcesAndSourcesCore::GaussHookFun set_integration_at_front_face,
26 boost::shared_ptr<Range> interface_range_ptr,
27 boost::ptr_deque<ForcesAndSourcesCore::UserDataOperator> &pip);
28
30
32 CohesiveTAOCtx() = default;
33 virtual SmartPetscObj<Vec> duplicateKappaVec() = 0;
34 virtual SmartPetscObj<Vec> duplicateDissipationVec() = 0;
35 virtual SmartPetscObj<Vec> duplicateGradientVec() = 0;
36 virtual CommInterface::EntitiesPetscVector &getKappaVec() = 0;
37};
38
39boost::shared_ptr<CohesiveTAOCtx> createCohesiveTAOCtx(
40 EshelbianCore *ep,
41 ForcesAndSourcesCore::GaussHookFun set_integration_at_front_face,
42 SmartPetscObj<TS> time_solver);
43
44MoFEMErrorCode cohesiveEvaluateObjectiveAndGradient(Tao tao, Vec x,
45 PetscReal *f, Vec g,
46 void *ctx);
47Tag get_kappa_tag(moab::Interface &moab);
48Tag get_delta_kappa_tag(moab::Interface &moab);
49
50} // namespace EshelbianPlasticity
51
52#endif // MOFEM_ESHELBIAN_COHESIVE_HPP
Tag get_delta_kappa_tag(moab::Interface &moab)
boost::shared_ptr< CohesiveTAOCtx > createCohesiveTAOCtx(EshelbianCore *ep, ForcesAndSourcesCore::GaussHookFun set_integration_at_front_face, SmartPetscObj< TS > time_solver)
MoFEMErrorCode pushCohesiveOpsLhs(EshelbianCore &ep, ForcesAndSourcesCore::GaussHookFun set_integration_at_front_face, boost::shared_ptr< Range > interface_range_ptr, boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &pip)
Tag get_kappa_tag(moab::Interface &moab)
MoFEMErrorCode pushCohesiveOpsRhs(EshelbianCore &ep, ForcesAndSourcesCore::GaussHookFun set_integration_at_front_face, boost::shared_ptr< Range > interface_range_ptr, boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator > &pip)
MoFEMErrorCode initializeCohesiveKappaField(EshelbianCore &ep)
MoFEMErrorCode cohesiveEvaluateObjectiveAndGradient(Tao tao, Vec x, PetscReal *f, Vec g, void *ctx)
constexpr double g
virtual SmartPetscObj< Vec > duplicateKappaVec()=0
virtual SmartPetscObj< Vec > duplicateDissipationVec()=0
virtual SmartPetscObj< Vec > duplicateGradientVec()=0
virtual CommInterface::EntitiesPetscVector & getKappaVec()=0