← Back to team overview

yade-users team mailing list archive

Re: Functions of MetaDispatchingEngine (1D, 2D)

 

Thank you so much, it is very clear now because I did think of YADE will automatically recognize the Interaction.
 
Have a nice day
 
Kien Dang

________________________________

From: yade-users-bounces@xxxxxxxxxxxxxxxx on behalf of Bruno Chareyre
Sent: Thu 10/11/2007 10:51 AM
To: yade-users@xxxxxxxxxxxxxxxx
Subject: Re: [Yade-users] Functions of MetaDispatchingEngine (1D, 2D)



Hello Kien,

You cannot remove those lines. The correspondance between the names of
the geometries (InteractingSphere/InteractingBox) and the names of the
engines is understood by the user but not auto-detected by Yade.
Without those lines, Yade would not be able to decide what engine to
call to define the interaction between two bodies, so the bodies would
not interact (that is why there is no interaction between boxes in the
triaxial test btw).
If you define a new type of geometry, like InteractingElipsoid, and want
to mix it with the previous ones in the same simulation, you need to
write new engines like :

InteractingElipsoid2InteractingSphere4SpheresContactGeometry


Or even :

InteractingElipsoid2InteractingSphere4NewTypeOfContactGeometry


Then tell yade to use them with :

interactionGeometryDispatcher->add("InteractingElipsoid","InteractingSphere","InteractingElipsoid2InteractingSphere4NewTypeOfContactGeometry
");


At the end, the dispatching engine is "pushed back" in the list of
engines (line 678 of TriaxialTest.cpp in my version) :

rootBody->engines.push_back(interactionGeometryDispatcher);

That way, the exact geometry of potential interactions (the potential
interactions being defined by the SAPcollider) is updated at each time step.

The mecanism is exactly the same for BoundingVolumeMetaEngine (1D),
PhysicalActionDamper (1D), or InteractionPhysicsMetaEngine (2D). The
dispatching is done in the function operator() inherited from
DynLibDispatcher.

Bruno



Kien Dang, Mr a écrit :
> hi,
>
> i tried to understand the function of MetaDispatchingEngine  classes but I have not understand its function.
>
> i.e. in TriaxialTest.cpp, there are several objects involved to MetaDispatchingEngine such as the following syntax:
>
> shared_ptr<InteractionGeometryMetaEngine> interactionGeometryDispatcher(new InteractionGeometryMetaEngine);
>       interactionGeometryDispatcher->add("InteractingSphere","InteractingSphere","InteractingSphere2InteractingSphere4SpheresContactGeometry");
>       interactionGeometryDispatcher->add("InteractingSphere","InteractingBox","InteractingBox2InteractingSphere4SpheresContactGeometry");
>
> As I guess, without those lines,the program should still works. Is it correct?
>
> Can anyone please give me explaination about the function of the class?
>
> Thank you so much,
>
> Kien Dang
> _______________________________________________
> Yade-users mailing list
> Yade-users@xxxxxxxxxxxxxxxx
> https://lists.berlios.de/mailman/listinfo/yade-users
>
>  


--

_______________
Chareyre Bruno
Maitre de conference

Institut National Polytechnique de Grenoble
Laboratoire 3S (Soils Solids Structures) - bureau I08
BP 53 - 38041, Grenoble cedex 9 - France
Tél : 33 4 56 52 86 21
Fax : 33 4 76 82 70 00
________________

_______________________________________________
Yade-users mailing list
Yade-users@xxxxxxxxxxxxxxxx
https://lists.berlios.de/mailman/listinfo/yade-users


_______________________________________________
Yade-users mailing list
Yade-users@xxxxxxxxxxxxxxxx
https://lists.berlios.de/mailman/listinfo/yade-users



Follow ups

References