CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

Icebreaker hull simulation artefacts on free surface

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   May 30, 2024, 08:54
Default Icebreaker hull simulation artefacts on free surface
  #1
New Member
 
Clément
Join Date: May 2024
Posts: 5
Rep Power: 2
InternCFDMallorca is on a distinguished road
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 !
InternCFDMallorca is offline   Reply With Quote

Old   May 31, 2024, 05:51
Default
  #2
Senior Member
 
Join Date: Dec 2021
Posts: 251
Rep Power: 5
Alczem is on a distinguished road
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.
Alczem is offline   Reply With Quote

Old   May 31, 2024, 10:39
Default
  #3
New Member
 
Clément
Join Date: May 2024
Posts: 5
Rep Power: 2
InternCFDMallorca is on a distinguished road
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);
}


// ************************************************************************* //
And I've noticed that my pictures didn't appear , I put in attachment the hull resistance graph and a picture of my mesh.

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.
Attached Images
File Type: jpeg meshHull.jpeg (89.1 KB, 14 views)
File Type: png hullRes02.png (30.9 KB, 11 views)
InternCFDMallorca is offline   Reply With Quote

Old   June 3, 2024, 05:50
Default
  #4
Senior Member
 
Join Date: Dec 2021
Posts: 251
Rep Power: 5
Alczem is on a distinguished road
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.
Alczem is offline   Reply With Quote

Reply

Tags
convergence, courant number, hull, openfoam 2312, preprocessing


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
[ANSYS Meshing] How to make the good meshing for free surface using in water entry simulation? ddungntu ANSYS Meshing & Geometry 0 February 25, 2019 03:34
Cluster ID's not contiguous in compute-nodes domain. ??? Shogan FLUENT 1 May 28, 2014 16:03
Timestep in Free Surface Wigley Hull Carlos Andrés CFX 8 April 29, 2007 17:38
Can I have solid in the free surface simulation? ggbaby Siemens 0 September 5, 2006 06:45
free convection heat transfer from a heated horizontal surface through a liquid to a thin cooled fin Kaushik FLUENT 1 May 8, 2000 07:47


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