← Back to team overview

yade-dev team mailing list archive

[svn] r1475 - eudoxos

 

------------------------------------------------------------------------
r1475 | eudoxos | 2008-08-19 20:33:29 +0200 (wto, 19 sie 2008) | 2 lines
Changed paths:
   M /trunk/pkg/dem/Engine/StandAloneEngine/GlobalStiffnessCounter.cpp
   M /trunk/pkg/dem/Engine/StandAloneEngine/GlobalStiffnessCounter.hpp

Fix physical action index.

------------------------------------------------------------------------
Index: pkg/dem/Engine/StandAloneEngine/GlobalStiffnessCounter.cpp
===================================================================
--- pkg/dem/Engine/StandAloneEngine/GlobalStiffnessCounter.cpp	(revision 1474)
+++ pkg/dem/Engine/StandAloneEngine/GlobalStiffnessCounter.cpp	(revision 1475)
@@ -8,6 +8,7 @@
 
 #include<yade/pkg-dem/SpheresContactGeometry.hpp>
 #include<yade/pkg-common/NormalShearInteractions.hpp>
+#include<yade/pkg-dem/ElasticContactInteraction.hpp>
 #include<yade/core/Omega.hpp>
 #include<yade/core/MetaBody.hpp>
 #include<yade/pkg-common/Force.hpp>
@@ -58,8 +59,9 @@
 
 		SpheresContactGeometry* geom=YADE_CAST<SpheresContactGeometry*>(contact->interactionGeometry.get()); assert(geom);
 		// FIXME: for some reason, the following cast is not successful. Please help!
-		cerr<<__FILE__<<":"<<__LINE__<<" Interaction physics of type "<<contact->interactionPhysics->getClassName()<<" ("<<typeid(*contact->interactionPhysics).name()<<")"<<endl;
-		NormalShearInteraction* phys=YADE_CAST<NormalShearInteraction*>(contact->interactionPhysics.get()); assert(phys);
+		//cerr<<__FILE__<<":"<<__LINE__<<" Interaction physics of type "<<contact->interactionPhysics->getClassName()<<" ("<<typeid(*contact->interactionPhysics).name()<<")"<<endl;
+		//NormalShearInteraction* phys=YADE_CAST<NormalShearInteraction*>(contact->interactionPhysics.get()); assert(phys);
+		ElasticContactInteraction* phys=YADE_CAST<ElasticContactInteraction*>(contact->interactionPhysics.get()); assert(phys);
 		// all we need for getting stiffness
 		Vector3r& normal=geom->normal; Real& kn=phys->kn; Real& ks=phys->ks; Real& radius1=geom->radius1; Real& radius2=geom->radius2;
 		// FIXME? NormalShearInteraction knows nothing about whether the contact is "active" (force!=0) or not;
@@ -82,11 +84,11 @@
 		diag_Rstiffness *= ks;
 		//cerr << "diag_Rstifness=" << diag_Rstiffness << endl;
 
-		PhysicalAction* st = ncb->physicalActions->find(contact->getId1(),actionStiffness->getClassIndex()).get();
+		PhysicalAction* st = ncb->physicalActions->find(contact->getId1(),actionStiffnessIndex).get();
 		GlobalStiffness* s = static_cast<GlobalStiffness*>(st);
 		s->stiffness += diag_stiffness;
 		s->Rstiffness += diag_Rstiffness*pow(radius1,2);	
-		st = ncb->physicalActions->find(contact->getId2(),actionStiffness->getClassIndex()).get();
+		st = ncb->physicalActions->find(contact->getId2(),actionStiffnessIndex).get();
 		s = static_cast<GlobalStiffness*>(st);
 		s->stiffness += diag_stiffness;
 		s->Rstiffness += diag_Rstiffness*pow(radius2,2);
@@ -143,11 +145,11 @@
                                 //cerr << "diag_Rstifness=" << diag_Rstiffness << endl;
 
 
-                               PhysicalAction* st = ncb->physicalActions->find(id1,actionStiffness->getClassIndex()).get();
+                               PhysicalAction* st = ncb->physicalActions->find(id1,actionStiffnessIndex).get();
 				GlobalStiffness* s = static_cast<GlobalStiffness*>(st);
 				s->stiffness += diag_stiffness;
 				s->Rstiffness += diag_Rstiffness*pow(currentContactGeometry->radius1,2);	
-				st = ncb->physicalActions->find(id2,actionStiffness->getClassIndex()).get();
+				st = ncb->physicalActions->find(id2,actionStiffnessIndex).get();
 				s = static_cast<GlobalStiffness*>(st);
 				s->stiffness += diag_stiffness;
 				s->Rstiffness += diag_Rstiffness*pow(currentContactGeometry->radius2,2);
Index: pkg/dem/Engine/StandAloneEngine/GlobalStiffnessCounter.hpp
===================================================================
--- pkg/dem/Engine/StandAloneEngine/GlobalStiffnessCounter.hpp	(revision 1474)
+++ pkg/dem/Engine/StandAloneEngine/GlobalStiffnessCounter.hpp	(revision 1475)
@@ -23,9 +23,6 @@
 {
 /// Attributes
 	private :
-		shared_ptr<PhysicalAction> actionForce;
-		shared_ptr<PhysicalAction> actionMomentum;
-		shared_ptr<PhysicalAction> actionStiffness;
 		int actionForceIndex;
 		int actionMomentumIndex;
 		int actionStiffnessIndex;