Apply a displacement to a node of an Euler beam element

25 views
Skip to first unread message

Iason Manolas

unread,
Sep 10, 2022, 7:58:14 AM9/10/22
to ProjectChrono
Hi,

I have been trying to find out how to apply a desired displacement to a node of an Euler beam and then run a static simulation on that beam. I explained my confusion regarding this in another conversation.

I read here that one can use StateGather and StateScatter. Would this work also for my case? I saw that ChNodeFEAxyzrot has similar functions. Could I use them like this:

std
::shared_ptr<chrono::fea::ChNodeFEAxyzrot> beamChronoNode=//this is initialized with a beam node;
ChState x; ChStateDelta v; double t;
beamChronoNode->NodeIntStateGather(0, x, 0, v, t); //do I get the initial state of the node?
ChVector<double> displacementVector(dx,0,0); //lets say I want to displace the position of the node by dx
x = x + displacementVector; //how do I apply the displacement vector to the state of the node?
 beamChronoNode->NodeIntStateScatter(0, x, 0, v, t);// do I set the new state like this?

I appreciate any input.
Thanks,
Iason
Reply all
Reply to author
Forward
0 new messages