# Nondimensional diffusion equation to a dimensional one

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.

Chestermiller
Mentor
Why is the speed of light in the equation??

Telemachus
Because it models the diffusion of light in turbid media.

Telemachus
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##.