Thread Previous • Date Previous • Date Next • Thread Next |
Hi Bruno, I have been trying to apply the gravity after the compaction phase in the triaxial, but it seems not working.. (up to me). Basically I am doing something like this inside the loop currentState==STATE_TRIAX_LOADING in the applyCondition function: // Fix boundaries wall_bottom_activated=false; wall_top_activated=false; wall_front_activated=false; wall_back_activated=false; wall_right_activated=false; wall_left_activated=false; // 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(); } The variable g=Vector3r(0,0,0) is defined in the constructor of the TriaxialCompressionEngine. Of course in the TriaxialTest class I access the current value of g at each iteration (that should remain equal to zero until currentState==STATE_TRIAX_LOADING. Such as: gravityCondition->gravity = triaxialcompressionEngine->g; // set gravity to the value in triaxialcompressionEngine rootBody->engines.push_back(gravityCondition); After the application of the gravity I expect a change (an increasing) of the stresses on the walls (at the bottom I expect a stress increment equal to the weight of the sample over the area), and maybe a change also in the value of the porosity but it seems nothing happens. Sorry if I ask you again, could you just see if I am wrong somewhere according to your code? Thanks a lot. Cheers, Chiara
Thread Previous • Date Previous • Date Next • Thread Next |