Commit Graph

5801 Commits

Author SHA1 Message Date
08b7a94452 mapFields, mapFieldsPar: Removed the subtract option and supporting complexity in meshToMesh0 and meshToMesh
The subtract option in mapFieldsPar was not implemented correctly and the
significant complexity in meshToMesh required to support it creates an
unwarranted maintenance overhead.  The equivalent functionality is now provided
by the more flexible, convenient and simpler subtract functionObject.
2022-03-15 23:21:32 +00:00
e9608d8f0f Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-03-15 14:51:55 +00:00
a08bb7bae1 meshQualityDict: Switch off the minVol control by default
It is not clear for what cases the minVol control is useful or necessary and for
some cases it causes problems with snapping and layer addition if not set to a
sufficiently small value.
2022-03-15 14:50:12 +00:00
b5b842c688 foamGet: include controlDict.orig file in case check 2022-03-15 08:21:58 +00:00
f2bf348ab2 tutorials/incompressible/icoFoam/cavity: Updated transportProperties -> physicalProperties 2022-03-14 13:50:30 +00:00
bbaba1a645 topoSetDict: Corrected/updated formatting
Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
Dresden - Rossendorf (HZDR)
2022-03-14 13:49:07 +00:00
dfc28bb580 multiphaseEulerFoam: populationBalance: Updated and improved source code documentation
Patch contributed by Institute of Fluid Dynamics, Helmholtz-Zentrum
Dresden - Rossendorf (HZDR)
2022-03-11 09:13:03 +00:00
9de4c78614 points0MotionSolver: Move points0 field to the time directory
This means the field gets decomposed and reconstructed in the same way
as any other point field, and prevents issues with restart of cases
which feature both mesh motion and topology change.
2022-03-10 21:28:17 +00:00
3995456979 parallelProcessing: Various improvements
boundaryProcAddressing has been removed. This has not been needed for a
long time. decomposePar has been optimised for mininum IO, rather than
minimum memory usage. decomposePar has also been corrected so that it
can decompose sequences of time-varying meshes.
2022-03-10 20:31:30 +00:00
dc052dd20c functionObjectList: Added access to the PtrList<functionObject>::append function
to allow addition of case specific functionObjects during the run.
2022-03-10 08:58:43 +00:00
318f78b660 fluent3DMeshToFoam: Updated for Fluent R2021
Resolves feature request https://bugs.openfoam.org/view.php?id=3815
2022-03-09 11:11:53 +00:00
58dce31c79 cyclicPolyPatch: Added default-transform-is-none flag to constructor
This allows the patch to be derived into patches that have different
ideas about whether or not a default no-transformation is appropriate.
2022-03-08 12:04:04 +00:00
a5b70f0f90 cyclicFvPatchField: Use fvPatch addressing instead of polyPatch addressing
This is less indirection and permits derivations of the cyclicFvPatch to
override the addressing
2022-03-08 10:19:51 +00:00
a576b72356 processorCyclicPolyPatch: Fix to message tagging
The tagging is now correct for the case when there are two processor
interfaces connected in different directions across the same cyclic.
2022-03-08 10:19:51 +00:00
373c4993a8 externalWallHeatFluxTemperature: Removed "mode"
Heat power (Q), heat flux (q) and heat transfer coefficient (h)
can now all be specified simultaneously. Their effects will be summed
into a single heat transfer rate. The "mode" keyword is no longer
required.
2022-03-08 10:19:47 +00:00
e7aaae76ac tutorials: reverseBurner: Fix warnings about wedge geometry 2022-03-08 09:16:51 +00:00
18f4f2f9e7 Zoltan: Added alternative library location $ZOLTAN_ARCH_PATH/lib
to support linking to system installations of the Zoltan library.

Resolves the feature request https://bugs.openfoam.org/view.php?id=3814
2022-03-07 17:14:34 +00:00
16788ffc36 fvMeshDistributorsDistributor: Changed decompose call to support constraints
Resolves bug-report https://bugs.openfoam.org/view.php?id=3812
2022-03-04 18:34:32 +00:00
b37141932a functionObjects::timeControl: Corrected initialisation of executionIndex_
needed by the adjustableRunTime option for restarted cases.
2022-03-03 15:54:32 +00:00
aa02cd4d25 multiphaseEulerFoam::fractal: Corrected stabilisation of kappa including the influence of fi 2022-03-01 20:46:47 +00:00
8cecaa8b6e MultiComponentPhaseModel: Replaced local residualAlpha_ with phase.residualAlpha()
There is no clear need for a residualAlpha to be defined specifically for Yi and
read from the fvSolution dictionary, the phase.residualAlpha() should be
suitable to stabilise the Yi equations.
2022-03-01 18:00:06 +00:00
3df883d7e6 multiphaseEulerFoam: Improved stabilisation of Yi, fi and kappa when alpha -> 0
The new stabilisation approach avoids any conservation error where the
phase-fraction is greater than residualAlpha by only applying the stabilising
terms to the transport equations in regions where the phase-fraction is less
than residualAlpha.
2022-02-28 19:08:28 +00:00
f6e8193553 surfaceFilmModels::waxSolventEvaporation: Corrected dm
rhoInf already included in evapRateCoeff
2022-02-26 10:13:31 +00:00
0e9e15d8dd Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-02-26 09:50:38 +00:00
e89c5736db surfaceFilmModels::waxSolventEvaporation: Improved stability where film thickness -> 0 2022-02-26 09:49:46 +00:00
bb172b77ef FixedList: Correction to comparison operators 2022-02-25 17:23:21 +00:00
d87a939ea6 snappyHexMesh: the addLayersControls sub-dictionary in snappyHexMeshDict is now optional
If

addLayers       off;

then

addLayersControls
{
.
.
.
}

need not be present in the snappyHexMeshDict.
2022-02-25 09:42:34 +00:00
93be3fc011 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-02-24 22:41:28 +00:00
99cfbd818f blockMesh: Added warning to set defaultPatch appropriately for snappyHexMesh and 2D cases
The defaultPatch type currently defaults to empty which is appropriate for 1D
and 2D cases but not when creating the initial blockMesh for snappyHexMesh as
the presence of empty patches triggers the inappropriate application of 2D point
constraint corrections following snapping and morphing.  To avoid this hidden
problem a warning is now generated from blockMesh when the defaultPatch is not
explicitly set for cases which generate a default patch, i.e. for which the
boundary is not entirely defined.  e.g.

.
.
.
Creating block mesh topology

--> FOAM FATAL IO ERROR:
The 'defaultPatch' type must be specified for the 'defaultFaces' patch, e.g. for snappyHexMesh

    defaultPatch
    {
        name default; // optional
        type patch;
    }

or for 2D meshes

    defaultPatch
    {
        name frontAndBack; // optional
        type empty;
    }
.
.
.

All the tutorials have been update to include the defaultPatch specification as
appropriate.
2022-02-24 21:35:09 +00:00
518024dbad boundBox: Improved function documentation 2022-02-24 16:52:19 +00:00
32e7b52c81 motionSmootherAlgoCheck::checkMesh: improved minVol test and removed unused tests
motionSmootherAlgoCheck::checkMesh is used by snappyHexMesh to check the mesh
after snapping and morphing.  The minVol test which checks for collapsed cells
is now relative to the cube of the minimum bounding box length so that it is
less dependent on the size of the geometry and less likely to need changing for
very small geometries.

The default value is set in
etc/caseDicts/mesh/generation/meshQualityDict
etc/caseDicts/mesh/generation/meshQualityDict.cfg

//- Minimum cell pyramid volume relative to min bounding box length^3
//  Set to a fraction of the smallest cell volume expected.
//  Set to very negative number (e.g. -1e30) to disable.
minVol 1e-10;

The unused minArea and minTriangleTwist tests have been removed
2022-02-24 16:44:34 +00:00
a34ddef943 snappyHexMesh: Check that input mesh is 3D, i.e. does not contain empty patches
required for mesh relaxation after snapping.
2022-02-24 16:42:39 +00:00
7e71f8ea67 surfaceOrient: Improved message 2022-02-24 16:42:12 +00:00
92eaa31793 processorCyclicPolyPatch: Removed unused constructors 2022-02-24 16:16:25 +00:00
85e68669f0 multiphaseEulerFoam: Apply constraints to mass fraction equations 2022-02-23 15:28:51 +00:00
91553c31e0 fluxLimitedLangmuirHinshelwoodReactionRate: Stabilise divisions 2022-02-23 11:43:34 +00:00
305ce7b487 fluxLimitedLangmuirHinshelwoodReactionRate: Corrections
The pre-exponential factor provided to this reaction rate is assumed to
relate to surface area, so the units are kmol/m^2/s/(kmol/m^3)^sum{exp}.
A standard volumentic reaction, by comparison, (e.g., Arrhenius) would
have pre-exponential factor units of kmol/m^3/s/(kmol/m^3)^sum{exp}.

The use of the surface-area-volume ratio has been corrected to conform
to this definition.
2022-02-22 15:03:29 +00:00
b827c0d740 Compressible solvers: Improved transonic option in the pressure equation
The handling of the div(phid,p) term for transonic support in the pressure
equation is now consistent such that conservation is achieved at convergence of
the pressure system irrespective of the scheme chosen for div(phid,p) and the
relaxation of the pressure equation.

The rhoSimpleFoam tutorials have been updated and improved.
2022-02-22 13:05:40 +00:00
69858a80ec fvMatrixSolve: Corrected for clang 20220221 2022-02-18 22:13:08 +00:00
842a6021f7 functionObjects::timeControl: Converted writeInterval and executeInterval to user-time
Resolves bug-report https://bugs.openfoam.org/view.php?id=3807
2022-02-18 16:34:53 +00:00
d40ecd78eb buoyantFoam: Merged buoyantSimpleFoam and buoyantPimpleFoam
Solver for steady or transient buoyant, turbulent flow of compressible fluids
for ventilation and heat-transfer, with optional mesh motion and mesh topology
changes.  Created by merging buoyantSimpleFoam and buoyantPimpleFoam to provide
a more general solver and simplify maintenance.
2022-02-18 12:20:54 +00:00
46895490c7 Compressible solver pEqn.H: Standardised the treatment of density
In rhoPimpleFoam, rhoSimpleFoam, buoyantPimpleFoam and buoyantSimpleFoam the
density prediction step at the start of pEqn.H is now consistent between these
solvers and the other compressible solvers.  If the density is relaxed in the
corrector it is now also relaxed following the predictor which improves
consistency, stability and convergence.
2022-02-18 10:33:40 +00:00
457230b4f9 fvMatrixSolve: Use standard solver settings rather than ".*Final" when running steady
For transient solvers which support steady operation using the steadyState ddt
scheme the ".*Final" solver settings are now only used for the final PIMPLE
iteration when running transient; for stead running the standard solver settings
are used for all PIMPLE iterations for compatibility with the equivalent steady
solvers.  This makes it easier to maintain both transient and steady cases for
transient solvers.
2022-02-17 09:34:23 +00:00
fd3cfe4364 tutorials::buoyantCavity::createGraphs: Updated for new sample file format 2022-02-17 09:33:28 +00:00
1950a11974 fvMesh: Construct changers after geometry pointers have been set
This allows changers to access geometry from the fvMesh on construction.
It also prevents a crash that occurs when a changer loads a field in
which there is a cyclic boundary condition.
2022-02-16 15:57:57 +00:00
fd50abcc85 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-02-16 11:20:50 +00:00
9925df5407 multiphaseEulerFoam::fvModels::phaseTurbulenceStabilisation: Phase turbulence stabilisation
Description
    Phase turbulence stabilisation

    In the limit of a phase-fraction->0 the turbulence properties cannot be
    obtained from the phase turbulence model, coupling to the other phase/phases
    is required.  The phaseTurbulenceStabilisation fvModel stabilises the phase
    turbulence properties by adding transfer terms from the corresponding
    properties of the other phases when the phase-fraction is less than the
    specified \c alphaInversion.  This implementation is a generalisation of
    the approach used in the Foam::RASModels::LaheyKEpsilon and
    Foam::RASModels::continuousGasKEpsilon models to handle phase-inversion and
    free-surface flow and can be used with any combination of RAS turbulence
    models.

    To stabilise the solution of the phase turbulence equations \c
    alphaInversion can be set to a small value e.g. 1e-2, but unless the phase
    turbulence model is specifically designed to handle phase-inversion and both
    continuous and dispersed regimes it may be useful to set \c alphaInversion
    to a higher value, corresponding to the phase-fraction at which transision
    from continuous to dispersed happens and effectively use the turbulence
    properties of the other phase when the phase is dispersed.  This is of
    course an approximation to the real system and if accurate handling of both
    the continuous and dispersed phase regimes is required specially developed
    models should be used.

Usage
    Example usage:
    \verbatim
    phaseTurbulenceStabilisation
    {
        type    phaseTurbulenceStabilisation;

        libs    ("libmultiphaseEulerFoamFvModels.so");

        phase   air;

        alphaInversion  0.1;
    }
    \endverbatim
2022-02-16 11:17:24 +00:00
898924aa48 multiphaseEulerFoam::fvModels::interfaceTurbulenceDamping: Free-surface phase turbulence damping function
Implementation of the interFoam VoFTurbulenceDamping for multiphaseEulerFoam.
In this implementation no distinction is made between a dispersed phase and the
interface so it is formally only applicable when interface compression is used
between the phase and the other phases.  Special handling for dispersed phases
may be added in the future.

Description
    Free-surface phase turbulence damping function

    Adds an extra source term to the mixture or phase epsilon or omega
    equation to reduce turbulence generated near a free-surface.  The
    implementation is based on

    Reference:
    \verbatim
        Frederix, E. M. A., Mathur, A., Dovizio, D., Geurts, B. J.,
        & Komen, E. M. J. (2018).
        Reynolds-averaged modeling of turbulence damping
        near a large-scale interface in two-phase flow.
        Nuclear engineering and design, 333, 122-130.
    \endverbatim

    but with an improved formulation for the coefficient \c A appropriate for
    unstructured meshes including those with split-cell refinement patterns.
    However the dimensioned length-scale coefficient \c delta remains and must
    be set appropriatly for the case by performing test runs and comparing with
    known results.  Clearly this model is far from general and more research is
    needed in order that \c delta can be obtained directly from the interface
    flow and turbulence conditions.

Usage
    Example usage:
    \verbatim
    interfaceTurbulenceDamping
    {
        type    interfaceTurbulenceDamping;

        libs    ("libmultiphaseEulerFoamFvModels.so");

        phase   water;

        // Interface turbulence damping length scale
        // This is a required input as described in section 3.3 of the paper
        delta   1e-4;
    }
    \endverbatim
2022-02-16 11:12:26 +00:00
d0c63582a2 multiphaseEulerFoam: sizeDistribution: Corrected spatial averaging of concentration fields
Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2022-02-16 10:22:45 +00:00
fb4e237292 MomentumTransportModels: Added omega() function
Replaces the local definition of the omega function in
functionObjects::turbulenceFields.

Will also be used in interfacial transfers and coupling in multiphase turbulence
modelling where different turbulence models are used in different phases.
2022-02-15 22:03:12 +00:00