← Back to team overview

yade-dev team mailing list archive

[svn] r1671 - in trunk/pkg: common/Engine/StandAloneEngine dem/DataClass/InteractionGeometry dem/Engine/DeusExMachina

 

Author: eudoxos
Date: 2009-02-19 20:30:25 +0100 (Thu, 19 Feb 2009)
New Revision: 1671

Modified:
   trunk/pkg/common/Engine/StandAloneEngine/SpatialQuickSortCollider.cpp
   trunk/pkg/dem/DataClass/InteractionGeometry/SpheresContactGeometry.cpp
   trunk/pkg/dem/DataClass/InteractionGeometry/SpheresContactGeometry.hpp
   trunk/pkg/dem/Engine/DeusExMachina/TriaxialCompressionEngine.cpp
   trunk/pkg/dem/Engine/DeusExMachina/TriaxialCompressionEngine.hpp
Log:
1. Make triaxial stop if !autoCompressionActivation and already unloaded. If this breaks something, please let me know, we can do it otherwise, but, for Cundall's sake, can we keep the same behavior for at least 6 months??
2. SpatialQuickSortCollider will not delete real contacts, even if bodies don't collide.
3. Remove redundant attribute registration from SpheresContactGeometry


Modified: trunk/pkg/common/Engine/StandAloneEngine/SpatialQuickSortCollider.cpp
===================================================================
--- trunk/pkg/common/Engine/StandAloneEngine/SpatialQuickSortCollider.cpp	2009-02-17 20:49:02 UTC (rev 1670)
+++ trunk/pkg/common/Engine/StandAloneEngine/SpatialQuickSortCollider.cpp	2009-02-19 19:30:25 UTC (rev 1671)
@@ -105,7 +105,7 @@
 	ii    = transientInteractions->begin();
 	iiEnd = transientInteractions->end();
 	for( ; ii!=iiEnd ; ++ii)
-	   if ( ! (interaction = *ii)->cycle ) transientInteractions->erase( interaction->getId1(), interaction->getId2());
+	   if ( !(interaction = *ii)->cycle && !interacion->isReal ) transientInteractions->erase( interaction->getId1(), interaction->getId2());
 
 }
 

Modified: trunk/pkg/dem/DataClass/InteractionGeometry/SpheresContactGeometry.cpp
===================================================================
--- trunk/pkg/dem/DataClass/InteractionGeometry/SpheresContactGeometry.cpp	2009-02-17 20:49:02 UTC (rev 1670)
+++ trunk/pkg/dem/DataClass/InteractionGeometry/SpheresContactGeometry.cpp	2009-02-19 19:30:25 UTC (rev 1671)
@@ -63,7 +63,7 @@
 Real SpheresContactGeometry::slipToDisplacementTMax(Real displacementTMax){
 	assert(hasShear);
 	// very close, reset shear
-	if(displacementTMax<=Mathr::ZERO_TOLERANCE){ setTgPlanePts(Vector3r(0,0,0),Vector3r(0,0,0)); return displacementTMax;}
+	if(displacementTMax<=0.){ setTgPlanePts(Vector3r(0,0,0),Vector3r(0,0,0)); return displacementTMax;}
 	// otherwise
 	Vector3r p1=contPtInTgPlane1(), p2=contPtInTgPlane2();
 	Real currDistSq=(p2-p1).SquaredLength();

Modified: trunk/pkg/dem/DataClass/InteractionGeometry/SpheresContactGeometry.hpp
===================================================================
--- trunk/pkg/dem/DataClass/InteractionGeometry/SpheresContactGeometry.hpp	2009-02-17 20:49:02 UTC (rev 1670)
+++ trunk/pkg/dem/DataClass/InteractionGeometry/SpheresContactGeometry.hpp	2009-02-19 19:30:25 UTC (rev 1671)
@@ -103,7 +103,6 @@
 			(contactPoint)
 			(radius1)
 			(radius2)
-			(contactPoint) // to allow access from python
 			(facetContactFace)
 			// hasShear
 			(hasShear)

Modified: trunk/pkg/dem/Engine/DeusExMachina/TriaxialCompressionEngine.cpp
===================================================================
--- trunk/pkg/dem/Engine/DeusExMachina/TriaxialCompressionEngine.cpp	2009-02-17 20:49:02 UTC (rev 1670)
+++ trunk/pkg/dem/Engine/DeusExMachina/TriaxialCompressionEngine.cpp	2009-02-19 19:30:25 UTC (rev 1671)
@@ -177,13 +177,16 @@
 			else if ( currentState==STATE_ISO_UNLOADING && autoCompressionActivation ) {
 				doStateTransition (ncb, STATE_TRIAX_LOADING ); computeStressStrain ( ncb );
 			}
+			// stop simulation if unloaded and compression is not activate automatically
+			else if (currentState==STATE_ISO_UNLOADING && !autoCompressionActivation){
+				Omega::instance().stopSimulationLoop();
+			}
 			// huh?! this will never happen, because of the first condition...
 			else 
 			{ 
 			doStateTransition (ncb, STATE_LIMBO );
 			}
 		}
-
 		else if ( porosity<=fixedPorosity && currentState==STATE_FIXED_POROSITY_COMPACTION )
 		{
 			Omega::instance().stopSimulationLoop();

Modified: trunk/pkg/dem/Engine/DeusExMachina/TriaxialCompressionEngine.hpp
===================================================================
--- trunk/pkg/dem/Engine/DeusExMachina/TriaxialCompressionEngine.hpp	2009-02-17 20:49:02 UTC (rev 1670)
+++ trunk/pkg/dem/Engine/DeusExMachina/TriaxialCompressionEngine.hpp	2009-02-19 19:30:25 UTC (rev 1671)
@@ -33,7 +33,7 @@
  *    the mean pressure sigmaLateralConfinement is reached (and stabilizes).
  *    NOTE: this state will be skipped if sigmaLateralConfinement == sigmaIsoCompaction.
  * 3. STATE_TRIAX_LOADING: confined uniaxial compression:
- *	constant sigmaLateralConfinement is kept at lateral walls (left, right, front, back), while
+ * 	constant sigmaLateralConfinement is kept at lateral walls (left, right, front, back), while
  * 	top and bottom walls load the packing in their axis (by straining), until the value of epsilonMax
  * 	(deformation along the loading axis) is reached. At this point, the simulation is stopped.
  * 4. STATE_FIXED_POROSITY_COMPACTION: isotropic compaction (compression) until