/*--------------------------------*- 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 1.0; hub 0.02; rotorBlades 0.05; rotorRegion 0.06; statorBlades 0.07; stator 0.1; halfDepth 0.005; angle 45; nRadialEndsCells 12; nRadialMidsCells 4; nCircCells 12; // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // vertices #codeStream { codeInclude #{ #include "pointField.H" #include "transformField.H" #}; code #{ const pointField initPoints ({ point(-$stator, 0, -$halfDepth), point(-$stator, 0, -$halfDepth), point(-$statorBlades, 0, -$halfDepth), point(-$rotorRegion, 0, -$halfDepth), point(-$rotorBlades, 0, -$halfDepth), point(-$hub, 0, -$halfDepth), point(-$hub, 0, -$halfDepth), }); pointField points; // Rotate points around z-axis and append for (label i = 0; i < 8; i++) { points.append(transform(Rz(degToRad(i*$angle)), initPoints)); } // Duplicate z points points.append(points + vector(0, 0, 2*$halfDepth)); os << points; #}; }; hubTankBlocks ($nCircCells $nRadialEndsCells 1) simpleGrading (1 1 1); middleBocks ($nCircCells $nRadialMidsCells 1) simpleGrading (1 1 1); blocks ( hex (0 8 9 2 56 64 65 58) stator $hubTankBlocks hex (2 9 10 3 58 65 66 59) stator $middleBocks hex (3 10 11 4 59 66 67 60) rotor $middleBocks hex (4 11 12 5 60 67 68 61) rotor $hubTankBlocks hex (7 14 16 9 63 70 72 65) stator $hubTankBlocks hex (9 16 17 10 65 72 73 66) stator $middleBocks hex (10 17 18 11 66 73 74 67) rotor $middleBocks hex (11 18 20 12 67 74 76 68) rotor $hubTankBlocks hex (14 22 23 16 70 78 79 72) stator $hubTankBlocks hex (16 23 24 17 72 79 80 73) stator $middleBocks hex (17 24 25 18 73 80 81 74) rotor $middleBocks hex (18 25 26 19 74 81 82 75) rotor $hubTankBlocks hex (21 28 30 23 77 84 86 79) stator $hubTankBlocks hex (23 30 31 24 79 86 87 80) stator $middleBocks hex (24 31 32 25 80 87 88 81) rotor $middleBocks hex (25 32 34 26 81 88 90 82) rotor $hubTankBlocks hex (28 36 37 30 84 92 93 86) stator $hubTankBlocks hex (30 37 38 31 86 93 94 87) stator $middleBocks hex (31 38 39 32 87 94 95 88) rotor $middleBocks hex (32 39 40 33 88 95 96 89) rotor $hubTankBlocks hex (35 42 44 37 91 98 100 93) stator $hubTankBlocks hex (37 44 45 38 93 100 101 94) stator $middleBocks hex (38 45 46 39 94 101 102 95) rotor $middleBocks hex (39 46 48 40 95 102 104 96) rotor $hubTankBlocks hex (42 50 51 44 98 106 107 100) stator $hubTankBlocks hex (44 51 52 45 100 107 108 101) stator $middleBocks hex (45 52 53 46 101 108 109 102) rotor $middleBocks hex (46 53 54 47 102 109 110 103) rotor $hubTankBlocks hex (49 0 2 51 105 56 58 107) stator $hubTankBlocks hex (51 2 3 52 107 58 59 108) stator $middleBocks hex (52 3 4 53 108 59 60 109) rotor $middleBocks hex (53 4 6 54 109 60 62 110) rotor $hubTankBlocks ); circle $angle (0 0 1); edges ( arc 0 8 $circle arc 7 14 $circle arc 14 22 $circle arc 21 28 $circle arc 28 36 $circle arc 35 42 $circle arc 42 50 $circle arc 49 0 $circle arc 56 64 $circle arc 63 70 $circle arc 70 78 $circle arc 77 84 $circle arc 84 92 $circle arc 91 98 $circle arc 98 106 $circle arc 105 56 $circle arc 2 9 $circle arc 9 16 $circle arc 16 23 $circle arc 23 30 $circle arc 30 37 $circle arc 37 44 $circle arc 44 51 $circle arc 51 2 $circle arc 58 65 $circle arc 65 72 $circle arc 72 79 $circle arc 79 86 $circle arc 86 93 $circle arc 93 100 $circle arc 100 107 $circle arc 107 58 $circle arc 3 10 $circle arc 10 17 $circle arc 17 24 $circle arc 24 31 $circle arc 31 38 $circle arc 38 45 $circle arc 45 52 $circle arc 52 3 $circle arc 59 66 $circle arc 66 73 $circle arc 73 80 $circle arc 80 87 $circle arc 87 94 $circle arc 94 101 $circle arc 101 108 $circle arc 108 59 $circle arc 4 11 $circle arc 11 18 $circle arc 18 25 $circle arc 25 32 $circle arc 32 39 $circle arc 39 46 $circle arc 46 53 $circle arc 53 4 $circle arc 60 67 $circle arc 67 74 $circle arc 74 81 $circle arc 81 88 $circle arc 88 95 $circle arc 95 102 $circle arc 102 109 $circle arc 109 60 $circle arc 5 12 $circle arc 12 20 $circle arc 19 26 $circle arc 26 34 $circle arc 33 40 $circle arc 40 48 $circle arc 47 54 $circle arc 54 6 $circle arc 61 68 $circle arc 68 76 $circle arc 75 82 $circle arc 82 90 $circle arc 89 96 $circle arc 96 104 $circle arc 103 110 $circle arc 110 62 $circle ); defaultPatch { name walls; type wall; } boundary ( rotor { type wall; faces ( (5 61 68 12) (12 68 76 20) (19 75 82 26) (26 82 90 34) (33 89 96 40) (40 96 104 48) (47 103 110 54) (54 110 62 6) (4 60 62 6) (18 74 76 20) (32 88 90 34) (46 102 104 48) (4 5 61 60) (18 19 75 74) (32 33 89 88) (46 47 103 102) ); } stator { type wall; faces ( (0 8 64 56) (7 14 70 63) (14 22 78 70) (21 28 84 77) (28 36 92 84) (35 42 98 91) (42 50 106 98) (49 0 56 105) (8 64 65 9) (22 78 79 23) (36 92 93 37) (50 106 107 51) (7 9 65 63) (21 23 79 77) (35 37 93 91) (49 51 107 105) ); } front { type empty; faces ( (56 58 65 64) (63 65 72 70) (70 72 79 78) (77 79 86 84) (84 86 93 92) (91 93 100 98) (98 100 107 106) (105 107 58 56) (58 59 66 65) (65 66 73 72) (72 73 80 79) (79 80 87 86) (86 87 94 93) (93 94 101 100) (100 101 108 107) (107 108 59 58) (59 60 67 66) (66 67 74 73) (73 74 81 80) (80 81 88 87) (87 88 95 94) (94 95 102 101) (101 102 109 108) (108 109 60 59) (60 61 68 67) (67 68 76 74) (74 75 82 81) (81 82 90 88) (88 89 96 95) (95 96 104 102) (102 103 110 109) (109 110 62 60) ); } back { type empty; faces ( (0 2 9 8) (7 9 16 14) (14 16 23 22) (21 23 30 28) (28 30 37 36) (35 37 44 42) (42 44 51 50) (49 51 2 0) (2 3 10 9) (9 10 17 16) (16 17 24 23) (23 24 31 30) (30 31 38 37) (37 38 45 44) (44 45 52 51) (51 52 3 2) (3 4 11 10) (10 11 18 17) (17 18 25 24) (24 25 32 31) (31 32 39 38) (38 39 46 45) (45 46 53 52) (52 53 4 3) (4 5 12 11) (11 12 20 18) (18 19 26 25) (25 26 34 32) (32 33 40 39) (39 40 48 46) (46 47 54 53) (53 54 6 4) ); } ); // ************************************************************************* //