|
[Sponsors] |
solids4Foam: Zero Displacment in one diection, and motions in two other directions |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
February 1, 2021, 07:03 |
solids4Foam: Zero Displacment in one diection, and motions in two other directions
|
#1 |
New Member
Sasan Tavakoli
Join Date: Sep 2018
Posts: 12
Rep Power: 8 |
I am dealing with a solid mechanic problem that I need to physically prevent the solid displacement in one direction at one boundary. I want to do it in x-direction, and let two other directions be free. I've tried to do so, and had a look at fvPatchFields. I reckon that the fixedNormalDisplacement can be helpful in this field. But, I don't have any idea about how to use it. I tried to go through tutorials, but I was not fortunate to find any example for it. Would anyone please kindly let me know how to implement this boundary.
|
|
February 1, 2021, 07:46 |
|
#2 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
Hi Sasan,
The fixedDisplacementZeroShear boundary condition will set the patch-normal component of displacement and allow the two tangential directions to be free (aka zero shear/force/traction). This will set the displacement in the patch normal direction and set the two tangential directions to “free” i.e. zero force. Concretely, if your patch has unit normals (1 0 0) then the displacement vector will be (fixed free free). The value of the "fixed" displacement is taken from the "value" in the boundary condition; in this case, the fixed x component will be the x component of the "value" vector. Philip |
|
February 1, 2021, 08:00 |
|
#3 | |
New Member
Sasan Tavakoli
Join Date: Sep 2018
Posts: 12
Rep Power: 8 |
Quote:
patch name { type fixedDisplacementZeroShear; value uniform (0 0 0); } But, what if the patch's normal vector is not the direction in which i want the fixed displacement. Assume that the patch normal vector is (cos(theta), sin(theta), 0). What about this case. Can I again prescribe zero displacement in x-direction? |
||
February 1, 2021, 08:15 |
|
#4 | ||
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
Quote:
Quote:
The fixedDisplacementZeroShear behaviour is a specific sub-set of solidDirectionMixed behaviour (fixedDisplacementZeroShear derives from solidDirectionMixed). solidDirectionMixed is just the built-in OpenFOAM directionMixed condition, and solidDirectionMixed/directionMixed is the mother of all boundary conditions: depending on the inputs you can use it for fixed value, fixed gradient or anything in between. Unfortunately with this great flexibility comes somewhat confusing inputs. In my experience many people struggle with understanding how to correctly use it. I suggest searching the forum for solidDirectionMixed and directionMixed to get more details, but in short, solidDirectionMixed is specified using three fields: Code:
refGradient uniform ( 0 0 0 ); refValue uniform ( 0 0 0 ); valueFraction uniform ( 0 0 0 0 0 0 ); // Actually, value must also be given as the initial condition refValue gives the value (displacement) you want to use for these fixed faces (or components of faces), and refGradient gives the gradient to use on the non-fixed faces or components of faces. If you do want to use this for solid mechanics then you need to iteratively set the refGradient to satisfy the zero-force/traction condition (this probably means writing a derived boundary condition). See, I told you it wasn't straight-forward If you like, you can add a request/issue on the solids4foam bitbucket page to request this new boundary condition. Philip |
|||
February 1, 2021, 08:53 |
|
#5 | |
New Member
Sasan Tavakoli
Join Date: Sep 2018
Posts: 12
Rep Power: 8 |
Quote:
That's very good. Thank you very much. |
||
February 1, 2021, 11:11 |
|
#6 | |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
Quote:
See my comments about regarding the value fraction and also search the forum for other posts on solidDirectionMixed/directionMixed. |
||
February 2, 2021, 20:56 |
|
#7 | |
New Member
Sasan Tavakoli
Join Date: Sep 2018
Posts: 12
Rep Power: 8 |
Quote:
|
||
March 25, 2022, 10:29 |
Uni-axial compression BC setup
|
#8 |
New Member
Craig Thomas
Join Date: Dec 2019
Location: Leeds, UK
Posts: 12
Rep Power: 7 |
Hi Philip,
Similarly to Sasan I am dealing with a solid mechanic problem that I want to physically prevent the solid displacement in the x and z direction at one boundary. To give more context, I'm trying to replicate a confined compression test of a cylindrical sample of cartilage. I'm only modelling a quarter of the sample due to symmetry which is made of o block topology formed of three blocks. I want to displace the top surface over a certain amount of time (timeVaryingFixedDisplacement) and I want the side wall of my model to deform as a function of the top surface without any 'lateral' displacement on the outer arc side walls. Currently I had set up something to do this using groovyBC but this is causing stability issues due to high gradients. Is it possible to use fixedDisplacementzeroshear to stop the displacement in the x and z directions for my side walls. If so how would I Implement this for the Arcs surface? Im also using Foam-Extend 4 is there any way to implement that6 boundary condition there as I know this BC is only in solids 4foam Thanks in advance Craig |
|
March 28, 2022, 07:17 |
|
#9 | |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
Quote:
It looks like your case axisymmetric (2-D); if so, you could use wedge (or solidWedge) conditions and then use the fixedDisplacementZeroShear condition for the side. If you do need to simulate the quarter cylinder then fixedDisplacementeroShear should also work as it "fixes" the normal direction on the patch, i.e. the radial displacement would be zero in this case (assuming that's what you want). |
||
January 13, 2024, 13:31 |
|
#10 | |
New Member
Manchester
Join Date: Aug 2022
Posts: 27
Rep Power: 4 |
Quote:
I plan to set up a FSI case, for the solid domian, which is a top tensioned beam, that is , both ends are fixed, and there is an extra tension load be applied along the beam. I ried solid traction, but this boundary condition can not fix the beam end. I tried fixedDisplacementZeroShear as well, but it doesn't work. Could you please give some ideas how to set it? Best Regards, Tian |
||
January 15, 2024, 05:56 |
|
#11 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
Hi Tian,
If both ends are fixed, then you could apply traction to the sides of the beam, or you could apply a body force (like gravity). Philip |
|
January 15, 2024, 11:30 |
|
#12 | |
New Member
Manchester
Join Date: Aug 2022
Posts: 27
Rep Power: 4 |
Quote:
Many thanks for your reply. My current set up for the solid part is shown below, FoamFile { version 2.0; format ascii; class volVectorField; location "0"; object D; } dimensions [0 1 0 0 0 0 0]; internalField uniform (0 0 0); boundaryField { interface { type solidForce; forceField solidForce; value uniform (0 0 0); } top { type fixedDisplacement; value uniform (0 0 0); } bottom { type fixedDisplacement; value uniform (0 0 0); } frontAndBack { type empty; } } When you said applt traction to the sides of the beam, how to do it? Since I want to apply this traction and keep both ends being fixed at the same time. Best, Tian |
||
January 15, 2024, 12:42 |
|
#13 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
I am not sure what you are trying to simulate. Is it a simple beam? Is there FSI or not? What is the physical problem you are approximating? On a boundary, you can enforce a known displacement or known force, but not both. Maybe a body force (like gravity) will achieve what you want?
|
|
January 15, 2024, 12:51 |
|
#14 | |
New Member
Manchester
Join Date: Aug 2022
Posts: 27
Rep Power: 4 |
Quote:
I'm trying to simulate FIV of the flexible cylinder, like offshore structures (pipeline, cable). The fluid domain is solved by using OpenFOAM with overset mesh, and for the solid domain, I plan to use solids4Foam,, then couplet them via preCICE. From some references, they mentioned both ends of the flexible structures are pinned and are tensioned. Here is one of the reference, https://pdf.sciencedirectassets.com/...498435c5&cc=gb. To study the effect of the tension of the FIV, and compare against the experimental data, I hope I can add this boundary condition on the cylinder by using solids4Foam. Best, Tian |
||
January 15, 2024, 12:57 |
|
#15 | |
New Member
Manchester
Join Date: Aug 2022
Posts: 27
Rep Power: 4 |
Quote:
|
||
January 19, 2024, 05:50 |
|
#16 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,097
Rep Power: 34 |
One option could be to apply a non-zero displacement to the ends of the beam to elongate the beam, thereby inducing tension.
Alternatively, you could use zero displacement conditions but apply an initial stress to the beam. This can be done by supplying a sigma0 field in the 0 directory with the desired initial stress field. |
|
Tags |
free motions, solids4foam, zero displacment |
|
|