Changes between Version 15 and Version 16 of u/johannjc/scratchpad


Ignore:
Timestamp:
01/10/14 15:53:32 (11 years ago)
Author:
Jonathan
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • u/johannjc/scratchpad

    v15 v16  
    33[[latex($\rho c_v \frac{\partial T}{\partial t} =\nabla^2 \left ( \frac{1}{n+1} \kappa T^{n+1} \right )$)]]
    44
    5 [[latex($\rho c_v \frac{\partial T}{\partial t} =\nabla^2 \left ( \frac{1}{n+1} \kappa T^{n} T \right )$)]]
     5For 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 ) $)]]
    68
    79
    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 )$)]]
     10or equivalently
    911
    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 )$)]]
    1313
    1414
    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}}}
    1623
    1724
    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} $)]]
    1925
     26Now 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
    2027
    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}}}
    2235
    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}}$)]]
     36Where we can identify the left and right coefficients as
    2437
     38[[latex($A_\pm = -\frac{\kappa \Delta t}{2 \Delta x^2}T_{i\pm1}^{j^n} $)]]
    2539
     40and 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
     44and 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
     48and 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
     52and 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
     65also 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