|
[Sponsors] |
Icebreaker hull simulation artefacts on free surface |
![]() |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
![]() |
![]() |
#1 |
New Member
Clément
Join Date: May 2024
Posts: 5
Rep Power: 2 ![]() |
Hello everyone, I’m a French student in engineering and naval architecture. I’m currently doing an internship in CFD and my job is to perform hull resistance simulation using OpenFOAM. I’ve been using OpenFOAM only for a month now.
![]() My issue is that I have what I will call artefacts on the stern of my ship after a few iterations (see the first picture). That obviously impacts the hull resistance value which doesn’t converge (see the second picture). I will try to give you enough information about my case setup so that maybe one of you would kindly help me solve this issue. I followed the DTCHull tutorial and started from this case to adapt it to my hull. I want to do full-scale simulation. So, I scalled the mesh to the size of my hull (an icebreaker of around 70m long). The meshing part is going well and the checkMesh is ok (number of cells: 2 509 098). I kept the original fvSchemes and fvSolutions of the DTCHull tutorial. I first let the controlDict file as it is and then change the endTime to 50, the timestep to 0.01 and the writing interval every 100 timeStep. It seems that these time settings hasn’t change anything to the result. So, I started to investigate the Courant number. I then changed the maxCo to 1 (was 10 before) and the maxAlphaCo to 1 also (was 5 before). Now the artefacts disappeared, and the resistance hull stabilized more. The only thing is that a simulation of this boat has already been done in StarCCM+ by professional CFD analysts and the expected value is 75 kN. Here, it now appears to converge around 40 kN. I know that my case setup is fixed (there is no motion allowed on the hull and the dynamicMeshDict isn’t used) and I am wondering if this induces such a gap. I want to first know how to run a proper fixed simulation before moving to the degrees of freedom. So, my question is: what can I change in my simulation settings to obtain a better convergence and closer than the expected value? Should I continue playing with the Courant number or am I better off investigating the fvSchemes and fvSolution files? Thank you very much for your answers ! |
|
![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Join Date: Dec 2021
Posts: 230
Rep Power: 5 ![]() |
Hey!
Could you share your files? Not your mesh, but at least fvSchemes, fvSolution, controlDict and your thermophysical properties. Besides the force provided by StarCCM, do you have experimental results for this hull? If not, I would say that StarCCM probably gives you a realistic order of magnitude, but we cannot say for certain that this is the "true" value. Only experimental data is relevant for this purpose. With that in mind, I would say that 40kN versus 75kN is at least coherent. You could check if the waves and the water elevation around the hull are similar (disclaimer: I have no working experience with hulls ![]() The previous CFD analysis had an identical setup? Are you using the same mesh, same y+, same schemes, same turbulence model if any? Did they use a pseudotransient approach too? Have you checked the convergence of the forces, meaning are they properly stabilized and not evolving anymore? If your mesh is fine enough, and the case is properly converged, you probably won't get a much "better" solution. |
|
![]() |
![]() |
![]() |
![]() |
#3 |
New Member
Clément
Join Date: May 2024
Posts: 5
Rep Power: 2 ![]() |
Thank you for your answer.
Here is my case setup files : Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v2312 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object controlDict; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // application interFoam; startFrom startTime; startTime 0; stopAt endTime; endTime 50; deltaT 0.01; writeControl timeStep; writeInterval 100; purgeWrite 0; writeFormat binary; writePrecision 6; writeCompression off; timeFormat general; timePrecision 6; runTimeModifiable yes; functions { forces { type forces; libs (forces); patches (hull); rhoInf 998.8; log on; writeControl timeStep; writeInterval 1; CofR (165.719 0 11.31); } } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v2312 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default localEuler; } gradSchemes { default Gauss linear; limitedGrad cellLimited Gauss linear 1; } divSchemes { div(rhoPhi,U) Gauss linearUpwind grad(U); div(phi,alpha) Gauss vanLeer; div(phirb,alpha) Gauss linear; div(phi,k) Gauss linearUpwind limitedGrad; div(phi,omega) Gauss linearUpwind limitedGrad; div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default corrected; } wallDist { method meshWave; } // ************************************************************************* // Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: v2312 | | \\ / A nd | Website: www.openfoam.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { "alpha.water.*" { nAlphaCorr 2; nAlphaSubCycles 1; cAlpha 1; icAlpha 0; MULESCorr yes; nLimiterIter 10; alphaApplyPrevCorr yes; solver smoothSolver; smoother symGaussSeidel; tolerance 1e-8; relTol 0; minIter 1; } "pcorr.*" { solver PCG; preconditioner { preconditioner GAMG; smoother GaussSeidel; tolerance 1e-5; relTol 0; }; tolerance 1e-5; relTol 0; }; p_rgh { solver GAMG; smoother DIC; tolerance 1e-7; relTol 0.01; }; p_rghFinal { $p_rgh; relTol 0; } "(U|k|omega).*" { solver smoothSolver; smoother symGaussSeidel; nSweeps 1; tolerance 1e-7; relTol 0.1; minIter 1; }; } PIMPLE { momentumPredictor no; nOuterCorrectors 1; nCorrectors 2; nNonOrthogonalCorrectors 0; maxCo 5; maxAlphaCo 3; rDeltaTSmoothingCoeff 0.05; rDeltaTDampingCoeff 0.5; nAlphaSpreadIter 0; nAlphaSweepIter 0; maxDeltaT 1; } relaxationFactors { equations { ".*" 1; } } cache { grad(U); } // ************************************************************************* // The fact is that I have no information about how the CFD analyst setup the case in StarCCM+ so I try to do my best to find a right setup to be as close to his results as possible. |
|
![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Join Date: Dec 2021
Posts: 230
Rep Power: 5 ![]() |
Hey,
I don't see any obvious issue sorry! Maybe try to reduce maxCo and maxAlphaCo to 1 and set the relaxation factor to 0.8 or 0.7? I had more stable results that way. |
|
![]() |
![]() |
![]() |
Tags |
convergence, courant number, hull, openfoam 2312, preprocessing |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
[ANSYS Meshing] How to make the good meshing for free surface using in water entry simulation? | ddungntu | ANSYS Meshing & Geometry | 0 | February 25, 2019 02:34 |
Cluster ID's not contiguous in compute-nodes domain. ??? | Shogan | FLUENT | 1 | May 28, 2014 15:03 |
Timestep in Free Surface Wigley Hull | Carlos Andrés | CFX | 8 | April 29, 2007 16:38 |
Can I have solid in the free surface simulation? | ggbaby | Siemens | 0 | September 5, 2006 05:45 |
free convection heat transfer from a heated horizontal surface through a liquid to a thin cooled fin | Kaushik | FLUENT | 1 | May 8, 2000 06:47 |