← Back to team overview

yade-users team mailing list archive

Re: Gravity Triaxial

 

I tried to modify the value of gravity accessing the engine in the
TriaxialCompressionEngine, but still it does nothing..
I guess if is there possible to change the value of a parameter throughout
the simulation for a specific engine? Or this cannot be?

Thanks,
Chiara



On 10 February 2010 15:39, chiara modenese <c.modenese@xxxxxxxxx> wrote:

> 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