Numerical methods for differential equations
Stokes problems
Stokes equation
We focus on 2D problems where u: Ω → ℝd, with d = 2, 3. The function y(x, y) = (ux, uy) and the gradient is represented as ∇ u, with the divergence div y = ∂ux/∂x + ∂uy/∂y = tr(∇ y).
The integral of the divergence of σ is given by:
∫ div σ · v dx = ∫∂Ω σ · v ds - ∫Ω ∇ · v dx , σ = Ω → ℝd × d
Stokes system
The conservation of momentum is expressed as div σ + ∇ g = 0.
We focus on fluids, specifically incompressible Newtonian fluids, where σ = 2μ sym∇ y - pI.
The equation is:
∫Ω (∇ u - pI) · v dx + ∫Ω f · v dx - ∫∂Ω (∇ u - pI) · v ds = 0
∫Ω (∇ u : ∇ v - p div v + f · v dx = 0
∫Ω div y q dx = 0
Weak formulation
∫Ω y · u : ∇ v - p div u + f v dx = 0
∫Ω div u q dx = 0 ∀ q ∈ H0(Ω)
u ∈ H1(Ω, ℝd) and u:Ω → ℝd
Introducing notation
U: H01(Ω, ℝd)
Q: L2(Ω)
Numerical methods for differential equations
Stokes problems
- Stokes equation: We focus on 2D problems.
- Gradient: …
- Divergence: …
- Stokes system: Conservation of momentum.
- Incompressible Newtonian fluids: Symmetric gradient.
Strong form
This section covers vectorial and scalar equations, homogeneous Dirichlet boundary conditions, test functions, and the bilinear form with known terms.
The problem can be rewritten as:
Find (u,p) ∈ V x Q such that:
a(u,z) + b(u,p) = F(z) ∀z ∈ V + b(z,q) = 0 ∀q ∈ Q
Where:
F: x ∈ V -> F(x) = -∫Ωf x dx
F(z) = -∫Ωf x dx
|F(z)| = |∫Ωf x z dx| ≤ ∫Ω|f x| dx ≤ ||f||L2Ω||x||L2Ω ≤ ||f||L2Ω||z||V, ∀z ∈ V
|F(z)| is bounded, so it is a continuous functional.
Continuity
a(u,z) = ∫Ω ∇u : ∇z dx
|a(u,z)| ≤ k ||u||V||z||V
Coercivity
a(u,z) ≥ α ||u||2, α > 0
b(u,q) = -∫Ωdiv u q dx
|b(u,q)| = |∫Ωdiv q dx| = |∫Ω|div u q| dx ≤ ||div u||L2Ω||q||L2Ω
∫Ω|∂ux/∂y|2 dx = ∫Ω|∂ux/∂x| + |∂uy/∂y|2 + 2∫Ω∂ux∂uy/∂x dy dx ≤ ||∇u||2 + ||∂uy/∂y||2
[Young inequality: 2ab ≤ a2+b2]
||div u||2L2Ω ≤ 2||u||2V
|b(u,q)| ≤ 2||div u||α ||q||α → bounded
b(u,q) is continuous.
Stability
z = u, p = q -> a(u,z) + b(u,p) = F(u)
b(u,p) = 0
a(u,u) = F(u)
α ||u||2 ≤ a(u,u) = F(u) = ||f||L2Ω||u|| 2
||u||2 ≤ 1/α ||f||L2Ω||u|| bounded
If f is small, u is of some order of magnitude small → stable
Stability of p?
INF-SUP condition:
supz∈V b(z,q)
INF-SUP condition (Ladyzenskaja-Babuska-Brezzi) depends only on the shape of the domain. Property:
supf∈sup|F|
Total variation diminishing method (TVD)
TV(q∧n+1) ≤ TV(q∧n)
Can not create new oscillations. For monotone initial data + TVD, we’ll have a monotone solution ∀ time.
(Actually, there are also non-TVD methods keeping monotonicity)
Introduce new ¯qin
Such that no over/under-shoots are introduced.
Min-mod slope: take slope computed with up and down wind, then apply minmod(a,b):
- a: if |a|<|b|, ab > 0
- b: if |b|<|a|, ab > 0
- 0: if ab ≤ 0
¯qin = minmod ( qin-qi-1n/dx, qi+1n-qin/dx )
Monotonized central differences limiter (2nd order)
Comparison between up, down, centered.
Burgers equation (inviscid)
∂u/∂t + ∂F(u)/∂x = 0, F(x) = u2/2 ⇒ ∂u/∂t + u ∂u/∂x = 0
The first time at which 2 characteristic lines cross is:
Critical time tc = -Δx/(u0(x1+Δx) - u0(x1))
Computing lim: tc = min ( Δx/u0(x) )
Equal area rule to define position of discontinuity:
Ś = F(u)|x2-F(u)|x1u2-u1 ⇒ for Burgers Ś = 1/2(u2-u1)
Entropy condition: F'(u2) ≥ Ś ≥ F'(u1)
Viscid burgers equation
∂u/∂t + u∂u/∂x = ε ∂2u/∂x2 ⇒ uε(x,t), u(x,t) = lim uε(x,t)
Lax-Friedrichs, Upwind, Lax-Wendroff, Mac-Cormack:
vjn' = un – Δt / 2Δx [ F(uj+1, n)+F(uj, n) ]
un+1j = 1/2 [ (unj+1+unj) - Δt / 2Δx [ F(unj+1)-F(uj-1, n) ]
Uniqueness
∫Ω-Δu + ∇p = f = 0
div u = 0
u = 0
If p ⇒ p + C, then ∇p ⇒ ∇ (p + c) = ∇p
Pressure is not defined in a unique way under Dirichlet boundary conditions.
p̄ ∈ Q: b(v, p̄) = 0 ∀ v ∈ V
∃S div vₙ p̄ dx = 0 ⇒ ∫S₂ vₙ p̄ ds - ∫Ω v ∇p̄ dx = 0
Q₀ = {p̄ ∈ Q: b(v, p̄) = 0 ∀ v ∈ V} ⇒ Solution is unique up to an element of Q₀
For u, we have uniqueness.
Neumann boundary conditions
We provide the Neumann boundary condition: ∇n = 0 on ΓN ⇒ (∇u - pIₙ) = 0.
It is sufficient to have a piece of Neumann (or Robin) boundary condition to make pressure unique.
Discretization of the problem
Vh ⊂ V, Qh ⊂ Q, finite dimensional spaces
Find (uh, ph) ∈ Vh x Qh such that:
a(uh, vh) + b(vh, ph) = F(vh) ∀ vh ∈ Vh
b(uh, qh) = 0 ∀ qh ∈ Qh
Properties
a(uh, vh) ≥ 1/αh |uh|2V ∀ vh ∈ Vh
supvh ∈ Vh b(vh, qh) / |vh|Vh ≥ βh |qh|Qh ∀ qh ∈ Qh
Everything can be proved exactly as in continuous variables case.
Convergence
||u - uh|| ≤ (1 + 1/αh) infvh∈Vh ||u - Uh||Vh + 1/βh infqh∈Qh ||p - qh||Qh
Generally, taking u ∈ Pm approximation is such that:
||u - uh|| ∼ hm
||p - qh|| ∼ hm
||p - qh|| ∼ hm-1
||u - uh|| ∼ hm-1
∀z ∈ Vh
∀qh ∈ Qh
||p - qh||0 = 0
If Vh = V
If βh = 0
If βh ∞
V = span(φi)
Qh = span(ψi)
ξe a (ψi, ψi) ui
ξe b (ψi, ψj) ui = 0
∀r ∈ Ωh p(ϵ) + p0 could be fixed, set a priori or a posteriori.
Iterative solvers
Initial guess |ϵ=0 converges in any case g additional cost, fixed to unknown value or for MINRES, GMRES.
Direct solvers
Most of them are implemented with PA=LU, if properly done can solve even a singular matrix e.g. UMFPACK++ (FreeFem++).
Σ = T = Σ
If completely lacking a simp CGSpace for ψ, P must be compatible.
Algebraic counterpart of inf-sup
In principle, we could go through a "monolithic way":
Au & BTP = φ ⟹ u = -Au-1BT
B(-Au-1BT ⟹ ⟹
Reduced the solution of the whole problem to only the solution of pressure S: knowing Au positive definite dense non-singular matrix, must check ker(BT) = 0
For M ∈ Rn×m MV = 0, ker(M) is the set of all V satisfying the equation ker(BT) = 0
If ker(BT) = 0, S is non-singular.
Applying BT to a generic ξ e.g. from an algebraic point of view inf-sup can be checked with ker(BT) = 0, or saying that rank(B) = maximum.
Finite element spaces
When solving the Stokes problem, the main issue is using the correct finite element spaces. An alternative is possible: use a couple of fespaces not satisfying the inf-sup + STABILIZATION technique + stabilization parameter from a physical point of view. Introducing ε s.t.
Not very good, ε is a critical point!
-
Teorema divergenza e stokes
-
Idraulica : Bernoulli; Navier-Stokes; Applicazioni
-
Equazione di Navier Stokes, Idraulica
-
Esercizi sui Campi Vettoriali, Divergenza di Gauss e Stokes