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