CFD Online Logo CFD Online URL
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

potentialFreeSurfaceFoam for ship resistance estimation

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

Like Tree2Likes
  • 2 Post By Ship Designer

LinkBack Thread Tools Search this Thread Display Modes
Old   July 14, 2015, 06:25
Default potentialFreeSurfaceFoam for ship resistance estimation
New Member
Join Date: Feb 2015
Posts: 18
Rep Power: 11
jojosaxo is on a distinguished road
Hi everyone,

I'm trying to use potentialFreeSurfaceFoam applied to ship hydrodynamic problem. I basically want to simulate flow around a ship hull using this solver and compre the resistance results to those obtain with a VOF method (like interFoam).

However, I experienced some trouble, the simulation never seems to converge, I think because of the freeSurface boundary condition.

I've tried to solve this with pimpleFoam, with a fixedValue condition at the free Surface and this seems to work very well (even if this condition is not suitable for this problem).

Has any of you ever tried to solve this kind of problem? What did you use as BC for the free surface for p_gh and U ???

Thanks a lot!
jojosaxo is offline   Reply With Quote

Old   October 26, 2015, 00:33
Senior Member
Baris (Heewa)
Join Date: Jan 2013
Location: Japan
Posts: 130
Rep Power: 13
shipman is on a distinguished road
Hi Jojo,

I am also interested in same solver to use for the marine applications. Could you tell me that did you have any success for this solver?

thank you

shipman is offline   Reply With Quote

Old   June 28, 2020, 17:34
Default Help with wave resistance of a ship
New Member
Mateus Alves Farah
Join Date: Sep 2019
Posts: 5
Rep Power: 6
mateusfarah is on a distinguished road
Hello there, I know that this is a old thread but did you have some success in the issue you posted?

I would really appreciatte if you could share with us, because for me it would help a lot in a validation process that I am doing for my term paper.

If you prefer to send a email this is mine:

mateusfarah is offline   Reply With Quote

Old   November 19, 2020, 20:47
Senior Member
Claudio Boezio
Join Date: May 2020
Location: Europe
Posts: 137
Rep Power: 7
Ship Designer is on a distinguished road

I too have spent some time trying to use potentialFreeSurfaceFoam to calculate ship hull resistance.

First of all I think that there is a misconception surrounding potentialFreeSurfaceFoam. Potential solvers for calculating ship hull pressure distributions and wave patterns have been in use for years and they are known to be reasonably accurate and less computationally expensive compared to FVM. It is my understanding though that potentialFreeSurfaceFoam is not such a solver and it is not simply a version of potentialFoam capable of generating a wave pattern, despite the similar name. I believe the meaning of "potential" in potentialFreeSurfaceFoam is rather related to potential energy, as the solver calculates the height field zeta of the approximated and distorded free surface.

potentialFreeSurfaceFoam uses the PIMPLE algorithm, which is the same used also by interFoam. The main difference is that potentialFreeSurfaceFoam deals with one phase only and thus — for simplification — doesn't require the density rho, which is in fact ommitted from the equations. Pressure is calculated based on the height only and rho is only required to calculate forces, if required. Hence, the dynamic pressure variable is p_gh as opposed to p_rgh used by interFoam.

The Z component of zeta is calculated by dividing the dynamic pressure by the gravitational acceleration, yielding the height. Thus

zeta Z = h = p_gh / g
The other two components of the vector zeta are zero. In other words, zeta is the hydrostatic pressure head corresponding to the dynamic pressure. For this, the boundary condition waveSurfacePressure needs to be appliead at the free surface boundary of the p_gh field. All other boundary conditions are the same that are used for a ship hull resistance case with interFoam, with a few exceptions, listed below.

What I'm not sure about, is if the field zeta is applied back into the calculation, by modifying the total pressure field p. Pressure generates waves, which in turn change the pressure until an equilibrium is found (quasi static wave pattern). Below I've attached pictures of my case and it can be clearly seen, that the wave pattern looks very unphysical. I've tried using a finer mesh from 300k cells to 1.2M, using a very small courant number ~0.05, changed some boundary conditions and replaced two divergence schemes, none of which had any qualitative effect on the wave pattern. It is possible that this solver was never intended for this appplication and that it can approximate only very simple waves in simple geometries like in the oscillatingBox tutorial.

The attached pictures are of the 300k cell mesh with a 1 m Wigley hull. Speed is 0.79 m/s with a Froude Number of Fr = 0.252. The time step is 0.002 which gives a CFL Number of about 1. CFL of slightly more than 1 is okay too, the solution runs stable without any additional PIMPLE correctors.

If you have any ideas of how to make this work, I'm all ears. Also if you know any potential solver capable of generating a wave pattern, i.e. something similar to what some slender body programs do, I would be grateful for any hint. I'm interested in comparing results with one of those and interFoam.

Boundary Conditions:

// volVectorField U

internalField  uniform ($ShipVelocity 0 0);

boundaryField  {       Inlet  {  type  fixedValue;
                                value  $internalField; }
                      Outlet  {  type  zeroGradient; }
                        Left  {  type  fixedValue;
                                value  $internalField; }
                    Midplane  {  type  symmetryPlane; }
                      Bottom  {  type  fixedValue;
                                value  $internalField; }
                 FreeSurface  {  type  pressureInletOutletVelocity;
                                tangentialVelocity  uniform ($internalField);
                                value  uniform (0 0 0);                       }
                  WigleyHull  {  type  noSlip; }                                }
// volScalarField p

// You can use zeroGradient instead of calculated, has same effect

internalField  uniform 0;

boundaryField  {       Inlet  { //type  zeroGradient;
                                  type  calculated;
                                 value  $internalField; }
                      Outlet  { //type  zeroGradient;
                                  type  calculated;
                                 value  $internalField; }
                        Left  { //type  zeroGradient;
                                  type  calculated;
                                 value  $internalField; }
                    Midplane  {   type  symmetryPlane; }
                      Bottom  { //type  zeroGradient;
                                  type  calculated;
                                 value  $internalField; }
                 FreeSurface  { //type  zeroGradient;
                                  type  calculated;
                                 value  $internalField; }
                  WigleyHull  { //type  zeroGradient;
                                  type  calculated;
                                 value  $internalField; } }
// volScalarField p_gh

internalField  uniform 0;
boundaryField  {       Inlet  {  type  zeroGradient; }
                      Outlet  {  type  zeroGradient; }
                        Left  {  type  zeroGradient; }
                    Midplane  {  type  symmetryPlane; }
                      Bottom  {  type  zeroGradient; }
                 FreeSurface  {  type  waveSurfacePressure;
                                value  $internalField;      }
                  WigleyHull  {  type  zeroGradient; }        }
Attached Images
File Type: jpg Field p_gh at Free Surface.jpg (32.5 KB, 94 views)
File Type: jpg Field zeta Z at Free Surface.jpg (32.6 KB, 87 views)
File Type: jpg PotentialFreeSurfaceWigley 3rd Run 1.jpg (48.1 KB, 90 views)
File Type: jpg PotentialFreeSurfaceWigley 3rd Run 2.jpg (61.2 KB, 71 views)
File Type: jpg PotentialFreeSurfaceWigley 3rd Run 3.jpg (52.9 KB, 64 views)
yuno and FloB like this.
Ship Designer is offline   Reply With Quote


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
Inertial Resistance and Viscous Resistance Data ravitejakatragadda FLUENT 5 May 10, 2018 04:16
Viscous resistance and Pressure resistance PeiSan Fidelity CFD 2 September 22, 2014 03:35
Ship resistance tobino FLUENT 0 June 27, 2011 20:31
adapt viscous resistance based on velocity / UDF Häwimeddel FLUENT 2 April 20, 2009 10:08
tube bank inertial resistance coefficients Brian FLUENT 0 September 8, 2004 09:04

All times are GMT -4. The time now is 09:21.