Commit Graph

7632 Commits

Author SHA1 Message Date
4587071663 PVReaders::Allwmake: Compile the readers on $WM_NCOMPPROCS cores 2024-06-07 08:07:04 +01:00
1078006b21 PVReaders: Updated CMakeLists.txt files to support any Qt version ParaView is compiled with 2024-06-06 22:09:56 +01:00
ffa58374db foamMonitor: Added specific treatment of optional units after the column names
Resolves bug-report https://bugs.openfoam.org/view.php?id=4088
2024-06-06 16:42:10 +01:00
48fcb7f6d1 etc: Explicit control of decomposition and ParaView installation type
*** 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.
2024-06-06 15:20:19 +01:00
a9742de070 paraview: Prevent clean of standard directories in PATH 2024-06-06 15:11:34 +01:00
300648735d foamCleanPath: do not remove standard directories on PATH 2024-06-06 12:35:47 +01:00
f35e0c6d34 randomGenerator: Localise globalScalar01 to injection models
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.
2024-06-05 11:14:35 +01:00
f9f0c6f1f2 wallBoilingHeatTransfer: Sign correction, and clean up unused members
Patch contributed by Timo Niemi, VTT.
2024-06-04 14:54:07 +01:00
b6caf356ee wallCellWallFunction: Prevent call to fvPatchScalarField::map
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.
2024-06-04 08:53:19 +01:00
e727809bd1 tutorials/multicomponentFluid/aachenBomb: Added Allrun-parallel with load-balancing
to demonstrate multi-constraint load-balancing with both Lagrangian and
chemistry.
2024-06-01 20:46:17 +01:00
78dbbdd7d3 decompositionMethods::scaleWeights: Filter out zero weights
The nWeights argument is now reduced if any of the weights are zero for all
points on all processors and removed.
2024-06-01 17:27:27 +01:00
544afc98aa epsilonWallFunctionFvPatchScalarField: Updated map and added reset function
to ensure cached data is cleared after mapper of any kind.
2024-05-31 14:36:28 +01:00
735693c844 fvMeshDistributorsLoadBalancer: Corrected the printing of multiple load imbalances 2024-05-30 22:36:46 +01:00
81fd429524 reconstructPar: Added -rm option
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.
2024-05-30 22:04:06 +01:00
a4cba5b0d1 Function1s::Polynomial1: Corrected writing of coefficients
Resolves bug report https://bugs.openfoam.org/view.php?id=4086
2024-05-30 10:35:03 +01:00
4d0b466775 decompositionMethods: Added checks for multiple constraints
Multi-constraint load-balancing is only supported by the Zoltan rcb method and
ParMETIS.
2024-05-29 12:34:15 +01:00
eb68840577 reorderPatches: Corrected addNote 2024-05-29 12:23:55 +01:00
2bb0f6b75d functionObject.H: Updated documentation 2024-05-29 12:20:30 +01:00
5f80ee7f10 dictionary: Removed test diagnostic message 2024-05-29 11:14:57 +01:00
33ad682c38 dictionary: Removed the move constructor and assignment operator
because they cannot update the parent dictionary reference.
2024-05-28 20:39:16 +01:00
dbb6837e47 decompositionMethods::parMetis: Corrected error messages 2024-05-28 17:47:21 +01:00
34c1980f3a Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2024-05-26 14:28:20 +01:00
ed17d3c405 parMetis: Added test for points on all processors
Unfortunately ParMETIS does not support redistribution of empty processors.
2024-05-26 14:27:06 +01:00
8b11d6a27d src/parallel/decompose: Corrected handling of sentinel files 2024-05-24 16:39:09 +01:00
81dd264963 wmake: Fix removal of lnInclude during build of mpi-dependent libraries 2024-05-24 14:00:11 +01:00
0933bd106f decompositionMethods: Moved all the basic decomposition methods into the decompositionMethods namespace 2024-05-24 13:57:47 +01:00
538c369b38 decompositionMethods: Moved scotch, ptscotch, metis and zoltan methods into the new decompositionMethods namespace 2024-05-24 11:41:01 +01:00
b1d9ecd6ef Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2024-05-24 10:31:55 +01:00
18e23ffc5e barotropicCompressibilityModel: Removed redundant thermophysicalModel 2024-05-24 10:31:08 +01:00
fa96e43313 fixedMeanFvPatchField: Prevent evaluate on processor cases 2024-05-24 10:02:02 +01:00
bb9bf33869 decompositionMethod::scaleWeights: Only call reduce if running distributed 2024-05-23 16:25:58 +01:00
d444cb168d multiphaseEuler::phaseSystem::correctBoundaryFlux: Update the phase fluxes from the phase face-velocity and make relative
This update is necessary for mesh topology changes and mesh-to-mesh mapping
which update the phase face-velocity fields but not the fluxes.
2024-05-23 15:41:24 +01:00
f9d03d6ad9 mergeMeshes: Added timeSelector::addOptions()
Resolves bug-report https://bugs.openfoam.org/view.php?id=4078
2024-05-22 16:10:10 +01:00
6692825734 mergePolyMesh: Added missing faceZonesAddedFaces_ resize
Patch contributed by Timo Niemi, VTT.
2024-05-22 15:52:34 +01:00
40bcabf79f decompositionMethods::parMetis: New interface to the ParMETIS distributor for load-balancing
ParMETIS is a parallel version of METIS and can be used as an alternative to
ptScotch or Zoltan, supporting multi-constraints and redistribution:

Description
    ParMetis redistribution in parallel

    Note: parMetis methods do not support serial operation.

    Parameters
    - Method of decomposition
      - kWay: multilevel k-way
      - geomKway: combined coordinate-based and multi-level k-way
      - adaptiveRepart: balances the work load of a graph

    - Options
      - options[0]: The specified options are used if options[0] = 1

      - options[1]: Specifies the level of information to be returned during
        the execution of the algorithm. Timing information can be obtained by
        setting this to 1. Additional options for this parameter can be obtained
        by looking at parmetis.h. Default: 0.

      - options[2]: Random number seed for the routine

      - options[3]: Specifies whether the sub-domains and processors are coupled
        or un-coupled.  If the number of sub-domains desired (i.e., nparts) and
        the number of processors that are being used is not the same, then these
        must be un-coupled. However, if nparts equals the number of processors,
        these can either be coupled or de-coupled. If sub-domains and processors
        are coupled, then the initial partitioning will be obtained implicitly
        from the graph distribution. However, if sub-domains are un-coupled from
        processors, then the initial partitioning needs to be obtained from the
        initial values assigned to the part array.

    - itr: Parameter which describes the ratio of inter-processor communication
      time compared to data redistribution time.  Should be set between 0.000001
      and 1000000.0.  If set high, a repartitioning with a low edge-cut will be
      computed. If it is set low, a repartitioning that requires little data
      redistribution will be computed.  Good values for this parameter can be
      obtained by dividing inter-processor communication time by data
      redistribution time. Otherwise, a value of 1000.0 is recommended.
      Default: 1000.

The ParMETIS sources can be downloaded and compiled in ThirdParty-dev using the
link in the README file and the compilation commands in Allwmake.

Note the specific license under which ParMETIS is released:

Copyright & License Notice
--------------------------

The ParMETIS package is copyrighted by the Regents of the
University of Minnesota. It can be freely used for educational and
research purposes by non-profit institutions and US government
agencies only. Other organizations are allowed to use ParMETIS
only for evaluation purposes, and any further uses will require prior
approval. The software may not be sold or redistributed without prior
approval. One may make copies of the software for their use provided
that the copies, are not sold or distributed, are used under the same
terms and conditions.

As unestablished research software, this code is provided on an
``as is'' basis without warranty of any kind, either expressed or
implied. The downloading, or executing any part of this software
constitutes an implicit agreement to these terms. These terms and
conditions are subject to change at any time without prior notice.
2024-05-22 15:30:46 +01:00
32b7ba09b3 decompositionMethod::scaleWeights: Automatically filter out weights that are 0 on all processors
for redistribution methods which do not support 0 weights and for efficiency.
2024-05-22 13:54:51 +01:00
89f86f4e18 src/parallel/decompose/*scotch*/Allwmake: Updated to support system installations of scotch
Resolves bug-report https://bugs.openfoam.org/view.php?id=4084
2024-05-21 21:36:01 +01:00
f9165da0b7 IOerror: Print the error message only from the master if the dictionary is global
This avoids error messages from all processors if the dictionary being parsed is
global, in which case the error message from all processors would be the same so
only the master need print it.  This makes many common error messages the same
running in serial and parallel for user convenience.
2024-05-21 18:56:03 +01:00
5a2f1e3fd8 decompositionMethod::decomposeParDict: Return the IOdictionary
to maintain the global state of the dictionary for error messaging
2024-05-21 18:54:47 +01:00
20a1ef7b20 dictionary: Updated the global() function to return the global state of the parent dictionary
if the parent dictionary is valid.
2024-05-21 18:53:38 +01:00
3521d9889a wmake/wmakeLnInclude: removed echo redirections to stderr 2024-05-21 14:16:56 +01:00
f8b5d71e25 Function1: Preferentially construct from separate unit conversion arguments 2024-05-21 12:43:16 +01:00
30afcdc331 decompositionMethods: Standardised the conversion of scalar weights to integer weights
and general rationalisation and cleanup
2024-05-21 11:24:34 +01:00
c437265c80 lumpedMassTemperatureFvPatchScalarField: Updated dimension and unit handling in the constructor 20240520 2024-05-20 11:30:22 +01:00
13ef92ba48 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2024-05-20 10:16:25 +01:00
efc1fe2742 fixedMeanFvPatchField: Evaluate on construction from dictionary
to ensure the values on the patch are consistent with the boundary condition
specification and to avoid the need to specify a potentially inconsistent
"value" entry.
2024-05-20 10:14:59 +01:00
3ab0e63e63 New lumpedMassTemperature boundary condition
This boundary condition is applied to a patch which bounds a solid body,
wholly or partially.  It represents the body as a lumped mass, i.e. by a
single temperature which is fixed across the patch.  The body has a
volume which is either specified by the user, or is calculated when the
patch describes a closed volume (including in 2D meshes). Starting from
an initial temperature, the change in temperature is the calculated over
time according to a specified applied power source and the heat
transferred across the boundary, using a specified density and specific
heat capacity of the lumped mass.
2024-05-20 09:26:19 +01:00
9ed591b6bb src/parallel/decompose: Rationalised the Allwmake and Allclean scripts
so that each .*Decomp library can be compiled individually.
2024-05-17 20:26:15 +01:00
6e989f7213 checkMesh: Print non-orthogonality in degrees 2024-05-17 14:31:03 +01:00
6045c63e36 searchableSurface, topoSet: Checked unit conversion of input parameters 2024-05-16 15:19:26 +01:00