executed with foamRun for single region simulations of foamMultiRun for
multi-region simulations. Replaces pimpleFoam, pisoFoam and simpleFoam and all
the corresponding tutorials have been updated and moved to
tutorials/modules/incompressibleFluid.
Class
Foam::solvers::incompressibleFluid
Description
Solver module for steady or transient turbulent flow of incompressible
isothermal fluids with optional mesh motion and change.
Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and
pseudo-transient and steady simulations.
Optional fvModels and fvConstraints are provided to enhance the simulation
in many ways including adding various sources, constraining or limiting
the solution.
Reference:
\verbatim
Greenshields, C. J., & Weller, H. G. (2022).
Notes on Computational Fluid Dynamics: General Principles.
CFD Direct Ltd.: Reading, UK.
\endverbatim
SourceFiles
incompressibleFluid.C
See also
Foam::solvers::fluidSolver
Foam::solvers::isothermalFluid
137 lines
2.8 KiB
C++
137 lines
2.8 KiB
C++
/*--------------------------------*- C++ -*----------------------------------*\
|
|
========= |
|
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
|
\\ / O peration | Website: https://openfoam.org
|
|
\\ / A nd | Version: dev
|
|
\\/ M anipulation |
|
|
\*---------------------------------------------------------------------------*/
|
|
FoamFile
|
|
{
|
|
format ascii;
|
|
class dictionary;
|
|
object snappyHexMeshDict;
|
|
}
|
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
|
|
|
#includeEtc "caseDicts/mesh/generation/snappyHexMeshDict.cfg"
|
|
|
|
castellatedMesh on;
|
|
snap on;
|
|
addLayers off;
|
|
|
|
geometry
|
|
{
|
|
fixed
|
|
{
|
|
type triSurfaceMesh;
|
|
file "fixed.obj";
|
|
regions
|
|
{
|
|
patch0 { name slipWall; }
|
|
patch1 { name outlet; }
|
|
patch2 { name inlet; }
|
|
}
|
|
}
|
|
rotatingZone
|
|
{
|
|
type triSurfaceMesh;
|
|
file "rotatingZone.obj";
|
|
}
|
|
};
|
|
|
|
castellatedMeshControls
|
|
{
|
|
features
|
|
(
|
|
{ file "fixed.eMesh"; level 2; }
|
|
{ file "rotatingZone.eMesh"; level 4; }
|
|
);
|
|
|
|
refinementSurfaces
|
|
{
|
|
fixed
|
|
{
|
|
level (2 2);
|
|
patchInfo { type wall; }
|
|
inGroups (fixed);
|
|
|
|
regions
|
|
{
|
|
patch0
|
|
{
|
|
level (2 2);
|
|
patchInfo { type slip; }
|
|
}
|
|
|
|
patch1
|
|
{
|
|
level (2 2);
|
|
patchInfo { type patch; }
|
|
}
|
|
|
|
patch2
|
|
{
|
|
level (2 2);
|
|
patchInfo { type patch; }
|
|
}
|
|
}
|
|
}
|
|
rotatingZone
|
|
{
|
|
level (4 4);
|
|
faceZone rotatingZone;
|
|
cellZone rotatingZone;
|
|
mode inside;
|
|
}
|
|
|
|
}
|
|
|
|
refinementRegions
|
|
{
|
|
fixed
|
|
{
|
|
mode inside;
|
|
levels ((1e-5 1));
|
|
}
|
|
rotatingZone
|
|
{
|
|
mode inside;
|
|
levels ((1e-5 4));
|
|
}
|
|
}
|
|
|
|
insidePoint (1e-5 1e-5 1e-5); // Offset from (0 0 0) to avoid
|
|
// coinciding with face or edge
|
|
}
|
|
|
|
snapControls
|
|
{
|
|
explicitFeatureSnap true;
|
|
}
|
|
|
|
addLayersControls
|
|
{
|
|
layers
|
|
{
|
|
}
|
|
|
|
relativeSizes true; // false, usually with firstLayerThickness
|
|
expansionRatio 1.2;
|
|
finalLayerThickness 0.5;
|
|
minThickness 1e-3;
|
|
// firstLayerThickness 0.01;
|
|
|
|
// maxThicknessToMedialRatio 0.6;
|
|
}
|
|
|
|
writeFlags
|
|
(
|
|
scalarLevels
|
|
layerSets
|
|
layerFields
|
|
);
|
|
|
|
mergeTolerance 1e-6;
|
|
|
|
// ************************************************************************* //
|