yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #02841
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