|
[Sponsors] |
![]() |
![]() |
#1 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,091
Rep Power: 34 ![]() ![]() |
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)) ) 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) |
|
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Hojatollah Gholami
Join Date: Jan 2019
Posts: 171
Rep Power: 7 ![]() |
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 |
|
![]() |
![]() |
![]() |
![]() |
#3 |
New Member
Denis Maier
Join Date: Aug 2019
Posts: 17
Rep Power: 7 ![]() |
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 |
|
![]() |
![]() |
![]() |
![]() |
#4 | |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,091
Rep Power: 34 ![]() ![]() |
Quote:
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 |
||
![]() |
![]() |
![]() |
![]() |
#5 |
New Member
Denis Maier
Join Date: Aug 2019
Posts: 17
Rep Power: 7 ![]() |
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 |
|
![]() |
![]() |
![]() |
![]() |
#6 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,091
Rep Power: 34 ![]() ![]() |
||
![]() |
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Wind turbine simulation | Saturn | CFX | 60 | July 17, 2024 05:45 |
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 |