diff --git a/NonLinearSolver/internalPoints/ipNonLocalDamageHyperelastic.cpp b/NonLinearSolver/internalPoints/ipNonLocalDamageHyperelastic.cpp index 73058032347d0358593ad7e39549e12fa1bc5ffc..97ee4fffc38c5f77dac797e090e50ca3a9ff6242 100644 --- a/NonLinearSolver/internalPoints/ipNonLocalDamageHyperelastic.cpp +++ b/NonLinearSolver/internalPoints/ipNonLocalDamageHyperelastic.cpp @@ -13,9 +13,8 @@ IPHyperViscoElastoPlasticNonLocalDamage::IPHyperViscoElastoPlasticNonLocalDamage(const J2IsotropicHardening* comp, const J2IsotropicHardening* trac,const J2IsotropicHardening* shear, const kinematicHardening* kin, const int N, - const CLengthLaw *cll, const DamageLaw *daml): IPHyperViscoElastoPlastic(comp,trac,shear,kin,N),_nldJ2HyperDLocalPlasticStrainDStrain(0), - _nldJ2HyperEffectivePlasticStrain (0), - _nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain(0), _Dc(1.),_damageBlocked(false) + const CLengthLaw *cll, const DamageLaw *daml): IPHyperViscoElastoPlastic(comp,trac,shear,kin,N), + _nonlocalPlasticStrain (0), _Dc(1.),_damageBlocked(false) { ipvCL=NULL; if(cll ==NULL) Msg::Error("IPHyperViscoElastoPlasticNonLocalDamage::IPHyperViscoElastoPlasticNonLocalDamage has no cll"); @@ -39,10 +38,9 @@ IPHyperViscoElastoPlasticNonLocalDamage::~IPHyperViscoElastoPlasticNonLocalDamag }; -IPHyperViscoElastoPlasticNonLocalDamage::IPHyperViscoElastoPlasticNonLocalDamage(const IPHyperViscoElastoPlasticNonLocalDamage &source):IPHyperViscoElastoPlastic(source){ - _nldJ2HyperDLocalPlasticStrainDStrain=source._nldJ2HyperDLocalPlasticStrainDStrain; - _nldJ2HyperEffectivePlasticStrain=source._nldJ2HyperEffectivePlasticStrain; - _nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain=source._nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain; +IPHyperViscoElastoPlasticNonLocalDamage::IPHyperViscoElastoPlasticNonLocalDamage(const IPHyperViscoElastoPlasticNonLocalDamage &source): + IPHyperViscoElastoPlastic(source){ + _nonlocalPlasticStrain=source._nonlocalPlasticStrain; _Dc = source._Dc; _damageBlocked = source._damageBlocked; ipvCL = NULL; @@ -61,10 +59,7 @@ IPHyperViscoElastoPlasticNonLocalDamage& IPHyperViscoElastoPlasticNonLocalDamage const IPHyperViscoElastoPlasticNonLocalDamage* src = dynamic_cast<const IPHyperViscoElastoPlasticNonLocalDamage*>(&source); if(src != NULL) { - _nldJ2HyperDLocalPlasticStrainDStrain=src->_nldJ2HyperDLocalPlasticStrainDStrain; - - _nldJ2HyperEffectivePlasticStrain=src->_nldJ2HyperEffectivePlasticStrain; - _nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain=src->_nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain; + _nonlocalPlasticStrain=src->_nonlocalPlasticStrain; _Dc = src->_Dc; _damageBlocked = src->_damageBlocked; @@ -101,9 +96,7 @@ void IPHyperViscoElastoPlasticNonLocalDamage::restart() IPHyperViscoElastoPlastic::restart(); restartManager::restart(ipvCL); restartManager::restart(ipvDam); - restartManager::restart(_nldJ2HyperDLocalPlasticStrainDStrain); - restartManager::restart(_nldJ2HyperEffectivePlasticStrain); - restartManager::restart(_nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain); + restartManager::restart(_nonlocalPlasticStrain); restartManager::restart(_Dc); restartManager::restart(_damageBlocked); return; diff --git a/NonLinearSolver/internalPoints/ipNonLocalDamageHyperelastic.h b/NonLinearSolver/internalPoints/ipNonLocalDamageHyperelastic.h index b1a401dd1d63673bf9217f635778a7f86987759a..a6cb6ccde928d3e44953d995fc5416cf8bc32e43 100644 --- a/NonLinearSolver/internalPoints/ipNonLocalDamageHyperelastic.h +++ b/NonLinearSolver/internalPoints/ipNonLocalDamageHyperelastic.h @@ -23,18 +23,11 @@ class IPHyperViscoElastoPlasticNonLocalDamage : public IPHyperViscoElastoPlastic protected: IPCLength* ipvCL; IPDamage* ipvDam; - protected: // All data public to avoid the creation of function to access - - STensor3 _nldJ2HyperDLocalPlasticStrainDStrain; - -// bareps - double _nldJ2HyperEffectivePlasticStrain; - double _nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain; + double _nonlocalPlasticStrain; double _Dc; // critical damage bool _damageBlocked; - public: IPHyperViscoElastoPlasticNonLocalDamage(const J2IsotropicHardening* comp, const J2IsotropicHardening* trac,const J2IsotropicHardening* shear, const kinematicHardening* kin, @@ -58,26 +51,8 @@ class IPHyperViscoElastoPlasticNonLocalDamage : public IPHyperViscoElastoPlastic virtual void restart(); virtual double getCurrentPlasticStrain() const { return _epspbarre;} virtual double &getRefToCurrentPlasticStrain() { return _epspbarre;} - virtual double getEffectivePlasticStrain() const { return _nldJ2HyperEffectivePlasticStrain;} - virtual double &getRefToEffectivePlasticStrain() { return _nldJ2HyperEffectivePlasticStrain;} - - virtual double &getRefToDLocalPlasticStrainDNonLocalPlasticStrain() - { - return _nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain; - } - virtual double getDLocalPlasticStrainDNonLocalPlasticStrain() const - { - return _nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain; - } - - virtual const STensor3 & getConstRefToDLocalPlasticStrainDStrain() const - { - return _nldJ2HyperDLocalPlasticStrainDStrain; - } - virtual STensor3 & getRefToDLocalPlasticStrainDStrain() - { - return _nldJ2HyperDLocalPlasticStrainDStrain; - } + virtual double getEffectivePlasticStrain() const { return _nonlocalPlasticStrain;} + virtual double &getRefToEffectivePlasticStrain() { return _nonlocalPlasticStrain;} virtual const IPCLength &getConstRefToIPCLength() const { diff --git a/NonLinearSolver/materialLaw/mlawNonLocalDamageHyperelastic.cpp b/NonLinearSolver/materialLaw/mlawNonLocalDamageHyperelastic.cpp index 2f47c6d5b7b07dc16417631145f60a196de971b8..a1addc68e97d0b80cae656dc21d0e7c1b5724b4c 100644 --- a/NonLinearSolver/materialLaw/mlawNonLocalDamageHyperelastic.cpp +++ b/NonLinearSolver/materialLaw/mlawNonLocalDamageHyperelastic.cpp @@ -115,9 +115,6 @@ void mlawNonLocalDamagePowerYieldHyper::constitutive( if(stiff) { - const STensor3 &Fp0 = ipvprev->getConstRefToFp(); - ipvcur->getRefToDLocalPlasticStrainDStrain() = dgammadF; - // we need to correct partial P/partial F: (1-D) partial P/partial F - Peff otimes partial D partial F Tangent*=(1.-D); @@ -143,14 +140,13 @@ void mlawNonLocalDamagePowerYieldHyper::constitutive( // partial p/partial F - dLocalPlasticStrainDStrain = ipvcur->getConstRefToDLocalPlasticStrainDStrain(); + dLocalPlasticStrainDStrain = dgammadF; // -hat{P} partial D/partial tilde p dStressDNonLocalPlasticStrain = Peff*(-1*ipvcur->getDDamageDp()); // partial p partial tilde p (0 if no MFH) - ipvcur->getRefToDLocalPlasticStrainDNonLocalPlasticStrain()=0; - dLocalPlasticStrainDNonLocalPlasticStrain = ipvcur->getDLocalPlasticStrainDNonLocalPlasticStrain(); + dLocalPlasticStrainDNonLocalPlasticStrain = 0.; }