Agent skill

openfoam-11-case-directory-structure

Sub-skill of openfoam: 1.1 Case Directory Structure (+3).

Stars 4
Forks 4

Install this agent skill to your Project

npx add-skill https://github.com/vamseeachanta/workspace-hub/tree/main/.claude/skills/_archive/engineering/cfd/openfoam/11-case-directory-structure

SKILL.md

1.1 Case Directory Structure (+3)

1.1 Case Directory Structure

Every OpenFOAM case requires this minimum structure:

<case>/
    0/                          # Initial/boundary conditions
        U                       # Velocity (volVectorField)
        p                       # Pressure (volScalarField)
        k                       # Turbulent kinetic energy (if RAS/LES)
        epsilon | omega         # Dissipation (model-dependent)
        nut                     # Turbulent viscosity
    constant/
        transportProperties     # Fluid properties (nu, rho)
        turbulenceProperties    # Turbulence model selection
        polyMesh/               # Mesh (generated by blockMesh/snappyHexMesh)
    system/
        controlDict             # Run control (REQUIRED)
        fvSchemes               # Discretisation schemes (REQUIRED)
        fvSolution              # Solver settings (REQUIRED)
        blockMeshDict           # Structured mesh definition
        decomposeParDict        # Parallel decomposition

1.2 FoamFile Header

Every OpenFOAM file must begin with this header. The class and object fields must match the file type and filename.

cpp
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;     // see class table below
    object      controlDict;    // must match filename
}
File class object
controlDict, fvSchemes, fvSolution dictionary filename
transportProperties, turbulenceProperties dictionary filename
blockMeshDict, decomposeParDict dictionary filename
U (velocity) volVectorField U
p, k, epsilon, omega, nut volScalarField fieldname

1.3 controlDict

Steady-state (simpleFoam):

cpp
application     simpleFoam;
startFrom       startTime;
startTime       0;
stopAt          endTime;
endTime         2000;
deltaT          1;
writeControl    timeStep;
writeInterval   100;
purgeWrite      0;
writeFormat     ascii;
writePrecision  6;
writeCompression off;
timeFormat      general;
timePrecision   6;
runTimeModifiable true;

functions
{
    #includeFunc yPlus
    #includeFunc solverInfo
}

Transient with adaptive timestep (pimpleFoam):

cpp
application     pimpleFoam;
startFrom       latestTime;
startTime       0;
stopAt          endTime;
endTime         10;
deltaT          0.001;
writeControl    adjustable;
writeInterval   0.1;
adjustTimeStep  yes;
maxCo           5;
runTimeModifiable yes;

Multiphase (interFoam):

cpp
application     interFoam;
startFrom       startTime;
startTime       0;
stopAt          endTime;
endTime         1;
deltaT          0.001;
writeControl    adjustable;
writeInterval   0.05;
adjustTimeStep  yes;
maxCo           1;
maxAlphaCo      1;
maxDeltaT       1;
runTimeModifiable yes;

1.4 fvSchemes

Steady-state RANS (simpleFoam):

cpp
ddtSchemes      { default steadyState; }
gradSchemes     { default Gauss linear; }
divSchemes
{
    default         none;
    div(phi,U)      bounded Gauss linearUpwind grad(U);
    turbulence      bounded Gauss limitedLinear 1;
    div(phi,k)      $turbulence;
    div(phi,epsilon) $turbulence;
    div(phi,omega)  $turbulence;
    div((nuEff*dev2(T(grad(U))))) Gauss linear;
}
laplacianSchemes { default Gauss linear corrected; }
interpolationSchemes { default linear; }
snGradSchemes   { default corrected; }
wallDist        { method meshWave; }

Transient laminar (icoFoam):

cpp
ddtSchemes      { default Euler; }
gradSchemes     { default Gauss linear; }
divSchemes      { default none; div(phi,U) Gauss linear; }
laplacianSchemes { default Gauss linear orthogonal; }
interpolationSchemes { default linear; }
snGradSchemes   { default orthogonal; }

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results