# How to set motion constrains on solidMechanic problems?

 Register Blogs Members List Search Today's Posts Mark Forums Read

 October 21, 2019, 06:02 How to set motion constrains on solidMechanic problems? #1 New Member   Pedro Join Date: Jul 2019 Posts: 5 Rep Power: 3 Hello foam community, I am using the "impactBar" tutorial from solids4Foam toolbox to simulate a 3D problem, and I need to constrain in yy and zz axis one plane of the geometry, giving only 1 degree of freedom. Does anyone know a boundary condition to do that, or something similar? To better explain my case, I have a collision between two bodies, where a box is fixed on the base and has a non-symmetric doomed face, and a cylinder has movement in the xx direction. At the moment of impact, the cylinder starts to shift in the yy and zz direction, but I want to constrain this movement. So, I just want an xx movement in the cylinder. Which boundary conditions should I use? Basically, I need a boundary condition similar to remote displacement in Ansys. Best regards, caseSimplification.png

October 22, 2019, 10:05
#2
Senior Member

Ali Shayegh
Join Date: Oct 2015
Posts: 124
Rep Power: 7
Quote:
 Originally Posted by pedroavr92 Hello foam community, I am using the "impactBar" tutorial from solids4Foam toolbox to simulate a 3D problem, and I need to constrain in yy and zz axis one plane of the ...
Hello
Do u use solidContanct boundary condition?
Can u explain your desired deformation with a hand-scratch?

Ali

October 23, 2019, 06:04
#3
New Member

Pedro
Join Date: Jul 2019
Posts: 5
Rep Power: 3
Quote:
 Originally Posted by amuzeshi Hello Do u use solidContanct boundary condition? Can u explain your desired deformation with a hand-scratch? Ali
hi Ali,

yes, I'm using solidContact condition.
This is a typical free-falling case, where the box is the fixed geometry (fixedDisplacement condition on the bottom face), and the cylinder is the free-falling object.
I start the simulation with the velocity field in xx. During impact, the cylinder starts to rotate and shifting in the yy and zz direction. But I don't want this to happen.

I am looking for a boundary condition similar to, for example, the one found in Autodesk Fusion 360 called "Structural Constraints" (image attatched).
Attached Images
 Annotation 2019-10-23 103227.jpg (63.3 KB, 25 views)

October 25, 2019, 12:52
#4
Senior Member

Ali Shayegh
Join Date: Oct 2015
Posts: 124
Rep Power: 7
Quote:
 Originally Posted by pedroavr92 yes, I'm using solidContact condition.
Can you share your B.C. script?
Quote:
 Originally Posted by pedroavr92 This is a typical free-falling case, where the box is the fixed geometry ...and the cylinder is the free-falling object.
Are you refering to the image in your first post?
Quote:
 Originally Posted by pedroavr92 During impact, the cylinder starts to rotate and shifting in the yy and zz direction. But I don't want this to happen.
Can you share a short movie which explains this rotation?
Best,
Ali

 October 27, 2019, 16:53 #5 New Member   Join Date: Oct 2019 Posts: 2 Rep Power: 0 This is actually a nice question. Were you able to solve it? Best Regards!

October 29, 2019, 13:07
#6
Super Moderator

Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 895
Rep Power: 29
Quote:
 Originally Posted by pedroavr92 Hello foam community, I am using the "impactBar" tutorial from solids4Foam toolbox to simulate a 3D problem, and I need to constrain in yy and zz axis one plane of the geometry, giving only 1 degree of freedom. Does anyone know a boundary condition to do that, or something similar? To better explain my case, I have a collision between two bodies, where a box is fixed on the base and has a non-symmetric doomed face, and a cylinder has movement in the xx direction. At the moment of impact, the cylinder starts to shift in the yy and zz direction, but I want to constrain this movement. So, I just want an xx movement in the cylinder. Which boundary conditions should I use? Basically, I need a boundary condition similar to remote displacement in Ansys. Best regards, Attachment 72880
Hi Pedro,

Is the problem symmetric about the symmetric plane? If so, then modelling one half of the geometry and using a symmetry plane will constrain the rigid rotation.

Philip

October 29, 2019, 13:34
#7
New Member

Pedro
Join Date: Jul 2019
Posts: 5
Rep Power: 3
Quote:
 Originally Posted by bigphil Hi Pedro, Is the problem symmetric about the symmetric plane? If so, then modelling one half of the geometry and using a symmetry plane will constrain the rigid rotation. Philip
Hi Philip,

No, In my case I don't have any symmetric plane. Therefore I cannot use that feature, but I will try to use it on one face and see if this solves my problem.

Do you have any other advice to share? Or is there any boundary condition to constrain the rotation?

Once again,
thank you for your help Philip,
Best regards,
Pedro

 October 30, 2019, 05:54 #8 Super Moderator     Philip Cardiff Join Date: Mar 2009 Location: Dublin, Ireland Posts: 895 Rep Power: 29 Pedro, How is rigid rotation constrained in the experimental case? This may suggest how to do it in the model. Another option is to use select one face at the left and one at the right (whose normals are perpendicular to the falling direction) and set them as fixedDisplacementZeroShear or symmetryPlane. It is possible to specify the displacement of an internal cell in OpenFOAM using the fvMatrix.setValues function; however, it is not implemented for components yet. Philip

 September 8, 2020, 07:25 #9 New Member   Denis Maier Join Date: Aug 2019 Posts: 10 Rep Power: 3 Hey to all, I came across the same problem when i was trying to model a triaxial-stress test. I found a solution that worked like a charm for me, so I'll share it here in case someone else can use it. My case was a cylinder that had to be freely deformable on the lateral surface (solidTraction) and the upper and lower surfaces were only constrained in the direction of the cylinder-axis. Obviously the system is kinematic in the two lateral directions. However, i found out that by using the function setComponentReference(label pinPatchID, label pinFaceID, direction directionX, scalar RefValue1) of the fvVectorMatrix-class I can fix single components of the deformation on a single boundary-face. To use the approach, u need to call the function after assembling the fvVectorMatrix and before solving the eqn. I used the "setReference" function before instead of the "setComponentReference" function to fix a cell in the domain, but got ugly shear-stresses around the fixed cell. With the given method, non of these numerical problems arise. Maybe it helps someone. Best, Denis bigphil likes this.

 September 8, 2020, 07:46 #10 Super Moderator     Philip Cardiff Join Date: Mar 2009 Location: Dublin, Ireland Posts: 895 Rep Power: 29 Related to this, the optional "cellDisplacements" sub-dict in solidProperties can also be useful in these situations, which allows you to specific the displacement of an internal cell(s) e.g. see solids4foam/tutorials/solids/thermoelasticity/slabCooling/constant/solidProperties Philip DOMaier likes this.

 September 8, 2020, 07:54 #11 New Member   Denis Maier Join Date: Aug 2019 Posts: 10 Rep Power: 3 Yeah, that's the better option for the situations in which a whole cell can be fixed without getting these shear stresses, since u don't have to manipulate the source code. thank you, Philip.