← Back to team overview

yade-dev team mailing list archive

[Branch ~yade-dev/yade/trunk] Rev 2072: 1. penetrationDepth() is added to DemXDofGeom

 

------------------------------------------------------------
revno: 2072
committer: Anton Gladkyy <gladk@IAM004>
branch nick: trunk
timestamp: Wed 2010-03-10 10:18:14 +0100
message:
  1. penetrationDepth() is added to DemXDofGeom
modified:
  pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.hpp
  pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.cpp
  pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.hpp
  pkg/dem/DataClass/InteractionGeometry/DemXDofGeom.hpp


--
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 'pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.hpp'
--- pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.hpp	2010-02-09 16:50:30 +0000
+++ pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.hpp	2010-03-10 09:18:14 +0000
@@ -16,6 +16,7 @@
 		virtual Real displacementN(){ return (se32.position-contactPoint).Length()-refLength;}
 		virtual Vector3r displacementT(){ relocateContactPoints(); return contPtInTgPlane2()-contPtInTgPlane1(); }
 		virtual Real slipToDisplacementTMax(Real displacementTMax);
+		Real penetrationDepth() {return refR2-refLength-displacementN();}
 		/***** end API ******/
 
 		void setTgPlanePts(const Vector3r&, const Vector3r&);

=== modified file 'pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.cpp'
--- pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.cpp	2010-01-21 07:53:17 +0000
+++ pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.cpp	2010-03-10 09:18:14 +0000
@@ -185,14 +185,18 @@
 	else {
 		ss=shared_ptr<Dem3DofGeom_SphereSphere>(new Dem3DofGeom_SphereSphere());
 		c->interactionGeometry=ss;
+		
 		// constants
 		if(distFactor>0) ss->refLength=dist;
 		else ss->refLength=s1->radius+s2->radius;
 		ss->refR1=s1->radius; ss->refR2=s2->radius;
+		
 		Real penetrationDepth=s1->radius+s2->radius-ss->refLength;
+		
 		if(Omega::instance().getCurrentIteration()<=10){
 			ss->effR1=s1->radius-.5*penetrationDepth; ss->effR2=s2->radius-.5*penetrationDepth;
 		} else {ss->effR1=s1->radius; ss->effR2=s2->radius;}
+		
 		// for bending only: ss->initRelOri12=state1.ori.Conjugate()*state2.ori;
 		// quasi-constants
 		ss->cp1rel.Align(Vector3r::UNIT_X,state1.ori.Conjugate()*normal);

=== modified file 'pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.hpp'
--- pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.hpp	2010-02-09 16:50:30 +0000
+++ pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.hpp	2010-03-10 09:18:14 +0000
@@ -28,6 +28,7 @@
 			#endif
 		}
 		Real slipToDisplacementTMax(Real displacementTMax);
+		Real penetrationDepth() {return (refR1+refR2)-refLength-displacementN();}
 		/********* end API ***********/
 
 	YADE_CLASS_BASE_DOC_ATTRS_INIT_CTOR_PY(Dem3DofGeom_SphereSphere,Dem3DofGeom,"Class representing 2 spheres in contact which computes 3 degrees of freedom (normal and shear deformation).",

=== modified file 'pkg/dem/DataClass/InteractionGeometry/DemXDofGeom.hpp'
--- pkg/dem/DataClass/InteractionGeometry/DemXDofGeom.hpp	2010-03-09 14:20:36 +0000
+++ pkg/dem/DataClass/InteractionGeometry/DemXDofGeom.hpp	2010-03-10 09:18:14 +0000
@@ -30,6 +30,7 @@
 		virtual Real displacementN();
 		virtual Vector3r displacementT(){throw;}
 		virtual Real slipToDisplacementTMax(Real displacementTMax){throw;}; // plasticity
+		virtual Real penetrationDepth(){throw;};
 		// reference radii, for contact stiffness computation; set to negative for nonsense values
 		// end API
 


Follow ups