← Back to team overview

yade-users team mailing list archive

Re: Is there a method to change the parameters during a simulation


Yes. Look what is done in TriaxialCompressionEngine.cpp (from last SVN 
snapshot, you can download it if you have only the last release). You 
can see that at line 85 :

if ( ... && ((Omega::instance().getCurrentIteration()) >=     

Its almost the same problem as yours, I have to change the parameters of 
some engines during the simulation (strain rate in this case). I see at 
least two methods :

Method 1 :

-define a ModifiedCundallNonViscousForceDamping that inherits from 
CundallNonViscousForceDamping and define its action() function like this :
ModifiedCundallNonViscousForceDamping::action(Body* body)
     if ( (Omega::instance().getCurrentIteration()) >= limit) damping = ...;


It should work, this is basically what I do when 
TriaxialCompressionEngine inherits from TriaxialStressController.

Method 2 :
Define a new engine "DampingModifier" that contains a shared pointer p 
to CundallNonViscousForceDamping, and do the test in this engine :

if ( (Omega::instance().getCurrentIteration()) >= limit) p->damping = ...;

The problem here is that you must find a way to link both engines so 
that the link will still exist when the simulation is loaded from the 
xml. Its doable but I don't remember exactly how I did that before. 
Perhaps in preprocessor::CreateActors, try something like this (but not 
sure its enough) :

{ ...

shared_ptr<CundallNonViscousForceDamping> actionForceDamping(new 
    actionForceDamping->damping = ...;

shared_ptr<DampingModifier> dampingModifier(new DampingModifier);
    dampingModifier->p = dampingForce;



... }

I hope it helps.


Feng, Chen a écrit :

>Hi, all:
>I am now trying to make a simulation of based on SDECSpheresPlane, however, I 
>want to make the damping coefficient 0.3 for the first 1000 steps and 0.4 for 
>the next 1000 steps, is it possible to program it in YADE?
>Thanks a lot!
>Feng Chen
>Yade-users mailing list

Chareyre Bruno
Maître de conférence

Institut National Polytechnique de Grenoble
Laboratoire 3S (Soils Solids Structures) - bureau I08
BP 53 - 38041, Grenoble cedex 9 - France     
Tél :

Yade-users mailing list

Follow ups