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

_______________________________________________
Mailing list: https://launchpad.net/~yade-dev
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~yade-dev
More help   : https://help.launchpad.net/ListHelp

Reply via email to