mauro a. werder · modelling conduits in 1d thisafternooniwilltrytoshowyouhowtomodelaconduitin1d...
TRANSCRIPT
![Page 1: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/1.jpg)
Modelling subglacial hydrology
Mauro A. Werder
University of Bristol
![Page 2: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/2.jpg)
Modelling conduits in 1DThis afternoon I will try to show you how to model a conduit in 1D(Kessler & Anderson 2004, Schoof 2010)
(Schoof 2010)
1) mass conservation∂S
∂t+∂Q
∂s= M
2) turbulent flow Q = −kSα∣∣∣∣∂φ∂s
∣∣∣∣β−2 ∂φ
∂s
3) opening and closure∂S
∂t=−Q∂φ
∂s
ρiL−AS|N |n−1N + uh
(slightly simplified notation, corresponding to notation in code)
![Page 3: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/3.jpg)
Getting side-tracked
First some remarks about numerical modelling in general:• discretisation: space, time• solving ODE/DEA
![Page 4: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/4.jpg)
Discretisation in space
Many possibilities: finite differences, finite volumes, spectralmethods, finite elements
Finite elements:• Who has used them?• More complicated than finite difference & volume• But more flexible
![Page 5: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/5.jpg)
Discretisation in space: weak formThe strong form of the Poisson equation is
∂2u
∂x2− f = 0
For the weak form, multiply by a test function θ and integrate∫ x1
x0
θ
(∂2u
∂x2− f
)dx = 0
integrating by parts∫ x1
x0
(−∂θ∂x
∂u
∂x− θf
)dx+
[θ∂u
∂x
]x1x0
= 0
The finite element method is based on the weak form, so we’ll needto put our hydro-equations into this form.
![Page 6: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/6.jpg)
Discretisation in time
Usually the spatial discretisation using for instance finite elements isnot used for the time discretisation.
This is called Method of lines.
Thus the spatial discretisation turns the PDEs into a set of coupledODEs, which are then solved with a ODE solver.
Here we’ll use Matlab’s ode15s.
![Page 7: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/7.jpg)
Exercise: rearrange equations
Make two equations for φ and S by eliminating Q and SS :
1) mass conservation∂S
∂t+∂Ss∂t
+∂Q
∂s= M
2) turbulent flow Q = −kSα∣∣∣∣∂φ∂s
∣∣∣∣β−2 ∂φ
∂s
3) opening and closure∂S
∂t=
Ξ
ρiL−AS|N |n−1N + uh
where the stored volume water per unit length is
Ss = σpw = σ(φ− φm)
with φm = ρwgH and Ξ = −Q∂φ∂s .
![Page 8: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/8.jpg)
Exercise: weak form
Make the weak form of
φ equation σ∂φ
∂t+∂Q
∂s+
Ξ
ρiL−AS|N |n−1N + uh−M = 0
S equation∂S
∂t=
Ξ
ρiL−AS|N |n−1N + uh
![Page 9: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/9.jpg)
Exercise: weak form
Weak form of φ equation∫ x1
x0
[θσ∂φ
∂t− ∂θ
∂xQ+ θ
(Ξ
ρiL−AS|N |n−1N + uh−M
)]dx
+ [θQ]x1x0 = 0
The S equation is left as is as it is only an ODE in S and not aPDE, thus does not need spatial discretisation.
![Page 10: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/10.jpg)
Exercise: basic outline of program
Using a methods of lines strategy and ode15s, what is the basiclayout of program to solve the conduit equations.
It should be super brief and contain function calls to handle:• parameter handling• objective function evaluating ∂y
∂t
• call to ode15s
![Page 11: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/11.jpg)
Exercise: basic outline of program:a solution
% get pa ramete r spara = model_para ( ) ;
% o b j e c t i v e f u n c t i o n hand l eob j f un = @( t , y ) o b j e c t i v e f u n ( t , y , para ) ;
% s o l v e w i th ode15s[ t , out ] = ode15s ( ob j fun , para . tspan , para . IC , para .
odeopt s ) ;
It’s good to think about basic structure of code first
![Page 12: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/12.jpg)
Objective function
f u n c t i o n dydt = o b j e c t i v e f u n ( t , y , p ) ;. . .
%% c a l c u l a t e dphi_dtgrad_phi = p . Dx_en ∗ ph i ;
Q = − p . k ∗ S .^p . a l pha .∗ ( grad_phi .^2+p . t i n y ^2) . ^ ( ( p . beta −2)/2) . . ..∗ grad_phi ;
dphi_dt = −p . Dx_en ( : , p . anodes ) ’ ∗p . in t_ee∗ Q + . . .p . int_ne ( p . anodes , : ) ∗ ( Xi /p . L ∗ (1/p . rho_i − 1/p . rho_w) . . .
+ p . u∗p . h − p .A∗S .∗N.^p . n − p . mean_en∗M) ;
% s e t Neumann BCdphi_dt = dphi_dt + p . int_ne_bdy ( p . anodes , : ) ∗ p . BCval ( p . BCtype==2) ;
%% c a l c u l a t e dS/ dtdS_dt = Xi /( p . rho_i∗p . L) + p . u∗p . h − p .A∗S .∗N.^p . n ;% Note , no boundary c o n d i t i o n s a r e needed as t h i s i s an ODE
Note how it mirrors the weak form of the φ equation.
![Page 13: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/13.jpg)
Download example code
Download code from:https://bitbucket.org/maurow/1dhydro/overviewand unzip.
Or:git clone https://[email protected]/maurow/1dhydro.git
![Page 14: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/14.jpg)
Exercise:Make residual for Poisson equation
Open ex_poisson/poisson_exercise.m and add the residualcalculation. (ex_poisson/poisson_solution.m contains the solution, no cheating though!)
The weak form of the Poisson equation is given by∫ x1
x0
(k∂θ
∂x
∂u
∂x− θf
)dx = 0
The boundary term[θ ∂u∂x
]x1x0
drops out because of the choice ofboundary conditions: φ = 0 at x0, x1.
Check whether it works by running the script.(make sure to execute startup.m first)
![Page 15: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/15.jpg)
ODE solving
For time dependent problems, after discretising in space we’re leftwith a system of coupled ODEs (or DAEs).
The solution of the resulting ODEs/DAEs is fairly easy thanks toMatlab’s solvers.
ob j f un = @( t , y ) o b j e c t i v e f u n ( t , y , para ) ;
%% s o l v e[ t , out ] = ode15s ( ob j fun , para . tspan , para . IC , para . odeopts ) ;
![Page 16: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/16.jpg)
Exercise: dissect 1Dhydro code
Have a look at the code in ex_schoof/.
Start with runner.m and dig down.
![Page 17: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/17.jpg)
Exercise: run 1Dhydro examples
Run the four examples by executing runner.m.(make sure startup.m is executed first).
Visualise the solutions with:
>> p l o t ( x , para .H) % p l o t geometry>> an i %animate>> p l o t_ t im e s e r i e s% animate wi th v a r i a b l e s o f you cho i c e :>> animate ( para , { phi , S,−Q} , 0 . 0 5 , [ ] , { ’ \ ph i ’ , ’ S ’ , ’Q ’ })
![Page 18: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/18.jpg)
Exercise: run 1Dhydro examples
Think about:
• realistic results?• how does the seasonal forcing work?• how do the boundary conditions work?• what trick is used to make the lake in the jökulhlaup example?
![Page 19: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/19.jpg)
Exercise: run 1Dhydro examples
Think about:
• realistic results?The transition from cavity to R-channel seems too fast. Ismass conserved?
• how does the seasonal forcing work?p.M is turned into a function of time, c.f.seasonal_source.m.
• how do the boundary conditions work?They can be set in the model_para*.m files.
• what trick is used to make the lake in the jökulhlaup example?The storage sigma is set to a very high value at theuppermost node, thus simulating a lake.
![Page 20: Mauro A. Werder · Modelling conduits in 1D ThisafternoonIwilltrytoshowyouhowtomodelaconduitin1D (Kessler & Anderson 2004, Schoof 2010) (Schoof 2010) 1)massconservation](https://reader034.vdocuments.mx/reader034/viewer/2022051607/602fae1cd04c2773a7268ea4/html5/thumbnails/20.jpg)
Tips and tricks
• spend time looking after your code: refactor• never copy-paste code: make functions instead• document code• document model runs:self-documentingmake reproducable model runs
• use version control to keep track of your code changes