zoukankan      html  css  js  c++  java
  • Conservation Vs Non-conservation Forms of conservation Equations

    What does it mean?

    The reason they are conservative or non-conservative has to do with the splitting of the derivatives. Consider the conservative derivative:

    [frac{partial ho u}{partial x} ]

    When we discretize this, using a simple numerical derivative just to highlight the point, we get:

    [frac{partial ho u}{partial x} approx frac{( ho u)_i - ( ho u)_{i-1}}{Delta x} ]

    Now, in non-conservative form, the derivative is split apart as:

    [ ho frac{partial u}{partial x} + u frac{partial ho}{partial x} ]

    Using the same numerical approximation, we get:

    [ ho frac{partial u}{partial x} + u frac{partial ho}{partial x} = ho_i frac{u_i - u_{i-1}}{Delta x} + u_i frac{ ho_i - ho_{i-1}}{Delta x} ]

    So now you can see (hopefully!) there are some issues. While the original derivative is mathematically the same, the discrete form is not the same. Of particular difficulty is the choice of the terms multiplying the derivative. Here I took it at point (i), but is (i-1) better? Maybe at (i-1/2)? But then how do we get it at (i-1/2)? Simple average? Higher order reconstructions?

    Those arguments just show that the non-conservative form is different, and in some ways harder, but why is it called non-conservative? For a derivative to be conservative, it must form a telescoping series. In other words, when you add up the terms over a grid, only the boundary terms should remain and the artificial interior points should cancel out.

    So let's look at both forms to see how those do. Let's assume a 4 point grid, ranging from (i=0) to (i=3). The conservative form expands as:

    [frac{( ho u)_1 - ( ho u)_0}{Delta x} + frac{( ho u)_2 - ( ho u)_1}{Delta x} + frac{( ho u)_3 - ( ho u)_2}{Delta x} ]

    You can see that when you add it all up, you end up with only the boundary terms ((i = 0) and (i = 3)). The interior points, (i = 1) and (i = 2) have canceled out.

    Now let's look at the non-conservative form:

    [ ho_1 frac{u_1 - u_0}{Delta x} + u_1 frac{ ho_1 - ho_0}{Delta x} + ho_2 frac{u_2 - u_1}{Delta x} + u_2 frac{ ho_2 - ho_1}{Delta x} + ho_3 frac{u_3 - u_2}{Delta x} + u_3 frac{ ho_3 - ho_2}{Delta x} ]

    So now, you end up with no terms canceling! Every time you add a new grid point, you are adding in a new term and the number of terms in the sum grows. In other words, what comes in does not balance what goes out, so it's non-conservative.

    You can repeat the analysis by playing with altering the coordinate of those terms outside the derivative, for example by trying (i-1/2) where that is just the average of the value at (i) and (i-1).

    How to choose which to use?

    Now, more to the point, when do you want to use each scheme? If your solution is expected to be smooth, then non-conservative may work. For fluids, this is shock-free flows.

    If you have shocks, or chemical reactions, or any other sharp interfaces, then you want to use the conservative form.

    There are other considerations. Many real world, engineering situations actually like non-conservative schemes when solving problems with shocks. The classic example is the Murman-Cole scheme for the transonic potential equations. It contains a switch between a central and upwind scheme, but it turns out to be non-conservative.

    At the time it was introduced, it got incredibly accurate results. Results that were comparable to the full Navier-Stokes results, despite using the potential equations which contain no viscosity. They discovered their error and published a new paper, but the results were much "worse" relative to the original scheme. It turns out the non-conservation introduced an artificial viscosity, making the equations behave more like the Navier-Stokes equations at a tiny fraction of the cost.

    Needless to say, engineers loved this. "Better" results for significantly less cost!

  • 相关阅读:
    HDU 4122 Alice's mooncake shop
    win7 Visual Studio 2008 安装程序时出现“ 加载安装组件时遇到问题。取消安装。”处理方法
    [置顶] 《程序员,你伤不起》–读书笔记-序
    顺序查找的优化方法
    结构体的大小的计算与空间的优化--之基本类型
    poj 1836 Alignment
    HDU 4721 Food and Productivity (二分+树状数组)
    POJ 1724 最短路费用限制
    Java面试题之九
    Eclipse 支持jQuery 自动提示
  • 原文地址:https://www.cnblogs.com/yaos/p/14014253.html
Copyright © 2011-2022 走看看