Turek benchmark FSI3 benchmark problem: Large displacement deviation

Hello everyone

I am recreating the FSI3 case of Turek Hron, but the result is quite different from the standard case, what is the reason for this?

My simulation environment

  • precice 2.5.0
  • openfoam 2306
  • calculix 2.20
  • openfoam-adapter 1.2.3

Some key parameter Settings:

//      0/u   
 inlet
    {
     // Time-varying parabolic inlet profile
     type            groovyBC;
     variables "yp=pts().y;minY=min(yp);maxY=max(yp);para=-1.5*(maxY-pos().y)*(pos().y-minY)/(0.25*pow(maxY-minY,2))*normal();";
     valueExpression "time()<2 ? 0.5*(1-cos(0.5*pi*time()))*2*para : 2*para";
     value           uniform (2 0 0);
    }
//     constant/ transportProperties
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

    transportModel Newtonian;

    nu nu [0 2 -1 0 0 0 0 ] 0.001;
//     system/preciceDict
FSI
{
  rho rho [1 -3 0 0 0 0 0] 1000;
}
//      system/fvSolution

solvers
{
    p
    {
        solver           GAMG;
        tolerance        1e-10;
        relTol           1e-6;
        smoother         DICGaussSeidel;
    }

    pFinal
    {
        $p;
        relTol          0;
    }

    pcorrFinal
    {
        $p;
        relTol          0;
    }

    Phi
    {
        $p;
    }

    "(U|cellDisplacement)"
    {
        solver          smoothSolver;
        smoother        symGaussSeidel;
        tolerance       1e-10;
        relTol          1e-6;
    }

    "(U|cellDisplacement)Final"
    {
        $U;
        relTol          0;
    }
}

PIMPLE
{
    nCorrectors 2;
    nNonOrthogonalCorrectors 0;
    tolerance 1.0e-14;
    relTol 5e-3;
    pisoTol 1e-6;
    consistent  true;

    nOuterCorrectors 50;

    // OpenFOAM (.com), OpenFOAM 5 or older (.org)
    /*
    residualControl
    {
        U
        {
            tolerance 5e-5;
            relTol      0;
        }
        p
        {
            tolerance 5e-4;
            relTol      0;
        }
    }
    */

    // OpenFOAM 6 (.org) or newer
    /*
    residualControl
    {
        U 5e-5;
        p 5e-4;
    }
    */
}

potentialFlow
{
    nNonOrthogonalCorrectors 5;
}


// ************************************************************************* //
//     solid - flap.inp
*MATERIAL,NAME=User
*ELASTIC
5.6000E+06,0.4


*DENSITY
1.0000E+03

Regards
Xiangxiang

I have put the complete file here.
OpenFOAM-CalculiX.zip (4.2 MB)
Thank you!
Xiangxiang

Disclaimer: I have not looked (yet) in your parameters, I am just trying to give directions to multiple questions in the forum first.

In the preCICE tutorials, we use deal.II instead of CalculiX. The case is described and validated in OpenFOAM-preCICE: Coupling OpenFOAM with External Solvers for Multi-Physics Simulations | OpenFOAM® Journal

Besides parameters, you also need to look at space and time discretization schemes.

For CalculiX, you could also compare to the FSI2 example contributed here: Turek-Hron FSI 2 Benchmark

I see you used solid elements of the type “C3D8”, which are linear brick elements. You could use elements with quadratic shape functions like “C3D20”. Linear elements tend to be stiffer than quadratic elements. You could also try the linear brick element with reduced integration points of the type “C3D8R”, so you don’t need to generate a new mesh, just change the element type. The fineness of your meshes and the choice of the element type affect your results.

2 Likes

Hello Felix, this is a late reply (it has to be said that our servers compute very slowly), these days, I have tried a lot of modification methods, such as: Increase the fluid grid(21K 38K 46K), increase the solid grid(0.9K 1.8K), reduce the time step(0.001 0.0005 0.0002), improve the fluid convergence standard, improve the fluid-structure coupling convergence standard, and change the solid grid to C3D20 (C3D20 requires a super large amount of computation), but the ideal results are not given, and it is difficult to reproduce Turek&Hron. I have given some reference results for your reference. One more thing to say: replicating CFD3 (fluid solver only) didn’t work out well either, so oddly enough, I’m still replicating PreCICE’s official tutorial: Turek Hron FSI3, hoping to match the standard results.

Note: CFD2 gives very standard results that are approximately the same as Turek Hron CFD2’s results.










Hi, Makis
The Calculix FSI2 example here is not available for download:Turek-Hron FSI 2 Benchmark

I have modified my discrete scheme, but it is still far from the standard result. Do you have any better suggestions? This is my fvsolution file and fvscheme file.

   ddtSchemes
{
    default         backward;
}

gradSchemes
{
    default         cellLimited Gauss linear 1;
}

divSchemes
{
    default         none;
    div(phi,U)      Gauss linearUpwind grad(U);
    div((nuEff*dev2(T(grad(U))))) Gauss linear;
}

laplacianSchemes  
{
    default         Gauss linear limited 1;
}

interpolationSchemes
{
    default         linear;
}

snGradSchemes
{
    default         limited 1;
}
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

solvers
{
    p
    {
        solver           GAMG;
        tolerance        1e-6;
        relTol           1e-5;
        smoother         DICGaussSeidel;
    }

    pFinal
    {
        $p;
        tolerance       1e-07;
        relTol          0;
    }

    pcorr
    {
        solver           GAMG;
        tolerance        1e-5;
        relTol           1e-4;
        smoother         GaussSeidel;
    }

    pcorrFinal
    {
        $pcorr;
        relTol          0;
    }

    phi
    {
        $p;
    }

    "(U|cellDisplacement)"
    {
        solver          smoothSolver;
        smoother        symGaussSeidel;
        tolerance       1e-8;
        relTol          1e-6;
    }

    "(U|cellDisplacement)Final"
    {
        $U;
        relTol          0;
    }
}

PIMPLE
{
    nOuterCorrectors 50;
    nCorrectors 2;
    nNonOrthogonalCorrectors 1;
    //tolerance 1.0e-12;

    correctPhi          yes;
    //relTol 1e-4;
    //pisoTol 1e-6;
    consistent  true;

    residualControl
    {
	    U
    	{
    		tolerance 1e-5;
    		relTol	  0;
    	}
	    p
    	{
    		tolerance 1e-5;
    		relTol	  0;
    	}
    }
}
PISO
{
    nNonOrthogonalCorrectors 1;
}
potentialFlow
{
    nNonOrthogonalCorrectors 1;
}

As can be seen from the result of CFD3, it seems that increasing the number of grids will gradually approach the standard solution. Therefore, I will try to increase the number of grids recently.