fvOptions are transferred to the database on construction using
fv::options::New which returns a reference. The same function can be
use for construction and lookup so that fvOptions are now entirely
demand-driven.
The abstract base-classes for fvOptions now reside in the finiteVolume
library simplifying compilation and linkage. The concrete
implementations of fvOptions are still in the single monolithic
fvOptions library but in the future this will be separated into smaller
libraries based on application area which may be linked at run-time in
the same manner as functionObjects.
This is useful when applying an experimentally obtained profile as an
inlet condition:
Example of the boundary condition specification:
\verbatim
myPatch
{
type fixedProfile;
profile csvFile;
profileCoeffs
{
nHeaderLine 0; // Number of header lines
refColumn 0; // Reference column index
componentColumns (1 2 3); // Component column indices
separator ","; // Optional (defaults to ",")
mergeSeparators no; // Merge multiple separators
fileName "Uprofile.csv"; // name of csv data file
outOfBounds clamp; // Optional out-of-bounds handling
interpolationScheme linear; // Optional interpolation scheme
}
direction (0 1 0);
origin 0;
}
\endverbatim
or a simple polynomial profile:
Example setting a parabolic inlet profile for the PitzDaily case:
\verbatim
inlet
{
type fixedProfile;
profile polynomial
(
((1 0 0) (0 0 0))
((-6200 0 0) (2 0 0))
);
direction (0 1 0);
origin 0.0127;
}
\endverbatim
Based on code provided by Hassan Kassem:
http://www.openfoam.org/mantisbt/view.php?id=1922
This scheme is equivalent to the CoBlended scheme except that the Courant
number is evaluated for cells using the same approach as use in the
finite-volume solvers and then interpolated to the faces rather than being
estimated directly at the faces based on the flux. This is a more
consistent method for evaluating the Courant number but suffers from the
need to interpolate which introduces a degree of freedom. However, the
interpolation scheme for "Co" is run-time selected and may be specified in
"interpolationSchemes" and "localMax" might be most appropriate.
Example of the cellCoBlended scheme specification using LUST for Courant
numbers less than 1 and linearUpwind for Courant numbers greater than 10:
\verbatim
divSchemes
{
.
.
div(phi,U) Gauss cellCoBlended 1 LUST grad(U) 10 linearUpwind grad(U);
.
.
}
interpolationSchemes
{
.
.
interpolate(Co) localMax;
.
.
}
\endverbatim
Currently these vectors are generated at the same time as the wall-distance field
by the same run-time selected algorithm. This will be changed so that the wall-reflection
vectors are only generated and stored if required.
When using models which require the wallDist e.g. kOmegaSST it will
request the method to be used from the wallDist sub-dictionary in
fvSchemes e.g.
wallDist
{
method meshWave;
}
specifies the mesh-wave method as hard-coded in previous OpenFOAM versions.