Nondimensional diffusion equation to a dimensional one

Main Question or Discussion Point

Well, I was solving the 3D diffusion equation:

$\displaystyle \frac{1}{c}\frac{\partial \phi(\mathbf{r},t)}{\partial t}-D\nabla^2 \phi(\mathbf{r},t)=q(\mathbf{r},t)$.

I wrote a program to do this. The problem concerns the diffusion of light. However, all this time I've been working with nondimensional units. I have set c=1, and solved everything that way, for different values of D.

In real problems, c is the speed of light, which is a huge number ($299 792 458 m / s$), and D is given in centimeters, typical values are around 0.3 cm to 0.01cm. The thing is that D is usually a small number, and c is huge. Should I expect to have some numerical problems when I solve this numerically? whatever I do with the dimensional units, there is no way I can avoid this huge difference of magnitudes, I think I should write everything in centimeters, which is the usual laboratory dimension concerning this type of experiments, or would it be better just to set c=1?

If I choose c=1, that fixes a ratio of space/time, so I'm not sure what should I do with the other variables, basically I'm saying that $299 792 458 m / s=1$.

I am solving this using a forward Euler scheme in time.

Related Programming and Computer Science News on Phys.org
Chestermiller
Mentor
Why is the speed of light in the equation??

Because it models the diffusion of light in turbid media.

Yes, I have neglected the absorption term, and it can be actually written in that way (which differs a bit on how it is written at wikipedia). But in the paper I am looking at, it looks the way I have written it (there might be some definitions involved in the middle). The unknown function in the equation I have written is the photon density, and wikipeadia talks about fluence rate.

So, recapitulating. The thing is that I have the speed of light, which is lets say: $c=2.998\times 10^{10}cm/s$, so I will have some terms in the finite difference scheme which will be tenths orders of magnitude greater than some other terms (because c won't be multiplying every term), and what I want to know is if in my Fortran implementation of the finite difference scheme, using forward Euler in time, should I expect to have some numerical issues due to this.

My finite difference implementation looks like this:

$\phi(\mathbf{r},t^{n+1})=\phi(\mathbf{r},t^{n})+c\Delta t D\nabla^2 \phi(\mathbf{r},t^n)+c\Delta t q(\mathbf{r},t^n)$.

And suppose D=1.

Last edited:
See about diffusion equation numerical stability conditions.

If I set $c=1$, then I am saying that $3\times 10^{10}cm/s=1$, how can I relate this to the spatial and time dimensions? for example, if my physical dimension is 0.01cm, how much would it be in my units with $c=1$? should I specify something else like my unit of time in order to determine this? for example, if I say, well $1s=1$, then I clearly get a relation for my spatial unit: $3\times 10^{10}cm=1$.