Urban scenario - tetra vs hex problem
Hello all!
I've been trying to run some cases of airflow around buildings using simpleFoam. Simulations seem to converge fine when using a hexahedral mesh. However, if I try the same case but with a tetrahedral mesh, I get fast increasing time step continuity and bounding epsilon errors. Any suggestions? Right now I'm trying increasing numbers of Non Orthogonal Correctors, but without much success. My checkMesh results showed Mesh non-orthogonality Max: 65.5343 average: 19.5644 Non-orthogonality check OK. Should I be using such correctors for this? And how many? Is there some simple way of determining the number of correctors based on the mesh non-orthogonality? Or is my problem something else entirely? Thanks, -Pablo |
Hi Pablo,
I have some experience with coarse mesh on uniform flow around a cylinder. Here I use very coarse mesh(because I want to use the converged results as initial condition for my fine-mesh test case). After the residual for p and U is of order 10^(-6), I see increasing time step continuity and bounding epsilon errors afterwards. But when I use fine mesh I have no such phenomena. Therefore, may I suggest to use fine mesh? Of course there maybe other reasons. Other friends could give you good suggestions:) Bin |
Quote:
|
Still haven't managed to get this to run properly with tetrahedral.
I did refine the mesh around the building (testing with just 1 at the moment), but my time step continuity error goes to E+30 within 3-4 steps. Any other ideas? Thanks. |
Hi,
Just to make sure, do you have some prism layer in your tet mesh? What BC you have for epsilon and k at inlet? Are they realistic? and initial condition? You may try mapFields from the hex mesh to tet and see if it is able to continue from a good solution field with tetmesh. How does your fvSchemes look like? matej |
Quote:
Quote:
Uinlet == ufric*log((z+z0)/(Ka*z0)) * vector(1,0,0); kinlet == ufric2/::sqrt(0.09); epsiloninlet == ufric2*ufric/(Ka * (z+z0)); Quote:
Quote:
ddtSchemes { default steadyState; } gradSchemes { default Gauss linear; grad(p) Gauss linear; grad(U) Gauss linear; } divSchemes { default none; div(phi,U) Gauss upwind; div(phi,k) Gauss upwind; div(phi,epsilon) Gauss upwind; div(phi,R) Gauss upwind; div(R) Gauss linear; div(phi,nuTilda) Gauss upwind; div((nuEff*dev(grad(U).T()))) Gauss linear; } laplacianSchemes { default none; laplacian(nuEff,U) Gauss linear corrected; laplacian((1|A(U)),p) Gauss linear corrected; laplacian(DkEff,k) Gauss linear corrected; laplacian(DepsilonEff,epsilon) Gauss linear corrected; laplacian(DREff,R) Gauss linear corrected; laplacian(DnuTildaEff,nuTilda) Gauss linear corrected; } interpolationSchemes { default linear; interpolate(U) linear; } snGradSchemes { default corrected; } fluxRequired { default no; p; } Any help/ideas/suggestions are appreciated. Thanks, -Pablo |
Hi,
by prism layer I mean a layer of typically prism-shaped elements in the boundary region for the BL better description. But your problem is not a quality of the solution but the existence of it. What you may try is some limiting off the convection terms, something like: div(phi,U) Gauss UpwindV cellLimited leastSquares 1.0; or maybe 0.5. My problem with divergence of epsilon and continuity is typically wrong BC setting, mainly of k and epsilon at inlet. I recall someone here recently suggesting setting epsilon for the initial condition 10 times higher then that of the inlet. good luck matej |
All times are GMT -4. The time now is 21:01. |