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
405 lines
9.7 KiB
C++
405 lines
9.7 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 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
|
|
(
|
|
);
|
|
|
|
// ************************************************************************* //
|