When it comes to documentation, for me it’s: never remove anything, always 
improve :)

On 21 Feb 2018, 22:25 +0100, Robert Caulk <rca...@eng.ucsd.edu>, wrote:
> Hello Jérôme,
>
> I support clarifying the meaning of particle young in the class reference as 
> you suggest. There is no doubt that newcomers to DEM and Yade confuse micro 
> young's modulus with macro young's modulus all the time.
>
> I would vote for clarifying the general doc instead of full removal of 
> stiffness and normal stiffness section in general doc, I think they provide 
> good examples of how Yade treats micro stiffness. If we decide to keep the 
> sections I can look into improving their clarity. But if others think removal 
> is best, I am not against it :-)
>
> Best,
>
> Robert
>
> > On Wed, Feb 21, 2018 at 8:59 AM, Jerome Duriez <jerome.dur...@irstea.fr> 
> > wrote:
> > > Hi,
> > >
> > > After seeing Yet Another Doubts on "young" meaning / 
> > > Ip2_FrictMat_FrictMat_FrictPhys contact model (a PhD student in my 
> > > institute), I'm proposing to explicitly mention the underlying equations 
> > > in the doc, once for all.
> > > The corresponding would-be diff appears at the end of the email, you may 
> > > also compare the attached screenshot with 
> > > https://yade-dem.org/doc/yade.wrapper.html#yade.wrapper.Ip2_FrictMat_FrictMat_FrictPhys.
> > > From the diff, you will see I'm also proposing to remove the "harmonic 
> > > average stiffness" comment, for instance because there actually is a "2" 
> > > factor missing/extra between the comment and the actual code.
> > >
> > >
> > > In the case of the above-mentioned PhD student, confusion also arose 
> > > because of https://yade-dem.org/doc/formulation.html#stiffnesses and 
> > > https://yade-dem.org/doc/formulation.html#normal-stiffness.
> > > As such, I would also propose to simply remove these two sections from 
> > > the doc.
> > > From my point of view, they actually are too Ip2-specific to appear in 
> > > the general doc.
> > >
> > >
> > > If necessary, a reference to the (equivalent) 2.2.1 and 2.2.1.1. sections 
> > > from Vaclav's thesis ([Smilauer2010b] reference) could be introduced e.g. 
> > > in Ip2_CpmMat_CpmMat_CpmPhys and Ip2_FrictMat_FrictMat_FrictPhys 
> > > docstrings, to keep track of these comments that could be made concerning 
> > > the Ip2 equations.
> > >
> > >
> > > This email probably is Yet Another non-critical one, but since it deals 
> > > about (the doc of) central pieces of code, and lines probably written by 
> > > Vaclav, I'm opening a possible discussion here before performing the 
> > > changes.
> > >
> > >
> > > Jérôme
> > >
> > > PS: next step would be to move 
> > > https://yade-dem.org/doc/formulation.html#strain-evaluation to Ig2 
> > > docstrings but I'm not planning on it...
> > >
> > >
> > > ****************** Diff herein proposed for commit **************
> > >
> > > diff --git a/pkg/dem/FrictPhys.cpp b/pkg/dem/FrictPhys.cpp
> > > index cb904da..4f8ffe8 100644
> > > --- a/pkg/dem/FrictPhys.cpp
> > > +++ b/pkg/dem/FrictPhys.cpp
> > > @@ -26,9 +26,7 @@ void Ip2_FrictMat_FrictMat_FrictPhys::go( const 
> > > shared_ptr<Material>& b1
> > >         Real Va         = mat1->poisson;
> > >         Real Vb         = mat2->poisson;
> > >
> > > -       //harmonic average of the two stiffnesses when (2*Ri*Ei) is the 
> > > stiffness of a contact point on sphere "i"
> > >         Real Kn = 2*Ea*Ra*Eb*Rb/(Ea*Ra+Eb*Rb);
> > > -       //same for shear stiffness
> > >         Real Ks = 2*Ea*Ra*Va*Eb*Rb*Vb/(Ea*Ra*Va+Eb*Rb*Vb);
> > >
> > >         Real frictionAngle = (!frictAngle) ? 
> > > std::min(mat1->frictionAngle,mat2->frictionAngle) : 
> > > (*frictAngle)(mat1->id,mat2->id,mat1->frictionAngle,mat2->frictionAngle);
> > >
> > > diff --git a/pkg/dem/FrictPhys.hpp b/pkg/dem/FrictPhys.hpp
> > > index eeb2ef4..12c85ee 100644
> > > --- a/pkg/dem/FrictPhys.hpp
> > > +++ b/pkg/dem/FrictPhys.hpp
> > > @@ -44,7 +44,7 @@ class Ip2_FrictMat_FrictMat_FrictPhys: public 
> > > IPhysFunctor{
> > >                         const shared_ptr<Material>& b2,
> > >                         const shared_ptr<Interaction>& interaction);
> > >         FUNCTOR2D(FrictMat,FrictMat);
> > > -       
> > > YADE_CLASS_BASE_DOC_ATTRS(Ip2_FrictMat_FrictMat_FrictPhys,IPhysFunctor,"Create
> > >  a :yref:`FrictPhys` from two :yref:`FrictMats<FrictMat>`. The compliance 
> > > of one sphere under point load is defined here as $1/(E.D)$, with $E$ the 
> > > stiffness of the sphere and $D$ its diameter. The compliance of the 
> > > contact itself will be the sum of compliances from each sphere, i.e. 
> > > $1/(E_1.D_1)+1/(E_2.D_2)$ in the general case, or $2/(E.D)$ in the 
> > > special case of equal sizes and equal stiffness. Note that summing 
> > > compliances corresponds to an harmonic average of stiffnesss (as in e.g. 
> > > [Scholtes2009a]_), which is how kn is actually computed in the 
> > > :yref:`Ip2_FrictMat_FrictMat_FrictPhys` functor:\n\n $k_n = 
> > > \\frac{E_1D_1*E_2D_2}{E_1D_1+E_2D_2}=\\frac{k_1*k_2}{k_1+k_2}$, with 
> > > $k_i=E_iD_i$.\n\n The shear stiffness ks of one sphere is defined via the 
> > > material parameter :yref:`ElastMat::poisson`, as ks=poisson*kn, and the 
> > > resulting shear stiffness of the interaction will be also an harmonic 
> > > average. In the case of a contact between a :yref:`ViscElMat` and a 
> > > :yref:`FrictMat`, be sure to set :yref:`FrictMat::young` and 
> > > :yref:`FrictMat::poisson`, otherwise the default value will be used.",
> > > +       
> > > YADE_CLASS_BASE_DOC_ATTRS(Ip2_FrictMat_FrictMat_FrictPhys,IPhysFunctor,"Create
> > >  a :yref:`FrictPhys` from two :yref:`FrictMats<FrictMat>` as per the 
> > > following expressions: \n\n$k_n = \\frac{E_1D_1*E_2D_2}{E_1D_1+E_2D_2}$ 
> > > where $k_n=$ :yref:`FrictPhys.kn`, the $E_i$ are :yref:`FrictMat.young` 
> > > for each contacting body $i=1;2$, and the $D_i$ are the bodies' 
> > > (equivalent) diameters\n\n$k_s = 
> > > \\frac{E_1D_1P_1*E_2D_2P_2}{E_1D_1P_1+E_2D_2P_2}$ where $k_s=$ 
> > > :yref:`FrictPhys.ks` and the $P_i$ are the bodies' 
> > > :yref:`FrictMat.poisson`\n\n$\\mu = \\tan(min(\\phi_1,\\phi_2))$ by 
> > > default (see :yref:`frictAngle 
> > > attribute<Ip2_FrictMat_FrictMat_FrictPhys.frictAngle>`), where $\\mu=$ 
> > > :yref:`FrictPhys.tangensOfFrictionAngle` and the $\\phi_i$ are the 
> > > bodies' :yref:`FrictMat.frictionAngle`.",
> > >
> > > ------
> > > Chargé de Recherche / Research Associate
> > > Irstea, RECOVER
> > > 3275 route de Cézanne – CS 40061 13182 Aix-en-Provence Cedex 5 FRANCE
> > > +33 (0)4 42 66 99 21
> > >
> > > A free DEM conference in April: https://2ndyadeworkshop.sciencesconf.org/
> > >
> > >
> > > _______________________________________________
> > > Mailing list: https://launchpad.net/~yade-dev
> > > Post to     : yade-dev@lists.launchpad.net
> > > Unsubscribe : https://launchpad.net/~yade-dev
> > > More help   : https://help.launchpad.net/ListHelp
> > >
>
> _______________________________________________
> Mailing list: https://launchpad.net/~yade-dev
> Post to : yade-dev@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~yade-dev
> More help : https://help.launchpad.net/ListHelp
>
_______________________________________________
Mailing list: https://launchpad.net/~yade-dev
Post to     : yade-dev@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to