3  Nonlinear Convection

Going to implement nonlinear convection in 1D:

\[\frac{\partial u }{\partial t} + u \frac{\partial u}{\partial x} = 0\]

difference: instead of a constant \(c\), we’re multiplying the solution \(u\) onto the second term

Then the discretized equation is:

\[\frac{u_i^{n+1} - u_i^n}{\Delta t} + u_i^n \frac{u_i^n - u_{i-1}^n}{\Delta x} = 0\]

Then, solving for \(u_i^{n+1}\):

\[u_i^{n+1} = u_i^n - u_i^n \frac{\Delta t}{\Delta x}(u_i^n - u_{i-1}^n)\]

3.1 Implementations

(def init-params {:x-start 0
                  :x-end   2
                  :nx      41
                  :nt      20
                  :dt      0.025
                  :co-eff  :nonlinear})
source: notebooks/steps/step_02.clj