CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Community Contributions > OpenFOAM CC Toolkits for Fluid-Structure Interaction

Boundary condition: solidTraction question

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

Like Tree3Likes
  • 3 Post By bigphil

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   July 3, 2019, 04:56
Default Boundary condition: solidTraction question
  #1
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 895
Rep Power: 29
bigphil will become famous soon enoughbigphil will become famous soon enough
To publicly answer a question I received via email:

Question
{
type solidTraction;
traction uniform (0 0 0);
pressure uniform 0;
value uniform (0 0 0);
}

a)
What is value referring to?

b)
Is it possible to use force as a boundary condition?

c)
{
type solidTraction;
tractionSeries
{
fileName "$FOAM_CASE/constant/timeVsTraction";
outOfBounds clamp;
}
pressure uniform 0;
value uniform (0 0 0);
}

What is this "outOfBounds"? What else exists? I have tried the “banana” trick but got no alternatives to clamp


Answer

a)
All boundary conditions in OpenFOAM can (optional for some) specify the value field. This field is the current value of the field on this patch; in this case, if it is the displacement (D) field, the value gives the current value of displacement on this patch.

So for solidTraction, this value is just used as an initial condition for displacement at the patch i.e. it does not affect the traction or enforced boundary condition in any way.

b)

solidTraction applies a traction (force per unit area) so if you want to apply a force F, you could divide F by the area of the patch to give you the equivalent traction and then use solidTraction to apply this traction.

Alternatively, it would not be difficult to create a boundary condition called e.g. solidForce which takes the total force as an argument but then you have to decide how will this force be distributed across the patch; if it is uniform then it is the same as applying a traction, though maybe more convenient as the code will calculate the area.

c)
This is how to deal with the XY interpolation if the time goes outside the specified range e.g. if timeVsTraction looks like:
Code:
(
(0  (0 0 0))
(1  (1e6 0 0))
)
At time = 0.5 then the traction will be linearly interpolated to be (0.5e6 0 0). But for time = 2, it is undefined as it is out of bounds, so the "clamp" behaviour means take the closest value so in this case traction will be clamped to the value at time = 1 as (1e6 0 0).

Other options, you can see them in the code at: $FOAM_SRC/foam/interpolations/interpolationTable/interpolationTable.H
They are: exit, warn, clamp and repeat, where exit will stop and give and error, warn will print and warning and then use clamp behaviour, clamp is described above, and repeat assume the will series is periodically repeated.

Philip

Last edited by bigphil; July 3, 2019 at 05:09. Reason: Added c)
bigphil is offline   Reply With Quote

Old   December 29, 2019, 13:51
Default
  #2
Senior Member
 
Hojatollah Gholami
Join Date: Jan 2019
Posts: 140
Rep Power: 4
Hgholami is on a distinguished road
Dear Philip
As I saw in solidTractionFvPatchVectorField.C, I think this boundary condition do as follow:
1- checking "gradient" available or not: set gradient vector value or set it zero for initial. (what is gradient?)
2- checking "value" available or not: set field vector value (example D set vector value) or set internal value of near cells of patch to it.
3- checking tractionSeries and pressureSeries available or not: set traction and pressure as time-varying or set traction and pressure vector values.
4-checking secondorder correction false or true, limitCoeff one or bellow one, and relaxationFacror one or bellow one.
5- auto maping traction and pressure to patch (is it transfering t and p to patch?)
6- reverse mapping traction and pressure patch (is it changing direction of t and p sign?)
7- check if updated do nothing ( which is updated?)
8- if tractionSeries and pressureSeries were available update traction and pressure base on time
9- lookup solidModel that used (for what?)
10- calculate surface-normal gradient on patch, (which variable?)
11- lookup grad(...) from ?fvScheme (?)
12- give Face unit normals (n), Delta vectors (delta) and Non-orthogonal correction vectors (k)
13- if secondOrder: D = D + k.grad(D) + 1/2( ? +n.grad(D))/(reciprocal distance) or firstOrder: D = D + k.grad(D) + ?/(reciprocal distance)
14- writing tractionSeries or traction, pressureSeries or pressure, value, etc.

if it's possible, please consider it, and favor me to correct it. Thanks
Hgholami is offline   Reply With Quote

Old   September 3, 2020, 05:43
Default
  #3
New Member
 
Denis Maier
Join Date: Aug 2019
Posts: 10
Rep Power: 3
DOMaier is on a distinguished road
Hello all,

I noticed that the solidTraction boundary condition uses the inverse convention for the pressure keyword as the solidModels do.

That is, if I apply a pressure of +10kPa on a 1D-Rod it will compress and I get negative sigma.
Similarly, for a pressure of -10kPa, it will elongate and I get positive sigma.

The traction keyword is correct however. (Probably because it is a vector and therefor the direction is clear)


Does anyone know if there is a reason for this behaviour?


Greetings,
Denis
DOMaier is offline   Reply With Quote

Old   September 7, 2020, 04:25
Default
  #4
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 895
Rep Power: 29
bigphil will become famous soon enoughbigphil will become famous soon enough
Quote:
Originally Posted by DOMaier View Post
Hello all,

I noticed that the solidTraction boundary condition uses the inverse convention for the pressure keyword as the solidModels do.

That is, if I apply a pressure of +10kPa on a 1D-Rod it will compress and I get negative sigma.
Similarly, for a pressure of -10kPa, it will elongate and I get positive sigma.

The traction keyword is correct however. (Probably because it is a vector and therefor the direction is clear)


Does anyone know if there is a reason for this behaviour?


Greetings,
Denis
Hi Denis,

The typical convention (in mechanical engineering anyway) is to assume positive pressure means compression.

And so a positive surface pressure means to "push in" on a surface.

Philip
bigphil is offline   Reply With Quote

Old   September 7, 2020, 05:02
Default
  #5
New Member
 
Denis Maier
Join Date: Aug 2019
Posts: 10
Rep Power: 3
DOMaier is on a distinguished road
Hi Philip,


thanks for the clarification. So it's more or less just a "word"-thing, where "pressure" is defined to have the inverse sign convention to "stress".



Denis
DOMaier is offline   Reply With Quote

Old   September 7, 2020, 06:00
Default
  #6
Super Moderator
 
bigphil's Avatar
 
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 895
Rep Power: 29
bigphil will become famous soon enoughbigphil will become famous soon enough
Quote:
Originally Posted by DOMaier View Post
thanks for the clarification. So it's more or less just a "word"-thing, where "pressure" is defined to have the inverse sign convention to "stress".
Sure, yes. Just like in fluids, positive pressure typically means the material is being compressed.
bigphil is offline   Reply With Quote

Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Wind turbine simulation Saturn CFX 58 July 3, 2020 01:13
mixed inflow/outflow downstream boundary condition question peob OpenFOAM Running, Solving & CFD 3 February 3, 2017 10:54
Basic Nozzle-Expander Design karmavatar CFX 20 March 20, 2016 08:44
Problem in setting Boundary Condition Madhatter92 CFX 12 January 12, 2016 04:39
a simple Boundary condition question prapanj OpenFOAM Running, Solving & CFD 1 March 16, 2009 07:51


All times are GMT -4. The time now is 05:40.