Sub-skill of openfoam: 1.1 Case Directory Structure (+3).
Scanned 9/9/2026
Install to Claude Code
npx -y skills add vamseeachanta/workspace-hub --skill 11-case-directory-structure --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of 11 Case Directory Structure?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vamseeachanta-11-case-directory-structure-workspace-hub)More formats (shields.io, HTML) on the badges page.
---
name: openfoam-11-case-directory-structure
description: 'Sub-skill of openfoam: 1.1 Case Directory Structure (+3).'
version: 1.0.0
category: engineering
type: reference
scripts_exempt: true
---
# 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; }
```
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!