CFL condition heat equation 2D/3D
I am solving the heat equation in a non comercial C++ finite elements code with explicit euler stepping, and gmesh adaptive meshes (coarse in the boundaries and finer in the center). I am aware the CFL condition for the heat equation depends on dt/h**2 for the 1D, 2D, 3D case. When I solve the equation in 2D this principle is followed and I require smaller grids following dt<h**2.
But in 3D the problem seems to be requiring finner and finer grids as I decrease the timestep in what appears to be a dt/h**3 behaviour. Does anyone have an idea what could be happening? is the CFL no longer valid in FEM and 3D? What other factors could be influencing? |
Finally, the issue was merely a meshing problem. I am using gmsh, which allows to provide a 1d parameter of "typical length". Although this parameter is well conserved in 2d meshes, 3d meshes seem to result with very deformed elements (e.g. tetrahedron with one of the edges near to zero). Optimizing the mesh with the two 'optimize' buttons in Gmsh, helped tough, but still some of the tetrahedrons where very small.
To corroborate, I solved the same equations in a regular 3D grid, where I was sure the element size was conserved, and indeed, the dt<h**2 was followed. |
you can easily check the stability constraint for the parabolic equation
Ut = k (Uxx + Uyy +Uzz) using FTCS FD-based scheme, you will see that the constraint involves simultaneously the three mesh steps... Hence the dt must be chosen smaller for multidimensional flows. However, for FEM the stability constraint can be different depending on the shape functions |
All times are GMT -4. The time now is 02:25. |