@DSL Default; @Author Tran Thang DANG; @Date 05/02/2016; @Behaviour PhaseFieldDisplacement; // @ModellingHypothesis {PlaneStrain,Tridimensional}; @Description{ "A damage model coupled with a phase " "field approach" } @MaterialProperty stress yg; yg.setGlossaryName("YoungModulus") ; @MaterialProperty real nu ; nu.setGlossaryName("PoissonRatio") ; @Parameter real kk = 1e-6 ; @StateVariable real H; H.setEntryName("DamageDrivingForce"); @StateVariable real de; de.setGlossaryName("Damage"); @ProvidesSymmetricTangentOperator ; @Integrator{ constexpr const strain emin = 1.e-12; // positive part const auto f = [](const real x){return x>0 ? x : 0;}; // derivative of the positive part const auto df = [&emin](const real x) {return std::abs(x)=0){ Dt=deff*(lambda*Stensor4::IxI()+2*mu*dep_de)+(2*mu*(Stensor4::Id()-dep_de)); } else { Dt=deff*2*mu*dep_de+(lambda*Stensor4::IxI()+2*mu*(Stensor4::Id()-dep_de)); } } static_cast(smt); } // end of @Integrator @APosterioriTimeStepScalingFactor { // pas d'acroissement de l'endommagement sur le pas de temps if (dde<1.e-4){ return {true,1.e-2/(max(dde,1e-4))}; } return {true,1}; }