← Back to team overview

yade-dev team mailing list archive

Re: periodic cell stress tensor

 

Hello,

thanks you all for advices related to my questions :-)

I was also checking all the stress computation definitions

Shop::stressTensorOfPeriodicCell() (accorning to [Kuhl2001])
Shop::normalShearStressTensor() (according to [Thornton2000])
PeriTriaxController::strainStressStiffUpdate()

and they are all almost the same :-) I mean result, not the performance..
The only difference between the last and [Kuhl2001] is fact, that [Kuhl2001] gives symetric stress tensor and the last one nonsymetric stress tensor (which is not very good in my opinion). Implementation according to [Thornton200] gives symetric tensor, but only by mirroring one of the nonsymetric parts, which is also not very correct.. The fix is simple, instead of

f*branch.transpose()
R*T*n[i]*t[j]

one can write

.5*(f*branch.transpose() + branch*f.transpose())
R*T*.5*(n[i]*t[j]+n[j]*t[i])

which is standard way of tensors symetrization. Or maybe the best thing from computation time point of view is to symetrize the stress tensor after the loop over all interactions:

stress = .5*(stress+stress.transpose())

I can write a few equations comparing all methods and proving that they give (almost) same results if you want.

There is also no problem for all methods to split stress tensor into part contributed by normal force and contributed by shear force.

Conclusion is that after little modifications, inYade we can use only one definition :-)

Cheers,
Jan



Follow ups

References