yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #02865
Re: Energy dissipation
> > Doesn't the problem with different plasticity condition come into play
> > only if you store shear force instead of strain? That would break for
> > non-linear elasticity...?
> Not sure it makes a difference. How do you define the plastic strain in
> your case? I guess it uses plastic = total - elastic, with elastic =
> some sort of ftmax/ks (remember... ;)).
> Now, what if you cannot write elastic=ftmax/ks due to non linearity?
I don't store plastic strain at all (for shear plasticity, at least). At
each step:
1. normal strain εN and stress σN are evaluated;
2. current "trial" shear strain εT is computed*, with corresponding
trial stress σT(εT); for admissible state f(σN,|σT(εT)|)<=0, there is no
dissipation and the contact is done for this timestep. In case of
non-admissible f(σN,|σT|)>0, shear strain is modified** to have new
value εT2 so that f(σN,|σT(εT2)|=0; dissipated energy increment is |
εT-εT2|*σT(εT2), which is added to cummulative dissipated energy. In the
Cpm model, plastic flow rule is non-associated and σN doesn't have to be
recomputed again, after changing σT.***
* For total strain, you just use that value; for incremental, you add
current incremental to the previous value.
** by moving the equilibrium position, for total formulation; for
incremental, cummulative strain value would be set.
*** radial stress return; if stress return were not radial, one would
have to iterate to find suitable combination of σN, |σT| to satisfy
plasticity condition, as it is usually done in implicit scehemes.
I didn't say anything about computing elastic energy... that would need
some more thought.
> Worth than that : unload the normal component with null shear velocity.
> It will meet the plasticity criterion at some point (assuming purely
> frictional law). Some elastic energy will be transfered to plasticity
> with total dUs=0. I see this special case only now... I'll have to
> tackle this even for FrictPhys_basic.
That works just fine in the scenario described above, as far as I see.
Cheers, v.
Follow ups
References