Good point Jerôme. The solution is not easy though. The diff you attached shows a huge difference: one type inherits from MindlinPhys, the other inherits from FrictPhys. One solution would be to use double inheritance, maybe. Not sure how boost::python would handle that. Bruno
On 19/09/14 00:38, Jérome Duriez wrote: > Hi, > > I'm reading for the first time capillary code > (Law2_ScGeom_CapillaryPhys_Capillarity::action). Depending on the contact law > used in the simulation, two different interaction physics are handled : > - either "cundallContactPhysics" (CapillaryPhys type) > - or "mindlinContactPhysics" (MindlinCapillaryPhys type) > > And, in the whole code, "herzOn" bool variable is checked, to know if > cundallContactPhysics, or mindlinContactPhysics has to be accessed. I have > the feeling that, in the end, we always access variables with same name and > meaning (give a look at the attached diff, comparing the attributes list of > these two classes), either from cundallContactPhysics, or > mindlinContactPhysics. E.g. hertzOn? mindlinContactPhysics->meniscus : > cundallContactPhysics->meniscus... > > My question is : could we get rid of these two different variables, use only > one variable "contactPhys", defined once for all with : > > if !hertzOn > contactPhysics = static_cast<CapillaryPhys*>(interaction->phys.get()); > else > contactPhysics = > static_cast<MindlinCapillaryPhys*>(interaction->phys.get()) > > And, after that, use only contactPhysics->meniscus > > A second question would be "is it worth ?', but I could do the task without > answering this question... > > Jerome > > > _______________________________________________ > Mailing list: https://launchpad.net/~yade-dev > Post to : [email protected] > Unsubscribe : https://launchpad.net/~yade-dev > More help : https://help.launchpad.net/ListHelp > > > -- _______________ Bruno Chareyre Associate Professor ENSE³ - Grenoble INP Lab. 3SR BP 53 38041 Grenoble cedex 9 Tél : +33 4 56 52 86 21 Fax : +33 4 76 82 70 43 ________________ _______________________________________________ Mailing list: https://launchpad.net/~yade-dev Post to : [email protected] Unsubscribe : https://launchpad.net/~yade-dev More help : https://help.launchpad.net/ListHelp

