diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/0/U b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/0/U new file mode 100644 index 000000000..88c95bb8f --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/0/U @@ -0,0 +1,84 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volVectorField; + object U; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 1 -1 0 0 0 0]; + +internalField uniform (1 0 0); + +boundaryField +{ + inlet + { + type fixedValue; + value uniform (1 0 0); + } + outlet + { + type inletOutlet; + inletValue uniform (0 0 0); + value uniform (1 0 0); + } + bottom + { + type fixedValue; + value uniform (0 0 0); + } + top + { + type fixedValue; + value uniform (0 0 0); + } + firstCyl + { + type movingWallVelocity; + value uniform (0 0 0); + } + secondCyl + { + type movingWallVelocity; + value uniform (0 0 0); + } + frontIn + { + type ggi; + } + frontOut + { + type ggi; + } + middleIn + { + type ggi; + } + middleOut + { + type ggi; + } + backIn + { + type ggi; + } + backOut + { + type ggi; + } + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/0/p b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/0/p new file mode 100644 index 000000000..25904c6e5 --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/0/p @@ -0,0 +1,78 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class volScalarField; + object p; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +dimensions [0 2 -2 0 0 0 0]; + +internalField uniform 0; + +boundaryField +{ + inlet + { + type zeroGradient; + } + outlet + { + type fixedValue; + value uniform 0; + } + bottom + { + type zeroGradient; + } + top + { + type zeroGradient; + } + firstCyl + { + type zeroGradient; + } + secondCyl + { + type zeroGradient; + } + frontIn + { + type ggi; + } + frontOut + { + type ggi; + } + middleIn + { + type ggi; + } + middleOut + { + type ggi; + } + backIn + { + type ggi; + } + backOut + { + type ggi; + } + defaultFaces + { + type empty; + } +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/Allclean b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/Allclean new file mode 100755 index 000000000..1a7741f21 --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/Allclean @@ -0,0 +1,10 @@ +#!/bin/sh + +# Source tutorial clean functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cleanCase +\rm -rf 0/polyMesh +\rm -rf VTK .setSet system/setSubset/ +\rm -f constant/polyMesh/boundary +\rm -rf constant/polyMesh/sets \ No newline at end of file diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/Allrun b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/Allrun new file mode 100755 index 000000000..d9b1d7cf9 --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/Allrun @@ -0,0 +1,20 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="pimpleDyMFoam" + +runApplication blockMesh +runApplication setSet -batch setBatchGgi +\rm -f log.setSet +runApplication setSet -batch setBatchMotion + +\rm -rf constant/polyMesh/sets/*_old* +runApplication setsToZones + +\rm -rf constant/polyMesh/sets/ +\cp boundary constant/polyMesh/boundary + +runApplication $application diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/blockMeshDict b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/blockMeshDict new file mode 100644 index 000000000..a3cefc691 --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/blockMeshDict @@ -0,0 +1,331 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 0.01; + +vertices +( + // FRONT PLANE + + // First cylinder + + // Inner circle + ( -0.70710677 -0.70710677 -0.05) + ( 0.70710677 -0.70710677 -0.05) + ( 0.70710677 0.70710677 -0.05) + ( -0.70710677 0.70710677 -0.05) + + // Outer circle + ( -1.0606601 -1.0606601 -0.05) + ( 1.0606601 -1.0606601 -0.05) + ( 1.0606601 1.0606601 -0.05) + ( -1.0606601 1.0606601 -0.05) + + // Square + ( -2 -2 -0.05) + ( 2 -2 -0.05) + ( 2 2 -0.05) + ( -2 2 -0.05) + + // Outer square + ( -2 -5 -0.05) + ( 2 -5 -0.05) + ( 2 5 -0.05) + ( -2 5 -0.05) + + + // Second cylinder + + // Inner circle + ( 3.29289322 -0.70710677 -0.05) + ( 4.70710677 -0.70710677 -0.05) + ( 4.70710677 0.70710677 -0.05) + ( 3.29289322 0.70710677 -0.05) + + // Outer circle + ( 2.9393399 -1.0606601 -0.05) + ( 5.0606601 -1.0606601 -0.05) + ( 5.0606601 1.0606601 -0.05) + ( 2.9393399 1.0606601 -0.05) + + // Square + ( 2 -2 -0.05) + ( 6 -2 -0.05) + ( 6 2 -0.05) + ( 2 2 -0.05) + + // Outer square + ( 2 -5 -0.05) + ( 6 -5 -0.05) + ( 6 5 -0.05) + ( 2 5 -0.05) + + + // Lead square + + ( -10 -5 -0.05) + ( -2 -5 -0.05) + ( -10 5 -0.05) + ( -2 5 -0.05) + + // Tail square + + ( 6 -5 -0.05) + ( 14 -5 -0.05) + ( 6 5 -0.05) + ( 14 5 -0.05) + + + // BACK PLANE + + // First cylinder + + // Inner circle + ( -0.70710677 -0.70710677 0.05) + ( 0.70710677 -0.70710677 0.05) + ( 0.70710677 0.70710677 0.05) + ( -0.70710677 0.70710677 0.05) + + // Outer circle + ( -1.0606601 -1.0606601 0.05) + ( 1.0606601 -1.0606601 0.05) + ( 1.0606601 1.0606601 0.05) + ( -1.0606601 1.0606601 0.05) + + // Square + ( -2 -2 0.05) + ( 2 -2 0.05) + ( 2 2 0.05) + ( -2 2 0.05) + + // Outer square + ( -2 -5 0.05) + ( 2 -5 0.05) + ( 2 5 0.05) + ( -2 5 0.05) + + + // Second cylinder + + // Inner circle + ( 3.29289322 -0.70710677 0.05) + ( 4.70710677 -0.70710677 0.05) + ( 4.70710677 0.70710677 0.05) + ( 3.29289322 0.70710677 0.05) + + // Outer circle + ( 2.9393399 -1.0606601 0.05) + ( 5.0606601 -1.0606601 0.05) + ( 5.0606601 1.0606601 0.05) + ( 2.9393399 1.0606601 0.05) + + // Square + ( 2 -2 0.05) + ( 6 -2 0.05) + ( 6 2 0.05) + ( 2 2 0.05) + + // Outer square + ( 2 -5 0.05) + ( 6 -5 0.05) + ( 6 5 0.05) + ( 2 5 0.05) + + + // Lead square + + ( -10 -5 0.05) + ( -2 -5 0.05) + ( -10 5 0.05) + ( -2 5 0.05) + + // Tail square + + ( 6 -5 0.05) + ( 14 -5 0.05) + ( 6 5 0.05) + ( 14 5 0.05) +); + +blocks +( + // First cylinder + hex (0 4 5 1 40 44 45 41) cyl1 (7 10 1) simpleGrading (1 1 1) + hex (1 5 6 2 41 45 46 42) cyl1 (7 10 1) simpleGrading (1 1 1) + hex (2 6 7 3 42 46 47 43) cyl1 (7 10 1) simpleGrading (1 1 1) + hex (3 7 4 0 43 47 44 40) cyl1 (7 10 1) simpleGrading (1 1 1) + // Square around cylinder + hex (4 8 9 5 44 48 49 45) cyl1 (5 10 1) simpleGrading (1 1 1) + hex (5 9 10 6 45 49 50 46) cyl1 (5 10 1) simpleGrading (1 1 1) + hex (6 10 11 7 46 50 51 47) cyl1 (5 10 1) simpleGrading (1 1 1) + hex (7 11 8 4 47 51 48 44) cyl1 (5 10 1) simpleGrading (1 1 1) + // Top and bottom + hex (12 13 9 8 52 53 49 48) c1Bot (10 10 1) simpleGrading (1 1 1) + hex (11 10 14 15 51 50 54 55) c1Top (10 10 1) simpleGrading (1 1 1) + + + // Second cylinder + hex (16 20 21 17 56 60 61 57) cyl2 (7 10 1) simpleGrading (1 1 1) + hex (17 21 22 18 57 61 62 58) cyl2 (7 10 1) simpleGrading (1 1 1) + hex (18 22 23 19 58 62 63 59) cyl2 (7 10 1) simpleGrading (1 1 1) + hex (19 23 20 16 59 63 60 56) cyl2 (7 10 1) simpleGrading (1 1 1) + // Square around cylinder + hex (20 24 25 21 60 64 65 61) cyl2 (5 10 1) simpleGrading (1 1 1) + hex (21 25 26 22 61 65 66 62) cyl2 (5 10 1) simpleGrading (1 1 1) + hex (22 26 27 23 62 66 67 63) cyl2 (5 10 1) simpleGrading (1 1 1) + hex (23 27 24 20 63 67 64 60) cyl2 (5 10 1) simpleGrading (1 1 1) + // Top and bottom + hex (28 29 25 24 68 69 65 64) c2Bot (10 10 1) simpleGrading (1 1 1) + hex (27 26 30 31 67 66 70 71) c2Top (10 10 1) simpleGrading (1 1 1) + + // Lead square + hex (32 33 35 34 72 73 75 74) (20 20 1) simpleGrading (1 1 1) + // Tail square + hex (36 37 39 38 76 77 79 78) (20 20 1) simpleGrading (1 1 1) +); + +edges +( + // First cylinder, inner + arc 0 1 ( 0 -1 -0.05) + arc 1 2 ( 1 0 -0.05) + arc 2 3 ( 0 1 -0.05) + arc 3 0 ( -1 0 -0.05) + // First cylinder, outer + arc 4 5 ( 0 -1.5 -0.05) + arc 5 6 ( 1.5 0 -0.05) + arc 6 7 ( 0 1.5 -0.05) + arc 7 4 ( -1.5 0 -0.05) + + // First cylinder, inner + arc 40 41 ( 0 -1 0.05) + arc 41 42 ( 1 0 0.05) + arc 42 43 ( 0 1 0.05) + arc 43 40 ( -1 0 0.05) + // First cylinder, outer + arc 44 45 ( 0 -1.5 0.05) + arc 45 46 ( 1.5 0 0.05) + arc 46 47 ( 0 1.5 0.05) + arc 47 44 ( -1.5 0 0.05) + + // Second cylinder, inner + arc 16 17 ( 4 -1 -0.05) + arc 17 18 ( 5 0 -0.05) + arc 18 19 ( 4 1 -0.05) + arc 19 16 ( 3 0 -0.05) + // Second cylinder, outer + arc 20 21 ( 4 -1.5 -0.05) + arc 21 22 ( 5.5 0 -0.05) + arc 22 23 ( 4 1.5 -0.05) + arc 23 20 ( 2.5 0 -0.05) + + // Second cylinder, inner + arc 56 57 ( 4 -1 0.05) + arc 57 58 ( 5 0 0.05) + arc 58 59 ( 4 1 0.05) + arc 59 56 ( 3 0 0.05) + // Second cylinder, outer + arc 60 61 ( 4 -1.5 0.05) + arc 61 62 ( 5.5 0 0.05) + arc 62 63 ( 4 1.5 0.05) + arc 63 60 ( 2.5 0 0.05) +); + +patches +( + patch inlet + ( + (32 72 74 34) + ) + + patch outlet + ( + (37 39 79 77) + ) + + wall bottom + ( + (32 33 73 72) + (12 13 53 52) + (28 29 69 68) + (36 37 77 76) + ) + + wall top + ( + (34 74 75 35) + (15 55 54 14) + (31 71 70 30) + (38 78 79 39) + ) + + wall firstCyl + ( + (0 40 41 1) + (1 41 42 2) + (2 42 43 3) + (3 43 40 0) + ) + + wall secondCyl + ( + (16 56 57 17) + (17 57 58 18) + (18 58 59 19) + (19 59 56 16) + ) + + ggi frontIn + ( + (33 35 75 73) + ) + + ggi frontOut + ( + (12 52 48 8) + (8 48 51 11) + (11 51 55 15) + ) + + ggi middleIn + ( + (13 9 49 53) + (9 10 50 49) + (10 14 54 50) + ) + + ggi middleOut + ( + (28 68 64 24) + (24 64 67 27) + (27 67 71 31) + ) + + ggi backIn + ( + (29 25 65 69) + (25 26 66 65) + (26 30 70 66) + ) + + ggi backOut + ( + (36 76 78 38) + ) +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/boundary b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/boundary new file mode 100644 index 000000000..d990ccf77 --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/boundary @@ -0,0 +1,118 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +13 +( + inlet + { + type patch; + nFaces 20; + startFace 4120; + } + outlet + { + type patch; + nFaces 20; + startFace 4140; + } + bottom + { + type wall; + nFaces 60; + startFace 4160; + } + top + { + type wall; + nFaces 60; + startFace 4220; + } + firstCyl + { + type wall; + nFaces 40; + startFace 4280; + } + secondCyl + { + type wall; + nFaces 40; + startFace 4320; + } + frontIn + { + type ggi; + nFaces 20; + startFace 4360; + shadowPatch frontOut; + zone frontInZone; + bridgeOverlap true; + } + frontOut + { + type ggi; + nFaces 30; + startFace 4380; + shadowPatch frontIn; + zone frontOutZone; + bridgeOverlap true; + } + middleIn + { + type ggi; + nFaces 30; + startFace 4410; + shadowPatch middleOut; + zone middleInZone; + bridgeOverlap true; + } + middleOut + { + type ggi; + nFaces 30; + startFace 4440; + shadowPatch middleIn; + zone middleOutZone; + bridgeOverlap true; + } + backIn + { + type ggi; + nFaces 30; + startFace 4470; + shadowPatch backOut; + zone backInZone; + bridgeOverlap true; + } + backOut + { + type ggi; + nFaces 20; + startFace 4500; + shadowPatch backIn; + zone backOutZone; + bridgeOverlap true; + } + defaultFaces + { + type empty; + nFaces 4320; + startFace 4520; + } +) + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/constant/dynamicMeshDict b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/constant/dynamicMeshDict new file mode 100644 index 000000000..f6ae7c3a5 --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/constant/dynamicMeshDict @@ -0,0 +1,71 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object dynamicMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// dynamicFvMesh staticFvMesh; + dynamicFvMesh multiTopoBodyFvMesh; + +multiTopoBodyFvMeshCoeffs +{ + bodies + ( + frontCyl + { + movingCells cyl1; + layerFaces + ( + topLayerCyl1 + botLayerCyl1 + ); + + solidBodyMotionFunction linearOscillation; + linearOscillationCoeffs + { + amplitude (0 0.028 0); + period 2; + } + + minThickness 0.0015; + maxThickness 0.004; + + invertMask true; + } + + backCyl + { + movingCells cyl2; + layerFaces + ( + topLayerCyl2 + botLayerCyl2 + ); + + solidBodyMotionFunction linearOscillation; + linearOscillationCoeffs + { + amplitude (0 -0.028 0); + period 3; + } + + minThickness 0.0015; + maxThickness 0.004; + + invertMask true; + } + ); +} + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/constant/polyMesh/blockMeshDict b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/constant/polyMesh/blockMeshDict new file mode 100644 index 000000000..a3cefc691 --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/constant/polyMesh/blockMeshDict @@ -0,0 +1,331 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 0.01; + +vertices +( + // FRONT PLANE + + // First cylinder + + // Inner circle + ( -0.70710677 -0.70710677 -0.05) + ( 0.70710677 -0.70710677 -0.05) + ( 0.70710677 0.70710677 -0.05) + ( -0.70710677 0.70710677 -0.05) + + // Outer circle + ( -1.0606601 -1.0606601 -0.05) + ( 1.0606601 -1.0606601 -0.05) + ( 1.0606601 1.0606601 -0.05) + ( -1.0606601 1.0606601 -0.05) + + // Square + ( -2 -2 -0.05) + ( 2 -2 -0.05) + ( 2 2 -0.05) + ( -2 2 -0.05) + + // Outer square + ( -2 -5 -0.05) + ( 2 -5 -0.05) + ( 2 5 -0.05) + ( -2 5 -0.05) + + + // Second cylinder + + // Inner circle + ( 3.29289322 -0.70710677 -0.05) + ( 4.70710677 -0.70710677 -0.05) + ( 4.70710677 0.70710677 -0.05) + ( 3.29289322 0.70710677 -0.05) + + // Outer circle + ( 2.9393399 -1.0606601 -0.05) + ( 5.0606601 -1.0606601 -0.05) + ( 5.0606601 1.0606601 -0.05) + ( 2.9393399 1.0606601 -0.05) + + // Square + ( 2 -2 -0.05) + ( 6 -2 -0.05) + ( 6 2 -0.05) + ( 2 2 -0.05) + + // Outer square + ( 2 -5 -0.05) + ( 6 -5 -0.05) + ( 6 5 -0.05) + ( 2 5 -0.05) + + + // Lead square + + ( -10 -5 -0.05) + ( -2 -5 -0.05) + ( -10 5 -0.05) + ( -2 5 -0.05) + + // Tail square + + ( 6 -5 -0.05) + ( 14 -5 -0.05) + ( 6 5 -0.05) + ( 14 5 -0.05) + + + // BACK PLANE + + // First cylinder + + // Inner circle + ( -0.70710677 -0.70710677 0.05) + ( 0.70710677 -0.70710677 0.05) + ( 0.70710677 0.70710677 0.05) + ( -0.70710677 0.70710677 0.05) + + // Outer circle + ( -1.0606601 -1.0606601 0.05) + ( 1.0606601 -1.0606601 0.05) + ( 1.0606601 1.0606601 0.05) + ( -1.0606601 1.0606601 0.05) + + // Square + ( -2 -2 0.05) + ( 2 -2 0.05) + ( 2 2 0.05) + ( -2 2 0.05) + + // Outer square + ( -2 -5 0.05) + ( 2 -5 0.05) + ( 2 5 0.05) + ( -2 5 0.05) + + + // Second cylinder + + // Inner circle + ( 3.29289322 -0.70710677 0.05) + ( 4.70710677 -0.70710677 0.05) + ( 4.70710677 0.70710677 0.05) + ( 3.29289322 0.70710677 0.05) + + // Outer circle + ( 2.9393399 -1.0606601 0.05) + ( 5.0606601 -1.0606601 0.05) + ( 5.0606601 1.0606601 0.05) + ( 2.9393399 1.0606601 0.05) + + // Square + ( 2 -2 0.05) + ( 6 -2 0.05) + ( 6 2 0.05) + ( 2 2 0.05) + + // Outer square + ( 2 -5 0.05) + ( 6 -5 0.05) + ( 6 5 0.05) + ( 2 5 0.05) + + + // Lead square + + ( -10 -5 0.05) + ( -2 -5 0.05) + ( -10 5 0.05) + ( -2 5 0.05) + + // Tail square + + ( 6 -5 0.05) + ( 14 -5 0.05) + ( 6 5 0.05) + ( 14 5 0.05) +); + +blocks +( + // First cylinder + hex (0 4 5 1 40 44 45 41) cyl1 (7 10 1) simpleGrading (1 1 1) + hex (1 5 6 2 41 45 46 42) cyl1 (7 10 1) simpleGrading (1 1 1) + hex (2 6 7 3 42 46 47 43) cyl1 (7 10 1) simpleGrading (1 1 1) + hex (3 7 4 0 43 47 44 40) cyl1 (7 10 1) simpleGrading (1 1 1) + // Square around cylinder + hex (4 8 9 5 44 48 49 45) cyl1 (5 10 1) simpleGrading (1 1 1) + hex (5 9 10 6 45 49 50 46) cyl1 (5 10 1) simpleGrading (1 1 1) + hex (6 10 11 7 46 50 51 47) cyl1 (5 10 1) simpleGrading (1 1 1) + hex (7 11 8 4 47 51 48 44) cyl1 (5 10 1) simpleGrading (1 1 1) + // Top and bottom + hex (12 13 9 8 52 53 49 48) c1Bot (10 10 1) simpleGrading (1 1 1) + hex (11 10 14 15 51 50 54 55) c1Top (10 10 1) simpleGrading (1 1 1) + + + // Second cylinder + hex (16 20 21 17 56 60 61 57) cyl2 (7 10 1) simpleGrading (1 1 1) + hex (17 21 22 18 57 61 62 58) cyl2 (7 10 1) simpleGrading (1 1 1) + hex (18 22 23 19 58 62 63 59) cyl2 (7 10 1) simpleGrading (1 1 1) + hex (19 23 20 16 59 63 60 56) cyl2 (7 10 1) simpleGrading (1 1 1) + // Square around cylinder + hex (20 24 25 21 60 64 65 61) cyl2 (5 10 1) simpleGrading (1 1 1) + hex (21 25 26 22 61 65 66 62) cyl2 (5 10 1) simpleGrading (1 1 1) + hex (22 26 27 23 62 66 67 63) cyl2 (5 10 1) simpleGrading (1 1 1) + hex (23 27 24 20 63 67 64 60) cyl2 (5 10 1) simpleGrading (1 1 1) + // Top and bottom + hex (28 29 25 24 68 69 65 64) c2Bot (10 10 1) simpleGrading (1 1 1) + hex (27 26 30 31 67 66 70 71) c2Top (10 10 1) simpleGrading (1 1 1) + + // Lead square + hex (32 33 35 34 72 73 75 74) (20 20 1) simpleGrading (1 1 1) + // Tail square + hex (36 37 39 38 76 77 79 78) (20 20 1) simpleGrading (1 1 1) +); + +edges +( + // First cylinder, inner + arc 0 1 ( 0 -1 -0.05) + arc 1 2 ( 1 0 -0.05) + arc 2 3 ( 0 1 -0.05) + arc 3 0 ( -1 0 -0.05) + // First cylinder, outer + arc 4 5 ( 0 -1.5 -0.05) + arc 5 6 ( 1.5 0 -0.05) + arc 6 7 ( 0 1.5 -0.05) + arc 7 4 ( -1.5 0 -0.05) + + // First cylinder, inner + arc 40 41 ( 0 -1 0.05) + arc 41 42 ( 1 0 0.05) + arc 42 43 ( 0 1 0.05) + arc 43 40 ( -1 0 0.05) + // First cylinder, outer + arc 44 45 ( 0 -1.5 0.05) + arc 45 46 ( 1.5 0 0.05) + arc 46 47 ( 0 1.5 0.05) + arc 47 44 ( -1.5 0 0.05) + + // Second cylinder, inner + arc 16 17 ( 4 -1 -0.05) + arc 17 18 ( 5 0 -0.05) + arc 18 19 ( 4 1 -0.05) + arc 19 16 ( 3 0 -0.05) + // Second cylinder, outer + arc 20 21 ( 4 -1.5 -0.05) + arc 21 22 ( 5.5 0 -0.05) + arc 22 23 ( 4 1.5 -0.05) + arc 23 20 ( 2.5 0 -0.05) + + // Second cylinder, inner + arc 56 57 ( 4 -1 0.05) + arc 57 58 ( 5 0 0.05) + arc 58 59 ( 4 1 0.05) + arc 59 56 ( 3 0 0.05) + // Second cylinder, outer + arc 60 61 ( 4 -1.5 0.05) + arc 61 62 ( 5.5 0 0.05) + arc 62 63 ( 4 1.5 0.05) + arc 63 60 ( 2.5 0 0.05) +); + +patches +( + patch inlet + ( + (32 72 74 34) + ) + + patch outlet + ( + (37 39 79 77) + ) + + wall bottom + ( + (32 33 73 72) + (12 13 53 52) + (28 29 69 68) + (36 37 77 76) + ) + + wall top + ( + (34 74 75 35) + (15 55 54 14) + (31 71 70 30) + (38 78 79 39) + ) + + wall firstCyl + ( + (0 40 41 1) + (1 41 42 2) + (2 42 43 3) + (3 43 40 0) + ) + + wall secondCyl + ( + (16 56 57 17) + (17 57 58 18) + (18 58 59 19) + (19 59 56 16) + ) + + ggi frontIn + ( + (33 35 75 73) + ) + + ggi frontOut + ( + (12 52 48 8) + (8 48 51 11) + (11 51 55 15) + ) + + ggi middleIn + ( + (13 9 49 53) + (9 10 50 49) + (10 14 54 50) + ) + + ggi middleOut + ( + (28 68 64 24) + (24 64 67 27) + (27 67 71 31) + ) + + ggi backIn + ( + (29 25 65 69) + (25 26 66 65) + (26 30 70 66) + ) + + ggi backOut + ( + (36 76 78 38) + ) +); + + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/constant/transportProperties b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/constant/transportProperties new file mode 100644 index 000000000..1265a145e --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/constant/transportProperties @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object transportProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +transportModel Newtonian; +nu nu [0 2 -1 0 0 0 0] 1e-5; + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/constant/turbulenceProperties b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/constant/turbulenceProperties new file mode 100644 index 000000000..075b7f6ea --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/constant/turbulenceProperties @@ -0,0 +1,20 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | foam-extend: Open Source CFD | +| \\ / O peration | Version: 3.0 | +| \\ / A nd | Web: http://www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + location "constant"; + object turbulenceProperties; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +simulationType laminar; + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/setBatchGgi b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/setBatchGgi new file mode 100644 index 000000000..c4f4450c2 --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/setBatchGgi @@ -0,0 +1,7 @@ +faceSet frontInZone new patchToFace frontIn +faceSet frontOutZone new patchToFace frontOut +faceSet middleInZone new patchToFace middleIn +faceSet middleOutZone new patchToFace middleOut +faceSet backInZone new patchToFace backIn +faceSet backOutZone new patchToFace backOut +quit diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/setBatchMotion b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/setBatchMotion new file mode 100644 index 000000000..872cfd20d --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/setBatchMotion @@ -0,0 +1,28 @@ +faceSet topLayerCyl1 new cellToFace cyl1 all +faceSet topLayerCyl1 subset cellToFace c1Top all +cellSet topLayerCyl1MasterCells new cellToCell c1Top + +faceSet botLayerCyl1 new cellToFace cyl1 all +faceSet botLayerCyl1 subset cellToFace c1Bot all +cellSet botLayerCyl1MasterCells new cellToCell c1Bot + +faceSet topLayerCyl2 new cellToFace cyl2 all +faceSet topLayerCyl2 subset cellToFace c2Top all +cellSet topLayerCyl2MasterCells new cellToCell c2Top + +faceSet botLayerCyl2 new cellToFace cyl2 all +faceSet botLayerCyl2 subset cellToFace c2Bot all +cellSet botLayerCyl2MasterCells new cellToCell c2Bot + +cellSet c1Top delete +cellSet c1Bot delete +cellSet c2Top delete +cellSet c2Bot delete + + +quit + +cd constant/polyMesh/sets/ +\rm *_old *_old.gz + +setsToZones \ No newline at end of file diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/system/controlDict b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/system/controlDict new file mode 100644 index 000000000..54dbd8c5e --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/system/controlDict @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleDyMFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 10; +deltaT 0.001; + +writeControl adjustableRunTime; +writeInterval 0.05; + +cycleWrite 0; + +writeFormat ascii; + +writeCompression compressed; + +timeFormat general; +writePrecision 10; +timePrecision 10; + +runTimeModifiable yes; + +adjustTimeStep on; + +maxCo 0.7; + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/system/fvSchemes b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/system/fvSchemes new file mode 100644 index 000000000..d7ea6e99e --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/system/fvSchemes @@ -0,0 +1,66 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{ + default Euler; +} + +gradSchemes +{ + default Gauss linear; + grad(p) Gauss linear; +} + +divSchemes +{ + default none; + div(phi,U) Gauss upwind; + div((nuEff*dev(grad(U).T()))) Gauss linear; +} + +laplacianSchemes +{ + default none; + laplacian(nuEff,U) Gauss linear limited 0.5; + laplacian(rAU,pcorr) Gauss linear limited 0.5; + laplacian(rAU,p) Gauss linear limited 0.5; + + laplacian(1,p) Gauss linear limited 0.5; + + laplacian((1|A(U)),p) Gauss linear limited 0.5; +} + +interpolationSchemes +{ + default linear; + interpolate(HbyA) linear; + interpolate(1|A) linear; +} + +snGradSchemes +{ + default limited 0.5; +} + +fluxRequired +{ + default no; + pcorr; + p; +} + +// ************************************************************************* // diff --git a/tutorials/incompressible/pimpleDyMFoam/movingCylinders/system/fvSolution b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/system/fvSolution new file mode 100644 index 000000000..b969afa13 --- /dev/null +++ b/tutorials/incompressible/pimpleDyMFoam/movingCylinders/system/fvSolution @@ -0,0 +1,87 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{ + pcorr + { + solver CG; + preconditioner DIC; + + minIter 0; + maxIter 1000; + tolerance 1e-03; + relTol 0; + } + p + { + solver CG; + preconditioner DIC; + + minIter 0; + maxIter 1000; + tolerance 1e-06; + relTol 0.0; + } + pFinal + { + solver CG; + preconditioner DIC; + + minIter 0; + maxIter 1000; + tolerance 1e-06; + relTol 0; + } + U + { + solver BiCGStab; + preconditioner DILU; + + minIter 0; + maxIter 1000; + tolerance 1e-07; + relTol 0; + } +} + +PIMPLE +{ + correctPhi yes; + nOuterCorrectors 2; + nCorrectors 4; + nNonOrthogonalCorrectors 0; + + + pRefCell 0; + pRefValue 0; +} + +SIMPLE +{ + nNonOrthogonalCorrectors 4; + + pRefCell 0; + pRefValue 0; +} + +relaxationFactors +{ + U 0.7; +// p 0.3; +} + +// ************************************************************************* // diff --git a/tutorials/mesh/moveDynamicMesh/movingCylinders/Allclean b/tutorials/mesh/moveDynamicMesh/movingCylinders/Allclean new file mode 100755 index 000000000..1a7741f21 --- /dev/null +++ b/tutorials/mesh/moveDynamicMesh/movingCylinders/Allclean @@ -0,0 +1,10 @@ +#!/bin/sh + +# Source tutorial clean functions +. $WM_PROJECT_DIR/bin/tools/CleanFunctions + +cleanCase +\rm -rf 0/polyMesh +\rm -rf VTK .setSet system/setSubset/ +\rm -f constant/polyMesh/boundary +\rm -rf constant/polyMesh/sets \ No newline at end of file diff --git a/tutorials/mesh/moveDynamicMesh/movingCylinders/Allrun b/tutorials/mesh/moveDynamicMesh/movingCylinders/Allrun new file mode 100755 index 000000000..9bad81cd4 --- /dev/null +++ b/tutorials/mesh/moveDynamicMesh/movingCylinders/Allrun @@ -0,0 +1,20 @@ +#!/bin/sh +cd ${0%/*} || exit 1 # run from this directory + +# Source tutorial run functions +. $WM_PROJECT_DIR/bin/tools/RunFunctions + +application="moveDynamicMesh" + +runApplication blockMesh +runApplication setSet -batch setBatchGgi +\rm -f log.setSet +runApplication setSet -batch setBatchMotion + +\rm -rf constant/polyMesh/sets/*_old* +runApplication setsToZones + +\rm -rf constant/polyMesh/sets/ +\cp boundary constant/polyMesh/boundary + +runApplication $application diff --git a/tutorials/mesh/moveDynamicMesh/movingCylinders/boundary b/tutorials/mesh/moveDynamicMesh/movingCylinders/boundary new file mode 100644 index 000000000..d990ccf77 --- /dev/null +++ b/tutorials/mesh/moveDynamicMesh/movingCylinders/boundary @@ -0,0 +1,118 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class polyBoundaryMesh; + location "constant/polyMesh"; + object boundary; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +13 +( + inlet + { + type patch; + nFaces 20; + startFace 4120; + } + outlet + { + type patch; + nFaces 20; + startFace 4140; + } + bottom + { + type wall; + nFaces 60; + startFace 4160; + } + top + { + type wall; + nFaces 60; + startFace 4220; + } + firstCyl + { + type wall; + nFaces 40; + startFace 4280; + } + secondCyl + { + type wall; + nFaces 40; + startFace 4320; + } + frontIn + { + type ggi; + nFaces 20; + startFace 4360; + shadowPatch frontOut; + zone frontInZone; + bridgeOverlap true; + } + frontOut + { + type ggi; + nFaces 30; + startFace 4380; + shadowPatch frontIn; + zone frontOutZone; + bridgeOverlap true; + } + middleIn + { + type ggi; + nFaces 30; + startFace 4410; + shadowPatch middleOut; + zone middleInZone; + bridgeOverlap true; + } + middleOut + { + type ggi; + nFaces 30; + startFace 4440; + shadowPatch middleIn; + zone middleOutZone; + bridgeOverlap true; + } + backIn + { + type ggi; + nFaces 30; + startFace 4470; + shadowPatch backOut; + zone backInZone; + bridgeOverlap true; + } + backOut + { + type ggi; + nFaces 20; + startFace 4500; + shadowPatch backIn; + zone backOutZone; + bridgeOverlap true; + } + defaultFaces + { + type empty; + nFaces 4320; + startFace 4520; + } +) + +// ************************************************************************* // diff --git a/tutorials/mesh/moveDynamicMesh/movingCylinders/constant/dynamicMeshDict b/tutorials/mesh/moveDynamicMesh/movingCylinders/constant/dynamicMeshDict new file mode 100644 index 000000000..f6ae7c3a5 --- /dev/null +++ b/tutorials/mesh/moveDynamicMesh/movingCylinders/constant/dynamicMeshDict @@ -0,0 +1,71 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object dynamicMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +// dynamicFvMesh staticFvMesh; + dynamicFvMesh multiTopoBodyFvMesh; + +multiTopoBodyFvMeshCoeffs +{ + bodies + ( + frontCyl + { + movingCells cyl1; + layerFaces + ( + topLayerCyl1 + botLayerCyl1 + ); + + solidBodyMotionFunction linearOscillation; + linearOscillationCoeffs + { + amplitude (0 0.028 0); + period 2; + } + + minThickness 0.0015; + maxThickness 0.004; + + invertMask true; + } + + backCyl + { + movingCells cyl2; + layerFaces + ( + topLayerCyl2 + botLayerCyl2 + ); + + solidBodyMotionFunction linearOscillation; + linearOscillationCoeffs + { + amplitude (0 -0.028 0); + period 3; + } + + minThickness 0.0015; + maxThickness 0.004; + + invertMask true; + } + ); +} + + +// ************************************************************************* // diff --git a/tutorials/mesh/moveDynamicMesh/movingCylinders/constant/polyMesh/blockMeshDict b/tutorials/mesh/moveDynamicMesh/movingCylinders/constant/polyMesh/blockMeshDict new file mode 100644 index 000000000..a3cefc691 --- /dev/null +++ b/tutorials/mesh/moveDynamicMesh/movingCylinders/constant/polyMesh/blockMeshDict @@ -0,0 +1,331 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object blockMeshDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +convertToMeters 0.01; + +vertices +( + // FRONT PLANE + + // First cylinder + + // Inner circle + ( -0.70710677 -0.70710677 -0.05) + ( 0.70710677 -0.70710677 -0.05) + ( 0.70710677 0.70710677 -0.05) + ( -0.70710677 0.70710677 -0.05) + + // Outer circle + ( -1.0606601 -1.0606601 -0.05) + ( 1.0606601 -1.0606601 -0.05) + ( 1.0606601 1.0606601 -0.05) + ( -1.0606601 1.0606601 -0.05) + + // Square + ( -2 -2 -0.05) + ( 2 -2 -0.05) + ( 2 2 -0.05) + ( -2 2 -0.05) + + // Outer square + ( -2 -5 -0.05) + ( 2 -5 -0.05) + ( 2 5 -0.05) + ( -2 5 -0.05) + + + // Second cylinder + + // Inner circle + ( 3.29289322 -0.70710677 -0.05) + ( 4.70710677 -0.70710677 -0.05) + ( 4.70710677 0.70710677 -0.05) + ( 3.29289322 0.70710677 -0.05) + + // Outer circle + ( 2.9393399 -1.0606601 -0.05) + ( 5.0606601 -1.0606601 -0.05) + ( 5.0606601 1.0606601 -0.05) + ( 2.9393399 1.0606601 -0.05) + + // Square + ( 2 -2 -0.05) + ( 6 -2 -0.05) + ( 6 2 -0.05) + ( 2 2 -0.05) + + // Outer square + ( 2 -5 -0.05) + ( 6 -5 -0.05) + ( 6 5 -0.05) + ( 2 5 -0.05) + + + // Lead square + + ( -10 -5 -0.05) + ( -2 -5 -0.05) + ( -10 5 -0.05) + ( -2 5 -0.05) + + // Tail square + + ( 6 -5 -0.05) + ( 14 -5 -0.05) + ( 6 5 -0.05) + ( 14 5 -0.05) + + + // BACK PLANE + + // First cylinder + + // Inner circle + ( -0.70710677 -0.70710677 0.05) + ( 0.70710677 -0.70710677 0.05) + ( 0.70710677 0.70710677 0.05) + ( -0.70710677 0.70710677 0.05) + + // Outer circle + ( -1.0606601 -1.0606601 0.05) + ( 1.0606601 -1.0606601 0.05) + ( 1.0606601 1.0606601 0.05) + ( -1.0606601 1.0606601 0.05) + + // Square + ( -2 -2 0.05) + ( 2 -2 0.05) + ( 2 2 0.05) + ( -2 2 0.05) + + // Outer square + ( -2 -5 0.05) + ( 2 -5 0.05) + ( 2 5 0.05) + ( -2 5 0.05) + + + // Second cylinder + + // Inner circle + ( 3.29289322 -0.70710677 0.05) + ( 4.70710677 -0.70710677 0.05) + ( 4.70710677 0.70710677 0.05) + ( 3.29289322 0.70710677 0.05) + + // Outer circle + ( 2.9393399 -1.0606601 0.05) + ( 5.0606601 -1.0606601 0.05) + ( 5.0606601 1.0606601 0.05) + ( 2.9393399 1.0606601 0.05) + + // Square + ( 2 -2 0.05) + ( 6 -2 0.05) + ( 6 2 0.05) + ( 2 2 0.05) + + // Outer square + ( 2 -5 0.05) + ( 6 -5 0.05) + ( 6 5 0.05) + ( 2 5 0.05) + + + // Lead square + + ( -10 -5 0.05) + ( -2 -5 0.05) + ( -10 5 0.05) + ( -2 5 0.05) + + // Tail square + + ( 6 -5 0.05) + ( 14 -5 0.05) + ( 6 5 0.05) + ( 14 5 0.05) +); + +blocks +( + // First cylinder + hex (0 4 5 1 40 44 45 41) cyl1 (7 10 1) simpleGrading (1 1 1) + hex (1 5 6 2 41 45 46 42) cyl1 (7 10 1) simpleGrading (1 1 1) + hex (2 6 7 3 42 46 47 43) cyl1 (7 10 1) simpleGrading (1 1 1) + hex (3 7 4 0 43 47 44 40) cyl1 (7 10 1) simpleGrading (1 1 1) + // Square around cylinder + hex (4 8 9 5 44 48 49 45) cyl1 (5 10 1) simpleGrading (1 1 1) + hex (5 9 10 6 45 49 50 46) cyl1 (5 10 1) simpleGrading (1 1 1) + hex (6 10 11 7 46 50 51 47) cyl1 (5 10 1) simpleGrading (1 1 1) + hex (7 11 8 4 47 51 48 44) cyl1 (5 10 1) simpleGrading (1 1 1) + // Top and bottom + hex (12 13 9 8 52 53 49 48) c1Bot (10 10 1) simpleGrading (1 1 1) + hex (11 10 14 15 51 50 54 55) c1Top (10 10 1) simpleGrading (1 1 1) + + + // Second cylinder + hex (16 20 21 17 56 60 61 57) cyl2 (7 10 1) simpleGrading (1 1 1) + hex (17 21 22 18 57 61 62 58) cyl2 (7 10 1) simpleGrading (1 1 1) + hex (18 22 23 19 58 62 63 59) cyl2 (7 10 1) simpleGrading (1 1 1) + hex (19 23 20 16 59 63 60 56) cyl2 (7 10 1) simpleGrading (1 1 1) + // Square around cylinder + hex (20 24 25 21 60 64 65 61) cyl2 (5 10 1) simpleGrading (1 1 1) + hex (21 25 26 22 61 65 66 62) cyl2 (5 10 1) simpleGrading (1 1 1) + hex (22 26 27 23 62 66 67 63) cyl2 (5 10 1) simpleGrading (1 1 1) + hex (23 27 24 20 63 67 64 60) cyl2 (5 10 1) simpleGrading (1 1 1) + // Top and bottom + hex (28 29 25 24 68 69 65 64) c2Bot (10 10 1) simpleGrading (1 1 1) + hex (27 26 30 31 67 66 70 71) c2Top (10 10 1) simpleGrading (1 1 1) + + // Lead square + hex (32 33 35 34 72 73 75 74) (20 20 1) simpleGrading (1 1 1) + // Tail square + hex (36 37 39 38 76 77 79 78) (20 20 1) simpleGrading (1 1 1) +); + +edges +( + // First cylinder, inner + arc 0 1 ( 0 -1 -0.05) + arc 1 2 ( 1 0 -0.05) + arc 2 3 ( 0 1 -0.05) + arc 3 0 ( -1 0 -0.05) + // First cylinder, outer + arc 4 5 ( 0 -1.5 -0.05) + arc 5 6 ( 1.5 0 -0.05) + arc 6 7 ( 0 1.5 -0.05) + arc 7 4 ( -1.5 0 -0.05) + + // First cylinder, inner + arc 40 41 ( 0 -1 0.05) + arc 41 42 ( 1 0 0.05) + arc 42 43 ( 0 1 0.05) + arc 43 40 ( -1 0 0.05) + // First cylinder, outer + arc 44 45 ( 0 -1.5 0.05) + arc 45 46 ( 1.5 0 0.05) + arc 46 47 ( 0 1.5 0.05) + arc 47 44 ( -1.5 0 0.05) + + // Second cylinder, inner + arc 16 17 ( 4 -1 -0.05) + arc 17 18 ( 5 0 -0.05) + arc 18 19 ( 4 1 -0.05) + arc 19 16 ( 3 0 -0.05) + // Second cylinder, outer + arc 20 21 ( 4 -1.5 -0.05) + arc 21 22 ( 5.5 0 -0.05) + arc 22 23 ( 4 1.5 -0.05) + arc 23 20 ( 2.5 0 -0.05) + + // Second cylinder, inner + arc 56 57 ( 4 -1 0.05) + arc 57 58 ( 5 0 0.05) + arc 58 59 ( 4 1 0.05) + arc 59 56 ( 3 0 0.05) + // Second cylinder, outer + arc 60 61 ( 4 -1.5 0.05) + arc 61 62 ( 5.5 0 0.05) + arc 62 63 ( 4 1.5 0.05) + arc 63 60 ( 2.5 0 0.05) +); + +patches +( + patch inlet + ( + (32 72 74 34) + ) + + patch outlet + ( + (37 39 79 77) + ) + + wall bottom + ( + (32 33 73 72) + (12 13 53 52) + (28 29 69 68) + (36 37 77 76) + ) + + wall top + ( + (34 74 75 35) + (15 55 54 14) + (31 71 70 30) + (38 78 79 39) + ) + + wall firstCyl + ( + (0 40 41 1) + (1 41 42 2) + (2 42 43 3) + (3 43 40 0) + ) + + wall secondCyl + ( + (16 56 57 17) + (17 57 58 18) + (18 58 59 19) + (19 59 56 16) + ) + + ggi frontIn + ( + (33 35 75 73) + ) + + ggi frontOut + ( + (12 52 48 8) + (8 48 51 11) + (11 51 55 15) + ) + + ggi middleIn + ( + (13 9 49 53) + (9 10 50 49) + (10 14 54 50) + ) + + ggi middleOut + ( + (28 68 64 24) + (24 64 67 27) + (27 67 71 31) + ) + + ggi backIn + ( + (29 25 65 69) + (25 26 66 65) + (26 30 70 66) + ) + + ggi backOut + ( + (36 76 78 38) + ) +); + + +// ************************************************************************* // diff --git a/tutorials/mesh/moveDynamicMesh/movingCylinders/setBatchGgi b/tutorials/mesh/moveDynamicMesh/movingCylinders/setBatchGgi new file mode 100644 index 000000000..c4f4450c2 --- /dev/null +++ b/tutorials/mesh/moveDynamicMesh/movingCylinders/setBatchGgi @@ -0,0 +1,7 @@ +faceSet frontInZone new patchToFace frontIn +faceSet frontOutZone new patchToFace frontOut +faceSet middleInZone new patchToFace middleIn +faceSet middleOutZone new patchToFace middleOut +faceSet backInZone new patchToFace backIn +faceSet backOutZone new patchToFace backOut +quit diff --git a/tutorials/mesh/moveDynamicMesh/movingCylinders/setBatchMotion b/tutorials/mesh/moveDynamicMesh/movingCylinders/setBatchMotion new file mode 100644 index 000000000..872cfd20d --- /dev/null +++ b/tutorials/mesh/moveDynamicMesh/movingCylinders/setBatchMotion @@ -0,0 +1,28 @@ +faceSet topLayerCyl1 new cellToFace cyl1 all +faceSet topLayerCyl1 subset cellToFace c1Top all +cellSet topLayerCyl1MasterCells new cellToCell c1Top + +faceSet botLayerCyl1 new cellToFace cyl1 all +faceSet botLayerCyl1 subset cellToFace c1Bot all +cellSet botLayerCyl1MasterCells new cellToCell c1Bot + +faceSet topLayerCyl2 new cellToFace cyl2 all +faceSet topLayerCyl2 subset cellToFace c2Top all +cellSet topLayerCyl2MasterCells new cellToCell c2Top + +faceSet botLayerCyl2 new cellToFace cyl2 all +faceSet botLayerCyl2 subset cellToFace c2Bot all +cellSet botLayerCyl2MasterCells new cellToCell c2Bot + +cellSet c1Top delete +cellSet c1Bot delete +cellSet c2Top delete +cellSet c2Bot delete + + +quit + +cd constant/polyMesh/sets/ +\rm *_old *_old.gz + +setsToZones \ No newline at end of file diff --git a/tutorials/mesh/moveDynamicMesh/movingCylinders/system/controlDict b/tutorials/mesh/moveDynamicMesh/movingCylinders/system/controlDict new file mode 100644 index 000000000..54dbd8c5e --- /dev/null +++ b/tutorials/mesh/moveDynamicMesh/movingCylinders/system/controlDict @@ -0,0 +1,47 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object controlDict; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +application pimpleDyMFoam; + +startFrom startTime; + +startTime 0; + +stopAt endTime; + +endTime 10; +deltaT 0.001; + +writeControl adjustableRunTime; +writeInterval 0.05; + +cycleWrite 0; + +writeFormat ascii; + +writeCompression compressed; + +timeFormat general; +writePrecision 10; +timePrecision 10; + +runTimeModifiable yes; + +adjustTimeStep on; + +maxCo 0.7; + +// ************************************************************************* // diff --git a/tutorials/mesh/moveDynamicMesh/movingCylinders/system/fvSchemes b/tutorials/mesh/moveDynamicMesh/movingCylinders/system/fvSchemes new file mode 100644 index 000000000..4424576b3 --- /dev/null +++ b/tutorials/mesh/moveDynamicMesh/movingCylinders/system/fvSchemes @@ -0,0 +1,38 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSchemes; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +ddtSchemes +{} + +gradSchemes +{} + +divSchemes +{} + +laplacianSchemes +{} + +interpolationSchemes +{} + +snGradSchemes +{} + +fluxRequired +{} + +// ************************************************************************* // diff --git a/tutorials/mesh/moveDynamicMesh/movingCylinders/system/fvSolution b/tutorials/mesh/moveDynamicMesh/movingCylinders/system/fvSolution new file mode 100644 index 000000000..5c1e68cc2 --- /dev/null +++ b/tutorials/mesh/moveDynamicMesh/movingCylinders/system/fvSolution @@ -0,0 +1,23 @@ +/*--------------------------------*- C++ -*----------------------------------*\ +| ========= | | +| \\ / F ield | OpenFOAM Extend Project: Open Source CFD | +| \\ / O peration | Version: 1.6-ext | +| \\ / A nd | Web: www.extend-project.de | +| \\/ M anipulation | | +\*---------------------------------------------------------------------------*/ +FoamFile +{ + version 2.0; + format ascii; + class dictionary; + object fvSolution; +} +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +solvers +{} + +relaxationFactors +{} + +// ************************************************************************* //