← Back to team overview

yade-dev team mailing list archive

[Branch ~yade-dev/yade/trunk] Rev 2235: 1. remove sdecGroupMask from functors (handled by the collider already) -- thanks to Chiara for p...

 

------------------------------------------------------------
revno: 2235
committer: Václav Šmilauer <eudoxos@xxxxxxxx>
branch nick: trunk
timestamp: Tue 2010-05-18 12:28:02 +0200
message:
  1. remove sdecGroupMask from functors (handled by the collider already) -- thanks to Chiara for pointing it out.
modified:
  doc/sphinx/conf.py
  pkg/dem/Engine/GlobalEngine/CohesiveFrictionalContactLaw.cpp
  pkg/dem/Engine/GlobalEngine/CohesiveFrictionalContactLaw.hpp
  pkg/dem/Engine/GlobalEngine/ElasticContactLaw.cpp
  pkg/dem/Engine/GlobalEngine/ElasticContactLaw.hpp
  pkg/dem/Engine/GlobalEngine/GlobalStiffnessTimeStepper.hpp
  pkg/dem/Engine/GlobalEngine/Law2_ScGeom_CapillaryPhys_Capillarity.cpp
  pkg/dem/Engine/GlobalEngine/Law2_ScGeom_CapillaryPhys_Capillarity.hpp
  pkg/dem/Engine/GlobalEngine/NormalInelasticityLaw.cpp
  pkg/dem/Engine/GlobalEngine/NormalInelasticityLaw.hpp
  pkg/dem/PreProcessor/CohesiveTriaxialTest.cpp
  pkg/dem/PreProcessor/DirectShearCis.cpp
  pkg/dem/PreProcessor/STLImporterTest.cpp
  pkg/dem/PreProcessor/SimpleShear.cpp
  pkg/dem/PreProcessor/TriaxialTest.cpp
  pkg/dem/PreProcessor/TriaxialTestWater.cpp
  pkg/dem/meta/Shop.cpp
  scripts/test/periodic-triax.py


--
lp:yade
https://code.launchpad.net/~yade-dev/yade/trunk

Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-dev/yade/trunk/+edit-subscription
=== modified file 'doc/sphinx/conf.py'
--- doc/sphinx/conf.py	2010-05-17 08:51:45 +0000
+++ doc/sphinx/conf.py	2010-05-18 10:28:02 +0000
@@ -53,7 +53,7 @@
 	id=id.replace('::','.')
 	#node=nodes.reference(rawtext,docutils.utils.unescape(txt),refuri='http://beta.arcig.cz/~eudoxos/yade/doxygen/?search=%s'%id,**options)
 	#node=nodes.reference(rawtext,docutils.utils.unescape(txt),refuri='yade.wrapper.html#yade.wrapper.%s'%id,**options)
-	return [mkYrefNode(id,txt,rawtext,role,explicitText,options)],[]
+	return [mkYrefNode(id,txt,rawtext,role,explicitText,lineno,options)],[]
 
 def yadesrc_role(role,rawtext,lineno,inliner,options={},content=[]):
 	"Handle the :ysrc:`` role, making hyperlink to bzr repository webpage with that path. Supports :ysrc:`Link text<file/name>` syntax, like usual hyperlinking roles. If target ends with ``/``, it is assumed to be a directory."
@@ -71,7 +71,7 @@
 	'yade._packObb':'yade.pack'
 }
 
-def mkYrefNode(target,text,rawtext,role,explicitText,options={}):
+def mkYrefNode(target,text,rawtext,role,explicitText,lineno,options={}):
 	"""Create hyperlink to yade target. Targets starting with literal 'yade.' are absolute, but the leading 'yade.' will be stripped from the link text. Absolute tergets are supposed to live in page named yade.[module].html, anchored at #yade.[module2].[rest of target], where [module2] is identical to [module], unless mapped over by moduleMap.
 	
 	Other targets are supposed to live in yade.wrapper (such as c++ classes)."""
@@ -94,11 +94,15 @@
 	else:
 		uri=(('%%yade.wrapper#yade.wrapper.%s'%target) if writer=='latex' else 'yade.wrapper.html#yade.wrapper.%s'%target)
 		#print writer,uri
-	#refnode=addnodes.pending_xref(rawtext,reftype=role)
-	#refnode['reftarget']=target
-	#refnode+=nodes.literal(rawtext,text,classes=['ref',role])
-	#ret.rawtext,reftype=role,
-	return nodes.reference(rawtext,docutils.utils.unescape(text),refuri=uri,**options)
+	if 0:
+		refnode=addnodes.pending_xref(rawtext,reftype=role,refexplicit=explicitText)
+		refnode.line=lineno
+		refnode['reftarget']=target
+		refnode+=nodes.literal(rawtext,text,classes=['ref',role])
+		return [refnode],[]
+		#ret.rawtext,reftype=role,
+	else:
+		return nodes.reference(rawtext,docutils.utils.unescape(text),refuri=uri,**options)
 	#return [refnode],[]
 
 def ydefault_role(role,rawtext,text,lineno,inliner,options={},content=[]):

=== modified file 'pkg/dem/Engine/GlobalEngine/CohesiveFrictionalContactLaw.cpp'
--- pkg/dem/Engine/GlobalEngine/CohesiveFrictionalContactLaw.cpp	2010-05-13 20:19:38 +0000
+++ pkg/dem/Engine/GlobalEngine/CohesiveFrictionalContactLaw.cpp	2010-05-18 10:28:02 +0000
@@ -35,7 +35,6 @@
 void CohesiveFrictionalContactLaw::action()
 {
 	if(!functor) functor=shared_ptr<Law2_ScGeom_CohFrictPhys_ElasticPlastic>(new Law2_ScGeom_CohFrictPhys_ElasticPlastic);
-	functor->sdecGroupMask=sdecGroupMask;
 	functor->erosionActivated = erosionActivated;
 	functor->detectBrokenBodies = detectBrokenBodies;
 	functor->always_use_moment_law = always_use_moment_law;

=== modified file 'pkg/dem/Engine/GlobalEngine/CohesiveFrictionalContactLaw.hpp'
--- pkg/dem/Engine/GlobalEngine/CohesiveFrictionalContactLaw.hpp	2010-04-26 09:02:51 +0000
+++ pkg/dem/Engine/GlobalEngine/CohesiveFrictionalContactLaw.hpp	2010-05-18 10:28:02 +0000
@@ -17,7 +17,6 @@
 	public:
 	virtual void go(shared_ptr<InteractionGeometry>& _geom, shared_ptr<InteractionPhysics>& _phys, Interaction* I, Scene*);
 	YADE_CLASS_BASE_DOC_ATTRS(Law2_ScGeom_CohFrictPhys_ElasticPlastic,LawFunctor,"Law for linear traction-compression-bending-twisting, with cohesion+friction and Mohr-Coulomb plasticity surface. Can be elastic-fragile or perfectly elastic-plastic. Creep at contact can be enabled.\n\n.. note::\n This law uses :yref:`ScGeom`.",
-		((int,sdecGroupMask,1,"Bitmask for allowing collision between particles :yref:`Body::groupMask`"))
 		((bool,neverErase,false,"Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. :yref:`Law2_ScGeom_CapillaryPhys_Capillarity`)"))
 		((bool,momentRotationLaw,false,"use bending/twisting moment at contacts. See :yref:`CohesiveFrictionalContactLaw::always_use_moment_law` for details."))
 		((bool,always_use_moment_law,false,"If true, use bending/twisting moments at all contacts. If false, compute moments only for cohesive contacts."))
@@ -43,7 +42,6 @@
 		void action();
 		
 	YADE_CLASS_BASE_DOC_ATTRS(CohesiveFrictionalContactLaw,GlobalEngine,"[DEPRECATED] Loop over interactions applying :yref:`Law2_ScGeom_CohFrictPhys_ElasticPlastic` on all interactions.\n\n.. note::\n  Use :yref:`InteractionDispatchers` and :yref:`Law2_ScGeom_CohFrictPhys_ElasticPlastic` instead of this class for performance reasons.",
-		((int,sdecGroupMask,1,"Bitmask for allowing collision between particles :yref:`Body::groupMask`"))
 		((bool,neverErase,false,"Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. :yref:`Law2_ScGeom_CapillaryPhys_Capillarity`)"))
 		((bool,momentRotationLaw,false,"use bending/twisting moment at contacts. See :yref:`CohesiveFrictionalContactLaw::always_use_moment_law` for details."))
 		((bool,always_use_moment_law,false,"If true, use bending/twisting moments at all contacts. If false, compute moments only for cohesive contacts."))

=== modified file 'pkg/dem/Engine/GlobalEngine/ElasticContactLaw.cpp'
--- pkg/dem/Engine/GlobalEngine/ElasticContactLaw.cpp	2010-05-13 20:19:38 +0000
+++ pkg/dem/Engine/GlobalEngine/ElasticContactLaw.cpp	2010-05-18 10:28:02 +0000
@@ -20,7 +20,6 @@
 void ElasticContactLaw::action()
 {
 	if(!functor) functor=shared_ptr<Law2_ScGeom_FrictPhys_Basic>(new Law2_ScGeom_FrictPhys_Basic);
-	functor->sdecGroupMask=sdecGroupMask;
 	functor->useShear=useShear;
 	functor->neverErase=neverErase;
 	FOREACH(const shared_ptr<Interaction>& I, *scene->interactions){

=== modified file 'pkg/dem/Engine/GlobalEngine/ElasticContactLaw.hpp'
--- pkg/dem/Engine/GlobalEngine/ElasticContactLaw.hpp	2010-04-21 17:17:54 +0000
+++ pkg/dem/Engine/GlobalEngine/ElasticContactLaw.hpp	2010-05-18 10:28:02 +0000
@@ -23,7 +23,6 @@
 		virtual void go(shared_ptr<InteractionGeometry>& _geom, shared_ptr<InteractionPhysics>& _phys, Interaction* I, Scene*);
 		Real elasticEnergy ();
 	YADE_CLASS_BASE_DOC_ATTRS_CTOR_PY(Law2_ScGeom_FrictPhys_Basic,LawFunctor,"Law for linear compression, without cohesion and Mohr-Coulomb plasticity surface.\n\n.. note::\n This law uses :yref:`ScGeom`; there is also functionally equivalent :yref:`Law2_Dem3DofGeom_FrictPhys_Basic`, which uses :yref:`Dem3DofGeom`.",
-		((int,sdecGroupMask,1,"Bitmask for allowing collision between particles :yref:`Body::groupMask`"))
 		((bool,neverErase,false,"Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. :yref:`Law2_ScGeom_CapillaryPhys_Capillarity`)"))
 		((bool,useShear,false,"Use ScGeom::updateShear rather than ScGeom::updateShearForce for shear force computation."))
 		((bool,traceEnergy,false,"Define the total energy dissipated in plastic slips at all contacts."))
@@ -64,7 +63,6 @@
 	public :
 		void action();
 	YADE_CLASS_BASE_DOC_ATTRS(ElasticContactLaw,GlobalEngine,"[DEPRECATED] Loop over interactions applying :yref:`Law2_ScGeom_FrictPhys_Basic` on all interactions.\n\n.. note::\n  Use :yref:`InteractionDispatchers` and :yref:`Law2_ScGeom_FrictPhys_Basic` instead of this class for performance reasons.",
-		((int,sdecGroupMask,1,"Bitmask for allowing collision between particles :yref:`Body::groupMask`"))
 		((bool,neverErase,false,"Keep interactions even if particles go away from each other (only in case another constitutive law is in the scene, e.g. :yref:`Law2_ScGeom_CapillaryPhys_Capillarity`)"))
 		((bool,useShear,false,"Use :yref:`ScGeom`::updateShear rather than :yref:`ScGeom`::updateShearForce for shear force computation."))
 	);

=== modified file 'pkg/dem/Engine/GlobalEngine/GlobalStiffnessTimeStepper.hpp'
--- pkg/dem/Engine/GlobalEngine/GlobalStiffnessTimeStepper.hpp	2010-03-20 12:40:44 +0000
+++ pkg/dem/Engine/GlobalEngine/GlobalStiffnessTimeStepper.hpp	2010-05-18 10:28:02 +0000
@@ -32,7 +32,6 @@
 		void findTimeStepFromBody(const shared_ptr<Body>& body, Scene * ncb);
 	
 	public :
-		int sdecGroupMask; // FIXME - to be removed -> not used here but set in preprocessors, removing breaks compilation.
 		//! used as a multiplier on the theoretical critical timestep (compensate some approximations in the computation)
 		virtual ~GlobalStiffnessTimeStepper();
 	

=== modified file 'pkg/dem/Engine/GlobalEngine/Law2_ScGeom_CapillaryPhys_Capillarity.cpp'
--- pkg/dem/Engine/GlobalEngine/Law2_ScGeom_CapillaryPhys_Capillarity.cpp	2010-04-25 15:46:26 +0000
+++ pkg/dem/Engine/GlobalEngine/Law2_ScGeom_CapillaryPhys_Capillarity.cpp	2010-05-18 10:28:02 +0000
@@ -30,7 +30,6 @@
 
 // Law2_ScGeom_CapillaryPhys_Capillarity::Law2_ScGeom_CapillaryPhys_Capillarity() : GlobalEngine()
 // {
-//         sdecGroupMask=1;
 // 
 //         CapillaryPressure=0;
 //         fusionDetection = false;
@@ -108,7 +107,6 @@
                         unsigned int id1 = interaction->getId1();
                         unsigned int id2 = interaction->getId2();
 			
-			if( !( (*bodies)[id1]->getGroupMask() & (*bodies)[id2]->getGroupMask() & sdecGroupMask)  ) continue; // skip other groups, BTW: this is example of a good usage of 'continue' keyword
 			
                         /// interaction geometry search (this test is to compute capillarity only between spheres (probably a better way to do that)
 			int geometryIndex1 = (*bodies)[id1]->shape->getClassIndex(); // !!!

=== modified file 'pkg/dem/Engine/GlobalEngine/Law2_ScGeom_CapillaryPhys_Capillarity.hpp'
--- pkg/dem/Engine/GlobalEngine/Law2_ScGeom_CapillaryPhys_Capillarity.hpp	2010-04-20 15:24:37 +0000
+++ pkg/dem/Engine/GlobalEngine/Law2_ScGeom_CapillaryPhys_Capillarity.hpp	2010-05-18 10:28:02 +0000
@@ -94,7 +94,6 @@
 		virtual void postProcessAttributes(bool deserializing);
 		
 	YADE_CLASS_BASE_DOC_ATTRS(Law2_ScGeom_CapillaryPhys_Capillarity,GlobalEngine,".. note::\n\t This engine is deprecated → needs some work to be conform with the new formalism.\n\n This law allows to take into account capillary forces/effects between spheres coming from the presence of interparticular liquid bridges (menisci).\n\n refs:\n\n#. in french [Scholtes2009]_ (lot of documentation) \n#. in english [Scholtes2009b]_ (less documentation), pg. 64-75.\n\nThe law needs ascii files M(r=i) with i=R1/R2 to work (see https://yade-dem.org/index.php/CapillaryTriaxialTest). These ASCII files contain a set of results from the resolution of the Laplace-Young equation for different configurations of the interacting geometry.\n\nThe control parameter is the capillary pressure (or suction) Uc = ugas - Uliquid. Liquid bridges properties (volume V, extent over interacting grains delta1 and delta2) are computed as a result of the defined capillary pressure and of the interacting geometry (spheres radii and interparticular distance).",
-				  ((int,sdecGroupMask,1,"? the interaction only considers particles with same mask ?"))
 				  ((Real,CapillaryPressure,0.,"Value of the capillary pressure Uc defines as Uc=Ugas-Uliquid"))
 				  ((bool,fusionDetection,false,"If true potential menisci overlaps are checked"))
 				  ((bool,binaryFusion,true,"If true, capillary forces are set to zero as soon as, at least, 1 overlap (menisci fusion) is detected"))

=== modified file 'pkg/dem/Engine/GlobalEngine/NormalInelasticityLaw.cpp'
--- pkg/dem/Engine/GlobalEngine/NormalInelasticityLaw.cpp	2010-05-13 20:19:38 +0000
+++ pkg/dem/Engine/GlobalEngine/NormalInelasticityLaw.cpp	2010-05-18 10:28:02 +0000
@@ -40,8 +40,6 @@
 		int id1 = contact->getId1();
 		int id2 = contact->getId2();
 // 		cout << "contact entre " << id1 << " et " << id2 << " reel ? " << contact->isReal() << endl;
-		if ( !( (*bodies)[id1]->getGroupMask() & (*bodies)[id2]->getGroupMask() & sdecGroupMask)  )
-			continue; // skip other groups,
 
 		State* de1 = Body::byId(id1,scene)->state.get();
 		State* de2 = Body::byId(id2,scene)->state.get();

=== modified file 'pkg/dem/Engine/GlobalEngine/NormalInelasticityLaw.hpp'
--- pkg/dem/Engine/GlobalEngine/NormalInelasticityLaw.hpp	2010-04-19 13:32:26 +0000
+++ pkg/dem/Engine/GlobalEngine/NormalInelasticityLaw.hpp	2010-05-18 10:28:02 +0000
@@ -26,7 +26,6 @@
 // 				LawFunctor,
 				GlobalEngine,
 				"Contact law including cohesion, moment transfer and inelastic compression behaviour\n\n This contact Law is inspired by :yref:`CohesiveFrictionalContactLaw` (inspired itselve directly from the work of Plassiard & Belheine, see the corresponding articles in (Annual Report 2006) in http://geo.hmg.inpg.fr/frederic/Discrete_Element_Group_FVD.html for example).\n\n It allows so to set moments, cohesion, tension limit and (that's the difference) inelastic unloadings in compression between bodies. All that concerned brokenBodies (this flag and the erosionactivated one) and the useless 'iter' has been suppressed.\n\n The Relationsships corresponding are Ip2_2xCohFrictMat_NormalInelasticityPhys, where the rigidities, the friction angles (with their tan()), and the orientations of the interactions are calculated. No more cohesion and tension limits are computed for all the interactions.\n\n To use it you should also use :\n- :yref:`CohFrictMat` for bodies, with *isCohesive* = 1 (A verifier ce dernier point)\n- :yref:`Ip2_2xCohFrictMat_NormalInelasticityPhys` (=> which involves interactions of :yref:`NormalInelasticityPhys` type).\n\n The effect of this law on the normal force are illustrated in scripts/NormalInelasticityTest.py",
-				((int,sdecGroupMask,1,"?"))
 				((Real,coeff_dech,1.0,"=kn(unload) / kn(load)"))
 				((bool,momentRotationLaw,true,"boolean, true=> computation of a torque (against relative rotation) exchanged between particles"))
 				((bool,momentAlwaysElastic,false,"boolean, true=> the torque (computed only if momentRotationLaw !!) is not limited by a plastic threshold"))

=== modified file 'pkg/dem/PreProcessor/CohesiveTriaxialTest.cpp'
--- pkg/dem/PreProcessor/CohesiveTriaxialTest.cpp	2010-05-03 12:17:44 +0000
+++ pkg/dem/PreProcessor/CohesiveTriaxialTest.cpp	2010-05-18 10:28:02 +0000
@@ -384,13 +384,11 @@
 
 	
 	shared_ptr<GlobalStiffnessTimeStepper> globalStiffnessTimeStepper(new GlobalStiffnessTimeStepper);
-	globalStiffnessTimeStepper->sdecGroupMask = 2;
 	globalStiffnessTimeStepper->timeStepUpdateInterval = timeStepUpdateInterval;
 	globalStiffnessTimeStepper->defaultDt = defaultDt;
 	globalStiffnessTimeStepper->timestepSafetyCoefficient = 0.2;
 	
 	shared_ptr<CohesiveFrictionalContactLaw> cohesiveFrictionalContactLaw(new CohesiveFrictionalContactLaw);
-	cohesiveFrictionalContactLaw->sdecGroupMask = 2;
 	
 	
 	triaxialcompressionEngine = shared_ptr<TriaxialCompressionEngine> (new TriaxialCompressionEngine);

=== modified file 'pkg/dem/PreProcessor/DirectShearCis.cpp'
--- pkg/dem/PreProcessor/DirectShearCis.cpp	2010-05-03 12:17:44 +0000
+++ pkg/dem/PreProcessor/DirectShearCis.cpp	2010-05-18 10:28:02 +0000
@@ -301,7 +301,6 @@
  	
 
 	shared_ptr<ElasticCriterionTimeStepper> sdecTimeStepper(new ElasticCriterionTimeStepper);
-	sdecTimeStepper->sdecGroupMask = 1;
 	sdecTimeStepper->timeStepUpdateInterval = timeStepUpdateInterval;
 
 

=== modified file 'pkg/dem/PreProcessor/STLImporterTest.cpp'
--- pkg/dem/PreProcessor/STLImporterTest.cpp	2010-05-03 12:17:44 +0000
+++ pkg/dem/PreProcessor/STLImporterTest.cpp	2010-05-18 10:28:02 +0000
@@ -226,7 +226,6 @@
 		kinematic->subscribedBodies.push_back((*bi)->getId());
 
 	shared_ptr<ElasticCriterionTimeStepper> sdecTimeStepper(new ElasticCriterionTimeStepper);
-	sdecTimeStepper->sdecGroupMask = 1;
 	sdecTimeStepper->timeStepUpdateInterval = timeStepUpdateInterval;
 
 	rootBody->engines.clear();

=== modified file 'pkg/dem/PreProcessor/SimpleShear.cpp'
--- pkg/dem/PreProcessor/SimpleShear.cpp	2010-04-26 13:58:23 +0000
+++ pkg/dem/PreProcessor/SimpleShear.cpp	2010-05-18 10:28:02 +0000
@@ -272,7 +272,6 @@
 	
 
 	shared_ptr<GlobalStiffnessTimeStepper> globalStiffnessTimeStepper(new GlobalStiffnessTimeStepper);
-	globalStiffnessTimeStepper->sdecGroupMask = 1;
 	globalStiffnessTimeStepper->timeStepUpdateInterval = timeStepUpdateInterval;
 	globalStiffnessTimeStepper->defaultDt=1e-5;
 

=== modified file 'pkg/dem/PreProcessor/TriaxialTest.cpp'
--- pkg/dem/PreProcessor/TriaxialTest.cpp	2010-05-11 13:01:03 +0000
+++ pkg/dem/PreProcessor/TriaxialTest.cpp	2010-05-18 10:28:02 +0000
@@ -311,7 +311,6 @@
 	
 
 	globalStiffnessTimeStepper=shared_ptr<GlobalStiffnessTimeStepper>(new GlobalStiffnessTimeStepper);
-	globalStiffnessTimeStepper->sdecGroupMask = 2;
 	globalStiffnessTimeStepper->timeStepUpdateInterval = timeStepUpdateInterval;
 	globalStiffnessTimeStepper->defaultDt = defaultDt;
 	
@@ -368,20 +367,12 @@
 			ids->physDispatcher=interactionPhysicsDispatcher;
 			ids->lawDispatcher=shared_ptr<LawDispatcher>(new LawDispatcher);
 			if(!facetWalls && !wallWalls){
-				shared_ptr<Law2_ScGeom_FrictPhys_Basic> see(new Law2_ScGeom_FrictPhys_Basic); see->sdecGroupMask=2;
+				shared_ptr<Law2_ScGeom_FrictPhys_Basic> see(new Law2_ScGeom_FrictPhys_Basic);
 				ids->lawDispatcher->add(see);
 			} else {
 				ids->lawDispatcher->add(shared_ptr<Law2_Dem3DofGeom_FrictPhys_Basic>(new Law2_Dem3DofGeom_FrictPhys_Basic));
 			}
 		rootBody->engines.push_back(ids);
-// 	} else {
-// 		assert(!facetWalls);
-// 		rootBody->engines.push_back(interactionGeometryDispatcher);
-// 		rootBody->engines.push_back(interactionPhysicsDispatcher);
-// 		shared_ptr<ElasticContactLaw> elasticContactLaw(new ElasticContactLaw);
-// 		elasticContactLaw->sdecGroupMask = 2;
-// 		rootBody->engines.push_back(elasticContactLaw);
-// 	}
 	rootBody->engines.push_back(globalStiffnessTimeStepper);
 	rootBody->engines.push_back(triaxialcompressionEngine);
 	if(recordIntervalIter>0 && !noFiles) rootBody->engines.push_back(triaxialStateRecorder);

=== modified file 'pkg/dem/PreProcessor/TriaxialTestWater.cpp'
--- pkg/dem/PreProcessor/TriaxialTestWater.cpp	2010-05-03 12:17:44 +0000
+++ pkg/dem/PreProcessor/TriaxialTestWater.cpp	2010-05-18 10:28:02 +0000
@@ -412,24 +412,20 @@
 	gravityCondition->gravity = gravity;
 	
 	shared_ptr<GlobalStiffnessTimeStepper> globalStiffnessTimeStepper(new GlobalStiffnessTimeStepper);
-	globalStiffnessTimeStepper->sdecGroupMask = 2;
 	globalStiffnessTimeStepper->timeStepUpdateInterval = timeStepUpdateInterval;
 	globalStiffnessTimeStepper->defaultDt = defaultDt;
 	
 	shared_ptr<ElasticContactLaw> elasticContactLaw(new ElasticContactLaw);
-	elasticContactLaw->sdecGroupMask = 2;
 	elasticContactLaw->neverErase = true;
 	
 
 	// capillary
 	shared_ptr<Law2_ScGeom_CapillaryPhys_Capillarity> capillaryCohesiveLaw(new Law2_ScGeom_CapillaryPhys_Capillarity); 
-	capillaryCohesiveLaw->sdecGroupMask = 2;	
 	capillaryCohesiveLaw->CapillaryPressure = CapillaryPressure;
 // 	capillaryCohesiveLaw->fusionDetection = fusionDetection;
 // 	capillaryCohesiveLaw->binaryFusion = binaryFusion;
 
 	//shared_ptr<StiffnessCounter> stiffnesscounter(new StiffnessCounter);
-	//stiffnesscounter->sdecGroupMask = 2;
 	//stiffnesscounter->interval = timeStepUpdateInterval;
 	
 	

=== modified file 'pkg/dem/meta/Shop.cpp'
--- pkg/dem/meta/Shop.cpp	2010-05-05 21:36:25 +0000
+++ pkg/dem/meta/Shop.cpp	2010-05-18 10:28:02 +0000
@@ -218,8 +218,6 @@
 
 	defaults["container_is_not_empty"]=boost::any(0); // prevent loops from ensureInit();
 
-	setDefault<int>("body_sdecGroupMask",55);
-	
 	setDefault("phys_density",2e3);
 	setDefault("phys_young",30e9);
 	setDefault("phys_poisson",.3);
@@ -268,14 +266,8 @@
 	//engines
 	rootBody->engines.clear();
 
-	/* big fat FIXME:
-	 * for some */
-	#define GO(type) try{cerr<<"Cast to" #type<<" gives: "<<getDefault<type>("body_sdecGroupMask")<<endl;} catch(boost::bad_any_cast){}
-	/*	GO(unsigned short); GO(short); GO(char);GO(int);GO(unsigned int);GO(long);GO(unsigned long);GO(long long);GO(unsigned long long); */
-	
 	if(getDefault<int>("param_timeStepUpdateInterval")>0){
 		shared_ptr<GlobalStiffnessTimeStepper> sdecTimeStepper(new GlobalStiffnessTimeStepper);
-		sdecTimeStepper->sdecGroupMask=getDefault<int>("body_sdecGroupMask");
 		sdecTimeStepper->timeStepUpdateInterval=getDefault<int>("param_timeStepUpdateInterval");
 		sdecTimeStepper->timeStepUpdateInterval=300;
 		rootBody->engines.push_back(sdecTimeStepper);
@@ -298,7 +290,6 @@
 	rootBody->engines.push_back(interactionPhysicsDispatcher);
 		
 	shared_ptr<ElasticContactLaw> constitutiveLaw(new ElasticContactLaw);
-	constitutiveLaw->sdecGroupMask = getDefault<int>("body_sdecGroupMask");
 	rootBody->engines.push_back(constitutiveLaw);
 
 	if(getDefault<Vector3r>("param_gravity")!=Vector3r(0,0,0)){

=== modified file 'scripts/test/periodic-triax.py'
--- scripts/test/periodic-triax.py	2010-01-10 09:09:32 +0000
+++ scripts/test/periodic-triax.py	2010-05-18 10:28:02 +0000
@@ -9,7 +9,7 @@
 #O.cell.Hsize=Matrix3(0.1,0,0, 0,0.1,0, 0,0,0.1)
 sp=pack.SpherePack()
 radius=5e-3
-num=sp.makeCloud(Vector3().ZERO,O.cell.refSize,radius,.2,500,periodic=True) # min,max,radius,rRelFuzz,spheresInCell,periodic
+num=sp.makeCloud(Vector3().Zero,O.cell.refSize,radius,.2,500,periodic=True) # min,max,radius,rRelFuzz,spheresInCell,periodic
 O.bodies.append([utils.sphere(s[0],s[1]) for s in sp])
 
 
@@ -24,8 +24,8 @@
 	),
 	#PeriTriaxController(maxUnbalanced=0.01,relStressTol=0.02,goal=[-1e4,-1e4,0],stressMask=3,globUpdate=5,maxStrainRate=[1.,1.,1.],doneHook='triaxDone()',label='triax'),
 	#using cell inertia
-	PeriTriaxController(dynCell=True,mass=0.2,maxUnbalanced=0.01,relStressTol=0.02,goal=[-1e4,-1e4,0],stressMask=3,globUpdate=5,maxStrainRate=[1.,1.,1.],doneHook='triaxDone()',label='triax'),
-	NewtonIntegrator(damping=.2),
+	PeriTriaxController(dynCell=True,mass=0.2,maxUnbalanced=0.01,relStressTol=0.02,goal=(-1e4,-1e4,0),stressMask=3,globUpdate=5,maxStrainRate=(1.,1.,1.),doneHook='triaxDone()',label='triax'),
+	NewtonIntegrator(damping=.2,homotheticCellResize=True),
 ]
 O.dt=utils.PWaveTimeStep()
 O.run();
@@ -35,12 +35,12 @@
 def triaxDone():
 	global phase
 	if phase==0:
-		print 'Here we are: stress',triax['stress'],'strain',triax['strain'],'stiffness',triax['stiff']
+		print 'Here we are: stress',triax.stress,'strain',triax.strain,'stiffness',triax.stiff
 		print 'Now εz will go from 0 to .2 while σx and σy will be kept the same.'
-		triax['goal']=[-1e4,-1e4,-0.2]
+		triax.goal=(-1e4,-1e4,-0.2)
 		phase+=1
 	elif phase==1:
-		print 'Here we are: stress',triax['stress'],'strain',triax['strain'],'stiffness',triax['stiff']
+		print 'Here we are: stress',triax.stress,'strain',triax.strain,'stiffness',triax.stiff
 		print 'Done, pausing now.'
 		O.pause()