yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #01144
facets
-
To:
Yade Development Group <yade-dev@xxxxxxxxxxxxxxxxxxx>
-
From:
Václav Šmilauer <eudoxos@xxxxxxxx>
-
Date:
Thu, 19 Mar 2009 09:15:22 +0100
-
User-agent:
Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.19) Gecko/20090105 Lightning/0.8 Thunderbird/2.0.0.19 Mnenhy/0.7.6.666
Sega (and others),
I commited Dem3DofGeom_FacetSphere class recently, along with a test
script in scripts/test/Dem3DofGeom.py.
1. I copied your algorithm from
InteractingFacet2InteractingSphere4SpheresContactGeometry without
understanding some parts of that. Could you please review the code
briefly that it does what it should? In the test script, for example,
when the sphere passes over the boundary of the facet, it seems that the
contact exists longer than it visually should (but I didn't compare that
with IF2IS4SCG; it's either bug in my re-"implementation" or in the
original algo; I didn't want to write from scratch, sicne your approach
seems to nicely avoid computing distances and uses only vector products,
which should be much faster; or, if you have some description of the
algo, can you pass me a reference?).
2. The shrinkFactor, if I understand, is there to make the surface
smoother. We still may have two interactions at the edge at the same
time, which means that the surface rigidity doubles at those points. I
propose to add the following topology information to InteractingFacet:
bool edgeActive[3];
bool vertexActive[3];
body_id_t edgeNeighbours[3];
// maybe also vector<body_id_t> vertexNeighbours[3]
(the names would be different to match spartan naming onf the other data
members). Then I would make some initializer called, for example,
FacetTopologyAnalyzer, that would fill those information. Common
edges/vertices would be active only on one the adjacent facets and the
inactive ones wouldn't interact at all (in the sense of
InteractionGeometry).
For the neighbour topology, the point would be to preserve interaction
data (such as plastic strain, initial contact point etc) accross facet
boundaries, but I am not yet sure how to handle that correctly (not in
collider, not in the InteractingGeometryMetaEngine either?, ...).
In the future, it would also be possible to exploit this information
(and by adding relative angle of the 2 facets that meet at the edge) to
smooth the transition for neighbours (think b-spline/cylinder
interpolation, whatever). But let's start with smaller things first.
Any comments on that?
Vaclav
Follow ups