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


_______________________________________________
Mailing list: https://launchpad.net/~yade-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to