Commit Graph

6359 Commits

Author SHA1 Message Date
9a1eadd35a tutorials: ballValve: Simplified specification of walls surface 2022-11-23 16:56:23 +00:00
111a15a42d singleLayerRegionModel: Moved evolve functions to surfaceFilm 2022-11-23 16:46:57 +00:00
df22313066 Renamed surfaceFilmSubModels -> surfaceFilmModels 2022-11-23 15:28:51 +00:00
d693c17b3d singleLayerRegionModel: renamed regionMesh() -> mesh()
in the context of the region model the mesh is the region mesh and so there is
no need to name the access function with the prefix "region".
2022-11-23 14:52:33 +00:00
052a4803f0 regionModels: Refactored to remove the now redundant regionModel base class 2022-11-23 14:23:12 +00:00
08307ddb0f regionModels/thermalBaffle: Superseded by solvers::solid modular solver
which can be selected and executed in foamMultiRun for complex CHT cases.  This
is a much more general, flexible, extensible and maintainable structure than the
now deprecated regionModels system and associated clutter.
2022-11-23 14:12:59 +00:00
88fb92539a chemistryModel: Use the continuity rather than thermo rho
when calculating the specie transport equation reaction rates for consistency.
This also avoids the need for thermo to provide rho0.
2022-11-23 11:15:58 +00:00
0f70729e0a tutorials/modules/fluid/annularThermalMixer: Updated for change to pressure work term 2022-11-23 08:27:23 +00:00
32626cc45d tutorials: wallBoiling: Fixes to wall boiling properties graphs 2022-11-22 16:23:53 +00:00
619f015bcc alphatWallBoilingWallFunctionFvPatchScalarField: Corrected convergence check in parallel 2022-11-21 11:46:06 +00:00
57379321f8 coupledMultiphaseTemperatureFvPatchScalarField: Added support for kappaLayers 2022-11-21 11:42:57 +00:00
f609b4ebbc coupledTemperatureFvPatchScalarField: Removed temporary diagnostic message 2022-11-21 07:45:37 +00:00
c95d964c4b flowRateInletVelocityFvPatchVectorField: Corrected y mapping
Needed for run-time mesh-to-mesh mapping.
2022-11-20 21:06:22 +00:00
084097bab9 solvers/modules: Updated correctPhi logic so that it is not required following topology change
Now fluxes are updated from the mapped fields following mesh topology change
with or without implicit continuity correction enabled by the optional
correctPhi switch.
2022-11-20 20:22:59 +00:00
691866d782 solvers::isothermalFluid,fluid,multicomponentFluid: Improved the enthalpy pressure-work on moving meshes
also simplified the implementation to improve maintainability
2022-11-19 20:32:27 +00:00
091852f66c coupledMultiphaseTemperatureFvPatchScalarField: Updated for Clang 2022-11-18 16:37:22 +00:00
91c0ccd3e7 pressureInletOutletVelocityFvPatchVectorField: Ordered member functions corresponding to declaration order 2022-11-18 15:20:27 +00:00
35a963d452 coupledTemperatureFvPatchScalarField: Improved IO
Optional entries are now written only when set.
2022-11-18 15:19:25 +00:00
9c5070ff17 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-11-18 15:19:16 +00:00
d2378ef06e tutorials/modules/CHT/wallBoiling: corrected wall thickness
Patch contributed by Juho Peltola, VTT.
2022-11-18 15:18:09 +00:00
b718817164 multiphaseEuler: interfaceSaturationTemperatureModel: Remove left over debugging message
Resolves bug report https://bugs.openfoam.org/view.php?id=3933
2022-11-18 08:44:58 +00:00
b36d8fca44 solvers::isothermalFluid: Improved the consistency, accuracy and stability of the pressure-work term
for moving mesh cases, in both the internal energy and enthalpy equations
2022-11-17 18:08:59 +00:00
29b82422d7 applications/solvers/modules: Reorganised to match the structure of tutorials/modules
Given that the number of solid solver modules is currently 1 and unlikely to
exceed 3 it is not very useful to maintain solid and fluid sub-directories and
easier to see the correspondence between the solver modules and tutorial cases
without.
2022-11-16 23:28:59 +00:00
9fa8b85056 tutorials: multiphaseEuler: Added hydrofoil tutorial
This serves as an example of cavitation modelling with the
multiphaseEuler module. This case also contains validation of the
pressure profile along the hydrofoil against experimental data.

Based on a case contributed by Petteri Peltonen, VTT.
2022-11-16 21:36:35 +00:00
1df33f58c9 multiphaseEuler: Cavitation phaseTransfer model
This adds cavitation modelling to the multiphaseEuler solver module as a
phaseTransfer model. The underlying cavitation modelling is the same as
for the compressibleVoF module.

An example specification in constant/phaseProperties is shown below:

    phaseTransfer
    {
        gas_liquid
        {
            type        cavitation;

            model       Kunz;

            liquid      water;

            pSat        80000;

            UInf        5.33;
            tInf        0.028142589;
            Cc          100;
            Cv          100;
        }
    }

Based on code contributed by Petteri Peltonen, VTT.
2022-11-16 21:36:13 +00:00
721bf7b41a compressible::cavitationModels: Use temperature dependent saturation pressure model
The cavitation models used by the compressibleVoF module can now have a
temperature-dependent saturation pressure model specified. For example,
in the constant/fvModels file of a compressibleVoF case:

    VoFCavitation
    {
        type    VoFCavitation;

        libs    ("libcompressibleVoFCavitation.so");

        model   SchnerrSauer;

        liquid  water;

        // Constant saturation pressure
        //pSat    2300;

        // Antoine equation for temperature-dependent saturation pressure
        pSat
        {
            type    Antoine;
            A       22;
            B      -3000;
            C      -500;
        }

        n       1.6e+13;
        dNuc    2.0e-06;
        Cc      1;
        Cv      1;
    }
2022-11-16 21:36:13 +00:00
9567bc0d4b cavitationModels: Made insensitive to phase order
The cavitation models used by the interFoam solver and the
compressibleVoF solver module can now be applied regardless of the
ordering of the liquid and vapour phases. A "liquid" keyword is now
required in the model specification in order to control which phase is
considered to be the condensed liquid state. Previously the liquid phase
was assumed to be the first of the two phases.
2022-11-16 21:36:13 +00:00
9b373b2950 multiphaseEuler: Use saturation models from the thermo library
The multiphaseEuler module now uses saturation models from the
centralised thermophysical properties library.

The control of these models is slightly different than for the previous
multiphaseEuler-specific saturation models. Where previously a
"saturationPressure" or "saturationTemperature" sub-dictionary was
employed, now "pSat" and "Tsat" entries are used which can be specified
flexibly in a similar manner to function1-s. See the previous commit for
details.
2022-11-16 21:36:13 +00:00
5e8eb78e28 thermophysicalModels: Added centralised saturation models
These models are intended to provide saturation curves for use in
multiple solvers and sub-models. They can be specified in a similar
manner to function1-s in that value, type or sub-dictionary entries are
all supported. The following specifications for a constant saturation
pressure are all equivalent:

    // Value specified. Creates "constant" model.
    pSat    8000;

    // Type specified. Coefficients provided in the same dictionary.
    pSat    constant;
    value   8000;

    // Type specified. Coefficients provided in a coeffs dictionary.
    pSat    constant;
    pSatCoeffs
    {
        value   8000;
    }

    // Sub-dictionary specification.
    pSat
    {
        type    constant;
        value   8000;
    }
2022-11-16 21:36:05 +00:00
366e38d34a compressibleVoF: Consolidated library functionality 2022-11-16 20:54:40 +00:00
4d900cfae3 tutorials/modules/CHT/wallBoiling: CHT version of the Euler-Euler wall-boiling case
Supersedes and replaces the tutorials/modules/multiphaseEuler/wallBoiling case
as it is more physical and representative of a real case.

Patch contributed by Juho Peltola, VTT.
2022-11-16 18:40:28 +00:00
21983bbbb6 solvers::isothermalFluid: Added support fixedFluxExtrapolatedPressure with the transonic option
For high-speed flow cases benefiting from extrapolated pressure, e.g. IC engine
piston motion the fixedFluxExtrapolatedPressure pressure BC can now be used with
the transonic pressure solution option.
2022-11-16 18:22:09 +00:00
08ccbdcad6 coupledTemperatureFvPatchScalarField: Corrected handling of the kappa tmp field 2022-11-16 15:44:42 +00:00
affc88e7bf noSlipFvPatchVectorField: Added mesh-motion correction to ensure continuity
Class
    Foam::noSlipFvPatchVectorField

Description
    This boundary condition fixes the velocity to zero at walls and assumes
    the walls are stationary.

    For stationary walls with sliding vertices, e.g. engine liners, the normal
    component of the velocity is set from the wall face-flux to ensure
    continuity.

Usage
    Example of the boundary condition specification:
    \verbatim
    <patchName>
    {
        type            noSlip;
    }
    \endverbatim
2022-11-16 12:27:07 +00:00
a7d40a4fe5 coupledMultiphaseTemperatureFvPatchScalarField: New BC for multiphase CHT cases
Class
    Foam::coupledMultiphaseTemperatureFvPatchScalarField

Description
    Mixed boundary condition for the phase temperature of a phase in an
    Euler-Euler multiphase simulation, to be used for heat-transfer with another
    region in a CHT case.  Optional thin wall material layer resistances can be
    specified through thicknessLayers and kappaLayers entries.

See also
    Foam::coupledTemperatureFvPatchScalarField

The new tutorial case tutorials/modules/CHT/multiphaseCoolingCylinder2D is a
variant of the coolingCylinder2D case in which a 10% oil droplets in water
mixture flows over and cools a hot cylinder.  The case in run with the
foamMultiRun multi-solver executor.
2022-11-15 16:56:56 +00:00
5c0265beb5 tutorials/modules/CHT: Removed unused kappa entries 2022-11-14 13:55:56 +00:00
41931e264c flowRateInletVelocityFvPatchVectorField: Map y_ in mapping constructor if ptf.y_ is set
Avoids recalculating y_ in the reset function for mesh-to-mesh mapping.
2022-11-14 09:40:36 +00:00
74f4f14f6c flowRateInletVelocityFvPatchVectorField: Added setWallDist call in reset function
to reset the wallDist following mesh-to-mesh mapping.
2022-11-13 17:09:59 +00:00
ef9566259a MRFslipFvPatchVectorField: New MRF/SRF boundary condition for slip-walls
Class
    Foam::MRFslipFvPatchVectorField

Description
    Rotating wall-velocity condition to be used for a slip-wall rotating with
    the moving frame in an MRF (multi-reference frame) or SRF (single reference
    frame) case.

    SRF cases are simply MRF cases with a single MRF zone which covers the
    entire domain.

Usage
    Example of the boundary condition specification for an SRF case or MRF
    case with a single zone:
    \verbatim
    <patchName>
    {
        type            MRFslip;
    }
    \endverbatim
    or if the case has several MRF zones the particular zone this patch is in
    must be named explicitly, e.g.:
    \verbatim
    <patchName>
    {
        type            MRFslip;
        MRFZoneName     rotor;
    }

See also
    Foam::MRFPatchField
    Foam::MRFZone
2022-11-12 16:39:32 +00:00
12422f2944 solvers::multiphaseEuler: Updated fixedMultiPhaseHeatFlux -> fixedMultiphaseHeatFlux 2022-11-11 16:15:16 +00:00
f3e4ba553a solvers::multiphaseEuler::multiphaseThermophysicalTransportModels: new library for thermophysical transport models and BCs
The thermophysical boundary conditions have be moved from the
multiphaseCompressibleMomentumTransportModels library into the new
multiphaseThermophysicalTransportModels library.
2022-11-11 14:25:09 +00:00
4cc5f8e964 decomposePar: Fix distribution of uniform data in collated cases 2022-11-11 11:10:46 +00:00
01b4bf55ef multiphaseEuler: Improved mass transfer linearisation w.r.t pressure
Mass transfer rates are now updated following a change in the pressure
if the mass transfer modelling provides a pressure coefficient. This
means that pimple correctors can be used to improve the behaviour of
mass transfer processes that coupled closely to the pressure field.
2022-11-11 09:24:06 +00:00
f088d89127 pplications/solvers::*CourantNo: Removed unnecessary nInternalFaces() test
Resolves bug-report https://bugs.openfoam.org/view.php?id=3929
2022-11-10 14:49:50 +00:00
e1c0207695 solvers::compressibleVoF,compressibleVoF::correctCoNum(): Removed unnecessary nInternalFaces() test
Resolves bug-report https://bugs.openfoam.org/view.php?id=3929
2022-11-10 14:30:21 +00:00
745e4ff80d bash_completion: Updated 2022-11-09 17:01:49 +00:00
7976bf30b5 solvers: twoLiquidMixingFoam: Removed
Simulating the mixing of two miscible liquids is possible my considering
them as different species of a multicomponent fluid. This approach also
supports an arbitrary number of liquids. The twoLiquidMixingFoam solver
has therefore been removed and its tutorials converted to use the
multicomponentFluid solver module.
2022-11-09 16:48:09 +00:00
0203618a91 patchToPatch: Improve robustness of non-intersection methods
The nearest, matching and inverseDistance methods are now based on a
shared "nearby" method. This method creates, for each face, a local
stencil of opposing faces for which the bounding spheres overlap. This
has proven far more robust on cases with both conformal and
non-conformal interfaces.
2022-11-09 11:18:46 +00:00
97a00ff520 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-11-08 16:30:56 +00:00
6d74f70637 fvMeshTopoChangers::refiner: Added changedSinceWrite_
which is set true if the mesh refinement changed since the last time the
refinement history was written so that it can be written only at the following
write time.

Resolves bug-report https://bugs.openfoam.org/view.php?id=3928
2022-11-08 16:27:18 +00:00