Poly-mesh mesh objects are now in a subdirectory of the polyMesh
directory. The cpuLoad object has been made a polyMesh object, rather
than an fvMesh object, in order to remove the dependence on the finite
volume library. This has, in turn, removed the base lagrangian library's
dependence on finite volume.
Note that this fvModel provides the missing conservative redistribution term for
the viscous heating, the main part of the viscous heating effect is provided by
the inclusion of the kinetic energy equation in the internal energy equation to
form the total energy equation.
This enables the correct solution of FV-motion fields during mesh
updates when the mesh is in an unstitched state.
Resolves bug report https://bugs.openfoam.org/view.php?id=4101
ParMETIS cannot handle processors containing no cells, a fatal error is
generated, to work around this limitation a special communicator is created
containing only those processors which have cells and ParMETIS called only for
those processors.
This update allows ParMETIS to be used by snappyHexMesh to redistribute the mesh
after refinement and sub-setting even if some processors loose all their cells
in the process.
The distributions have been extended in various ways to permit usage in
a greater variety of situations...
The distributions now have write methods which allow a distribution to
be written into a field file for restart, therby permitting their usage
in boundary conditions and similar. Their read methods now also support
dimension-checked unit conversions for all their parameters.
An additional selector has been added that allows a distribution to be
re-constructed with a different sample size exponent.
The distributions now own their random generator, thereby simplifying
their usage and preventing the need for a (potentially dangling)
reference member. This makes sense now as the random generators do not
rely on global state; individual sub-models can and should own their own
random generator and manage its initialisation and restart. This
principle should be extended to other parts of the code in future.
A random generator can now be constructed with a global flag. If the
flag is false then the provided seed will be randomised across the
different processes. If the flag is true then the synchronicity of the
generators state will be checked when performing certain operations in
debug mode.
*** Note that this commit depends on a corresponding change in
ThirdParty-dev. Ensure that both repositories are up to date before
re-building OpenFOAM.
New environment variables have been added to explicitly control the
installation type of the thirdparty decomposition libraries and of the
ParaView visualiation software. These are set in the etc/bashrc and can
be overridden in a ~/.OpenFOAM/<version>/prefs.sh file or similar.
The variables relating to the decomposition libraries are SCOTCH_TYPE,
METIS_TYPE, PARMETIS_TYPE and ZOLTAN_TYPE, and they can take values of
none, system, or ThirdParty. In the case of ThirdParty, a
<library>_VERSION variable can also be specified. If the version is not
specified then the configuration will search for a source directory, and
if multiple such directories are found then the one with the highest
version number will be used.
The variable relating to ParaView is ParaView_TYPE, and this can be
similarly be set to none, system, or ThirdParty, and ParaView_VERSION
can also be specified when the type is ThirdParty. If the version is not
specified then the installation with the highest version number will be
used.
An example ~/.OpenFOAM/dev/prefs.sh file, in which all decomposition
libraries are enabled, and the Scotch and ParaView versions are
explicitly set, is as follows:
export SCOTCH_TYPE=ThirdParty
export SCOTCH_VERSION=7.0.3
export METIS_TYPE=ThirdParty
export PARMETIS_TYPE=ThirdParty
export ZOLTAN_TYPE=ThirdParty
export ParaView_TYPE=ThirdParty
export ParaView_VERSION=5.11.2
*** Note that if version numbers are not set then the configuration will
search for a decomposition source directory, but it will search for a
ParaView installation directory. This is because decomposition libraries
are built as part of OpenFOAM's ./Allwmake, but ParaView is not. This
distinction remains. If a local compilation of ParaView is needed, then
'./makeParaView -version X.XX.X' should be called explicitly in the
third party directory prior to building OpenFOAM.
The name of the third party directory can now also be independently set.
This simplifies some packaging processes in that it permits third party
to be located within the OpenFOAM installation directory and therefore
bundled into the same binary package.
Use of this function is discouraged. It is expensive and introduces
non-randomness in all cores other then the master. It is better practice
to keep a generator synchronised by calling it the same number of times
on the different processes. It has been removed from the interface of
the random generator and localised to the lagrangian injection models,
which are the only place left in the code that use it.
The base fvPatchField can't do the mapping as it doesn't know that a
zero-gradient initialisation of unmapped faces is appropriate for these
boundary conditions. The derived wall function has to do it.
This fixes an error generated in non-conformal multi-region cases
regarding creation of values on "new" mapped-wall faces.
With the new -rm option the processor time directories are removed after the
reconstruction of each one. For multi-region cases with the -region and -rm
options only the processor time directory for the reconstructed region is
removed whereas with the -allRegions option the entire processor time directory
is removed after reconstruction of all the regions.