yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #02845
Re: velgrad
I did it a little different than I proposed lastly. The cell shrinks,
though, when I apply pure shear, which is not right? (using
scripts/test/periodic-triax-velgrad.py, the height decreases...)
Can you check those few formulas in Cell::integrateAndUpdate? I
commented all Hsize-related things out. _shearIncrt was renamed to
_strainInc (since it is strain increment, no? Maybe I don't understand
right what is what, which can also be the cause of cell shrinking?)
I removed VELGRAD and unified both approaches. You can set
strain/refSize directly, and additionally you can also set velGrad.
(Analogous to changing body position directly, or changing its
velocity).
Sorry if I broke something. It seems we are converging to some nice
solution, though :-)
Cheers, Vaclav
> Hi Bruno,
>
> I am a little lost with Cell now.
>
> What I need is that if I set 'strain' to be something, than strain
> matrix will have those values. Currently your code resets this.
>
> You are computing strain from _shearTrsfMatrix, but that is
> "wrong" (i.e. not what I wanted). Those variables marked with underscore
> are really _caches_, precomputed values. Therefore
>
> 1. I propose:
>
> shearInc=dt*velGrad;
> strain=strain+_shearInc*(strain+Matrix3r::IDENTITY)-Matrix3r::IDENTITY;
> _shearTrsfMatrix=strain+Matrix3r::IDENTITY;
> // ...
>
> is that right?
>
> (note: for undeformed cell, strain matrix has 0s on the diagonal,
> whereas _shearTrsfMatrix has 1s on the diagonal)
>
> 2. Why do we need the Hsize matrix? If we don't, the original
>
> _size=refSize+diagMult(getExtensionalStrain(),refSize);
>
> will work just fine.
>
> 3. We call it "velocity gradient", shouldn't it be just "strain rate"?
>
> 4. Proposal to have refSize==Vector3r(-1,-1,-1) and raising exception if
> it is not set during computation. That would avoid "if refSize[0]!=1"
> kind of conditions which can break easily.
>
> Cheers, Vaclav
Follow ups
References
-
velgrad
From: Václav Šmilauer, 2009-12-25