nate
December 6, 2022, 3:44pm
3
Additional to @dokken ’s comment, this is an area of active research and you should be careful about how you measure the divergence of the velocity approximation.
@jpdean has a small collection of papers here
If you’re solving the incompressible Navier-Stokes equations, I’d recommend looking into divergence conforming Discontinuous Galerkin (DG) methods. These methods are non-conforming and are similar in some ways to finite volume methods. Upwinding can be incorporated naturally through the specification of the numerical flux. Provided the finite element spaces are chosen such that the divergence operator maps the velocity space into the pressure space, mass is conserved exactly. Exact mass conserva…
Consider the posts regarding solenoidal approximations:
Usually the divergence-free constraint is enforced in a discrete sense, i.e., with respect to some finite dimensional set of pressure test functions:
(\nabla\cdot\mathbf{u}^h,q^h)_{L^2} = 0~~~\forall q^h\in\mathcal{Q}^h\text{ ,}
where \mathcal{Q}^h is the discrete pressure test space. A velocity satisfying such a condition can be solved for alongside the corresponding pressure by using a mixed element, as in the Stokes demo here:
https://bitbucket.org/fenics-project/dolfin/src/master/python…
Hi all,
I feel like this should have come up already, but I was not able to find anything through the search function. Here is my MWE (2019.1.0):
from dolfin import *
n = 16
mesh_L = UnitSquareMesh( n, n, 'left')
mesh_C = UnitSquareMesh( n, n, 'crossed')
V_L = VectorFunctionSpace(mesh_L, 'CG', 1)
V_C = VectorFunctionSpace(mesh_C, 'CG', 1)
ic = Expression( ('sin(x[1])', 'sin(x[0])'), degree=1)
v_L = project(ic, V_L)
v_C = project(ic, V_C)
print("div v_L_L2 =", assemble(div(v_L)*div(v_L)*dx…
Somewhat related regarding pressure robust approximations and their impact on the divergence free constraint of the approximation
It looks like you’re observing suboptimal convergence of the Stokes system in a non-convex domain. This is a pretty well known result and is typically noticed by singularities in the pressure approximation.
Consider my modification of your example. Let
\Vert \mathbf{v} \Vert_\text{noslip} = \sqrt{\int_{\partial\Omega_\text{wall}} \mathbf{v}^2 \mathrm{d} s}
such that we measure \Vert \mathbf{u}_h \Vert_\text{noslip} and \Vert \bar{\mathbf{u}}_h \Vert_\text{noslip}.
You should see that \Vert \…
And of course I’ll advertise mine and coworkers’ works and results with divergence free fields:
https://agupubs.onlinelibrary.wiley.com/doi/10.1029/2020GC009349
https://agupubs.onlinelibrary.wiley.com/doi/full/10.1029/2021GC009922
2 Likes