← Back to team overview

yade-dev team mailing list archive

velgrad

 

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