yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #12830
[Branch ~yade-pkg/yade/git-trunk] Rev 3931: fixed a small bug in shear force computation in CPM model
------------------------------------------------------------
revno: 3931
committer: Jan Stransky <jan.stransky@xxxxxxxxxxx>
timestamp: Thu 2016-09-15 16:50:47 +0200
message:
fixed a small bug in shear force computation in CPM model
modified:
pkg/dem/ConcretePM.cpp
--
lp:yade
https://code.launchpad.net/~yade-pkg/yade/git-trunk
Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-pkg/yade/git-trunk/+edit-subscription
=== modified file 'pkg/dem/ConcretePM.cpp'
--- pkg/dem/ConcretePM.cpp 2016-05-13 13:07:22 +0000
+++ pkg/dem/ConcretePM.cpp 2016-09-15 14:50:47 +0000
@@ -331,6 +331,7 @@
/* shorthands */
Real& epsN(phys->epsN);
Vector3r& epsT(phys->epsT);
+ Vector3r& epsTPl(phys->epsTPl);
Real& kappaD(phys->kappaD);
/* Real& epsPlSum(phys->epsPlSum); */
const Real& E(phys->E); \
@@ -395,13 +396,12 @@
Real sigmaNSoft=E*(epsSoft+relKnSoft*(epsN-epsNPl-epsSoft));
if(sigmaNSoft>sigmaN){ /*assert(sigmaNSoft>sigmaN);*/ epsNPl+=(sigmaN-sigmaNSoft)/E; sigmaN=sigmaNSoft; }
}
- sigmaT = G*epsT; /* trial stress */
+ sigmaT = G*(epsT-epsTPl); /* trial stress */
Real yieldSigmaT = std::max((Real)0.,undamagedCohesion*(1-omega)-sigmaN*tanFrictionAngle); /* Mohr-Coulomb law with damage */
if (sigmaT.squaredNorm() > yieldSigmaT*yieldSigmaT) {
Real scale = yieldSigmaT/sigmaT.norm();
sigmaT *= scale; /* stress return */
- //epsT *= scale;
- /* epsPlSum += yieldSigmaT*geom->slipToStrainTMax(yieldSigmaT/G);*/ /* adjust strain */
+ epsTPl += sigmaT*(1-scale)/G;
}
relResidualStrength = isCohesive? (kappaD<epsCrackOnset? 1. : (1-omega)*(kappaD)/epsCrackOnset) : 0;
#endif