# Openfoam 11 Case Directory Structure

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

- Skill: `vamseeachanta/openfoam-11-case-directory-structure` (Agent Skill)
- Install (CLI): `npx skillmds@latest add vamseeachanta/openfoam-11-case-directory-structure`
- Raw SKILL.md: https://api.skillmd.com/api/skills/vamseeachanta/openfoam-11-case-directory-structure/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: vamseeachanta (https://skillmd.com/u/vamseeachanta)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/vamseeachanta/openfoam-11-case-directory-structure

---


# 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; }
```

