yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #10463
Re: [Branch ~yade-pkg/yade/git-trunk] Rev 3804: new simple contact law with normal viscose damping which allows to specify kn and ks/kn in Ip2
Hi Bruno
> > Sorry for late reply, but here my thoughts. I think a separation at
> > material level would be better, i.e. FrictMat inherits ViscElastMat which
> > inherits something like ViscElCapillarMat. I think it would make sense
> > because not all visco-elastic materials have capillar forces. What do you
> > think?
>
> I think this is also what Anton had in mind. Base types should be free
> of capillary things, which are very specific.
So you agree that the parameters should already be separated at material
level, correct?
> > In the case of CapillaryPhys none of the parameters is stored in FrictMat.
>
> And it is good that way, isn't it? FrictMat has the contact parameters,
> CapillaryPhys inherits them and add the capillary parameters.
> It should be the same for ViscEl, as you suggest.
>
> > There seams to be a bit of inconsistency. Same with kn and kt. Should the
> > material have these parameters or the Ip2 functor? IMO, stiffness is
> > related to a specific contact and should therefore be in the Ip2.
>
> I don't get your point here. Ip2's are not supposed to have parameters
> at all, they convert material data to interaction data (e.g. they
> convert Material::Young to IPhys::kn).
> I know many Ip2 still have a few physical parameters but it is only lazy
> implementation, we should avoid that. Ip2_Frict and Ip2_CohFrict, for
> instance have no parameters at all.
The point is that MatchMaker only work for Ip2 functors and to me they really
make sense for some specific cases (especially if you have many different
materials). And as I said before, contact stiffness is a property of the
contact and not the material. We generally calculate it as a harmonic average
of the Youngs' modulus of the two materials in contact but in some cases you
might want to define it explicitly. In this cases I think it should be defined
in the Ip2 functor, or not?
Klaus
Follow ups
References