← Back to team overview

yade-dev team mailing list archive

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