CFDComputing - Power of Numerical Simulation

 OpenFOAM Tutorial

 Fluent Tutorial

 CFX Tutorial

 STARCD Tutorial

 STARCCM+ Tutorial

 Forums

Meshing with SnappyHexMesh How to get the best mesh from SnappyHexMesh snappyHexmesh.com

OpenFOAM to Fluent How to convert OpenFOAM mesh to Fluent Mesh FoamFluent.com

Mass Flow Rate FOAM How to monitor mass flow rate in OpenFOAM massflow_Foam.com

Underhood CFD OpenFOAM Underhood CFD Simulation for Automotive Truck openfoamTutorial.com

Forces in OpenFOAM How to calculate lift and drag coefficient in OpenFOAM force_foam.com

OpenFOAM Meshing Study How to create Porous and Rotating Zone with OpenFOAM foamMeshing.com

 

Underhood CFD Simulation for Automotive Truck

In this section I will be updating the tutorial and detail procedure to setup the problem using OpenFOAM CFD software

The purpose of this tutorial is to illustrate the setup and solution of an simulation case study. Some of the standard benchmark cases are discussed here, ...

Please check out the link below to find out more:

* Underhood CFD Simulation for Automotive Truck

* OpenFOAM Mehsing Study

 

All the necessary input file for OpenFOAM solver to run can be found in constant and system directory. A constant directory that contains a full description of the case mesh in a subdirectory polyMesh and files specifying physical properties for the application concerned, e.g.transportProperties. Second dir is a system directory for setting parameters associated with the solution procedure itself. It contains at least the following 3 files: controlDict where run control parameters are set including start/end time, time step and parameters for data output; fvSchemes where discretisation schemes used in the solution may be selected at run-time; and, fvSolution where the equation solvers, tolerances and other algorithm controls are set for the run. The ‘time’ directories containing individual files of data for particular fields. The data can be: either, initial values and boundary conditions that the user must specify to define the problem; or, results written to file by OpenFOAM. The name of each time directory is based on the simulated time at which the data is written.

 

1.      Case Setup : The OpenFOAM solvers begin all runs by setting up a database. The database controls I/O and, since output of data is usually requested at intervals of time during the run, time is an inextricable part of the database. The controlDict dictionary sets input parameters essential for the creation of the database.

Volvo

 ---> constant   fluid properties, turbulence property, force patch  etc

       ----> polymesh   mesh also in the meshing process directories

       ----> triSurface    containing all model stl files

----> system   Numerical scheme and solution control

 ---> 1    Meshing process dir

 ---> 2    Meshing process  snapped mesh

 ---> 3    Final mesh with extrusion layers and initial and boundary conditions

 ---> 4    time step 1

----> 1004   Solution written n after 1000 time step

----> VTK  vtl solution and mesh

----> Ensight  Ensight solution files

1.      Initial and Boundary conditions:    All the initial and boundary conditions input file are kept in the final mesh dir in this case it's dir 3.  the input file for flow variable p looks like as follows

 

All the dimensions      [0 2 -2 0 0 0 0];

// include "includeFiles/pInternal";

internalField   uniform 0;

boundaryField

{

cabin

{

type            zeroGradient;

}

 

tyre

{

type            zeroGradient;

}

OpenFOAM keeps tracks of dimension of the variable and type of the boundaries.

Initial filed is specified by internalField one can also specify the initial filed values by including the file by include  “ “

boundary condition is specified within  boundaryFiled . As shown above.

Similarly for flow variavle U the file will look like this ...

 

        class volVectorField;

        object U;

}

 

dimensions      [0 1 -1 0 0 0 0];

include "includeFiles/UInternal";

boundaryField

{

wall-y-max

{

type            symmetryPlane;  

}

wall-x-min

{

type            fixedValue;

value           uniform (25.0 0.0 0.0);

}

 

boundary type zeroGradient and  symmetryPlane will not need any additional value but a fixed Value is also supplied with additional value of inlet flow velocity ( truck speed in this case).

 

2.      Numerical Scheme:  Input files relates to numerical scheme and solution control fvSceme and fvSolution are kept in the system dir. The fvSchemes dictionary (file)  in the system directory sets the numerical schemes for terms, such as derivatives in equations, that appear in applications being run. The terms that must typically be assigned a numerical scheme in fvSchemes range from derivatives, e.g. gradient , and interpolations of values from one set of points to another. The aim in OpenFOAM is to offer an unrestricted choice to the user. For example, while linear interpolation is effective in many cases, OpenFOAM offers complete freedom to choose from a wide selection of interpolation schemes for all interpolation terms.

The derivative terms further exemplify this freedom of choice. The user first has a choice of discretisation practice where standard Gaussian finite volume integration is the common choice. Gaussian integration is based on summing values on cell faces, which must be interpolated from cell centres. The user again has a completely free choice of interpolation scheme, with certain schemes being specifically designed for particular derivative terms, especially the convection divergence  terms.

The set of terms, for which numerical schemes must be specified, are subdivided within the fvSchemes dictionary into the categories listed in Table 4.5 of the user guild.  Each keyword in Table 4.5 is the name of a sub-dictionary which contains terms of a particular type, e.g.gradSchemes contains all the gradient derivative terms such as grad(p) (which represents ). Further examples can be seen in the extract from an fvSchemes dictionary below:

 FvSchme dictionaries

 ddtSchemes

{

    default steadyState;

}

 gradSchemes

{

    default         Gauss linear;

    grad(p)         Gauss linear;

    grad(U)         Gauss linear;

//    grad(U)         cellLimited Gauss linear 1;

}

 divSchemes

{

    default         none;

    div(phi,U)      Gauss linearUpwindV Gauss linear;

    div(phi,k)      Gauss upwind;

    div(phi,omega)  Gauss upwind;

    div((nuEff*dev(grad(U).T()))) Gauss linear;

}

 laplacianSchemes

{

    default         Gauss linear corrected;

//    default         Gauss linear limited 0.5;

//    default         Gauss linear limited 0.333;

}

 interpolationSchemes Point-to-point interpolations of values snGradSchemes Component of gradient normal to a cell face gradSchemes Gradient  divSchemes Divergence  laplacianSchemes Laplacian  timeScheme First and second time derivatives  fluxRequired Fields which require the generation of a flux

 3.       Solution and algorithm control :

The equation solvers, tolerances and algorithms are controlled from the fvSolution dictionary in the system directory. Below is an example set of entries from the fvSolution dictionary required for the icoFoam solver.

 fvSolution dictionaries

solvers

{

    p

    {

        solver           GAMG;

        tolerance        1e-7;

        relTol           0.1;

        smoother         GaussSeidel;

        nPreSweeps       0;

        nPostSweeps      2;

        cacheAgglomeration on;

        agglomerator     faceAreaPair;

        nCellsInCoarsestLevel 10;

        mergeLevels      1;

    };

    U

    {

        solver           smoothSolver;

        smoother         GaussSeidel;

        tolerance        1e-8;

        relTol             0.1;

        nSweeps          1;

    };

    k

    {

        solver           smoothSolver;

        smoother         GaussSeidel;

        tolerance        1e-8;

        relTol           0.1;

        nSweeps          1;

    };

 

In the beginning of the solver setting , the turbulence model can be enabled or disabled within the  turbulencePropertieset  dictionaries.

 

 In order to choose whether an explicit or an implicit solver is to be used, the system/fvSolution  file needs to be modified. For the implicit solver to be used the variable nUcorrectors  inside SIMPLE  needs to be a value larger than zero. If the explicit solver is to be used the variable nUcorrectors  can be removed. 

SIMPLE

{

// nUCorrectors 0;

nNonOrthogonalCorrectors 0;

pMin pMin [1 -1 -2 0 0 0 0] 100;

}

 

 For the explicit case the solver for the velocity U is needed to be dened. This is done inside the

keyword solver :

solver

{

U smoothSolver

{

smoother GaussSeidel;

nSweeps 2;

tolerance 1e-6;

relTol 0.1;

};

 

 while for the implicit case it is not needed to specify the solver for the velocity U. The underrelaxation

factors are also different between the explicit and the implicit case, being higher for the implicit case. The under-relaxation factors can be higher for the implicit solver because it is more robust than the explicit one.

 

relaxationFactors //explicit

{

p 0.3;

U 0.7;

 

4.      Post-possessing

with foamToVTK -latestTime

 

 

  CFDComputing.com © 2009-2012                      Privacy Policy                  contact us                           sitemap