Edit I've modified the equations because they were wrong and I added the whole system, as asked by @Wolfgang

I am trying to nondimensionalize a system of partial differential equations similar to 2nd Fick's law, with multicomponents system. The reason is to make it more stable when I will implement it numerically.

$\begin{align} \frac{\partial \textbf{C}}{\partial t} = \frac{\partial (D \frac{\partial \textbf{C}}{\partial x})}{\partial x} \end{align} $

with $\textbf{C}$, the concentrations beeing a vector and $\textbf{D}$, the matrix of diffusion coefficients.

In my case, I have 4 elements, Mg, Fe, Mn and Ca, and Ca is made dependant on the others. So I have 3 equations:

$\begin{align} \frac{\partial C_{Mg}}{\partial t} = \frac{\partial (D_{MgMg} \frac{\partial C_{Mg}}{\partial x})}{\partial x} + \frac{\partial (D_{MgFe} \frac{\partial C_{Fe}}{\partial x})}{\partial x} + \frac{\partial (D_{MgMn} \frac{\partial C_{Mn}}{\partial x})}{\partial x}\\ \frac{\partial C_{Fe}}{\partial t} = \frac{\partial (D_{FeMg} \frac{\partial C_{Mg}}{\partial x})}{\partial x} + \frac{\partial (D_{FeFe} \frac{\partial C_{Fe}}{\partial x})}{\partial x} + \frac{\partial (D_{FeMn} \frac{\partial C_{Mn}}{\partial x})}{\partial x}\\ \frac{\partial C_{Mn}}{\partial t} = \frac{\partial (D_{MnMg} \frac{\partial C_{Mg}}{\partial x})}{\partial x} + \frac{\partial (D_{MnFe} \frac{\partial C_{Fe}}{\partial x})}{\partial x} + \frac{\partial (D_{MnMn} \frac{\partial C_{Mn}}{\partial x})}{\partial x} \end{align} $


$\begin{align} \textbf{D} = \begin{bmatrix} D_{MgMg} & D_{MgFe} & D_{MgMn} \\ D_{FeMg} & D_{FeFe} & D_{FeMn} \\ D_{MnMg} & D_{MnFe} & D_{MnMn}\\ \end{bmatrix} \end{align} $

that depends on $x$, $t$ and $C$.

This matrix is computed at each time-step for each point because it depends on the concentration of the points and on experimental data (I ommit the formula here because I don't think it is relevant)

The concentrations are already nondimensionalize as $C_{Mg} + C_{Fe} + C_{Mn} + C_{Ca} = 1$.

I need to nondimensionalize $t$, $x$, and $\textbf{D}$ with these relationships:

$\begin{align} \begin{array}{cc} t^* = \frac{t}{\tau} & x^* = \frac{x}{\chi} & \textbf{D}^* = \textbf{D} \times \frac{\tau}{\chi^2} \\ \end{array} \end{align} $

I think that for the characteristic length, I can take the length of my model.

What is commonly done with 2nd Fick's law is to fix $D^*=1$ so that we can determine the value of $\tau$ from it. The problem is that here D is a matrix. So what should I do? My idea would be to take the maximum value of $\textbf{D}$ at the initial timestep to be equal to 1 and to make $\tau$ depends on that.

Would that work? The problem is that there is in some case quite a big difference between the values in D, so I am not sure it is the way to go. Maybe there is something smarter to do with the eigen values or eigen vectors of $\textbf{D}$? I am also not sure if I can do it like this with $\textbf{D}$ beeing dependant on x.

Do you have other suggestions?


  • $\begingroup$ You might want to fix the spelled out 2x2 system to make sure it matches the original matrix system. I suspect that you need $C_{Fe}$ to show up in the first equation, and $C_{Mg}$ to show up in the second. $\endgroup$ Commented Feb 16, 2022 at 16:30
  • $\begingroup$ Separately, I don't understand the equations. How would the change in concentration for Mg depend on the gradient of the concentration of Fe? Are you consider element transmutation? $\endgroup$ Commented Feb 16, 2022 at 16:31
  • $\begingroup$ You are right, my equations are wrong. I will modify my post asap! $\endgroup$
    – Iddingsite
    Commented Feb 16, 2022 at 17:36
  • $\begingroup$ I've corrected the equations. Thx for pointing this out! $\endgroup$
    – Iddingsite
    Commented Feb 16, 2022 at 18:27
  • 2
    $\begingroup$ I think it's worth seeing if you can compute the eigenvalue decomposition of the diffusion matrix $D$, which should be symmetric. The eigenvalues will give you three diffusion coefficients, from which you can compute the corresponding characteristic time scales, taking the diameter of the domain as a length. Those time scales might be very different from each other. If you can't compute the eigendecomposition analytically, you might nonetheless be able to get something quantitative through the Gerschgorin circle theorem. $\endgroup$ Commented Feb 16, 2022 at 18:41

1 Answer 1


The important part of $D$ are not its entries (because they depend on the choice of basis vectors you choose -- whether you work with concentrations of the three elements individually, or linear combinations thereof) but the eigenvalues (which are independent of the choice of basis vectors). In other words, the nondimensionalization should be done based on information that only comes from the eigenvalues -- say, the middle of the three eigenvalues, or their mean, etc.

Of course, if you can compute eigenvalues, you can also compute eigenvectors, and then diagonalize the whole system. You'd end up with three decoupled diffusion processes in that case -- much simpler to solve than to deal with the three coupled ones. Clearly, this will only work if the eigenvectors do not depend on space and time.

  • $\begingroup$ Thx for the answer! Diagonalizing the system is clearly not possible in my case, but that is definitely an elegant way to do it for simpler cases. Concerning the eigenvalues, let's say I take the mean of the mean for the 3 eigenvalues on every point from the initial condition. How can I link it to the nondimensionalization? Should $\textbf{D}^*$ be equal to this? If so, it means that I will obtain different timescale for each component of $\textbf{D}$ right? $\endgroup$
    – Iddingsite
    Commented Feb 16, 2022 at 21:12
  • 1
    $\begingroup$ Yes. You will obtain a scaled version of $D$, but it will not be the identity matrix. $\endgroup$ Commented Feb 17, 2022 at 5:12
  • $\begingroup$ I see. I have 1 last question and then I will consider this question solved. How can I solve my system if I have 9 different $\tau^*$ for each component of D? Is that not a problem? Or should I fix $\tau^*$ for 1 value of the matrix $ \textbf{D}$? $\endgroup$
    – Iddingsite
    Commented Feb 17, 2022 at 14:56
  • 1
    $\begingroup$ You need to pick one time scale. For a 3x3 matrix, you really only get three values (based on the three eigenvalues of the matrix), and consequently you have to decide which of the three time scales that correspond to these eigenvalues is most relevant to you. You can take some kind of average, or the largest, or the smaller -- all are defensible choices. $\endgroup$ Commented Feb 17, 2022 at 22:13
  • $\begingroup$ Alright, thx for your patience! I have everything I need to make this work. Thx for your help! $\endgroup$
    – Iddingsite
    Commented Feb 17, 2022 at 22:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.