yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #11280
Re: (Anecdotic ?) Changes in Law2_.._Capillarity : H-M / C-S
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 : yade-dev@xxxxxxxxxxxxxxxxxxx
> 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
________________
Follow ups
References