← Back to team overview

yade-dev team mailing list archive

[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