Commit Graph

244 Commits

Author SHA1 Message Date
43d66b5e7c lagrangian: Run-time selectable clouds
The standard set of Lagrangian clouds are now selectable at run-time.
This means that a solver that supports Lagrangian modelling can now use
any type of cloud (with some restrictions). Previously, solvers were
hard-coded to use specific cloud modelling. In addition, a cloud-list
structure has been added so that solvers may select multiple clouds,
rather than just one.

The new system is controlled as follows:

- If only a single cloud is required, then the settings for the
  Lagrangian modelling should be placed in a constant/cloudProperties
  file.

- If multiple clouds are required, then a constant/clouds file should be
  created containing a list of cloud names defined by the user. Each
  named cloud then reads settings from a corresponding
  constant/<cloudName>Properties file. Clouds are evolved sequentially
  in the order in which they are listed in the constant/clouds file.

- If no clouds are required, then the constant/cloudProperties file and
  constant/clouds file should be omitted.

The constant/cloudProperties or constant/<cloudName>Properties files are
the same as previous cloud properties files; e.g.,
constant/kinematicCloudProperties or constant/reactingCloud1Properties,
except that they now also require an additional top-level "type" entry
to select which type of cloud is to be used. The available options for
this entry are:

    type    cloud;                   // A basic cloud of solid
                                     // particles. Includes forces,
                                     // patch interaction, injection,
                                     // dispersion and stochastic
                                     // collisions. Same as the cloud
                                     // previously used by
                                     // rhoParticleFoam
                                     // (uncoupledKinematicParticleFoam)

    type    collidingCloud;          // As "cloud" but with resolved
                                     // collision modelling. Same as the
                                     // cloud previously used by DPMFoam
                                     // and particleFoam
                                     // (icoUncoupledKinematicParticleFoam)

    type    MPPICCloud;              // As "cloud" but with MPPIC
                                     // collision modelling. Same as the
                                     // cloud previously used by
                                     // MPPICFoam.

    type    thermoCloud;             // As "cloud" but with
                                     // thermodynamic modelling and heat
                                     // transfer with the carrier phase.
                                     // Same as the limestone cloud
                                     // previously used by
                                     // coalChemistryFoam.

    type    reactingCloud;           // As "thermoCloud" but with phase
                                     // change and mass transfer
                                     // coupling with the carrier
                                     // phase. Same as the cloud
                                     // previously used in fireFoam.

    type    reactingMultiphaseCloud; // As "reactingCloud" but with
                                     // particles that contain multiple
                                     // phases. Same as the clouds
                                     // previously used in
                                     // reactingParcelFoam and
                                     // simpleReactingParcelFoam and the
                                     // coal cloud used in
                                     // coalChemistryFoam.

    type    sprayCloud;              // As "reactingCloud" but with
                                     // additional spray-specific
                                     // collision and breakup modelling.
                                     // Same as the cloud previously
                                     // used in sprayFoam and
                                     // engineFoam.

The first three clouds are not thermally coupled, so are available in
all Lagrangian solvers. The last four are thermally coupled and require
access to the carrier thermodynamic model, so are only available in
compressible Lagrangian solvers.

This change has reduced the number of solvers necessary to provide the
same functionality; solvers that previously differed only in their
Lagrangian modelling can now be combined. The Lagrangian solvers have
therefore been consolidated with consistent naming as follows.

    denseParticleFoam: Replaces DPMFoam and MPPICFoam

    reactingParticleFoam: Replaces sprayFoam and coalChemistryFoam

    simpleReactingParticleFoam: Replaces simpleReactingParcelFoam

    buoyantReactingParticleFoam: Replaces reactingParcelFoam

fireFoam and engineFoam remain, although fireFoam is likely to be merged
into buoyantReactingParticleFoam in the future once the additional
functionality it provides is generalised.

Some additional minor functionality has also been added to certain
solvers:

- denseParticleFoam has a "cloudForceSplit" control which can be set in
  system/fvOptions.PIMPLE. This provides three methods for handling the
  cloud momentum coupling, each of which have different trade-off-s
  regarding numerical artefacts in the velocity field. See
  denseParticleFoam.C for more information, and also bug report #3385.

- reactingParticleFoam and buoyantReactingParticleFoam now support
  moving mesh in order to permit sharing parts of their implementation
  with engineFoam.
2020-07-31 09:35:12 +01:00
e603417ef7 bin/tools/foamGenerateBashCompletion: Improved robustness of bracket parsing
Also minor formatting changes
2020-07-30 16:47:29 +01:00
074dbec0a5 etc/config.sh/bash_completion: Updated for new solvers and arguments
Also added foamGenerateBashCompletion to $WM_PROJECT_DIR/bin/tools to
generate the bash_completion file
2020-07-30 15:41:58 +01:00
f66bb63896 foamCreateVideo: change fallback encoder to ffmpeg instead of avconv
Resolves issue https://bugs.openfoam.org/view.php?id=3508
2020-07-20 13:19:09 +01:00
68e4678221 reactingTwoPhaseEulerFoam: Replaced by multiphaseEulerFoam
The reactingtTwoPhaseEulerFoam solver has been replaced by the more general
multiphaseEulerFoam solver which supports two-phase and multiphase systems
containing fluid and stationary phases, compressible or incompressible, with
heat and mass transfer, reactions, size distribution and all the usual phase
interaction and transfer models.

All reactingtTwoPhaseEulerFoam tutorials have been ported to multiphaseEulerFoam
to demonstrate two-phase capability with a wide range of phase and
phase-interaction models.

When running with two-phases the optional referencePhase entry in
phaseProperties can be used to specify which phase fraction should not be
solved, providing compatibility with reactingtTwoPhaseEulerFoam, see

tutorials/multiphase/multiphaseEulerFoam/RAS/fluidisedBed
tutorials/multiphase/multiphaseEulerFoam/laminar/bubbleColumn

for examples.
2020-07-17 20:18:15 +01:00
c140e681cb Removed temporary redirection scripts from version 7 2020-07-16 17:38:18 +01:00
9fd9172913 Rationalised the named of uncoupled particle tracing solvers and functionObject
Solvers
    icoUncoupledKinematicParcelFoam -> particleFoam
    uncoupledKinematicParcelFoam -> rhoParticleFoam

functionObjects
    icoUncoupledKinematicCloud -> particles
2020-07-16 13:06:08 +01:00
b832453b72 multiphaseEulerFoam: replacement for reactingMultiphaseEulerFoam
The new multiphaseEulerFoam is based on reactingMultiphaseEulerFoam with some
improvements and rationalisation to assist maintenance and further development.

The phase system solution has been enhanced to handle two phases more
effectively and all two-phase specific models updated for compatibility so that
multiphaseEulerFoam can also replace reactingTwoPhaseEulerFoam.
When running multiphaseEulerFoam with only two-phases the default behaviour is
to solve for both phase-fractions but optionally a reference phase can be
specified so that only the other phase-fraction is solved, providing better
compatibility with the behaviour of reactingTwoPhaseEulerFoam.

All reactingMultiphaseEulerFoam and reactingTwoPhaseEulerFoam tutorials have
been updated for multiphaseEulerFoam.
2020-07-15 18:13:40 +01:00
2e62bfe5bc reactingMultiphaseEulerFoam: Updated remaining two-phase turbulent transport and IATE models
for compatibility with reactingMultiphaseEulerFoam when run with two-phases.
Some of these two-phase models could be enhanced to operate with multiple
dispersed phases in the future.

In order to update these models for reactingMultiphaseEulerFoam it has been
necessary to break compatibility with the now redundant twoPhaseEulerFoam solver
which has been superseded by the much more capable reactingEulerFoam solvers and
now removed.
2020-07-10 09:37:48 +01:00
813bcaff30 foamGet: remove message when no $HOME/.OpenFOAM directory exists 2020-05-02 10:34:21 +01:00
9fabb9b002 paraview: Upgrade to 5.8.0
PVReaders now support compilation against ParaView version 5.7.0 and
greater. All references to ParaView versions less than 4.0.0 have been
removed.

Based on a patch contributed by CFD Support
2020-04-16 13:45:37 +01:00
e1dedc10d3 foamCloneCase: improved messaging when additional file does not exist 2020-04-16 12:45:33 +01:00
d9103613a9 bin/tools: Added version number comparison script
This script allows version numbers to be compared. It is called in the
following way:

    foamVersionCompare <version-1> <comparison> <version-2>

The <comparison> argument can be one of; eq (equal-to), lt (less-than),
gt (greater-than), le (less-than-or-equal-to), or ge
(greater-than-or-equal-to). The script returns a successful exit code if
the comparison evaluates as true.

Example usage:

    if $WM_PROJECT_DIR/bin/tools/foamVersionCompare 5.4.3 gt 5.5.1
    then
        echo "5.4.3 IS greater than 5.5.1"
    else
        echo "5.4.3 is NOT greater than 5.5.1"
    fi
2020-04-14 09:24:55 +01:00
a3c8fc80e6 pre-commit-hook, pre-recieve-hook: Corrected HookFunctions source path 2020-03-31 09:09:10 +01:00
d77acaf4a0 doxygen: Handle arbitrary numbers of line continuations 2020-02-25 12:24:17 +00:00
684191eadd adsorptionMassFractionFvPatchScalarField: Corrected header formatting 2020-02-25 11:16:13 +00:00
afd7a6ca7d CleanFunctions: Removed deletion of certain file types
A number of file name patterns have been removed from the list of things
that cleanCase deletes. Some patterns related to obsolete files that
OpenFOAM no longer generates, and some were deemed too generic to
delete as they might contain important persistent information.
2020-02-21 14:54:54 +00:00
05966af49c surfaceFeatureExtract: Removed deprecated utility, replaced by surfaceFeatures 2020-01-18 23:04:00 +00:00
d8209247b1 foamDictionary: Allow functionEntry expansion with -entry option
Resolves bug-report https://bugs.openfoam.org/view.php?id=3422
2020-01-07 21:25:09 +00:00
c0cffb357d foamCloneCase: fix test for case being decomposed 2019-12-04 16:30:49 +00:00
b87fac2899 foamCloneCase: correction to -processor option check 2019-11-21 08:46:24 +00:00
6a17553516 foamCloneCase: correction to serial operation 2019-11-21 08:15:38 +00:00
f06e13a0bc foamCloneCase: added -processor and -add options and tidied code
-add <file1...N> copy 1 or more additional files/directories from source case
-processor       copies processor* directories of a decomposed case
2019-11-20 18:11:16 +00:00
612164005d foamDictionary: Removed the -disableFunctionEntries option 2019-11-19 13:28:40 +00:00
5f22607df3 tutorials/*/DTCHull, propeller: Clone meshes, if available
These cases now check for a mesh in geometrically identical cases and
copy rather than re-generate if possible. This reduces the run-time of
the test loop by about 20 minutes.
2019-11-04 11:40:40 +00:00
a3b67ff44e HookFunctions: Corrected multiple-match exclude patterns 2019-10-31 16:21:07 +00:00
7ec1f0d6a8 bin/sonicFoam: Updated description
Resolves bug-report https://bugs.openfoam.org/view.php?id=3373
2019-10-17 18:45:53 +01:00
cfbb389fd3 reactingEulerFoam: populationBalanceModel: Added fractal shape modelling support
This change adds representation of the shape of a dispersed phase. A
layer has been added to model the relationship between the
characteristic volume of a sizeGroup and its physical diameter.
Previously this relationship was represented by a constant form factor.

Currently, two shape models are available:

  - spherical

  - fractal (for modelling fractal agglomerates)

The latter introduces the average surface area to volume ratio, kappa,
of the entities in a size group as a secondary field-dependent internal
variable to the population balance equation, which makes the population
balance approach "quasi-"bivariate. From kappa and a constant mass
fractal dimension, a collisional diameter can be derived which affects
the coagulation rates computed by the following models:

  - ballisticCollisions

  - brownianCollisions

  - DahnekeInterpolation

  - turbulentShear

The fractal shape modelling also takes into account the effect of sintering
of primary particles on the surface area of the aggregate.

Further additions/changes:

  - Time scale filtering for handling large drag and heat transfer
    coefficients occurring for particles in the nanometre range

  - Aerosol drag model based on Stokes drag with a Knudsen number based
    correction (Cunningham correction)

  - Reaction driven nucleation

  - A complete redesign of the sizeDistribution functionObject

The functionality is demonstrated by a tutorial case simulating the
vapour phase synthesis of titania by titanium tetrachloride oxidation.

Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum Dresden -
Rossendorf (HZDR) and VTT Technical Research Centre of Finland Ltd.
2019-08-13 10:40:25 +01:00
962b5d36f3 foamGet: does not include files for OpenFOAM versions <ver>,
in ~/.OpenFOAM/<ver>, other than the version being sourced (used)
2019-08-06 14:46:52 +01:00
a7f4147887 HookFunctions: Ensure the checkHeaderIfndefNames is applied only if the "_H" is at the end of the line 2019-05-28 15:32:52 +01:00
0a3b7a7932 Comment spelling corrections from codespell 2019-05-26 10:56:36 +01:00
deb279aa83 foamMonitor: for log plots, use exponential (%e) format for ytics 2019-05-17 17:20:31 +01:00
9bf34679bd buoyantBoussinesq[SP]impleFoam: replaced by the more general buoyant[SP]impleFoam solvers
With the selection of the Boussinesq equation of state the general buoyancy
solvers buoyantSimpleFoam and buoyantPimpleFoam can be used instead of the
specialised Boussinesq solvers avoiding the need for special implementation of
thermal and pressure boundary conditions and providing support for radiation and
fvOptions which would not have been feasible or practical in the Boussinesq
solvers.

Other incompressible equations of state are also supported; for most gaseous
problems the incompressiblePerfectGas equation of state is likely to be more
accurate than the Boussinesq equation of state.

The buoyantBoussinesq[SP]impleFoam tutorials have been updated and moved to the
corresponding buoyant[SP]impleFoam directories.
2019-03-26 21:42:14 +00:00
c1d0fa6cac hooks: Added check to ensure scripts are executable
Based on a patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2019-03-13 14:12:47 +00:00
0ce996ffd4 hooks: Refactor
The hook functions now all work in terms of local variables and argument
passing. They return error codes rather than exiting. Fixing issues
(updating copyright and correcting ifndef/define names) is now optional.
The "interactive" aspect of the pre-recieve hook has been removed and
placed into a new interactive-hook script that can be used for checking
without commiting. The pre-recieve-hook has been updated to include all
the newer checking added to pre-commit-hook.
2019-03-13 12:40:25 +00:00
008a768286 foamCloneCase: Added exit 0
Resolves patch request https://bugs.openfoam.org/view.php?id=3151
2019-01-22 13:17:31 +00:00
b9ecc29687 basicChemistryModelTemplates: Added a space in message 2019-01-08 16:44:20 +00:00
7db8e05b20 paraFoam: attempts to launch ParaView with Mesa OpenGL if system OpenGL fails
A new "-empty" option launches ParaView without opening any files.  This enables users
to run ParaView using the paraFoam script for all data (OpenFOAM or otherwise), making
use of the automatic launching with Mesa if system OpenGL fails.

To view OpenFOAM case files, run "paraFoam".
To view other data files, run "paraFoam -empty" and open the files within ParaView.
2018-12-20 18:40:56 +00:00
9c9f061990 foamGet: Corrected for POSIX sh compliance 2018-12-12 21:22:24 +00:00
8372163972 foamGet: Filter WM_PROJECT_SITE if not set 2018-11-30 15:04:59 +00:00
bcbfe542cf Rationalised WM_PROJECT_SITE and WM_PROJECT_INST_DIR in foamEtcFile and etcFiles
for consistency with WM_PROJECT.  Now "etc" files are assumed to be in etc
sub-directories of WM_PROJECT_SITE and WM_PROJECT_INST_DIR allowing other files
to be stored in those directories.  The search order is now:

Search for files from user/group/shipped directories.
The search scheme allows for version-specific and
version-independent files using the following hierarchy:
- \b user settings:
  - ~/.OpenFOAM/\<VERSION\>/
  - ~/.OpenFOAM/
- \b group (site) settings (when $WM_PROJECT_SITE is set):
  - $WM_PROJECT_SITE/\<VERSION\>/etc/
  - $WM_PROJECT_SITE/etc/
- \b group (site) settings (when $WM_PROJECT_SITE is not set):
  - $WM_PROJECT_INST_DIR/site/\<VERSION\>/etc/
  - $WM_PROJECT_INST_DIR/site/etc/
- \b other (shipped) settings:
  - $WM_PROJECT_DIR/etc/

\return The list of full paths of all the matching files or
an empty list if the name cannot be found.
Optionally abort if the file cannot be found.
Optionally stop search after the first file has been found.

This change was proposed and agreed by the sponsors of the OpenFOAM project on
the OpenFOAM Hub, see https://openfoam.org/maintenance/
2018-11-28 22:00:34 +00:00
062c956dfd foamGet: added directory target for scalar field s 2018-11-26 11:20:53 +00:00
b9f8eb8dd1 foamGet: selecting target directory based on file name 2018-11-23 19:16:27 +00:00
5a988c068e paraFoam: Added check for ".orig" variants 2018-11-08 08:38:58 +00:00
ba9f8f271f HookFunctions: Fixed check for file extensions 2018-10-29 09:34:46 +00:00
0ae01264e4 HookFunctions: Exclude markdown files from trailing whitespace check 2018-10-26 09:31:29 +01:00
5dd31a06d8 sonicFoam: Corrected banner 2018-10-03 14:20:20 +01:00
80df54208f foamMonitor: Added -ascii and -size options
These options add the ability to show the plot in the terminal, and at
any size. This is intended to facilitate monitoring on remote machines
where launching an X11 application may not be convenient or possible.

Resolves feature request https://bugs.openfoam.org/view.php?id=3080
2018-10-02 19:49:59 +01:00
7d95604f2f foamUpdateCaseFileHeader: Deleted because out of date and unmaintained 2018-08-08 15:38:49 +01:00
8662f99ac1 Corrected typos in comments
Resolves bug-report https://bugs.openfoam.org/view.php?id=3017
2018-07-31 17:11:21 +01:00