yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #03566
[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