← Back to team overview

yade-dev team mailing list archive

Re: periodic boundary consolidation

 

Hi Vaclav,

I've seen some of these ideas are discarded in your next email bit I'll
still reply here to be sure everything is clear (we are on moving ground).
I updated code and doc last week, I'll commit them (should be r2694).
> 1. We still need some reference size (or hSize) for defining goal
> strain in PeriTriaxController and similar engines. How to do that?
We don't need reference hSize I think. Engines can compare goals with
trsf directly (PeriTriax at least is doing that). in
StrainStressStiffUpdate, we have for instance :
 for (int i=0;i<3;i++) strain[i]=log(scene->cell->trsf(i,i));

If simulation is ran up to a goal strain[0]=0.2, then trsf is reseted
and the simulation ran again, it will result in a total deformation
0.2+0.2=0.4 between iteration 0 and iteration N. With the "log" strain,
deformations are summed consistently: applying 0.2+0.2 strain gives
exactly the same final hSize as applying 0.4 all at once.

I've seen that refSize is used in only one place in PeriTriax :
stress[axis]+=(scene->cell->velGrad(axis,axis)*scene->dt/refSize[axis])*(stiff[axis]/cellArea[axis]);

I have the impression that it is assuming small strain, so that it would
be better replaced by current size; not only to remove refSize but
because it would give a better estimate of stress increment.

> 2. For displacement scaling, another reference hSize is needed (which
> is independent from the "mechanically reference" hSize), which is
> called a bit confusingly just refHSize in the current code, and which
> is set (a) when refHSize sub 1. is set and (b) when required by the
> user (the utils.setRefSe3 and such).
All algorithms I can imagine only need current hSize, the only exception
could be for display. In "disp. scaling" do you refer to homoDeform (in
that case, no, this scaling only needs hSize and velGrad) or scaled
rendering (in that case, perhaps simply use invTrsf*hSize?).

Cheers.

Bruno



Follow ups

References