I try to solve a system of coupled PDEs using FEM. Unfortunately, the originating matrix has very poor condition. After days of double checking and thinking, I suspect the following reason:

Given a PDE

a * Laplacian(u) + b * u = 0

For FEM, one has to calculate two operator matrices, one for Laplacian(u) and one for u.

When L is the element size, as far as I understand, the matrix entries for Laplacian(u) scale with 1 / L while the ones for u scale with L.

My system has a size of several micrometers, but I use meters as unit for lengths. So the elements for Laplacian(u) are very big, while the ones for u are very small.

So, could I improve the matrix condition by using a shorter length unit for the elements, maybe millimeters or micrometers? (I mean not the unit of u, but the unit of the geometry.)

  • $\begingroup$ Really, it makes no difference... $\endgroup$ – Jan May 9 '14 at 13:43
  • $\begingroup$ Btw., if your system gets poor conditioned for finer resolutions this indicates that your actual system may be ill-posed. $\endgroup$ – Jan May 9 '14 at 13:47

No, a different unit will not alter the condition of the system. Say your FEM system is $$ Au + \beta Mu = 0. \quad (*) $$ Then the parameter $\beta$, here something like $b/a$ from your example, will depend on the units in a way that only allows you to add "$A$" and "$M$" in terms of units. A rescaling will then mean a multiplication of $(*)$ by a constant which will not change the condition number of your system matrix.

The entries of $A$ and $M$ are intregals involving the shape functions. Their value is independent of the units in which you express them and they scale like $L$ or $1/L$. Say $L=1mm$ and $\beta = \frac{1}{mm^2}$. Expressing $L$ as $L=10^{-3}m$ will result in $$ A \left [\frac{1}{mm}\right] + \beta\left[\frac{1}{mm^2}\right]M\left[mm\right] = 10^3A\left[\frac{1}{m}\right]+10^6\beta\left[\frac{1}{m^2}\right]10^{-3}M\left[m\right] $$ which is a simple scaling of the equations (*): $$ 10^3\left \{A\left[\frac{1}{m}\right] + \beta\left[\frac{1}{m^2}\right]M\left[m\right]\right\} $$

However, if your matrix entries drop below machine precision, then a rescaling will improve accuracy.

| cite | improve this answer | |
  • 1
    $\begingroup$ I see... Roughly speaking, the constants (in my case diffusion coefficient) would scale in a contrary way as the size of the elements, compensating each other. $\endgroup$ – Michael May 9 '14 at 16:01

No. It is the ratio of the scales of these two operators that will drive the condition number not their absolute magnitude. You can multiply the whole equation through by any arbitrary constant without changing the condition number.

| cite | improve this answer | |
  • $\begingroup$ That's exactly what I'm saying. As far as I see, the entries of the operator matrix for the Laplacian scale with 1/L of element size, while the ones for u scale with L. The bigger or smaller element size L gets, the more operator matrix entries for Laplacian(u) and u will differ in magnitude. $\endgroup$ – Michael May 9 '14 at 13:20
  • $\begingroup$ As a follow-up question, what about a nonlinear scaling like logarithmic units? Can this change the condition number? $\endgroup$ – Sumedh Joshi May 9 '14 at 19:49
  • $\begingroup$ I doubt it, but I'd have to see the approach. The best way to improve the performance of an iterative method is to find a better preconditioner. $\endgroup$ – Bill Barth May 10 '14 at 1:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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