Commit Graph

6756 Commits

Author SHA1 Message Date
060690b6fa driftFluxFoam: Updated in preparation for conversion into a solver module 2023-04-18 16:28:19 +01:00
050c617d3b tutorials/modules/compressibleVoF/throttle/system/fvConstraints: Updated to improve stability 2023-04-18 16:27:31 +01:00
fff991b5bc Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2023-04-18 09:48:39 +01:00
776ecc9a40 solvers::compressibleVoF: Updated to supersede cavitatingFoam
compressibleVoF supports cavitation fvModels which provide a more physical and
controllable approach to cavitation modelling than the simple homogeneous
equilibrium approximation used in cavitatingFoam.

The tutorials/multiphase/cavitatingFoam/RAS/throttle case has been converted to
tutorials/modules/compressibleVoF/throttle which demonstrates how to update
cases from cavitatingFoam to compressibleVoF.

A cavitatingFoam script is provided to redirect users to update their cases to
compressibleVoF.
2023-04-18 09:42:32 +01:00
f784c042c5 cellEdgeAddressing: Better documentation of walk algorithm 2023-04-18 08:54:29 +01:00
3736bcf7e0 fvModels: heatTransfer: Multiphase support
This model now takes a 'phase' keyword to specify to which phase of a
multiphase simulation it applies to. In order to transfer heat to
multiple phases, multiple models must be specified.
2023-04-18 08:22:56 +01:00
8a6be43be6 Updated for WM_LABEL_SIZE=64 2023-04-17 20:57:32 +01:00
5bcca1cca9 compressibleVoF,compressibleMultiphaseVoF: Apply fvConstraints to the pressure
Replaces the hard-coded pMin.
2023-04-17 10:32:32 +01:00
1a17ce00c4 fv::bound: New fvConstraint to bound a scalar field where it is below the specified minimum
Class
    Foam::fv::bound

Description
    Bound the specified scalar field where it is below the specified minimum.

    Where the field is unbounded it is set to the maximum of the average of
    the neighbouring cell values and the specified minimum.

Usage
    Example usage:
    \verbatim
    limitp
    {
        type            bound;

        field           p;

        min             100;
    }
    \endverbatim
2023-04-17 10:31:10 +01:00
5fa321880e cellEdgeAddressing: Fix cell-owner calculation for complex polyhedra
The cell-owns-face information is determined by comparing edges of
adjacent faces, starting from a given seed face for which ownership is
known. This calculation walks now the cell in order to be sure that all
faces have had their ownership determined.

Previously the algorithm just iterated over the faces and face-edges.
This spans the entire cell most of the time, but for large polyhedra a
single pass may not propagate the necessary information across the
entire cell. This could be fixed by doing multiple passes until all
faces have been visited, but a walk is likely to be cheaper as it is not
wasting effort iterating over the same faces multiple times.

This change fixes some failures associated with the isoSurface
algorithm. Occasionally, a cut plane or similar could be seen to be
missing one or two faces. These faces were associated with complex
polyhedra on which the cell-owns-face information had been
miscalculated. Surfaces should now be complete and contiguous.
2023-04-14 12:03:51 +01:00
d2d3e8710f compressibleVoF,compressibleMultiphaseVoF: Moved Uf correction outside the PISO loop
for efficiency
2023-04-14 10:18:23 +01:00
5e8d1ff99e createBaffles: Fixed owner/neighbour indexing bug when operating in parallel
Resolves bug report https://bugs.openfoam.org/view.php?id=3970
2023-04-13 17:09:29 +01:00
ad678e1829 OSspecific/POSIX/signals: Improved documentation for sigWriteNow and sigStopAtWriteNow 2023-04-13 16:33:14 +01:00
2bb760e912 etc/caseDicts/postProcessing/control/stopAtTimeStep: Configuration file for functionObjects::stopAtTimeStep
Example:

functions
{
    #includeFunc stopAtTimeStep(minDeltaT=1e-8)
    .
    .
    .
}
2023-04-13 13:28:27 +01:00
4974cc2e1d functionObjects::stopAtTimeStep: New functionObject to stop the run if the time-step becomes too small
This is useful to write results before a case fails due to uncontrollable
automatic time-step reduction, usually caused by unstable pressure-velocity
coupling.

Class
    Foam::functionObjects::stopAtTimeStep

Description
    Stops the run if the time-step drops below the specified value in seconds
    and optionally write results before stopping.

    The following actions are supported:
    - noWriteNow
    - writeNow (default)
    - nextWrite

    Examples of function object specification:
    \verbatim
    stop
    {
        type            stopAtTimeStep;

        libs            ("libutilityFunctionObjects.so");

        minDeltaT       1e-8;
        action          writeNow;
    }
    \endverbatim
    will write the fields and stop if the time-step drops below 1e-8s.

Usage
    \table
        Property  | Description               | Required | Default value
        type      | type name: stopAtTimeStep | yes      |
        minDeltaT | Minimum time-step [s]     | yes      |
        action    | Action executed           | no       | writeNow
    \endtable
2023-04-13 13:01:42 +01:00
ea1e078463 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2023-04-12 15:36:55 +01:00
fff11f7b95 boundaryFoam: Updated post-processing of non-Newtonian viscosity
and adding output of omega+
2023-04-12 15:35:43 +01:00
33fc67203a wmake: Prevent Clang warning about Foam::move vs std::move 2023-04-12 11:31:28 +01:00
1e0c4cd7f5 fvMeshMovers::interpolator: Corrected copy of points0 on mapping 2023-04-12 11:31:28 +01:00
71979accf5 PrimitiveOldTimePatch: Fix construction from null reference 2023-04-12 11:31:28 +01:00
0cea17a41c emptyFvPatchField: Updated map function 2023-04-11 22:49:00 +01:00
1167f97234 momentumTransportModels::linearViscousStress: Ensure divDevTauCorrFlux is evaluated before U BCs
for both gcc and clang
2023-04-11 22:48:07 +01:00
96978e07f4 Minor updates for single precision compilation 2023-04-11 18:07:47 +01:00
e40198353b solvers::incompressibleDenseParticleFluid: New solver module for particle laden incompressible flow
executed with foamRun for single region simulations of foamMultiRun for
multi-region simulations.  Replaces denseParticleFoam and all the corresponding
tutorials have been updated and moved to
tutorials/modules/incompressibleDenseParticleFluid.

Class
    Foam::solvers::incompressibleDenseParticleFluid

Description

    Solver module for transient flow of incompressible isothermal fluids coupled
    with particle clouds including the effect of the volume fraction of
    particles on the continuous phase, with optional mesh motion and change.

    Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and
    pseudo-transient and steady simulations.

    Optional fvModels and fvConstraints are provided to enhance the simulation
    in many ways including adding various sources, constraining or limiting
    the solution.
2023-04-11 16:56:13 +01:00
288fc74ff0 multiphaseEuler::virtualMassModel.H: Corrected documentation 2023-04-11 15:48:36 +01:00
2a9b999701 VoFSolver: Fixed use of as yet uninitialised reference 2023-04-11 14:54:04 +01:00
8323185dc9 Function1, Function2: Removed dynamic casts from field evaluations 2023-04-11 12:18:41 +01:00
fb052b9d79 solvers: Provided public constant access to state fields 2023-04-08 16:05:39 +01:00
59218933a3 denseParticleFoam: Use Dcf*phid rather than Fdf for consistency 2023-04-08 16:04:42 +01:00
0c08c2888c solvers: Provided public constant access to state fields 2023-04-07 19:55:21 +01:00
983cba0dca solvers::solid,solidDisplacement: Provided public constant access to state fields 2023-04-07 16:47:59 +01:00
2b74f9486f denseParticleFoam: New face-stabilised phase drag formulation
to provide consistent and stable continuous phase velocity solution without
staggering patterns at the boundary with packed regions of dispersed phase.
2023-04-07 14:16:21 +01:00
2f0346d68e libwaves.so: Now included in the alpha and U wave BC specification
rather than in controlDict.
2023-04-06 09:55:13 +01:00
f1a57dde9c tutorials/modules/incompressibleFluid/channel395/system/postChannelDict: Removed
The postChannel utility has been replaced by the more flexible layerAverage
functionObject.
2023-04-06 09:27:53 +01:00
13562fa31a multiphaseEuler::wallBoiling,IATEwallBoiling: Completed moving to multiphaseThermophysicalTransportModels
to avoid compilation cyclic dependency
2023-04-06 08:06:53 +01:00
05ffb6a6ff Info: Use nl rather than "\n..." to ensure region-prefixed printing 2023-04-05 17:14:24 +01:00
3229b0e645 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2023-04-05 15:58:53 +01:00
cb241c5f00 fvModels::checkApplied: Check for sub-cycling
so that fvModel usage is not checked within the sub-cycling loop.
2023-04-05 15:57:52 +01:00
6a3b5d1c25 mappedPatchBase: Clear out if the neighbour is cleared out
This fixes situations in which the mapping is used between a region with
a changing mesh and a region with a non-changing mesh, and where the
non-changing-mesh region owns the mapping. It ensures that changes in
the changing-mesh region trigger re-generation of the mapping in the
adjacent non-changing-mesh region.
2023-04-05 14:35:31 +01:00
28e581831c tutorials: mixerVessel2D: Consistency improvements
Horizontal mixers have been renamed to mixerVesselHorizontal2D. The
incompressible mixerVessel2D has been reinstated to provide a comparison
with the corresponding MRF case. All rotational speeds have been
standardised at 60 rpm, except for the compressible case in which the
higher speed is justified in order to demonstrate the simulation of
compressibility effects.
2023-04-05 11:01:20 +01:00
becee61eef parcelCloud: Ensure region-prefixed printing 2023-04-04 17:14:09 +01:00
fa296c0454 mappedPatchBase: Fix typo Neigbour -> Neighbour 2023-04-04 16:59:39 +01:00
0080177d88 invIncGammaRatio_P: Additional divide by zero protection 2023-04-04 16:42:34 +01:00
9ea964a525 fv::sixDoFAccelerationSource: Added sources for phase-momentum equations 2023-04-04 16:24:09 +01:00
42d26690ab multiphaseEuler/interfacialModels/dragModels/Gibilaro: Minor efficiency improvement 2023-04-04 16:10:30 +01:00
2df8c2549a Test-incGamma: Added test application
This checks the consistency of incGamma and invIncGamma. It writes files
with columns containing values for different 'a' parameters. The
incGammaRatio_P.xy and invIncGammaRatio_P.xy files should generate the same
lines when the plot axis order is reversed. E.g., in gnuplot:

    plot "incGammaRatio_P.xy" us 1:5 w l, \
         "invIncGammaRatio_P.xy" us 5:1 w p
2023-04-04 15:19:01 +01:00
28fc55b1f0 invIncGammaRatio_P: Completed implementation
Added the iterative improvement stage detailed at the end of section 4
of the reference:

    DiDonato, A. R., & Morris Jr, A. H. (1986).
    Computation of the incomplete gamma function ratios and their inverse.
    ACM Transactions on Mathematical Software (TOMS), 12(4), 377-393.
2023-04-04 15:19:01 +01:00
d33eafe7df multiphaseEuler/interfacialModels: Reverted handling of the continuous phase-fraction
back to the form in the original multiphaseEulerFoam, i.e. using the continuous
phase-fraction directly rather than 1 - dispersed phase fraction.
2023-04-04 14:59:20 +01:00
b414884142 solvers::multiphaseEuler::cellPressureCorrector: Use near-wall drag coefficient at wall patch
Avoids numerical imbalance between forces at wall patches normal to gravity for
phases with zero phase fraction.
2023-04-04 09:41:47 +01:00
91d48d2eb6 multiphaseEuler::cellPressureCorrector: add Kds[phasei] if defined for phasei 20230403 2023-04-03 15:02:09 +01:00