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

@ -0,0 +1,404 @@
/*--------------------------------*- 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 blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
convertToMeters 0.01;
rCore 6;
rPipe 10;
rBall 18;
lPipe 50;
nCore 10;
nPipe 7;
nLength 20;
rBend #calc "sqrt(scalar($rBall*$rBall - $rPipe*$rPipe))";
geometry
{
sphere
{
type searchableSphere;
centre (0 0 0);
radius $rBall;
}
torus
{
type triSurfaceMesh;
file "ballValve-torus.obj";
}
}
vertices
(
// X-pipe
(#neg $lPipe #neg $rCore 0)
(#neg $lPipe 0 #neg $rCore)
(#neg $lPipe $rCore 0)
(#neg $lPipe 0 $rCore)
(#neg $lPipe #neg $rPipe 0)
(#neg $lPipe 0 #neg $rPipe)
(#neg $lPipe $rPipe 0)
(#neg $lPipe 0 $rPipe)
project (#neg $rBend #neg $rCore 0) (sphere)
project (#neg $rBend 0 #neg $rCore) (sphere)
project (#neg $rBend $rCore 0) (sphere)
project (#neg $rBend 0 $rCore) (sphere)
(#neg $rBend #neg $rPipe 0)
(#neg $rBend 0 #neg $rPipe)
(#neg $rBend $rPipe 0)
(#neg $rBend 0 $rPipe)
// Y-lower-pipe
($rCore #neg $lPipe 0)
(0 #neg $lPipe #neg $rCore)
(#neg $rCore #neg $lPipe 0)
(0 #neg $lPipe $rCore)
($rPipe #neg $lPipe 0)
(0 #neg $lPipe #neg $rPipe)
(#neg $rPipe #neg $lPipe 0)
(0 #neg $lPipe $rPipe)
project ($rCore #neg $rBend 0) (sphere)
project (0 #neg $rBend #neg $rCore) (sphere)
project (#neg $rCore #neg $rBend 0) (sphere)
project (0 #neg $rBend $rCore) (sphere)
($rPipe #neg $rBend 0)
(0 #neg $rBend #neg $rPipe)
(#neg $rPipe #neg $rBend 0)
(0 #neg $rBend $rPipe)
// Y-upper-pipe
(#neg $rCore $lPipe 0)
(0 $lPipe #neg $rCore)
($rCore $lPipe 0)
(0 $lPipe $rCore)
(#neg $rPipe $lPipe 0)
(0 $lPipe #neg $rPipe)
($rPipe $lPipe 0)
(0 $lPipe $rPipe)
project (#neg $rCore $rBend 0) (sphere)
project (0 $rBend #neg $rCore) (sphere)
project ($rCore $rBend 0) (sphere)
project (0 $rBend $rCore) (sphere)
(#neg $rPipe $rBend 0)
(0 $rBend #neg $rPipe)
($rPipe $rBend 0)
(0 $rBend $rPipe)
// Ball
project (#neg $rBend #neg $rCore 0) (sphere)
project (#neg $rBend 0 #neg $rCore) (sphere)
project (#neg $rBend $rCore 0) (sphere)
project (#neg $rBend 0 $rCore) (sphere)
(#neg $rBend #neg $rPipe 0)
(#neg $rBend 0 #neg $rPipe)
(#neg $rBend $rPipe 0)
(#neg $rBend 0 $rPipe)
project (#neg $rCore #neg $rBend 0) (sphere)
project (0 #neg $rBend #neg $rCore) (sphere)
project ($rCore #neg $rBend 0) (sphere)
project (0 #neg $rBend $rCore) (sphere)
(#neg $rPipe #neg $rBend 0)
(0 #neg $rBend #neg $rPipe)
($rPipe #neg $rBend 0)
(0 #neg $rBend $rPipe)
);
blocks
(
// X-pipe
hex (0 1 2 3 8 9 10 11) pipes ($nCore $nCore $nLength) simpleGrading (1 1 1)
hex (1 0 4 5 9 8 12 13) pipes ($nCore $nPipe $nLength) simpleGrading (1 1 1)
hex (2 1 5 6 10 9 13 14) pipes ($nCore $nPipe $nLength) simpleGrading (1 1 1)
hex (3 2 6 7 11 10 14 15) pipes ($nCore $nPipe $nLength) simpleGrading (1 1 1)
hex (0 3 7 4 8 11 15 12) pipes ($nCore $nPipe $nLength) simpleGrading (1 1 1)
// Y-lower-pipe
hex (16 17 18 19 24 25 26 27) pipes ($nCore $nCore $nLength) simpleGrading (1 1 1)
hex (17 16 20 21 25 24 28 29) pipes ($nCore $nPipe $nLength) simpleGrading (1 1 1)
hex (18 17 21 22 26 25 29 30) pipes ($nCore $nPipe $nLength) simpleGrading (1 1 1)
hex (19 18 22 23 27 26 30 31) pipes ($nCore $nPipe $nLength) simpleGrading (1 1 1)
hex (16 19 23 20 24 27 31 28) pipes ($nCore $nPipe $nLength) simpleGrading (1 1 1)
// Y-upper-pipe
hex (32 33 34 35 40 41 42 43) pipes ($nCore $nCore $nLength) simpleGrading (1 1 1)
hex (33 32 36 37 41 40 44 45) pipes ($nCore $nPipe $nLength) simpleGrading (1 1 1)
hex (34 33 37 38 42 41 45 46) pipes ($nCore $nPipe $nLength) simpleGrading (1 1 1)
hex (35 34 38 39 43 42 46 47) pipes ($nCore $nPipe $nLength) simpleGrading (1 1 1)
hex (32 35 39 36 40 43 47 44) pipes ($nCore $nPipe $nLength) simpleGrading (1 1 1)
// Ball
hex (48 49 50 51 56 57 58 59) ball ($nCore $nCore $nLength) simpleGrading (1 1 1)
hex (49 48 52 53 57 56 60 61) ball ($nCore $nPipe $nLength) simpleGrading (1 1 1)
hex (50 49 53 54 58 57 61 62) ball ($nCore $nPipe $nLength) simpleGrading (1 1 1)
hex (51 50 54 55 59 58 62 63) ball ($nCore $nPipe $nLength) simpleGrading (1 1 1)
hex (48 51 55 52 56 59 63 60) ball ($nCore $nPipe $nLength) simpleGrading (1 1 1)
);
edges
(
// X-pipe
arc 4 5 90 (1 0 0)
arc 5 6 90 (1 0 0)
arc 6 7 90 (1 0 0)
arc 7 4 90 (1 0 0)
arc 12 13 90 (1 0 0)
arc 13 14 90 (1 0 0)
arc 14 15 90 (1 0 0)
arc 15 12 90 (1 0 0)
project 8 9 (sphere)
project 9 10 (sphere)
project 10 11 (sphere)
project 11 8 (sphere)
project 8 12 (sphere)
project 9 13 (sphere)
project 10 14 (sphere)
project 11 15 (sphere)
// Y-lower-pipe
arc 20 21 90 (0 1 0)
arc 21 22 90 (0 1 0)
arc 22 23 90 (0 1 0)
arc 23 20 90 (0 1 0)
arc 28 29 90 (0 1 0)
arc 29 30 90 (0 1 0)
arc 30 31 90 (0 1 0)
arc 31 28 90 (0 1 0)
project 24 25 (sphere)
project 25 26 (sphere)
project 26 27 (sphere)
project 27 24 (sphere)
project 24 28 (sphere)
project 25 29 (sphere)
project 26 30 (sphere)
project 27 31 (sphere)
// Y-upper-pipe
arc 36 37 90 (0 -1 0)
arc 37 38 90 (0 -1 0)
arc 38 39 90 (0 -1 0)
arc 39 36 90 (0 -1 0)
arc 44 45 90 (0 -1 0)
arc 45 46 90 (0 -1 0)
arc 46 47 90 (0 -1 0)
arc 47 44 90 (0 -1 0)
project 40 41 (sphere)
project 41 42 (sphere)
project 42 43 (sphere)
project 43 40 (sphere)
project 40 44 (sphere)
project 41 45 (sphere)
project 42 46 (sphere)
project 43 47 (sphere)
// Ball
arc 52 53 90 (1 0 0)
arc 53 54 90 (1 0 0)
arc 54 55 90 (1 0 0)
arc 55 52 90 (1 0 0)
arc 60 61 90 (0 -1 0)
arc 61 62 90 (0 -1 0)
arc 62 63 90 (0 -1 0)
arc 63 60 90 (0 -1 0)
arc 48 56 105 (0 0 -1)
arc 49 57 100 (0 0 -1)
arc 50 58 95 (0 0 -1)
arc 51 59 100 (0 0 -1)
arc 52 60 90 (0 0 -1)
arc 53 61 90 (0 0 -1)
arc 54 62 90 (0 0 -1)
arc 55 63 90 (0 0 -1)
project 48 49 (sphere)
project 49 50 (sphere)
project 50 51 (sphere)
project 51 48 (sphere)
project 48 52 (sphere)
project 49 53 (sphere)
project 50 54 (sphere)
project 51 55 (sphere)
project 56 57 (sphere)
project 57 58 (sphere)
project 58 59 (sphere)
project 59 56 (sphere)
project 56 60 (sphere)
project 57 61 (sphere)
project 58 62 (sphere)
project 59 63 (sphere)
);
faces
(
// X-pipe
project (8 9 10 11) sphere
project (9 8 12 13) sphere
project (10 9 13 14) sphere
project (11 10 14 15) sphere
project (8 11 15 12) sphere
// Y-lower-pipe
project (24 25 26 27) sphere
project (25 24 28 29) sphere
project (26 25 29 30) sphere
project (27 26 30 31) sphere
project (24 27 31 28) sphere
// Y-upper-pipe
project (40 41 42 43) sphere
project (41 40 44 45) sphere
project (42 41 45 46) sphere
project (43 42 46 47) sphere
project (40 43 47 44) sphere
// Ball
project (48 49 50 51) sphere
project (49 48 52 53) sphere
project (50 49 53 54) sphere
project (51 50 54 55) sphere
project (48 51 55 52) sphere
project (56 57 58 59) sphere
project (57 56 60 61) sphere
project (58 57 61 62) sphere
project (59 58 62 63) sphere
project (56 59 63 60) sphere
project (52 53 61 60) torus
project (53 54 62 61) torus
project (54 55 63 62) torus
project (55 52 60 63) torus
);
defaultPatch
{
name pipeWalls;
type wall;
}
boundary
(
inlet
{
type patch;
faces
(
(0 1 2 3)
(1 0 4 5)
(2 1 5 6)
(3 2 6 7)
(0 3 7 4)
);
}
lowerOutlet
{
type patch;
faces
(
(16 17 18 19)
(17 16 20 21)
(18 17 21 22)
(19 18 22 23)
(16 19 23 20)
);
}
upperOutlet
{
type patch;
faces
(
(32 33 34 35)
(33 32 36 37)
(34 33 37 38)
(35 34 38 39)
(32 35 39 36)
);
}
pipeNonCouple
{
type wall;
faces
(
(8 9 10 11)
(9 8 12 13)
(10 9 13 14)
(11 10 14 15)
(8 11 15 12)
(24 25 26 27)
(25 24 28 29)
(26 25 29 30)
(27 26 30 31)
(24 27 31 28)
(40 41 42 43)
(41 40 44 45)
(42 41 45 46)
(43 42 46 47)
(40 43 47 44)
);
}
ballWalls
{
type wall;
faces
(
(52 53 61 60)
(53 54 62 61)
(54 55 63 62)
(55 52 60 63)
);
}
ballNonCouple
{
type wall;
faces
(
(48 49 50 51)
(49 48 52 53)
(50 49 53 54)
(51 50 54 55)
(48 51 55 52)
(56 57 58 59)
(57 56 60 61)
(58 57 61 62)
(59 58 62 63)
(56 59 63 60)
);
}
);
mergePatchPairs
(
);
// ************************************************************************* //

Binary file not shown.