When solving a FV formulation of a set of equations, a code I am currently working with has user defined normalization factors for scaling equations. It normalizes time, number densities, potential, and fluxes, each with a different factor.

I have the impression that these are a legacy attempt at a rough diagonal preconditioner from before the code utilized external solvers and preconditioners. Besides preconditioning matrices, are there any numerical reasons for normalizing unknowns in a FV problem?

Edit: Bort brings up another reason in his answer that I had forgotten. Formulating the problems in non-dimensional unknowns and non-dimensional parameters can allow simplification if certain physical quantities are small enough to be neglected. While this is very useful in the formulation of the problem, the code I am working with does not make any decisions based on non-dimensional parameters. It simply rescales unknowns by arbitrary, user-provided values while working with them.


The main reason to normalize equations is the separation of numerics and physics of the problem. Usually, some characteristic scale can be extracted by dimensional analysis of the problem and the equations reformulated dimensionless. This is not an attempt of preconditioning. Common scale factors like Abbe or Reynolds number are derived this way.

  • $\begingroup$ Hmmm, that is a possibility. It doesn't appear that any internal decisions are being made due to the scale of non-dimensional parameters. It simply scales the values, does computations, then scales them back. $\endgroup$ May 6 '13 at 16:52

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.