|
[Sponsors] |
![]() |
![]() |
#1 |
New Member
Christian Wolf
Join Date: Mar 2009
Posts: 27
Rep Power: 18 ![]() |
Hello!
(0) I am running into problems, simulating a water pump in simpleFoam and MRF approach. My goals is: After finishing the steady-state run, to continue transient run with pimpleDyMFoam with rigid body motion of rotor. At the moment, I do not get a reasonable result with simpleFoam. (1) My approach: (1a) The rotor is meshed with ICEM/Hexa. A periodic segment is copy and pasted in order to get a 360deg rotor mesh. Even meshing with Hexa, the mesh quality is not very good, as the blades have strong curvature. (1b) The volute and outlet piping is meshed with StarCCM+ Trimmed cells. (1c) The water inlet piping consists out of 2 pipings. Both are meshed in ICEM/Hexa. The interface between both piping is vertex conformal. (1d) I use cyclicAMI interface for connection at inlet piping/rotor and rotor/volute. (2) Settings: (2a) To connect the vertex conformal meshes of (1c), I used Code:
stitchMesh -perfect Interface-14 Interface-15 (2b) cellZone_1 represents rotor mesh. (3) CheckMesh shows: Code:
checkMesh -time 1 -allTopology Create time Create polyMesh for time = 1 Enabling all (cell, face, edge, point) topology checks. Time = 1 Mesh stats points: 4304866 faces: 12601483 internal faces: 12269440 cells: 4143883 faces per cell: 6.00184 boundary patches: 17 point zones: 0 face zones: 1 cell zones: 4 Overall number of cells of each type: hexahedra: 3960110 prisms: 97026 wedges: 7534 pyramids: 152 tet wedges: 21 tetrahedra: 11036 polyhedra: 68004 Breakdown of polyhedra by number of faces: faces number of cells 4 7 5 166 6 8899 7 36734 8 4987 9 9555 10 624 11 129 12 4431 13 119 14 26 15 2314 16 13 Checking topology... Boundary definition OK. Cell to face addressing OK. Point usage OK. <<Found 18 neighbouring cells with multiple inbetween faces. Upper triangular ordering OK. <<Writing 36 unordered faces to set upperTriangularFace Face vertices OK. Topological cell zip-up check OK. <<Number of duplicate (not baffle) faces found: 9. This might indicate a problem. <<Number of faces with non-consecutive shared points: 27. This might indicate a problem. <<Writing 54 faces with non-standard edge connectivity to set edgeFaces *Number of regions: 3 The mesh has multiple regions which are not connected by any face. <<Writing region information to "1/cellToRegion" <<Writing region 0 (fully disconnected) with 3290580 cells to cellSet region0 <<Writing region 1 (fully disconnected) with 108360 cells to cellSet region1 <<Writing region 2 (fully disconnected) with 744943 cells to cellSet region2 Checking patch topology for multiply connected surfaces... Patch Faces Points Surface topology IF-ROTOR-STATOR 25560 25920 ok (non-closed singly connected) HUB 35100 36061 ok (non-closed singly connected) BLADE-FRONT 7110 7824 ok (non-closed singly connected) BLADE 54870 56160 ok (non-closed singly connected) SHROUD 51660 52020 ok (non-closed singly connected) IF-BC-IN 29880 30061 ok (non-closed singly connected) TIP 6300 6816 ok (non-closed singly connected) Interface-14 0 0 ok (empty) EXTRUSION-inlet-layer 60 120 ok (non-closed singly connected) FLUID-INLET-LAYER 765 796 ok (non-closed singly connected) Interface-15 0 0 ok (empty) TRM_SRF 5580 5640 ok (non-closed singly connected) EXTRUSION 2340 2400 ok (non-closed singly connected) IF-U-PUMP 1185 1216 ok (non-closed singly connected) Wall 97902 89775 ok (non-closed singly connected) Volute_Mixing_Interface 12410 13142 ok (non-closed singly connected) Outlet 1321 1401 ok (non-closed singly connected) Checking geometry... Overall domain bounding box (-0.667384 -0.526093 -2.77437) (0.622538 0.540912 -2.17567) Mesh has 3 geometric (non-empty/wedge) directions (1 1 1) Mesh has 3 solution (non-empty) directions (1 1 1) Boundary openness (-7.86524e-17 -9.76514e-17 5.06224e-17) OK. Max cell openness = 8.43072e-16 OK. Max aspect ratio = 21.7438 OK. Minimum face area = 1.5237e-09. Maximum face area = 0.000165698. Face area magnitudes OK. Min volume = 3.0602e-13. Max volume = 1.33109e-06. Total volume = 0.0405201. Cell volumes OK. Mesh non-orthogonality Max: 84.4003 average: 37.6213 *Number of severely non-orthogonal (> 70 degrees) faces: 462293. Non-orthogonality check OK. <<Writing 462293 non-orthogonal faces to set nonOrthoFaces Face pyramids OK. Max skewness = 3.74722 OK. Coupled point location match (average 0) OK. Mesh OK. End Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 4.1 | | \\ / A nd | Web: www.OpenFOAM.org | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class polyBoundaryMesh; location "1/polyMesh"; object boundary; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // 17 ( IF-ROTOR-STATOR { type cyclicAMI; inGroups 1(cyclicAMI); nFaces 25560; startFace 12269440; matchTolerance 0.001; transform noOrdering; neighbourPatch Volute_Mixing_Interface; } HUB { type wall; inGroups 1(wall); nFaces 35100; startFace 12295000; } BLADE-FRONT { type wall; inGroups 1(wall); nFaces 7110; startFace 12330100; } BLADE { type wall; inGroups 1(wall); nFaces 54870; startFace 12337210; } SHROUD { type wall; inGroups 1(wall); nFaces 51660; startFace 12392080; } IF-BC-IN { type cyclicAMI; inGroups 1(cyclicAMI); nFaces 29880; startFace 12443740; matchTolerance 0.001; transform noOrdering; neighbourPatch IF-U-PUMP; } TIP { type wall; inGroups 1(wall); nFaces 6300; startFace 12473620; } Interface-14 { type wall; inGroups 1(wall); nFaces 0; startFace 12479920; } EXTRUSION-inlet-layer { type wall; inGroups 1(wall); nFaces 60; startFace 12479920; } FLUID-INLET-LAYER { type patch; nFaces 765; startFace 12479980; } Interface-15 { type wall; inGroups 1(wall); nFaces 0; startFace 12480745; } TRM_SRF { type wall; inGroups 1(wall); nFaces 5580; startFace 12480745; } EXTRUSION { type wall; inGroups 1(wall); nFaces 2340; startFace 12486325; } IF-U-PUMP { type cyclicAMI; inGroups 1(cyclicAMI); nFaces 1185; startFace 12488665; matchTolerance 0.001; transform noOrdering; neighbourPatch IF-BC-IN; } Wall { type wall; inGroups 1(wall); nFaces 97902; startFace 12489850; } Volute_Mixing_Interface { type cyclicAMI; inGroups 1(cyclicAMI); nFaces 12410; startFace 12587752; matchTolerance 0.001; transform noOrdering; neighbourPatch IF-ROTOR-STATOR; } Outlet { type patch; nFaces 1321; startFace 12600162; } ) (5) My choice of boundary conditions: (5a) ./1/U Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.0.x | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volVectorField; location "0"; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 -1 0 0 0 0]; internalField uniform (0 0.1 0); boundaryField { IF-ROTOR-STATOR { type cyclicAMI; } Interface-14 { type zeroGradient; } IF-BC-IN { type cyclicAMI; } Interface-15 { type zeroGradient; } EXTRUSION-inlet-layer { type fixedValue; value uniform (0 0 0); } HUB { type fixedValue; value uniform (0 0 0); } BLADE-FRONT { type fixedValue; value uniform (0 0 0); } BLADE { type fixedValue; value uniform (0 0 0); } TIP { type fixedValue; value uniform (0 0 0); } FLUID-INLET-LAYER { type fixedValue; value uniform (0 0.7878 0); // type flowRateInletVelocity; // flowRate 0.0138; // value uniform (0 0.7878 0); } SHROUD { type fixedValue; value uniform (0 0 0); } TRM_SRF { type fixedValue; value uniform (0 0 0); } EXTRUSION { type fixedValue; value uniform (0 0 0); } Wall { type fixedValue; value uniform (0 0 0); } IF-U-PUMP { type cyclicAMI; } Outlet { type zeroGradient; // type pressureInletOutletVelocity; // value $internalField; } Volute_Mixing_Interface { type cyclicAMI; } } Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.0.0 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 700; boundaryField { FLUID-INLET-LAYER { // type fixedValue; // value uniform 0; type zeroGradient; } IF-ROTOR-STATOR { type cyclicAMI; } Interface-14 { type zeroGradient; } IF-BC-IN { type cyclicAMI; } Interface-15 { type zeroGradient; } EXTRUSION-inlet-layer { type zeroGradient; } HUB { type zeroGradient; } BLADE-FRONT { type zeroGradient; } BLADE { type zeroGradient; } TIP { type zeroGradient; } SHROUD { type zeroGradient; } TRM_SRF { type zeroGradient; } EXTRUSION { type zeroGradient; } Wall { type zeroGradient; } IF-U-PUMP { type cyclicAMI; } Outlet { // type zeroGradient; type fixedValue; value $internalField; } Volute_Mixing_Interface { type cyclicAMI; } } Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.0.0 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object k; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 1; boundaryField { FLUID-INLET-LAYER { // type fixedValue; // value uniform 3.103e-03; type turbulentIntensityKineticEnergyInlet; intensity 0.05; value $internalField; } IF-ROTOR-STATOR { type cyclicAMI; value $internalField; } Interface-14 { type kqRWallFunction; value $internalField; } IF-BC-IN { type cyclicAMI; value $internalField; } Interface-15 { type kqRWallFunction; value uniform 1; } EXTRUSION-inlet-layer { type kqRWallFunction; value $internalField; } HUB { type kqRWallFunction; value $internalField; } BLADE-FRONT { type kqRWallFunction; value $internalField; } BLADE { type kqRWallFunction; value $internalField; } TIP { type kqRWallFunction; value $internalField; } SHROUD { type kqRWallFunction; value $internalField; } TRM_SRF { type kqRWallFunction; value $internalField; } EXTRUSION { type kqRWallFunction; value $internalField; } Wall { type kqRWallFunction; value $internalField; } IF-U-PUMP { type cyclicAMI; value $internalField; } Outlet { type zeroGradient; // value uniform 1; // type inletOutlet; // inletValue $internalField; // value $internalField; } Volute_Mixing_Interface { type cyclicAMI; value $internalField; } } |
|
![]() |
![]() |
![]() |
![]() |
#2 |
New Member
Christian Wolf
Join Date: Mar 2009
Posts: 27
Rep Power: 18 ![]() |
CONTINUED......
(5d) ./1/epsilon Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.0.0 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object epsilon; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -3 0 0 0 0]; internalField uniform 10; boundaryField { FLUID-INLET-LAYER { // type fixedValue; // value uniform 3.79e-03; type turbulentMixingLengthDissipationRateInlet; mixingLength 0.005; value $internalField; } IF-ROTOR-STATOR { type cyclicAMI; // value uniform 200; } Interface-14 { type epsilonWallFunction; value uniform 200; } IF-BC-IN { type cyclicAMI; // value uniform 200; } Interface-15 { type epsilonWallFunction; value $internalField; } EXTRUSION-inlet-layer { type epsilonWallFunction; value $internalField; } HUB { type epsilonWallFunction; value $internalField; } BLADE-FRONT { type epsilonWallFunction; value $internalField; } BLADE { type epsilonWallFunction; value $internalField; } TIP { type epsilonWallFunction; value $internalField; } SHROUD { type epsilonWallFunction; value $internalField; } TRM_SRF { type epsilonWallFunction; value $internalField; } EXTRUSION { type epsilonWallFunction; value $internalField; } Wall { type epsilonWallFunction; value $internalField; } IF-U-PUMP { type cyclicAMI; // value uniform 200; } Outlet { type zeroGradient; // value uniform 200; // type inletOutlet; // inletValue $internalField; // value $internalField; } Volute_Mixing_Interface { type cyclicAMI; // value uniform 200; } } Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.0.0 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class volScalarField; location "0"; object nut; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -1 0 0 0 0]; internalField uniform 0.1; boundaryField { FLUID-INLET-LAYER { type calculated; value uniform 0; } IF-ROTOR-STATOR { type cyclicAMI; value uniform 0; } Interface-14 { type nutkWallFunction; value uniform 0; } IF-BC-IN { type cyclicAMI; value uniform 0; } Interface-15 { type nutkWallFunction; value uniform 0; } EXTRUSION-inlet-layer { type nutkWallFunction; value $internalField; } HUB { type nutkWallFunction; value $internalField; } BLADE-FRONT { type nutkWallFunction; value $internalField; } BLADE { type nutkWallFunction; value $internalField; } TIP { type nutkWallFunction; value $internalField; } SHROUD { type nutkWallFunction; value $internalField; } TRM_SRF { type nutkWallFunction; value $internalField; } EXTRUSION { type nutkWallFunction; value $internalField; } Wall { type nutkWallFunction; value $internalField; } IF-U-PUMP { type cyclicAMI; value uniform 0; } Outlet { type calculated; value uniform 0; } Volute_Mixing_Interface { type cyclicAMI; value uniform 0; } } (6a) ./system/fvSchemes Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.0.0 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSchemes; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // ddtSchemes { default steadyState; } gradSchemes { default Gauss linear; grad(p) Gauss linear; grad(U) Gauss linear; //skewLinear; } divSchemes { // default Gauss linear; default Gauss linear skewLinear; // default none; div(phi,U) bounded Gauss upwind; // div(phi,U) Gauss vanLeerV 0 500; // div(phi,k) Gauss limitedLinear 1; div(phi,k) bounded Gauss upwind; div(phi,epsilon) bounded Gauss upwind; div((nuEff*dev(T(grad(U))))) Gauss linear; // div((nuEff*dev(T(grad(U))))) Gauss linear; } laplacianSchemes { // default none; // laplacian(nuEff,U) Gauss linear corrected; // laplacian((1|A(U)),p) Gauss linear corrected; // laplacian(DkEff,k) Gauss upwind phi uncorrected; // laplacian(DkEff,k) Gauss linear corrected; // laplacian(DepsilonEff,epsilon) Gauss upwind phi uncorrected; // laplacian(DepsilonEff,epsilon) Gauss linear corrected; // laplacian(1,p) Gauss linear corrected; default Gauss linear limited .2; //default Gauss linear corrected; } interpolationSchemes { default linear; interpolate(U) linear; } snGradSchemes { default corrected; } fluxRequired { default no; p ; } Code:
/*--------------------------------*- C++ -*----------------------------------*\ | ========= | | | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox | | \\ / O peration | Version: 2.0.0 | | \\ / A nd | Web: www.OpenFOAM.com | | \\/ M anipulation | | \*---------------------------------------------------------------------------*/ FoamFile { version 2.0; format ascii; class dictionary; location "system"; object fvSolution; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // solvers { p { solver GAMG; tolerance 1e-08; relTol 0.05; // nPreSweeps 0; // nPostSweeps 2; smoother GaussSeidel; cacheAgglomeration true; nCellsInCoarsestLevel 20; agglomerator faceAreaPair; mergeLevels 1; } U { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e-07; relTol 0.1; } k { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e-07; relTol 0.1; } epsilon { solver smoothSolver; smoother GaussSeidel; nSweeps 2; tolerance 1e-07; relTol 0.1; } Phi { solver GAMG; smoother DIC; tolerance 1e-06; relTol 0.01; } } SIMPLE { nNonOrthogonalCorrectors 3; pRefCell 1000; //1000; pRefValue 0; //0; residualControl { p 1e-7; U 1e-7; // nuTilda 1e-5; } } potentialFlow { nNonOrthogonalCorrectors 3; } relaxationFactors { p 0.3; U 0.7; k 0.3; epsilon 0.3; } (7a) The simulation is not diverging, but the results are not matching with measurement data. From paraFoam I see, that there is backflow at the outlet boundary. That is not physical. No need to mention, that pressure raise is not correct. See attached figures. (7b) Output of Log-file at t=4000. Code:
Time = 4000 smoothSolver: Solving for Ux, Initial residual = 6.49334e-05, Final residual = 5.48804e-06, No Iterations 4 smoothSolver: Solving for Uy, Initial residual = 7.65739e-05, Final residual = 6.41807e-06, No Iterations 4 smoothSolver: Solving for Uz, Initial residual = 0.000245207, Final residual = 2.17271e-05, No Iterations 4 GAMG: Solving for p, Initial residual = 0.000497367, Final residual = 1.78079e-05, No Iterations 2 GAMG: Solving for p, Initial residual = 9.74022e-05, Final residual = 2.70978e-06, No Iterations 3 GAMG: Solving for p, Initial residual = 2.75499e-05, Final residual = 1.34238e-06, No Iterations 2 GAMG: Solving for p, Initial residual = 7.57486e-06, Final residual = 2.79618e-07, No Iterations 6 time step continuity errors : sum local = 5.83355e-05, global = 2.4735e-05, cumulative = -0.0134445 smoothSolver: Solving for epsilon, Initial residual = 0.000195813, Final residual = 4.18956e-06, No Iterations 2 smoothSolver: Solving for k, Initial residual = 0.000190456, Final residual = 5.48109e-06, No Iterations 2 ExecutionTime = 17569.4 s ClockTime = 17654 s fieldValueDelta pressureDifferencePatch write: subtract(p) = -736.583 surfaceRegion outlet_avg_p write: areaAverage(Outlet) of p = 700 surfaceRegion outlet_avg_ptot write: areaAverage(Outlet) of total(p) = 700.748 surfaceRegion inlet_avg_p write: areaAverage(FLUID-INLET-LAYER) of p = -36.5828 surfaceRegion inlet_avg_ptot write: areaAverage(FLUID-INLET-LAYER) of total(p) = -36.2725 Code:
SIMPLE: convergence criteria field p tolerance 1e-07 field U tolerance 1e-07 Reading field p Reading field U Reading/calculating face flux field phi AMI: Creating addressing and weights between 25560 source faces and 12410 target faces AMI: Patch source sum(weights) min/max/average = 0.521354, 1.00613, 0.993977 AMI: Patch target sum(weights) min/max/average = 0.869753, 1.05489, 1.00455 AMI: Creating addressing and weights between 29880 source faces and 1185 target faces AMI: Patch source sum(weights) min/max/average = 0.505227, 1, 0.996083 AMI: Patch target sum(weights) min/max/average = 1, 1, 1 Thanks and regards. |
|
![]() |
![]() |
![]() |
![]() |
#3 |
New Member
Christian Wolf
Join Date: Mar 2009
Posts: 27
Rep Power: 18 ![]() |
Oh, no one has an idea? Do I have to provide more information?
|
|
![]() |
![]() |
![]() |
![]() |
#4 |
Member
ssa
Join Date: Sep 2018
Posts: 93
Rep Power: 8 ![]() |
if backflow is the problem, try using inletoutlet boundary condition for outlet. I don't know about AMI.
|
|
![]() |
![]() |
![]() |
![]() |
#5 |
New Member
Christian Wolf
Join Date: Mar 2009
Posts: 27
Rep Power: 18 ![]() |
Thanks for your reply! Can you please be more precise? Where do I have to define the inletOutlet boundary? In file ./0/U and/or ./0/p? What about k and epsilon?
Regards |
|
![]() |
![]() |
![]() |
![]() |
#6 |
Member
ssa
Join Date: Sep 2018
Posts: 93
Rep Power: 8 ![]() |
for U, K and epsilon use inletOutlet for outlet patch.
|
|
![]() |
![]() |
![]() |
![]() |
#7 |
New Member
Christian Wolf
Join Date: Mar 2009
Posts: 27
Rep Power: 18 ![]() |
Hello!
I tried with inletOutlet boundary condition as mentioned above. Still, the result is unphysical. Fluid flows into the domain at outlet boundary. I wonder, why the simulation does not diverge, as mass cannot be balanced (conservation of mass). I am not sure, if the use of cyclicAMI interface is correct. I simulate a steady-state, MRF water pump. In order to connect rotor and stator domain, I use the cyclicAMI interface. Is this interface only working with rigid body motion? Is the interface appropriate to connect unconformal (vertices) meshes? |
|
![]() |
![]() |
![]() |
Tags |
cyclicami, mrf, simplefoam |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Water droplet on surface, problems with interface water/air (video / setup included) | silent2608 | Fluent Multiphase | 1 | December 7, 2015 04:40 |
air into box filled with water, outflow for water at bottom | dieterdanger | Fluent Multiphase | 0 | July 16, 2015 17:11 |
Mixture and Decay of a tracer in a Water Tank | Jeffrey1992 | CFX | 2 | July 27, 2012 14:31 |
water pump intakes | vikas171092 | Main CFD Forum | 7 | June 7, 2012 15:28 |
water pump intakes | vikas171092 | ANSYS | 0 | May 30, 2012 15:52 |