MATH 676 – Finite element methods in scientifjc computing Wolfgang Bangerth, T exas A&M University http://www.dealii.org/ Wolfgang Bangerth
Lecture 31.5: Nonlinear problems Part 1: Introduction http://www.dealii.org/ Wolfgang Bangerth
Nonlinear problems Reality is nonlinear. Linear equations are only approximations. http://www.dealii.org/ Wolfgang Bangerth
Nonlinear problems Reality is nonlinear. Linear equations are only approximations. Linear equations typically assume that something is small: ● Poisson equation for displacement of a membrane Assumption: small displacement ● Stokes equation Assumption: slow flow, incompressible medium ● Maxwell equations Assumption: Small electromagnetic field strength http://www.dealii.org/ Wolfgang Bangerth
Fluid flow example, part 1 Consider the Stokes equations: ρ ∂ u ∂ t −νΔ u +∇ p = f ∇⋅ u = 0 These equations are the small-velocity approximation of the nonlinear Navier-Stokes equations: ρ ( ∂ t + u ⋅∇ u ) −νΔ u +∇ p = f ∂ u ∇⋅ u = 0 http://www.dealii.org/ Wolfgang Bangerth
Fluid flow example, part 2 The Navier-Stokes equations ρ ( ∂ t + u ⋅∇ u ) −νΔ u +∇ p = f ∂ u ∇⋅ u = 0 are the small-pressure approximation of the variable-density Navier-Stokes equations: ρ ( ∂ t + u ⋅∇ u ) −νΔ u +∇ p = f ∂ u ∇⋅ (ρ u ) = 0 http://www.dealii.org/ Wolfgang Bangerth
Fluid flow example, part 3 The variable-density Navier-Stokes equations can be further generalized: ● The viscosity really depends on – pressure – strain rate ● Friction converts mechanical energy into heat ● Viscosity and density depend on temperature ● … http://www.dealii.org/ Wolfgang Bangerth
1d elastic deformation example Consider a 1d rubber band: – Clamped at the ends – Deformed perpendicularly by a force f(x) – Leading to a perpendicular displacement u(x) u(x) x http://www.dealii.org/ Wolfgang Bangerth
1d elastic deformation example u(x) √ (Δ x ) 2 +( u' ( x )Δ x ) 2 u' ( x )Δ x Δ x x If a material is linearly elastic, then the energy stored in a deformation is proportional to its elongation : N A ( √ (Δ x ) 2 +( u' ( x j )Δ x ) 2 −Δ x ) E deformation ( u ) = lim Δ x → 0 ∑ j = 1, Δ x =( b − a ) N b b A ( √ ( dx ) 2 − dx ) = ∫ a A ( √ 1 +( u' ( x )) 2 − 1 ) dx = ∫ a 2 +( u' ( x ) dx ) http://www.dealii.org/ Wolfgang Bangerth
1d elastic deformation example The total energy is a sum of two terms: – the deformation energy – the work against an external force E ( u ) = E deformation + E potential b A ( √ 1 +( u' ( x )) b f ( x ) u ( x ) dx 2 − 1 ) dx − ∫ a = ∫ a [ A ( √ 1 +( u' ( x )) 2 − 1 ) − f ( x ) u ( x ) ] dx b = ∫ a http://www.dealii.org/ Wolfgang Bangerth
1d elastic deformation example We seek that displacement u(x) that minimizes the energy b [ A ( √ 1 +( u' ( x )) 2 − 1 ) − f ( x ) u ( x ) ] dx E ( u ) = ∫ a This is equivalent to finding that point u(x) for which every infinitesimal variation ε v(x) leads to the same energy: 1 ϵ [ E ( u +ϵ v )− E ( u ) ] = 0 ∀ v ∈ H 0 1 lim ϵ→ 0 In other words: ( A v' ( x ) u' ( x ) √ 1 +( u' ( x )) 2 − v ( x ) f ( x ) ) dx = 0 ∀ v ∈ H 0 b ∫ 1 a http://www.dealii.org/ Wolfgang Bangerth
1d elastic deformation example We seek that displacement u(x) that satisfies ( A v' ( x ) u' ( x ) √ 1 +( u' ( x )) 2 − v ( x ) f ( x ) ) dx = 0 ∀ v ∈ H 0 b ∫ 1 a The strong form of this equation is: − ( A √ 1 +( u' ( x )) 2 ) ' u' ( x ) = f ( x ) In multiple space dimensions, this generalizes to this: −∇⋅ ( A 2 ) = f ∇ u √ 1 +∣∇ u ∣ This is often called the minimal surface equation . http://www.dealii.org/ Wolfgang Bangerth
Minimal surface vs. Poisson equation Note: If the vertical displacement of the membrane is small and smooth, then 2 ≪ 1 ∣∇ u ∣ In this case, the (nonlinear) minimal surface equation −∇⋅ ( A 2 ) = f ∇ u √ 1 +∣∇ u ∣ can be approximated by the (linear) Poisson equation: ( A ∇ u ) = f −∇⋅ http://www.dealii.org/ Wolfgang Bangerth
What makes this complicated? Start with the minimal surface equation −∇⋅ ( A 2 ) = f ∇ u √ 1 +∣∇ u ∣ and its weak form: ( ∇ φ , A 2 ) = ( φ , f ) ∀ φ∈ H 0 ∇ u 1 √ 1 +∣∇ u ∣ Let's see what happens if we just discretize as always using u h ( x ) = ∑ j U j φ j ( x ) http://www.dealii.org/ Wolfgang Bangerth
What makes this complicated? Start with the minimal surface equation −∇⋅ ( A 2 ) = f ∇ u √ 1 +∣∇ u ∣ and discretize as always: ( 2 ) ∇ ∑ j U j φ j = ( φ i ,f ) ∀ i = 1... N ∇ φ i , A √ 1 +∣∇ ∑ j U j φ j ∣ We can pull some coefficients and sums out: ∑ j ( 2 ) ∇ φ j U j = ( φ i ,f ) ∀ i = 1... N ∇ φ i , A √ 1 +∣ ∑ j U j ∇ φ j ∣ This is a (potentially large) nonlinear system of equations! http://www.dealii.org/ Wolfgang Bangerth
What makes this complicated? Start with the minimal surface equation −∇⋅ ( A 2 ) = f ∇ u √ 1 +∣∇ u ∣ Discretizing as usual yields a system of nonlinear equations: ∑ j ( 2 ) ∇ φ j U j = ( φ i ,f ) ∀ i = 1... N ∇ φ i , A √ 1 +∣ ∑ j U j ∇ φ j ∣ This could be written as A ( U ) U = F Problem: We don't know how to solve such systems directly. I.e., we know of no finite sequence of steps that yields the solution of general systems of nonlinear systems! http://www.dealii.org/ Wolfgang Bangerth
Nonlinear problems In general: There is no finite algorithm to find simultaneous roots of a general system of nonlinear equations: f 1 ( x 1 , ... , x N )= 0 f 2 ( x 1 , ... , x N )= 0 ⋮ f N ( x 1 , ... , x N )= 0 Or more concisely: F ( x )= 0 However: Such algorithms exist for the linear case, e.g., Gaussian elimination. http://www.dealii.org/ Wolfgang Bangerth
Nonlinear problems In fact: There is no finite algorithm to find a root of a single general nonlinear equation: f ( x )= 0 All algorithms for this kind of problem are iterative : ● Start with an initial guess x 0 ● Compute a sequence of iterates { x k } ● Hope (or prove) that x k → x where x is a root of f(.) . From here on: Consider only time-independent problems. http://www.dealii.org/ Wolfgang Bangerth
Approach to nonlinear problems Goal: Find a “fixed point” x so that f ( x ) = 0 Choose a function g(x) so that the solutions of x = g ( x ) are also roots of f(x) . Then iterate x k + 1 = g ( x k ) This iteration converges if g is a contraction . http://www.dealii.org/ Wolfgang Bangerth
Approach to nonlinear problems Goal: Choose g(x) so that x = g ( x ) ⇔ f ( x )= 0 Examples: ● “Picard iteration” (assume that f(x)=p(x)x-h): 1 g ( x ) = p ( x ) h → p ( x k ) x k + 1 = h ● Pseudo-timestepping: g ( x ) = x ±Δ τ f ( x ) → x k + 1 − x k = ± f ( x k ) Δ τ ● Newton's method f ' ( x ) → x k + 1 = x k − f ( x k ) g ( x ) = x − f ( x ) f ' ( x k ) http://www.dealii.org/ Wolfgang Bangerth
Application to the minimal surface equation Goal: Solve −∇⋅ ( A 2 ) = f ∇ u √ 1 +∣∇ u ∣ Picard iteration: Repeatedly solve −∇⋅ ( A 2 ) = f ∇ u k + 1 √ 1 +∣∇ u k ∣ or in weak form: ( ∇ φ , 2 ∇ u k + 1 ) = ( φ , f ) ∀ φ∈ H 0 A 1 √ 1 +∣∇ u k ∣ This is a linear PDE in u k+1 . We know how to do this. http://www.dealii.org/ Wolfgang Bangerth
Application to the minimal surface equation Goal: Solve −∇⋅ ( A 2 ) = f ∇ u √ 1 +∣∇ u ∣ Picard iteration: Repeatedly solve ( ∇ φ , 2 ∇ u k + 1 ) = ( φ , f ) ∀ φ∈ H 0 A 1 √ 1 +∣∇ u k ∣ Pros and cons: ● This is like the Poisson equation with a spatially varying coefficient (like step-6) SPD matrix, easy → ● Converges frequently ● Picard iteration typically converges rather slowly http://www.dealii.org/ Wolfgang Bangerth
Application to the minimal surface equation Goal: Solve −∇⋅ ( A 2 ) = f ∇ u √ 1 +∣∇ u ∣ Pseudo-timestepping: Iterate to τ→∞ the equation −∇⋅ ( A 2 ) = f ∂ u (τ) ∇ u (τ) ∂ τ √ 1 +∣∇ u (τ)∣ For example using the explicit Euler method: −∇⋅ ( A 2 ) = f u k + 1 − u k ∇ u k Δ τ √ 1 +∣∇ u k ∣ http://www.dealii.org/ Wolfgang Bangerth
Application to the minimal surface equation Goal: Solve −∇⋅ ( A 2 ) = f ∇ u √ 1 +∣∇ u ∣ Pseudo-timestepping: Iterate to τ→∞ the equation −∇⋅ ( A 2 ) = f ∂ u (τ) ∇ u (τ) ∂ τ √ 1 +∣∇ u (τ)∣ Alternatively (and better): Semi-implicit Euler method… −∇⋅ ( A 2 ) = f u k + 1 − u k ∇ u k + 1 Δ τ √ 1 +∣∇ u k ∣ ...or some higher order time stepping method. http://www.dealii.org/ Wolfgang Bangerth
Application to the minimal surface equation Goal: Solve −∇⋅ ( A 2 ) = f ∇ u √ 1 +∣∇ u ∣ Pseudo-timestepping: Semi-implicit Euler method −∇⋅ ( A 2 ) = f u k + 1 − u k ∇ u k + 1 Δ τ √ 1 +∣∇ u k ∣ Pros and cons: ● Pseudo-timestepping converges almost always ● Easy to implement (it's just a heat equation) ● With implicit method, can make time step larger+larger ● Often takes many many time steps http://www.dealii.org/ Wolfgang Bangerth
Recommend
More recommend