Changes between Version 15 and Version 16 of u/johannjc/scratchpad
- Timestamp:
- 01/10/14 15:53:32 (11 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
u/johannjc/scratchpad
v15 v16 3 3 [[latex($\rho c_v \frac{\partial T}{\partial t} =\nabla^2 \left ( \frac{1}{n+1} \kappa T^{n+1} \right )$)]] 4 4 5 [[latex($\rho c_v \frac{\partial T}{\partial t} =\nabla^2 \left ( \frac{1}{n+1} \kappa T^{n} T \right )$)]] 5 For backward euler we evaluate the RHS at time [[latex($j+1$)]] although we still have to linearize 6 7 [[latex($T_i^{{j+1}^{n+1}} = T_i^{j^{n+1}} + \left (n + 1 \right ) T_i^{j^n} \left ( T_i^{j+1} - T_i^j \right ) $)]] 6 8 7 9 8 [[latex($\rho_i c_v \left ( T_i^{j+1}-T_i^j \right ) = \frac{\kappa \Delta t}{\Delta x^2}\frac{1}{n+1} \left (T_{i+1}^{j^n} T_{i+1}^{j+1} - 2 T_{i}^{j^n} T_{i}^{j+1} + T_{i-1}^{j^n} T_{i-1}^{j+1} \right )$)]] 10 or equivalently 9 11 10 [[latex($\alpha = \frac{\kappa \Delta t}{\Delta x^2 \left ( n+1 \right ) }$)]] 11 12 [[latex($ \left (\rho_i c_v + 2 \alpha T_i^{j^n} \right ) T_i^{j+1} - \alpha T_{i+1}^{j^n} T_{i+1}^{j+1} - \alpha T_{i-1}^{j^n} T_{i-1}^{j+1} = \rho_i c_v T_i^j$)]] 12 [[latex($T_i^{{j+1}^{n+1}} = T_i^{j^n} \left (T_i^{j+1} + n \left (T_i^{j+1} - T_i^{j} \right ) \right )$)]] 13 13 14 14 15 Now to make the scheme 2nd order in time we can replace [[latex($T_i^{j+1}$)]] with [[latex($\frac{T_i^{j}+T_i^{j+1}}{2}$)]] 15 16 {{{ 17 #!latex 18 \begin{eqnarray} 19 \rho_i c_v \left ( T_i^{j+1}-T_i^j \right ) & = & \frac{\kappa \Delta t}{\Delta x^2}\left (T_{i+1}^{j^n} T_{i+1}^{j+1} - 2 T_{i}^{j^n} T_{i}^{j+1} + T_{i-1}^{j^n} T_{i-1}^{j+1} \right ) \\ 20 & - & \frac{n \kappa \Delta t}{ \left ( n+ 1 \right ) \Delta x^2} \left (T_{i+1}^{j^{n+1}} - 2 T_{i}^{j^{n+1}} + T_{i-1}^{j^{n+1}} \right ) 21 \end{eqnarray} 22 }}} 16 23 17 24 18 [[latex($ \left (\rho_i c_v + 2 \beta T_i^{j^n} \right ) T_i^{j+1} - \beta T_{i+1}^{j^n} T_{i+1}^{j+1} - \beta T_{i-1}^{j^n} T_{i-1}^{j+1} = \rho_i c_v T_i^j - 2 \beta T_i^{j^n} T_i^{j} + \beta T_{i+1}^{j^n} T_{i+1}^{j} + \beta T_{i-1}^{j^n} T_{i-1}^{j} $)]]19 25 26 Now to make the scheme 2nd order in time we can set [[latex($T_i^{j+1}=\frac{T_i^{j}+T_i^{j+1}}{2}$)]] and we get 20 27 21 Which simplifies to: 28 {{{ 29 #!latex 30 \begin{eqnarray} 31 \rho_i c_v \left ( T_i^{j+1}-T_i^j \right ) & = & \frac{\kappa \Delta t}{2 \Delta x^2}\left (T_{i+1}^{j^n} T_{i+1}^{j+1} - 2 T_{i}^{j^n} T_{i}^{j+1} + T_{i-1}^{j^n} T_{i-1}^{j+1} \right ) \\ 32 & - & \frac{\left (n - 1 \right ) \kappa \Delta t}{ 2 \left ( n+ 1 \right ) \Delta x^2} \left (T_{i+1}^{j^{n+1}} - 2 T_{i}^{j^{n+1}} + T_{i-1}^{j^{n+1}} \right ) 33 \end{eqnarray} 34 }}} 22 35 23 [[latex($\left (\rho_i c_v + 2 \beta T_i^{j^n} \right ) T_i^{j+1} - \beta T_{i+1}^{j^n} T_{i+1}^{j+1} - \beta T_{i-1}^{j^n} T_{i-1}^{j+1} = \rho_i c_v T_i^j - 2 \beta T_i^{j^{n+1}} + \beta T_{i+1}^{j^{n+1}} + \beta T_{i-1}^{j^{n+1}}$)]] 36 Where we can identify the left and right coefficients as 24 37 38 [[latex($A_\pm = -\frac{\kappa \Delta t}{2 \Delta x^2}T_{i\pm1}^{j^n} $)]] 25 39 40 and the center coefficient as 41 42 [[latex($A_0 = 2 \frac{\kappa \Delta t}{ 2\Delta x^2}T_{i\pm1}^{j^n} + \rho c_v$)]] 43 44 and the RHS left and right contributions 45 46 [[latex($B_\pm = -\frac{\left (n - 1 \right ) \kappa \Delta t}{ 2 \left ( n+ 1 \right ) \Delta x^2} T_{i\pm 1}^{j^{n+1}}$)]] 47 48 and the RHS source term contribution as 49 50 [[latex($B_0 = 2 \frac{\left (n - 1 \right ) \kappa \Delta t}{ 2 \left ( n+ 1 \right ) \Delta x^2} T_{i\pm 1}^{j^{n+1}} + \rho c_v T_i^j$)]] 51 52 and finally in the code the values for [[latex($A$)]] and [[latex($B$)]] are negated: 53 54 {{{ 55 kx = (0.5*kappa1*dt_diff/(dx**2)) 56 CALL getTemp(Info,i,j,k,T) 57 stencil_fixed(0) = -2.0*REAL(nDim,8)*kx*T(0)**ndiff 58 DO l = 1, 2*nDim 59 stencil_fixed(l) = kx*T(l)**ndiff 60 END DO 61 source = ((ndiff-1.0)/(ndiff+1.0))*dot_product(T(0:2*nDim),stencil_fixed(0:2*nDim)) - T(0)*gamma7*Info%q(i,j,k,1) 62 stencil_fixed(0) = stencil_fixed(0) - gamma7*Info%q(i,j,k,1) 63 }}} 64 65 also note that the equation is multipled by the mean molecular weight... which is why [[latex($c_v \rightarrow c_v \times \chi = \gamma_7$)]] and [[latex($\kappa \rightarrow \kappa \times \chi = \kappa_1$)]] 66