|
[Sponsors] |
Velocity artifacts when using adaptive mesh refinement |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
August 27, 2019, 06:42 |
Velocity artifacts when using adaptive mesh refinement
|
#1 |
New Member
Join Date: Dec 2013
Location: Germany
Posts: 9
Rep Power: 12 |
Hi everybody,
I am working on a setup for a LES (keqn eddy model) of a jet in crossflow using adaptive mesh refinement (with dynamicRefineFvMesh). I am injecting a passive scalar through the nozzle. However, refinement based on the tracer volume fraction does not capture all the important flow features. Therefore, I modified pimpleDyMFoam to compute Ugrad = mag(grad(U)) and refine along Ugrad (using this tutorial: http://www.tfd.chalmers.se/~hani/kur...rayDyMFoam.pdf). I created a fully hexahedral (cubic cells, actually) mesh using blockMesh so that the refined cells remain cubic at all times. There is however a problem, since the refinement/coarsening causes artefacts in the velocity field. I have attached a screenshot of the initial field/mesh and of the artifacts a few time steps into the simulation. I have tried to get rid of these artifacts for the past few days but I have not been successful. Using the tracer volume fraction for refinement helps but that is not an option. Also Ugrad looks fine within the refined regions of the flow, so Ugrad itself shouldn't be the cause of the problem, right? Things that I tried: Increasing nBufferLayers in dynamicMeshDict: does not help switching correctFluxes (phi U),(phi_0 U_0)/(phi none),(phi_0 none): does not help switching correctPhi yes/no for PIMPLE in fvSolutions: does not help changing div(phi,U) schemes: upwind helps a bit but is of coarse undesirable for LES switching to RANS: does not help, so I guess its not a problem of rapid cell size changes for nuSgs. Does anyone have any insights? I would highly appreciate it Cheers Simon Attachements: OFv1612 dynamicMeshDict: Code:
dynamicFvMesh dynamicRefineFvMesh; dynamicRefineFvMeshCoeffs { // How often to refine refineInterval 1; // Field to be refinement on field UGrad; // Refine field inbetween lower..upper lowerRefineLevel 5000;; upperRefineLevel 999999; // If value < unrefineLevel unrefine unrefineLevel 4999; // Have slower than 2:1 refinement nBufferLayers 1; // Refine cells only up to maxRefinement levels maxRefinement 4; // Stop refinement if maxCells reached maxCells 10000000; // Flux field and corresponding velocity field. Fluxes on changed // faces get recalculated by interpolating the velocity. Use 'none' // on surfaceScalarFields that do not need to be reinterpolated. correctFluxes ( (phi U) (phi_0 U_0) ); // Write the refinement level as a volScalarField dumpLevel true; } Code:
ddtSchemes { default backward; } gradSchemes { default Gauss linear; } divSchemes { default none; div(phi,U) Gauss LUST grad(U); div(phi,k) Gauss LUST grad(U); div(phi,s) Gauss limitedLimitedLinear 1 0 1; div((nuEff*dev2(T(grad(U))))) Gauss linear; } laplacianSchemes { default Gauss linear corrected; } interpolationSchemes { default linear; } snGradSchemes { default bounded; } wallDist { method meshWave; } Code:
solvers { p { solver GAMG; tolerance 1e-06; relTol 0.01; smoother DICGaussSeidel; nPreSweeps 0; nPostSweeps 2; cacheAgglomeration true; nCellsInCoarsestLevel 1;//10; agglomerator faceAreaPair; mergeLevels 1; } pFinal { solver GAMG; tolerance 1e-06; relTol 0; smoother DICGaussSeidel; nPreSweeps 0; nPostSweeps 2; cacheAgglomeration true; nCellsInCoarsestLevel 1;//10; agglomerator faceAreaPair; mergeLevels 1; } "pcorr.*" { solver GAMG; tolerance 1e-2; relTol 0; smoother GaussSeidel; cacheAgglomeration true; } "(U|k|epsilon|omega|s)" { solver PBiCG; preconditioner DILU; //solver smoothSolver; //smoother symGaussSeidel; tolerance 1e-05; relTol 0.1; } "(U|k|epsilon|omega|s)Final" { $U; tolerance 1e-05; relTol 0; } } PIMPLE { nOuterCorrectors 1; nCorrectors 2; nNonOrthogonalCorrectors 0; pRefCell 0; pRefValue 0; turbOnFinalIterOnly false; correctPhi yes; residualControl { U { tolerance 1e-4; relTol 0; } p { tolerance 5e-3; relTol 0; } s { tolerance 1e-4; relTol 0; } } } relaxationFactors { equations { "U.*" 1; "k.*" 1; "epsilon.*" 1; "omega.*" 1; "s.*" 1; } } |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
[snappyHexMesh] snappyHexMesh sticking point | natty_king | OpenFOAM Meshing & Mesh Conversion | 11 | February 20, 2024 09:12 |
decomposePar problem: Cell 0contains face labels out of range | vaina74 | OpenFOAM Pre-Processing | 37 | July 20, 2020 05:38 |
Moving mesh | Niklas Wikstrom (Wikstrom) | OpenFOAM Running, Solving & CFD | 122 | June 15, 2014 06:20 |
[snappyHexMesh] snappyHexMesh won't work - zeros everywhere! | sc298 | OpenFOAM Meshing & Mesh Conversion | 2 | March 27, 2011 21:11 |
[snappyHexMesh] external flow with snappyHexMesh | chelvistero | OpenFOAM Meshing & Mesh Conversion | 11 | January 15, 2010 19:43 |