Non-Conformal Coupled (NCC): Conversion of tutorials from AMI to NCC

The following examples in the tutorials ($FOAM_TUTORIALS) directory have
been converted from using AMI to the new NCC system:

+ compressible/rhoPimpleFoam/RAS/annularThermalMixer
+ incompressible/pimpleFoam/RAS/propeller
+ lagrangian/particleFoam/mixerVessel2D (formerly mixerVesselAMI2D)
+ multiphase/interFoam/RAS/mixerVessel
+ multiphase/interFoam/RAS/propeller
+ multiphase/multiphaseEulerFoam/laminar/mixerVessel2D (formerly mixerVesselAMI2D)

The following tutorial has been converted from using ACMI:

+ incompressible/pimpleFoam/RAS/oscillatingInlet

The following tutorial has been converted from using Repeat AMI:

+ incompressible/pimpleFoam/RAS/impeller

The following tutorial has been added to demonstrate NCC's ability to
create a sufficiently conservative solution in a closed domain to
maintain phase fraction boundedness:

+ multiphase/interFoam/laminar/mixerVessel2D

The following tutorials have been added to demonstrate NCC's ability to
simulate partially overlapping couples on curved surfaces:

+ incompressible/pimpleFoam/RAS/ballValve
+ multiphase/compressibleInterFoam/RAS/ballValve

The following tutorial has been added to provide a simple comparison of
the conservation behaviour of AMI and NCC:

+ incompressible/pimpleFoam/laminar/nonConformalChannel

The following tutorial has been removed, as there were sufficiently many
examples involving this geometry:

+ incompressible/pimpleFoam/laminar/mixerVesselAMI2D
This commit is contained in:
Will Bainbridge
2022-05-09 14:36:17 +01:00
parent 569fa31d09
commit 420866cfa6
222 changed files with 3857 additions and 1690 deletions

View File

@ -9,6 +9,7 @@ FoamFile
{
format ascii;
class volScalarField;
location "0";
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -21,6 +22,8 @@ internalField uniform $!outerInlet/T;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
innerInlet
{
type fixedValue;
@ -48,7 +51,10 @@ boundaryField
$staticWalls;
}
#includeEtc "caseDicts/setConstraintTypes"
nonCouple
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -22,6 +22,8 @@ internalField uniform (0 0 0);
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
innerInlet
{
type fixedValue;
@ -49,7 +51,10 @@ boundaryField
$!movingWall/U;
}
#includeEtc "caseDicts/setConstraintTypes"
nonCouple
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -22,6 +22,8 @@ internalField uniform 0;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
inlet
{
$!calculated/alphat;
@ -42,8 +44,15 @@ boundaryField
$movingWalls;
}
#includeEtc "caseDicts/setConstraintTypes"
nonCouple
{
type zeroGradient;
}
nonCouple
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -22,6 +22,8 @@ internalField uniform $!innerInlet/epsilon;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
innerInlet
{
type fixedValue;
@ -49,7 +51,15 @@ boundaryField
$staticWalls;
}
#includeEtc "caseDicts/setConstraintTypes"
nonCouple
{
type zeroGradient;
}
nonCouple
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -22,6 +22,8 @@ internalField uniform $!innerInlet/k;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
innerInlet
{
type fixedValue;
@ -49,7 +51,10 @@ boundaryField
$staticWalls;
}
#includeEtc "caseDicts/setConstraintTypes"
nonCouple
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -22,6 +22,8 @@ internalField uniform 0;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
inlet
{
$!calculated/nut;
@ -42,7 +44,10 @@ boundaryField
$movingWalls;
}
#includeEtc "caseDicts/setConstraintTypes"
nonCouple
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -22,6 +22,8 @@ internalField uniform 1e5;
boundaryField
{
#includeEtc "caseDicts/setConstraintTypes"
inlet
{
$!inlet/p;
@ -42,7 +44,10 @@ boundaryField
$staticWalls;
}
#includeEtc "caseDicts/setConstraintTypes"
nonCouple
{
type zeroGradient;
}
}
// ************************************************************************* //

View File

@ -11,6 +11,7 @@ runApplication snappyHexMesh -overwrite
runApplication createBaffles -overwrite
runApplication splitBaffles -overwrite
runApplication createNonConformalCouples -overwrite nonCouple1 nonCouple2
runApplication $(getApplication)

View File

@ -24,7 +24,7 @@ mover
motionSolver solidBody;
cellZone rotatingZone;
cellZone rotating;
solidBodyMotionFunction rotatingMotion;

View File

@ -32,7 +32,7 @@ writeInterval 0.02;
purgeWrite 0;
writeFormat ascii;
writeFormat binary;
writePrecision 6;

View File

@ -20,21 +20,21 @@ baffles
baffleFaces
{
type faceZone;
zoneName rotatingZone;
zoneName couple;
patches
{
master
{
name AMI1;
type cyclicAMI;
neighbourPatch AMI2;
name nonCouple1;
type patch;
inGroups (nonCouple);
}
slave
{
$master;
name AMI2;
neighbourPatch AMI1;
name nonCouple2;
type patch;
inGroups (nonCouple);
}
}
}

View File

@ -52,4 +52,5 @@ snGradSchemes
default corrected;
}
// ************************************************************************* //

View File

@ -18,10 +18,8 @@ solvers
{
p
{
solver GAMG;
smoother GaussSeidel;
solver GAMG;
smoother GaussSeidel;
tolerance 1e-6;
relTol 0.01;
}
@ -39,6 +37,14 @@ solvers
relTol 0;
}
MeshPhi
{
solver smoothSolver;
smoother symGaussSeidel;
tolerance 1e-2;
relTol 0;
}
"(rho|U|h|k|epsilon|omega)"
{
solver smoothSolver;
@ -52,13 +58,13 @@ solvers
$U;
relTol 0;
}
}
PIMPLE
{
momentumPredictor yes;
transonic no;
correctMeshPhi yes;
nOuterCorrectors 3;
nCorrectors 1;
nNonOrthogonalCorrectors 0;

View File

@ -19,10 +19,10 @@ addLayers false;
geometry
{
AMI
couple
{
type triSurfaceMesh;
file "AMI.obj";
file "couple.obj";
}
innerInlet
@ -85,7 +85,7 @@ castellatedMeshControls
features
(
{
file "AMI.eMesh";
file "couple.eMesh";
level 2;
}
{
@ -108,11 +108,11 @@ castellatedMeshControls
refinementSurfaces
{
AMI
couple
{
level (2 2);
faceZone rotatingZone;
cellZone rotatingZone;
faceZone couple;
cellZone rotating;
mode inside;
}

View File

@ -15,7 +15,7 @@ FoamFile
surfaces
(
"AMI.obj"
"couple.obj"
"shaft.obj"
"wall.obj"
"statorBlades.obj"