← Back to team overview

yade-users team mailing list archive

Re: The convergence criterion in YADE


Feng, Chen said:     (by the date of Tue, 29 Nov 2005 12:22:35 -0500)

> >===== Original Message From Bruno Chareyre <bruno.chareyre@xxxxxxxxxxx> =====
> >>so CC is used to determine whether the calculations can be stopped,
> >>because nothing is moving, right?
> I think in the DEM calculation, the spheres are always moving instead of that 
> can stop absolutely, therefore the CC should be a measurement of relative 
> motion or something which below that value, the whole system can be considered 
> "stop"?

I think that Bruno has explained it very thoroughfully :) So the system
can be considered "stop" or maybe rather "stable" if the sum of all
forces from all bodies gives near-zero value (below a specified
thershold value).

to calculate that sum, you must make a new StandAloneEngine, call it
ConverganceCriterion, and inside it loop over all Forces stored in
MetaBody::shared_ptr<PhysicalActionContainer> and sum them.

Similar loop is inside ElasticContactLaw, so you can just copy/paste it.
Whole class ConverganceCriterion should take around 50 lines (maybe even 30).

if you want to be able to customize your treshold, you will need to
REGISTER_ATTRIBUTE(thresholdForce) in ConverganceCriterion, then
accordingly add it to your favourite filegenerator, and assign its value
in createActors().

you haven't specified yet what kind of feedback you are expecting.

if you want to record sum of all forces just like ForceRecorder is
doing, then maybe rather ConverganceCriterion should inherit from
DataRecorder, and later you will be able to plot a curve representing
the result of ConverganceCriterion.

Janek Kozicki                                                         |
Yade-users mailing list