Overview

The norm function object normalises an input field with a chosen norm, and writes a new normalised field.

Usage

Example of function object specification:

norm1
{
    // Mandatory entries
    type            norm;
    libs            (fieldFunctionObjects);
    field           <word>;
    norm            <word>;

    // Conditional entries

        // When norm = Lp
        p               <scalar>;

        // When norm = composite
        divisor         <Function1<scalar>>;

        // When norm = divisorField
        divisorField    <word>;

    // Inherited entries
    ...
}

where the entries mean:

Property Description Type Required Default
type Type name: norm word yes -
libs Library name: fieldFunctionObjects word yes -
field Name of the operand field word yes -
norm Name of normalisation operation word yes -
p Norm exponent for the p-norm scalar conditional -
divisor Norm divisor for the composite norm Function1<scalar> conditional -
divisorField Divisor scalar field for the field norm word conditional -

Options for the norm entry:

Property Description Expression
L1 L1/Taxicab norm \(\vec{y} = \frac{\vec{x}}{\Sigma_{i=1}^n \vert x_i \vert}\)
L2 L2/Euclidean norm \(\vec{y} = \frac{\vec{x}}{\sqrt{x_1^2 + ... + x_n^2}}\)
Lp p norm \(\vec{y} = \frac{\vec{x}}{(\Sigma_{i=1}^n \vert x_i \vert^p)^{1/p}}\)
max Maximum norm \(\vec{y} = \frac{\vec{x}}{\max\vert x_i \vert}\)
composite Composite norm with Function1 divisor \(\vec{y} = \frac{\vec{x}}{f(t)}\)
divisorField Normalise by field \(\vec{y} = \frac{\vec{x}}{\vec{z}}\)

The inherited entries are elaborated in:

Divisor quantity is perturbed by SMALL value to prevent any divisions by zero irrespective of whether the quantity is close to zero or not.

Operands

Operand Type Location
Input {vol,surface,polySurface}<Type>Field <case>/<time>/
Output file - -
Output field {vol,surface,polySurface}<Type>Field <case>/<time>/

where <Type>={Scalar,Vector,SphericalTensor,SymmTensor,Tensor}.

Further information

Tutorial:

Source code:

API:

History:

  • Introduced in version v2206