|
[Sponsors] |
Boundary conditions for seabed response under wave action |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
June 18, 2021, 13:18 |
Boundary conditions for seabed response under wave action
|
#1 |
Senior Member
|
Dear all,
I am using solids4Foam to simulate wave-induced seabed response. Firstly I imported the wave pressure obtained from interfoam results on the seabed surface by using "timeaveragedvaryingmappefield" and then I run the case. However, I don't think the pore water pressure is the right one. What is your opinion? since I am not pretty sure that the numerical settings, especially the boundary condition that I set are correct. I attached all the files here. Any suggestions will be highly appreciated. Code:
FoamFile { version 2.0; format ascii; class volVectorField; location "22"; object D; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 0 0 0 0 0]; internalField uniform (0 0 0); boundaryField { inlet { type solidSymmetry; patchType symmetryPlane; value uniform (0 0 0); } outlet { type solidSymmetry; patchType symmetryPlane; value uniform (0 0 0); } sides { type solidSymmetry;//fixedDisplacementZeroShear; patchType symmetryPlane; value uniform (0 0 0); } cylinder// soilStructureInterface { type fixedDisplacement; value uniform (0 0 0); } ground { type fixedDisplacement; value uniform (0 0 0); } top { type solidTraction; traction uniform (0 0 0); pressure uniform 0; value uniform (0 0 0); } } Code:
FoamFile { version 2.0; format ascii; class volScalarField; location "22"; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [1 -1 -2 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type symmetryPlane; } outlet { type symmetryPlane; } sides { type symmetryPlane;//zeroGradient; } cylinder//soilStructureInterface { type zeroGradient; } ground { type zeroGradient; } top { // type timefixedValue; // value uniform 0; type timeVaryingMappedFixedValue; setAverage off; } } |
|
June 21, 2021, 06:21 |
|
#2 | |
Senior Member
|
Quote:
|
||
June 28, 2021, 14:03 |
|
#3 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
The solidTraction condition will enforce the total traction (as defined by the total stress sigma), where total traction is the sum of the effective traction (soil skeleton) and pore pressure.
You can see how sigma is calculated in solids4foam-release/src/solids4foamModels/materialModels/mechanicalModel/mechanicalLaws/linearGeometryLaws/poroLinearElastic/poroLinearElastic.C in the correct function: Code:
void Foam::poroLinearElastic::correct(volSymmTensorField& sigma) { // Calculate effective stress linearElastic::correct(sigma); // Lookup the pressure field from the solver const volScalarField& p = mesh().lookupObject<volScalarField>("p"); // Calculate the total stress as the sum of the effective stress and the // pore-pressure sigma -= (p + p0_)*symmTensor(I); } Philip |
|
June 28, 2021, 14:28 |
|
#4 | |
Senior Member
|
Quote:
|
||
June 29, 2021, 07:02 |
|
#5 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
The way you are setting the dynamic pressure condition seems fine, but what condition should be applied to the soil skeleton? Should this effective traction be zero? Or should the total traction be zero? Where total traction is the effective traction plus the pore pressure contribution.
Currently the solids4foam solidTraction enforces a total traction condition but it would be straight-forward to addd a flag which removes the pore pressure contribution so it becomes an effective traction condition. I have not checked through the minigeotechfoam waveOverPlateOnSeabed case in detail so I am not sure which is appropriate in this case. |
|
June 29, 2021, 07:45 |
|
#6 | |
Senior Member
|
Quote:
|
||
June 30, 2021, 06:34 |
|
#7 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
In COMSOL, I assume they also solve two equations: pore pressure equation, and displacement equation. In that case, they also need two boundary conditions.
However, if as a user you only specify one condition then COMSOL is assuming the other condition for you in a (hopefully) smart manner. In your case, I guess that the total traction on the seabed is the dynamic pressure you have (ignoring viscous forces from the sea). In that case, the total traction is your dynamic pressure, which you specify as the pore pressure; then the solidTraction condition (which specifies the total traction) needs to also specify this same pressure. In that way, the effective traction on the soil skeleton is zero at the seabed. However, I suggest you find a simple representative case where you know the correct answer (e.g. you could set up a case in COMSOL) and then verify you get the same answers in solids foam, and you may need to try a variety of boundary conditions combinations until you are confident about the correct usage. Philip |
|
June 30, 2021, 07:24 |
|
#8 | |
Senior Member
|
Quote:
|
||
June 30, 2021, 07:31 |
|
#9 |
Senior Member
|
I rechecked that the effective stress at seabed surface should be zero and pore pressure is specified as dynamic wave pressure. I am thinking that if I apply fixedDisplacement for D at seabed surface (but in reality, there is no limitation on displacement) and dynamic wave pressure for p at the top, the total solid traction sigma should be equal to the wave pressure. So that there is no need to use solidtraction BC? I obtained the porepressure is the same as the condition of solidtraction used. Otherwise, it is possible to set the solidtraction equal to p?
|
|
July 12, 2021, 11:25 |
|
#10 | |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
Quote:
The simplest thing will be to allow solidTraction to equal p; I will add an option to solidTraction called "setEffectiveTraction" which will default to "off". But you can then set it to "on" and it will then look-up the p field and force the total traction to p. Do you have any simple/quick test case that we can check it on? Philip |
||
July 12, 2021, 11:49 |
|
#11 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
I have added the option to commit aed78b8f. It is currently on the development branch but will be pushed to the master in the coming days.
It seems to work correctly e.g. if I set "setEffectiveTraction" to "on" and set the traction/pressure in the solidTraction condition to zero, then I can see that the normal component of the stress tensor at the boundary is equal to the dynamic pressure. I tried it on the poroelasticity/stripFooting tutorial. |
|
July 12, 2021, 12:09 |
|
#12 | |
Senior Member
|
Quote:
|
||
July 12, 2021, 12:17 |
|
#13 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
Yes, you should change to the development branch, pull the latest changes, and then compile the code; to do this, run the following commands from the main solids4foam-release directory:
Code:
$> git checkout development $> git pull $> ./Allwmake |
|
July 13, 2021, 05:51 |
|
#14 |
Senior Member
|
Hi Prof,
I found I made a mistake before that I took the total pressure into account. In fact, the dynamic pressure should be equal to the total pressure output from interfoam subtracted by the hydrostatic pressure (rho*g*h). After I used correct wave dynamic pressure. Both two options ( setEffectiveTraction on / off) returned similar pore pressure, velocity and, displacement distribution (reasonable), but the quantity of displacement and velocity is different while the pore pressure is the same (which makes me confused). I will validate additional simple cases later. Thank you so much. |
|
July 15, 2021, 06:07 |
|
#15 |
Senior Member
|
Dear Prof.,
I compared the results with literature, in terms of a simple case, namely seabed response under a wave. As you found also, the effective normal stress now is equal to the dynamic wave pressure. However, the pore pressure and vertical effective stress don't agree with each other (the maximum and minimum values of pore pressure are basically consistent due to the right value of dynamic wave pressure I think). Additionally, I found the displacement seems not converged. I attached my "testcase" here. Hope you can help me have a look at it if possible. Thanks. |
|
July 15, 2021, 18:34 |
|
#16 |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
There is no mesh in the attached case. Can you please check this?
Also, the "sigma" field is the total stress, not the effective stress. You need to subtract the pressure term from the sigma field to get the effective stress. You can create the ZZ effective stress in ParaView using the "Calculator" field (Filters -> Alphabetical -> Calculator). You can then create a point or cell field as "sigma + p". Philip |
|
July 16, 2021, 04:15 |
|
#17 | |
Senior Member
|
Quote:
I misunderstood that option you added (if turned on), which indicates only effective stress applied on the boundary, instead of sigma being the effective stress in the field, isn't it? As you can see, the effective normal stress (In fact, I applied sigma_ZZ-p) gets similar to the result found in the literature. However, the quantities deviate to some extent. Due to the limitation of file size, I transferred the mesh file to you via Wetransfer. Sorry for that. Of course, I can create a blockMeshDict file for this simple case if you need it. Thanks for your attention. |
||
July 19, 2021, 13:41 |
|
#18 | |
Super Moderator
Philip Cardiff
Join Date: Mar 2009
Location: Dublin, Ireland
Posts: 1,093
Rep Power: 34 |
Quote:
The sigma tensor always represents the total stress, regardless of this option being on or off. This option for the solidTraction boundary condition just allows the user to enforce a total traction condition or an effective traction condition. For convenience, I have just added the field "sigmaEff" (effective stress) to the base mechanical law so the pro-elastic mechanical laws will now write this and you can view it in ParaView. See commit 21081a3e on the development branch; this will be merged to the master branch in the coming week. As to why your case is not the exact same as your reference from literature, I suggest you double check the geometry, materials, loading conditions, mesh sensitivity, and time-step sensitivity. Philip |
||
July 19, 2021, 13:46 |
|
#19 | |
Senior Member
|
Quote:
|
||
July 19, 2021, 14:44 |
|
#20 |
Senior Member
|
I tried to use a smaller time step, which is 0.1 (previously 0.5), with the same mesh (it is fine enough, I think). However, it seems to me D is not converged at each time step. After I adopted a coarse mesh, D had a smaller residual and the solution is similar. I also attached the displacement of soil calculated by COMSOL, with general partial differential equations, which I expect the equations used in the two codes are consistent. You can simply see the difference in the horizontal displacement. What is surprising to me is that the displacement on the surface is especially strange. I am considering the boundary conditions whether I specified are correct or not. What is your idea?
After I checked the source code, I found some differences. e.g. Code:
rKprime_ ( (saturation_/KWater_) + (1.0 - saturation_) /dimensionedScalar("atmosphericPressure", dimPressure, 1e+05) ) Code:
rKprime_ ( (1/KWater_) + (1.0 - saturation_) /(dimensionedScalar("atmosphericPressure", dimPressure, 1e+05)+gamma_w*g*h) ) Last edited by qi.yang@polimi.it; July 20, 2021 at 07:07. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
CGNS Boundary conditions using SU2 | denzell | SU2 | 3 | July 9, 2018 06:58 |
Wrong multiphase flow at rotating interface | Sanyo | CFX | 14 | February 7, 2017 18:19 |
Basic Nozzle-Expander Design | karmavatar | CFX | 20 | March 20, 2016 09:44 |
Question about heat transfer coefficient setting for CFX | Anna Tian | CFX | 1 | June 16, 2013 07:28 |
Low Mixing time Problem | Mavier | CFX | 5 | April 29, 2013 01:00 |