7768 Commits

Author SHA1 Message Date
e4abe3d588 bin/foamUnits: Describes units and their conversions
for input parameters in OpenFOAM, e.g.

+ to list available units:
  foamUnits -list
+ to provide information about the [mm] unit:
  foamUnits mm
+ to provide information about the [thermalConductivity] dimensions:
  foamUnits -dimension thermalConductivity
+ to provide information about all units:
  foamUnits -all
+ to provide information about all dimensions:
  foamUnits -all -dimension
2024-06-27 12:46:58 +01:00
5240b7d86a Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2024-06-26 16:00:17 +01:00
b8ad3a9036 PDRkEpsilon: Removed second bounding of epsilon to avoid turbulence-combustion coupling instability 2024-06-26 15:59:20 +01:00
5c245974c3 symmTransform: Added bool and label transform overloads 2024-06-26 14:34:53 +01:00
8bf9afff11 Time: Removed the deprecated timeName() function
use name() instead.
2024-06-26 11:38:49 +01:00
10c1f27e06 Time: Changed FatalError in the time precision update to Warning
Due to rounding to the nearest value it is possible for the updated time name to
predate the previous time name after a precision change, for example as a
consequence of a sudden reduction in time-step.  This is not an error and should
not cause the run to stop but the user is warned about the temporary anomaly in
the printing of time.
2024-06-26 11:10:47 +01:00
b3b1b5b6da fvModels::propellerDisk: Disk momentum source which approximates a propeller based on a propeller curve
The fvModels directory has been reorganised into separate libraries to make it
easier to add and maintain new complex models such as the propellerDisk.

Class
    Foam::fv::propellerDisk

Description
    Disk momentum source which approximates a propeller based on a given
    propeller curve.

    Reference:
    \verbatim
        Hough, G. R., & Ordway, D. E. (1964).
        The generalized actuator disk.
        Developments in theoretical and applied mechanics, 2, 317-336.
    \endverbatim

Usage
    Example usage:
    \verbatim
    diskSource
    {
        type            propellerDisk;

        selectionMode   cellZone;
        cellZone        propeller;

        diskNormal      (1 0 0);    // Normal direction of the disk

        n               26.03;      // Rotation speed [1/s]

        dPropeller      0.203;      // Propeller diameter
        dHub            0.039179;   // Hub diameter

        propellerCurve
        {
            type table;

            //   J     Kt     Kq
            values
            (
                (0.10 (0.3267 0.03748))
                (0.15 (0.3112 0.03629))
                (0.20 (0.2949 0.03500))
                (0.25 (0.2777 0.03361))
                (0.30 (0.2598 0.03210))
                (0.35 (0.2410 0.03047))
                (0.40 (0.2214 0.02871))
                (0.45 (0.2010 0.02682))
                (0.50 (0.1798 0.02479))
                (0.55 (0.1577 0.02261))
                (0.60 (0.1349 0.02027))
                (0.65 (0.1112 0.01777))
                (0.70 (0.0867 0.01509))
                (0.75 (0.0614 0.01224))
                (0.80 (0.0353 0.00921))
            );
        }
    }
    \endverbatim
2024-06-25 16:34:41 +01:00
490ff749d9 pitzDailySteady: Remove cacheTemporaryObjects 2024-06-25 14:29:39 +01:00
4162fe070d pitzDailySteady: Simplification
Some functions have been removed from this tutorial in order to simplify
the setup and permit its usage as a minimal example. The functions have
been moved to similar incompressibleFluid tutorials in order to ensure
that the test loop continues to confirm that the functions execute
successfully.
2024-06-25 14:20:04 +01:00
81a3c90646 fvMeshToFvMesh: Debug writing of target coverage 2024-06-25 11:15:50 +01:00
ed6e57a103 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2024-06-25 10:23:46 +01:00
97d4443134 decompositionMethods::zoltan: Free string storage allocated by strdup 2024-06-25 10:23:02 +01:00
bb26f49cd8 omega1: Fix writing of time units
Resolves bug report https://bugs.openfoam.org/view.php?id=4103
2024-06-25 08:46:20 +01:00
03bfaaa4fa fvModels: phaseChange: Corrections
The form of the sensible energy/enthalpy transfer and the sign of the
latent heat contribution have both been corrected
2024-06-21 16:41:42 +01:00
adfc80c412 decompositionMethods::zoltan: Added support for processors contaning zero cells
This update allows Zoltan 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.
2024-06-21 14:54:35 +01:00
2f7185d73a lagrangian/basic/indexedParticle: Remove unused particle and cloud type 2024-06-21 13:16:46 +01:00
530213570c lagrangian/basic/IOPosition: Removed unused member data 2024-06-20 12:17:34 +01:00
e713214192 functionObjects::layerAverage: Removed unused member data 2024-06-20 09:04:35 +01:00
e82a184f1a polyMesh: Subdirectory for mesh objects
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.
2024-06-19 20:44:03 +01:00
4751a775bc mappedPatchBase: Corrected copy construct of reMapAfterMove 2024-06-19 13:57:48 +01:00
bbc3931846 fvModels::viscousHeating: New fvModel to add the viscous heating source to the total energy equation
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.
2024-06-19 12:39:31 +01:00
7a58f30c56 conformedFvPatchField: Forward evaluations to the original patch
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
2024-06-19 10:51:49 +01:00
3cdec1dc56 decompositionMethods::parMetis: Added support for processors contaning zero cells
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.
2024-06-18 19:24:30 +01:00
6bd6d03079 tutorials: bubbleColumn: Fix divergence 2024-06-18 08:19:04 +01:00
cdafb7e42b multiphaseEuler: Prevent zero blending factors when alpha is zero 2024-06-18 08:11:58 +01:00
16f82f2da0 meshObjects: Formalise support for multiple named meshObjects of the same type 20240617 2024-06-14 19:03:02 +01:00
587c44fba7 atmBoundaryLayer: Corrected examples
Resolves bug report https://bugs.openfoam.org/view.php?id=4097
2024-06-13 14:46:43 +01:00
ba42eb5248 Fixes for compiling with 64 bit labels
Resolves bug report https://bugs.openfoam.org/view.php?id=4098
2024-06-13 13:51:14 +01:00
efa45475f2 src/parallel/decompose: Add option to specify system installation directories 2024-06-13 11:33:33 +01:00
d209c31dd6 cpuLoad: added support for mapping following mesh topology change 2024-06-12 14:22:36 +01:00
b57e83304b molecularDynamics: Consolidated into a single library
This simplifies the directory structure and resolves some name clashes
with other parts of OpenFOAM.
20240611
2024-06-11 12:44:15 +01:00
e1e0e258c8 distributions: Generalise usage
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.
2024-06-11 10:47:23 +01:00
125902a872 randomGenerator: Global flag
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.
2024-06-11 10:46:28 +01:00
bb43dbe270 PVReaders: Fix for older versions of ParaView in which Qt major version is not defined 2024-06-11 09:26:37 +01:00
b986611242 Updates for gcc-14 and clang-18 to avoid new warning messages
Resolves bug-report https://bugs.openfoam.org/view.php?id=4093
2024-06-10 10:56:20 +01:00
9a85dcfff2 src/Allwmake: Start compilation of thermophysicalModels earlier as some files take a long time
This provides a slight speedup when re-compiling everything.
2024-06-07 08:08:08 +01:00
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