4
$\begingroup$

I'm trying to express the following in finite differences:

$$\frac{d}{dx}\left[ A(x)\frac{d\, u(x)}{dx} \right].$$

Let $h$ be the step size and $x_{i-1} = x_i - h$ and $x_{i+ 1} = x_i + h$

If I take centered differences evaluated in $x_i$, I get:

$\begin{align*}\left\{\frac{d}{dx}\left[ A(x)\frac{d\, u(x)}{dx}\right]\right\}_i &= \frac{\left[A(x)\frac{d\, u(x)}{dx}\right]_{i+1/2} - \left[A(x)\frac{d\, u(x)}{dx}\right]_{i-1/2}}{h} \\ &= \frac{A_{i+1/2}\left[\frac{u_{i+1}-u_{i}}{h}\right] - A_{i-1/2}\left[\frac{u_{i}-u_{i-1}}{h}\right]}{h} \end{align*}$

So, if I use centered differences I would have to have values for $A$ at $i + \frac 12$ and $A$ at $i - \frac 12$; however those nodes don't exist (in my stencil I only have $i \pm$ integer nodes); is that correct? If I use forward or backward differences I need A values at $i$, $i + 1$, $i + 2$ and at $i$, $i -1$, $i -2$ respectively.

Am I on the correct path?

I would really appreciate any hint.

Thanks in advance,

Federico

$\endgroup$
2
  • 1
    $\begingroup$ Hmm, why don't you just evaluate a derivative of the form $dy/dx$ by the central difference $(y_{i+1}-y_{i-1})/(2h)$? $\endgroup$
    – user1551
    Aug 26, 2011 at 16:02
  • $\begingroup$ @user1551: may I use the central difference for the outer differential and then a forward and a backward difference for the inner differentials? $\endgroup$
    – Federico
    Aug 26, 2011 at 17:24

2 Answers 2

3
$\begingroup$

While the approach of robjohn is certainly possible, it is often better to take the approach suggested by the original poster: $$ \left\{\frac{d}{dx}\left[ A(x)\frac{d\, u(x)}{dx}\right]\right\}_i = \frac{A_{i+1/2}\left[\frac{u_{i+1}-u_{i}}{h}\right] - A_{i-1/2}\left[\frac{u_{i}-u_{i-1}}{h}\right]}{h} $$ As he noted, $A$ is evaluated on half grid point. In many cases, that's not much of a problem. For instance, if you start from the diffusion equation with variable diffusivity, $$ \frac{\partial u}{\partial t} = \frac{\partial}{\partial x} \left( A(x) \frac{\partial u}{\partial x} \right), $$ with $A(x)$ given, then it does not matter whether you sample $A$ on grid points or half grid points. It is quite okay to use a different grid for $A$ and $u$ (that's sometimes called a staggered grid).

In other cases, you can approximate the values at half grid points by the average: $A_{i+1/2} \approx \frac12 ( A_{i+1} + A_i )$. That gives you almost the same method as the one derived by robjohn.

$\endgroup$
4
  • $\begingroup$ thanks for you clear answer. What happens if I try to extend this result to a two dimensional diffusion problem? I will have at least $A_{i+1/2, j}$, $A_{i-1/2, j}$, $A_{i, j+1/2}$, $A_{i, j-1/2}$; is this going to work fine, or I'm forcing the model too much? $\endgroup$
    – Federico
    Aug 29, 2011 at 0:22
  • $\begingroup$ That will work fine (as far as I can see). $\endgroup$ Aug 29, 2011 at 0:43
  • 1
    $\begingroup$ If A is linear and u is quadratic, both our answers are exact. Since the data does not have half-grid points, we need to use $A_{i+1/2}=\frac{1}{2}(A_{i+1}+A_i)$ and $A_{i-1/2}=\frac{1}{2}(A_i+A_{i-1})$, and we get that$$\begin{align}A_{i+1/2}[u_{i+1}-u_i]-A_{i-1/2}[u_i-u_{i-1}]&=\frac{1}{4}(A_{i+1}-A_{i-1})(u_{i+1}-u_{i-1}) + A_i(u_{i+1}-2u_i+u_{i-1})\\&+\frac{1}{4}(A_{i+1}-2A_i+A_{i-1})(u_{i+1}-2u_i+u_{i-1})\end{align}$$ The difference is the discrete analog of $\frac{1}{4}A_i''u_i''$. $\endgroup$
    – robjohn
    Aug 31, 2011 at 0:51
  • 1
    $\begingroup$ If we write $A$ in Taylor series$$\begin{align}A_{i+1}&=A_i+A_i'+\frac{1}{2}A_i''\\A_{i-1}&=A_i-A_i'+\frac{1}{2}A_i''\end{align}$$ and similarly for $u_{i+1}$ and $u_{i-1}$, we get that $$A_{i+1/2}[u_{i+1}-u_i]-A_{i-1/2}[u_i-u_{i-1}]=A_i'u_i'+A_iu_i''+\frac{1}{4}A_i''u_i''$$Whereas, $$\frac{1}{4}(A_{i+1}-A_{i-1})(u_{i+1}-u_{i-1}) + A_i(u_{i+1}-2u_i+u_{i-1})=A_i'u_i'+A_iu_i''$$ So it turns out that the formula I cited is exact if both $A$ and $u$ are quadratic. Extending this analysis further yields fewer higher order error terms as well. $\endgroup$
    – robjohn
    Aug 31, 2011 at 0:51
2
$\begingroup$

$$ \frac{\mathrm{d}}{\mathrm{d}x}\left[A\frac{\mathrm{d}u}{\mathrm{d}x}\right]=\frac{\mathrm{d}A}{\mathrm{d}x}\frac{\mathrm{d}u}{\mathrm{d}x}+A\frac{\mathrm{d}^2u}{\mathrm{d}x^2} $$ So you might try using $\frac{1}{4}(A_{i+1}-A_{i-1})(u_{i+1}-u_{i-1}) + A_i(u_{i+1}-2u_i+u_{i-1})$

$\endgroup$
0

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .