NatureOfField
is an enum which helps in determining some physical significance of the field and affects the choice of the interpolation formula (see Summary). It has five possible values:
For intensive fields:
For extensive fields:
By intensive field we mean a field that represents an intensive physical variable such as density ( ), power density ( ), temperature ( ) or pressure ( ). Typically the physical value doesn't scale with the size of the underlying geometry.
By extensive (or integral) field we mean a field that represents an extensive physical quantity such as mass ( ), volume ( ), a momentum ( ) or power ). Typically the field value scales linearly with respect to the underlying geometry size. For fields with a P0 representation (cell based), conservativity formulas are different depending on whether the field is extensive or intensive (see cell-cell (P0->P0) conservative remapping of intensive fields and cell-cell (P0->P0) conservative remapping of extensive fields).
These two notions are themselves split into two sub-categories. Indeed in some cases (e.g. non overlapping meshes), it is impossible to fulfill both the conservation principle and the maximum principle during the interpolation. The nature of the fields determines the formula to be used for non overlapping cells and thus the property that we will be satisfied.
Finally we consider that fields with P1 or P2 representations are necessarily intensive.
In order to use the various interpolations, you have to specify the nature of your field. When the source and target meshes do not overlap, different treatments will be employed depending on the nature of the source and target fields. You can specify the nature of the field when you create a MEDCoupling field with the following constructor:
If you read or copy an already existing field, or later after its creation, you may want to change/set its nature. In order to do so, you can use the function
Here is an example