← Back to team overview

yade-dev team mailing list archive

[Branch ~yade-pkg/yade/git-trunk] Rev 3816: Do not ignore k* and c* parameters if mass==0

 

------------------------------------------------------------
revno: 3816
committer: Anton Gladky <gladky.anton@xxxxxxxxx>
timestamp: Fri 2014-02-07 19:20:02 +0100
message:
  Do not ignore k* and c* parameters if mass==0
  
  Visco-Elastic model ignored strength and damping parameter,
  if the mass body is zero. It happens during facet-sphere
  interaction, so the facets mat is ignored (k* and c* multiplied
  by 0).
  
  This commit sets temporarly the mass of zero-mass body equal
  to the mass of another body.
  
  Thanks to Medack for pointing that out and discussion.
modified:
  pkg/dem/ViscoelasticPM.cpp


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

Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-pkg/yade/git-trunk/+edit-subscription
=== modified file 'pkg/dem/ViscoelasticPM.cpp'
--- pkg/dem/ViscoelasticPM.cpp	2014-01-30 08:09:44 +0000
+++ pkg/dem/ViscoelasticPM.cpp	2014-02-07 18:20:02 +0000
@@ -40,6 +40,11 @@
 	if (mat1->massMultiply and mat2->massMultiply) {
 		mass1 = Body::byId(interaction->getId1())->state->mass;
 		mass2 = Body::byId(interaction->getId2())->state->mass;
+		if (mass1 == 0.0 and mass2 > 0.0) {
+			mass1 = mass2;
+		} else if (mass2 == 0.0 and mass1 > 0.0) {
+			mass2 = mass1;
+		}
 	}
 	
 	GenericSpheresContact* sphCont=YADE_CAST<GenericSpheresContact*>(interaction->geom.get());