yade-users team mailing list archive
-
yade-users team
-
Mailing list archive
-
Message #02365
Re: Gravity Triaxial
Hi Jerome,
On 10 February 2010 15:21, Jerome Duriez <jerome.duriez@xxxxxxxxxxxxxxx>wrote:
> chiara modenese a écrit :
>
> // Apply gravity gradually
>> Vector3r gmax=Vector3r(0,-9810,0);
>> Vector3r deltag=Vector3r(0,0,0);
>> deltag=gmax/100; // apply the gravity in 100 steps
>> if (fabs(g[1])<fabs(gmax[1]))
>> {
>> g=g+deltag;
>> } else { Omega::instance().stopSimulationLoop();
>> }
>>
>> Where are these lines ? In TriaxialCompressionEngine.cpp ?
>
YES
> And those :
>
>
>> gravityCondition->gravity = triaxialcompressionEngine->g; // set gravity
>> to the value in triaxialcompressionEngine
>> rootBody->engines.push_back(gravityCondition);
>>
>> In TriaxialTest.cpp (function generate) ?
>
YES
>
> If yes it's normal that it does not work at all... Because here you define
> (see what's going on with "generate" of the TriaxialTest) a simulation
> taking into account gravity, but with a value of g equals to (vector)
> zero...
>
> What you wrote in TriaxialCompressionEngine (=first lines I quoted) can not
> modify the value of gravity applied by the GravityEngine (it even does not
> access to this Engine), which remains thus equal to 0...
>
>
Oh sorry, you are entirely right! I was just confused by the idea that
engines are called at each iteration...
So, can I access the gravity engine directly in the
TraixialCompressionEngine.cpp so I modify the value of the gravity only once
I need to?
cheers, Chiara
> Jerome
>
Follow ups
References