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: [EMAIL PROTECTED] on behalf of Bruno Chareyre Sent: Thu 10/11/2007 10:51 AM To: [email protected] 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 > [email protected] > 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 [email protected] https://lists.berlios.de/mailman/listinfo/yade-users _______________________________________________ Yade-users mailing list [email protected] https://lists.berlios.de/mailman/listinfo/yade-users
