Skip to content
Snippets Groups Projects
Commit f7fe9134 authored by Van Dung NGUYEN's avatar Van Dung NGUYEN
Browse files

correct

parent 2a665596
No related branches found
No related tags found
1 merge request!27Update from Master
...@@ -13,9 +13,8 @@ ...@@ -13,9 +13,8 @@
IPHyperViscoElastoPlasticNonLocalDamage::IPHyperViscoElastoPlasticNonLocalDamage(const J2IsotropicHardening* comp, IPHyperViscoElastoPlasticNonLocalDamage::IPHyperViscoElastoPlasticNonLocalDamage(const J2IsotropicHardening* comp,
const J2IsotropicHardening* trac,const J2IsotropicHardening* shear, const kinematicHardening* kin, const int N, 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), const CLengthLaw *cll, const DamageLaw *daml): IPHyperViscoElastoPlastic(comp,trac,shear,kin,N),
_nldJ2HyperEffectivePlasticStrain (0), _nonlocalPlasticStrain (0), _Dc(1.),_damageBlocked(false)
_nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain(0), _Dc(1.),_damageBlocked(false)
{ {
ipvCL=NULL; ipvCL=NULL;
if(cll ==NULL) Msg::Error("IPHyperViscoElastoPlasticNonLocalDamage::IPHyperViscoElastoPlasticNonLocalDamage has no cll"); if(cll ==NULL) Msg::Error("IPHyperViscoElastoPlasticNonLocalDamage::IPHyperViscoElastoPlasticNonLocalDamage has no cll");
...@@ -39,10 +38,9 @@ IPHyperViscoElastoPlasticNonLocalDamage::~IPHyperViscoElastoPlasticNonLocalDamag ...@@ -39,10 +38,9 @@ IPHyperViscoElastoPlasticNonLocalDamage::~IPHyperViscoElastoPlasticNonLocalDamag
}; };
IPHyperViscoElastoPlasticNonLocalDamage::IPHyperViscoElastoPlasticNonLocalDamage(const IPHyperViscoElastoPlasticNonLocalDamage &source):IPHyperViscoElastoPlastic(source){ IPHyperViscoElastoPlasticNonLocalDamage::IPHyperViscoElastoPlasticNonLocalDamage(const IPHyperViscoElastoPlasticNonLocalDamage &source):
_nldJ2HyperDLocalPlasticStrainDStrain=source._nldJ2HyperDLocalPlasticStrainDStrain; IPHyperViscoElastoPlastic(source){
_nldJ2HyperEffectivePlasticStrain=source._nldJ2HyperEffectivePlasticStrain; _nonlocalPlasticStrain=source._nonlocalPlasticStrain;
_nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain=source._nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain;
_Dc = source._Dc; _Dc = source._Dc;
_damageBlocked = source._damageBlocked; _damageBlocked = source._damageBlocked;
ipvCL = NULL; ipvCL = NULL;
...@@ -61,10 +59,7 @@ IPHyperViscoElastoPlasticNonLocalDamage& IPHyperViscoElastoPlasticNonLocalDamage ...@@ -61,10 +59,7 @@ IPHyperViscoElastoPlasticNonLocalDamage& IPHyperViscoElastoPlasticNonLocalDamage
const IPHyperViscoElastoPlasticNonLocalDamage* src = dynamic_cast<const IPHyperViscoElastoPlasticNonLocalDamage*>(&source); const IPHyperViscoElastoPlasticNonLocalDamage* src = dynamic_cast<const IPHyperViscoElastoPlasticNonLocalDamage*>(&source);
if(src != NULL) if(src != NULL)
{ {
_nldJ2HyperDLocalPlasticStrainDStrain=src->_nldJ2HyperDLocalPlasticStrainDStrain; _nonlocalPlasticStrain=src->_nonlocalPlasticStrain;
_nldJ2HyperEffectivePlasticStrain=src->_nldJ2HyperEffectivePlasticStrain;
_nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain=src->_nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain;
_Dc = src->_Dc; _Dc = src->_Dc;
_damageBlocked = src->_damageBlocked; _damageBlocked = src->_damageBlocked;
...@@ -101,9 +96,7 @@ void IPHyperViscoElastoPlasticNonLocalDamage::restart() ...@@ -101,9 +96,7 @@ void IPHyperViscoElastoPlasticNonLocalDamage::restart()
IPHyperViscoElastoPlastic::restart(); IPHyperViscoElastoPlastic::restart();
restartManager::restart(ipvCL); restartManager::restart(ipvCL);
restartManager::restart(ipvDam); restartManager::restart(ipvDam);
restartManager::restart(_nldJ2HyperDLocalPlasticStrainDStrain); restartManager::restart(_nonlocalPlasticStrain);
restartManager::restart(_nldJ2HyperEffectivePlasticStrain);
restartManager::restart(_nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain);
restartManager::restart(_Dc); restartManager::restart(_Dc);
restartManager::restart(_damageBlocked); restartManager::restart(_damageBlocked);
return; return;
......
...@@ -23,18 +23,11 @@ class IPHyperViscoElastoPlasticNonLocalDamage : public IPHyperViscoElastoPlastic ...@@ -23,18 +23,11 @@ class IPHyperViscoElastoPlasticNonLocalDamage : public IPHyperViscoElastoPlastic
protected: protected:
IPCLength* ipvCL; IPCLength* ipvCL;
IPDamage* ipvDam; 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 double _Dc; // critical damage
bool _damageBlocked; bool _damageBlocked;
public: public:
IPHyperViscoElastoPlasticNonLocalDamage(const J2IsotropicHardening* comp, IPHyperViscoElastoPlasticNonLocalDamage(const J2IsotropicHardening* comp,
const J2IsotropicHardening* trac,const J2IsotropicHardening* shear, const kinematicHardening* kin, const J2IsotropicHardening* trac,const J2IsotropicHardening* shear, const kinematicHardening* kin,
...@@ -58,26 +51,8 @@ class IPHyperViscoElastoPlasticNonLocalDamage : public IPHyperViscoElastoPlastic ...@@ -58,26 +51,8 @@ class IPHyperViscoElastoPlasticNonLocalDamage : public IPHyperViscoElastoPlastic
virtual void restart(); virtual void restart();
virtual double getCurrentPlasticStrain() const { return _epspbarre;} virtual double getCurrentPlasticStrain() const { return _epspbarre;}
virtual double &getRefToCurrentPlasticStrain() { return _epspbarre;} virtual double &getRefToCurrentPlasticStrain() { return _epspbarre;}
virtual double getEffectivePlasticStrain() const { return _nldJ2HyperEffectivePlasticStrain;} virtual double getEffectivePlasticStrain() const { return _nonlocalPlasticStrain;}
virtual double &getRefToEffectivePlasticStrain() { return _nldJ2HyperEffectivePlasticStrain;} virtual double &getRefToEffectivePlasticStrain() { return _nonlocalPlasticStrain;}
virtual double &getRefToDLocalPlasticStrainDNonLocalPlasticStrain()
{
return _nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain;
}
virtual double getDLocalPlasticStrainDNonLocalPlasticStrain() const
{
return _nldJ2HyperDLocalPlasticStrainDNonLocalPlasticStrain;
}
virtual const STensor3 & getConstRefToDLocalPlasticStrainDStrain() const
{
return _nldJ2HyperDLocalPlasticStrainDStrain;
}
virtual STensor3 & getRefToDLocalPlasticStrainDStrain()
{
return _nldJ2HyperDLocalPlasticStrainDStrain;
}
virtual const IPCLength &getConstRefToIPCLength() const virtual const IPCLength &getConstRefToIPCLength() const
{ {
......
...@@ -115,9 +115,6 @@ void mlawNonLocalDamagePowerYieldHyper::constitutive( ...@@ -115,9 +115,6 @@ void mlawNonLocalDamagePowerYieldHyper::constitutive(
if(stiff) 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 // we need to correct partial P/partial F: (1-D) partial P/partial F - Peff otimes partial D partial F
Tangent*=(1.-D); Tangent*=(1.-D);
...@@ -143,14 +140,13 @@ void mlawNonLocalDamagePowerYieldHyper::constitutive( ...@@ -143,14 +140,13 @@ void mlawNonLocalDamagePowerYieldHyper::constitutive(
// partial p/partial F // partial p/partial F
dLocalPlasticStrainDStrain = ipvcur->getConstRefToDLocalPlasticStrainDStrain(); dLocalPlasticStrainDStrain = dgammadF;
// -hat{P} partial D/partial tilde p // -hat{P} partial D/partial tilde p
dStressDNonLocalPlasticStrain = Peff*(-1*ipvcur->getDDamageDp()); dStressDNonLocalPlasticStrain = Peff*(-1*ipvcur->getDDamageDp());
// partial p partial tilde p (0 if no MFH) // partial p partial tilde p (0 if no MFH)
ipvcur->getRefToDLocalPlasticStrainDNonLocalPlasticStrain()=0; dLocalPlasticStrainDNonLocalPlasticStrain = 0.;
dLocalPlasticStrainDNonLocalPlasticStrain = ipvcur->getDLocalPlasticStrainDNonLocalPlasticStrain();
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment