Commit Graph

6413 Commits

Author SHA1 Message Date
a00cf16bd7 solvers::isothermalFluid: Updated for mesh-motion with NCC and mesh-to-mesh mapping 2022-12-08 17:37:37 +00:00
e113f66cf6 CloudFunctionObjects: Flux: Corrected flux definition 2022-12-08 15:37:41 +00:00
7efb6cc849 Removed deprecated calls to std::random_shuffle 2022-12-08 10:32:03 +00:00
364e402b5b Resolve warning messages generated by Clang-14 2022-12-08 08:35:47 +00:00
3d41f85a1c codeStream: Prevent unnecessary info and debug messaging 2022-12-07 16:21:48 +00:00
1fce6acf01 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-12-07 14:48:30 +00:00
a6456cdd73 solvers/modules: turbulence -> momentumTransport
Momentum transport in the modular solvers is generalised and run-time
selectable, supporting laminar, generalised laminar or non-Newtonian as well LES
or RAS turbulence modelling so it is clearer to name the momentum transport
model instance 'momentumTransport' rather than 'turbulence'.
2022-12-07 14:45:49 +00:00
844b4d8e7f rhoParticleFoam: Permit use with thermo clouds 2022-12-07 14:21:31 +00:00
c397554043 thermophysicalTransportModel: Reinstated missing function 2022-12-07 13:17:39 +00:00
a733a2f6c4 compressibleInterPhaseThermophysicalTransportModel: Added q() function for post-processing tools 2022-12-07 12:29:21 +00:00
66193bd9c2 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-12-07 11:58:52 +00:00
9cde5a0c5d compressibleVoF::compressibleInterPhaseThermophysicalTransportModel: Added to support CHT
With the addition of the compressibleInterPhaseThermophysicalTransportModel
thermophysicalTransportModel the compressibleVoF modular solver now support
conjugate heat transfer (CHT).

Th new tutorials/modules/CHT/VoFcoolingCylinder2D tutorial case is provided to
demonstrate this functionality and shows a heated ceramic rod with air flowing
over the top and water underneath.
2022-12-07 11:56:34 +00:00
456b7e31ee vtkPVFoamVolFields, semiImplicitSource: Use VolInternalField<Type> to simplify code 2022-12-07 11:55:53 +00:00
8208ca6cc7 functionObjects: Added patchCutLayerAverage
This function object writes graphs of patch face values, area-averaged in
planes perpendicular to a given direction. It adaptively grades the
distribution of graph points to match the resolution of the mesh.

Example of function object specification:

    patchCutLayerAverage1
    {
        type            patchCutLayerAverage;
        libs            ("libpatchCutLayerAverageFunctionObject.so");

        writeControl    writeTime;
        writeInterval   1;

        patch           lowerWall;
        direction       (1 0 0);
        nPoints         100;
        interpolate     no;

        fields          (p U);

        axis            x;
        setFormat       raw;
    }

A packaged function object is also included, which permits the following
syntax to be used, either with #includeFunc in the system/controlDict,
or with the -func option to foamPostProcess:

    graphPatchCutLayerAverage
    (
        funcName=aerofoilLowerPressure,
        patch=aerofoilLower,
        direction=(0.15 -0.016 0),
        nPoints=100,
        p
    )
2022-12-06 13:00:56 +00:00
2b9cfc1902 cutPoly: Fixed typo 2022-12-06 08:38:04 +00:00
818eed7a3d rigidBodyState, sixDoFRigidBodyState: Change angleFormat -> angleUnits with backwards-compatibility
angleUnits is a more logical name for the user-input as it specifies the units
of the angles written rather than the format of the numbers.  The previous name
angleFormat is supported for backwards-compatibility

Class
    Foam::functionObjects::rigidBodyState

Description
    Writes the rigid body motion state.

Usage
    \table
        Property     | Description                  | Required | Default value
        type         | type name: rigidBodyState    | yes      |
        angleUnits   | degrees or radians           | no       | radians
    \endtable

    Example of function object specification:
    \verbatim
    rigidBodyState
    {
        type           rigidBodyState;
        libs           ("librigidBodyState.so");
        angleUnits     degrees;
    }
    \endverbatim

Class
    Foam::functionObjects::sixDoFRigidBodyState

Description
    Writes the 6-DoF motion state.

    Example of function object specification:
    \verbatim
    sixDoFRigidBodyState
    {
        type           sixDoFRigidBodyState;
        libs           ("libsixDoFRigidBodyState.so");
        angleUnits     degrees;
    }
    \endverbatim

Usage
    \table
        Property     | Description                  | Required | Default value
        type         | type name: sixDoFRigidBodyState    | yes |
        angleUnits  | degrees or radians           | no       | radian
    \endtable
2022-12-05 19:57:12 +00:00
02c7257eb0 ZoltanDecomp: Check for no points on any processor during redistribution and throw a fatal error
Zoltan hangs if a processor has no points/cells during redistribution and
unfortunatel Zoltan can generate distributions in which one or processors has no
cells.
2022-12-05 19:54:39 +00:00
a140f7d653 indexedOctree::findNode: Return -i if the nodes are empty
Avoids unexpected segmentation fault during redistribution if a processor has no
cells.
2022-12-05 19:53:10 +00:00
be844f8340 MomentumTransferPhaseSystem: Name the interpolation of pPrime consistently between face and cell momentum forms
Simplifies the setting of the scheme for the phase pressure, e.g. choosing localMax

interpolationSchemes
{
    default     linear;
    pPrime      localMax;
}

improves stability and reduces chequerboarding in the solution at higher Courant
numbers.
2022-12-04 15:51:37 +00:00
df1fd09f63 Further code simplification: GeometricField<GType, fvsPatchField, surfaceMesh> -> SurfaceField<GType> 2022-12-03 13:51:48 +00:00
ba995e18fa Further code simplification: Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh> -> VolField<Type>
and Foam::GeometricField<Type, Foam::fvsPatchField, Foam::surfaceMesh> -> SurfaceField<Type
2022-12-03 13:24:46 +00:00
966f015082 Further code simplification: Foam::GeometricField<Type, Foam::fvPatchField, Foam::volMesh> -> VolField<Type> 2022-12-02 22:31:21 +00:00
2f4dd4fe27 Code simplification: GeometricField<Type, fvPatchField, volMesh> -> VolField<Type>
Using the VolField<Type> partial specialisation of
GeometricField<Type, fvPatchField, volMesh>
simplifies the code and improves readability.
2022-12-02 22:04:45 +00:00
fe368d5332 Code simplification: GeometricField<Type, fvsPatchField, surfaceMesh> -> SurfaceField<Type>
Using the SurfaceField<Type> partial specialisation of
GeometricField<Type, fvsPatchField, surfaceMesh>
simplifies the code and improves readability.
2022-12-02 19:02:15 +00:00
e84300d124 Code simplification: GeometricField<Type, pointPatchField, pointMesh> -> PointField<Type>
Using the PointField<Type> partial specialisation of GeometricField<Type,
pointPatchField, pointMesh> simplified the code and improves readability.
2022-12-02 15:24:50 +00:00
5f7993dab4 Replaced inconsistently named local typedefs with VolField, SurfaceField and PointField
making the code more consistent and readable.
2022-12-02 10:54:21 +00:00
73c5624acf functionObjects/field: Simplified code using the VolField and SurfaceField partial specialisations
replacing the inconsistently named local typedefs and direct use of the more
complex GeometricField template types.
2022-12-01 22:01:54 +00:00
e8078ca235 multiphaseEuler::MomentumTransferPhaseSystem:alphaDByAf: multiphase consistent replacement for DByAfs
In order that the phase-fractions sum to 1 it is necessary that the same
diffusivity is used for ALL phases in the implicitPhasePressure option.  This is
guaranteed by the new alphaDByAf function which returns a single
surfaceScalarField diffusivity to be used when forming the Laplacian term in the
implicit phase-fraction diffusion correction equation in phaseSystemSolve.

The phase-pressure and turbulent dispersion interface terms are summed over all
phases and interfaces in alphaDByAf to form a single diffusivity.
2022-12-01 21:12:04 +00:00
e77a170b82 constSolidThermo: Updated to use VolField template partial specification 2022-12-01 09:53:56 +00:00
3e8b97fef6 functionObjects: fieldAverage: Corrected initialisation behaviour
The fieldAverage can now average fields that do not exist at
construction time, and it also supports restart on cases in which
the mesh topology is changing.
2022-12-01 09:28:19 +00:00
ed7e703040 Time::timeName(): no longer needed, calls replaced by name()
The timeName() function simply returns the dimensionedScalar::name() which holds
the user-time name of the current time and now that timeName() is no longer
virtual the dimensionedScalar::name() can be called directly.  The timeName()
function implementation is maintained for backward-compatibility.
2022-11-30 15:53:51 +00:00
262672ec10 tutorials/combustion/XiFoam/RAS/moriyoshiHomogeneous: Created a sub-directory for the case and run scripts 2022-11-30 11:49:33 +00:00
7286789b40 functionObjects::fieldAverage: Corrected restart when running with user-time 2022-11-30 11:46:34 +00:00
8d1374b9b1 Time: Changed the "name" of beginTime, startTime and endTime to the user-time name of the corresponding time 2022-11-30 11:44:30 +00:00
a7c63e2a30 Time::timeName(): No longer necessary to be virtual
The user-times are no longer derived from Time but run-time plug-ins so Time
functions do not need to be virtual for this purpose.
2022-11-29 18:11:44 +00:00
303c016704 functionObjects::timeActivatedFileUpdate: Changed file read time specification to user-time
Also changed the keyword timeVsFile to the more logical fileVsTime with
backward-compatibility.

Class
    Foam::functionObjects::timeActivatedFileUpdate

Description
    Performs a file copy/replacement once a specified time has been reached.

Usage
    Example usage to update the fvSolution dictionary at 0.1, 0.2 and 0.3s
    during the run:
    \verbatim
    fileUpdate1
    {
        type            timeActivatedFileUpdate;

        libs            ("libutilityFunctionObjects.so");

        writeControl    timeStep;
        writeInterval   1;
        fileToUpdate    "$FOAM_CASE/system/fvSolution";
        fileVsTime
        (
            (-1 "$FOAM_CASE/system/fvSolution.0")
            (0.10 "$FOAM_CASE/system/fvSolution.10")
            (0.20 "$FOAM_CASE/system/fvSolution.20")
            (0.35 "$FOAM_CASE/system/fvSolution.35")
        );
    }
    \endverbatim

Resolves bug-report https://bugs.openfoam.org/view.php?id=3938
2022-11-29 14:33:31 +00:00
c0ce311444 Renamed constAnIsoSolidTransport -> constAnisoSolidTransport for consistency with standard OpenFOAM naming convention
and the new constAnisoSolidThermo class.
2022-11-28 17:53:24 +00:00
5c296cbc8e constAnisoSolidThermo: New solid thermophysical properties class support anisotropic thermal conductivity
Description
    Uniform or non-uniform constant anisotropic solid thermodynamic properties

    Each physical property can specified as either \c uniform in which case the
    value entry is read, \c zonal in which case the value entry and zone list
    are read or \c file in which case the field file in read from the constant
    directory.  The thermal conductivity \c Kappa is anisotropic and read as a
    diagonal tensor or diagonal tensor field provided in the form of a vector
    or vector field.

Usage
    Example of uniform constant solid properties specification:
    \verbatim
        thermoType          constAnisoSolidThermo;

        rho
        {
            type        uniform;
            value       8940;
        }

        Cv
        {
            type        uniform;
            value       385;
        }

        Kappa
        {
            type        uniform;
            value       (380 100 100);
        }
    \endverbatim

    Example of zonal constant solid properties specification where Kappa is
    different in different zones:
    \verbatim
        thermoType          constSolidThermo;

        rho
        {
            type        uniform;
            value       8940;
        }

        Cv
        {
            type        uniform;
            value       385;
        }

        Kappa
        {
            type        zonal;
            value       (380 380 380);

            zones
            {
                heater      (560 560 560);
                insulation  (10  100 100);
            }
        }
    \endverbatim

    Example of non-uniform constant solid properties specification:
    \verbatim
        thermoType          constAnisoSolidThermo;

        rho
        {
            type        file;
        }

        Cv
        {
            type        file;
        }

        Kappa
        {
            type        file;
        }
    \endverbatim
    where each of the field files are read from the constant directory.
2022-11-28 17:52:09 +00:00
a25f99dba3 constSolidThermo: Added support for properties to be specified per-zone
Description
    Uniform or non-uniform constant solid thermodynamic properties

    Each physical property can specified as either \c uniform in which case the
    value entry is read, \c zonal in which case the value entry and zone list
    are read or \c file in which case the field file in read from the constant
    directory.

Usage
    Example of uniform constant solid properties specification:
    \verbatim
        thermoType          constSolidThermo;

        rho
        {
            type        uniform;
            value       8940;
        }

        Cv
        {
            type        uniform;
            value       385;
        }

        kappa
        {
            type        uniform;
            value       380;
        }
    \endverbatim

    Example of zonal constant solid properties specification where kappa is
    different in different zones:
    \verbatim
        thermoType          constSolidThermo;

        rho
        {
            type        uniform;
            value       8940;
        }

        Cv
        {
            type        uniform;
            value       385;
        }

        kappa
        {
            type        zonal;
            value       380;

            zones
            {
                heater      560;
                insulation  100;
            }
        }
    \endverbatim

    Example of non-uniform constant solid properties specification:
    \verbatim
        thermoType          constSolidThermo;

        rho
        {
            type        file;
        }

        Cv
        {
            type        file;
        }

        kappa
        {
            type        file;
        }
    \endverbatim
    where each of the field files are read from the constant directory.
2022-11-28 17:50:34 +00:00
47fb7e4709 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-11-28 08:46:28 +00:00
3aea199ebe multiphaseEuler::IATEsources::IATEturbulentBreakUp: Corrected turbulent Weber number and source expression
Resolves bug-reports:
https://bugs.openfoam.org/view.php?id=3936
https://bugs.openfoam.org/view.php?id=3935
2022-11-28 08:44:56 +00:00
089778b878 Guides: corrections to 4.9.2 Macro expansion 2022-11-26 18:13:21 +00:00
ca97e77adb Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-11-25 22:12:12 +00:00
96cf91b5bb chemistryModel: Updated for clang 2022-11-25 22:11:58 +00:00
f69b9fa4a7 Lagrangian: CloudFunctionObjects: Flux functions, and improved handling of face/patch hooks
Three functions for generating fluxes of the Lagrangian parcels have
been added. These are 'numberFlux', 'volumeFlux' and 'massFlux'. They
require only the type specifying; no further controls are needed. If it
is desired only to generate and register the field, and not write it,
then a 'write no;' setting can be applied.

For example, in constant/cloudProperties:

    cloudFunctions
    {
        massFlux1
        {
            type        massFlux; // numberFlux, volumeFlux, or massFlux
            write       no;
        }
    }

The 'postFace' hook is now called at the start of a tracking step, if
the particle is on a face. Execution is therefore reliably *after* an
interaction with a face. There is a new 'preFace' hook which is called
at the end of tracking; i.e., *before* an interaction with a face. The
'postPatch' hook is unchanged, but it is triggered more carefully so
that it does actually execute *after* the patch interaction.

This fixes a number of issues associated with interaction with
constraint and coupled patches. It also allows for functions to be
defined that have dependence on the direction (relative to the face
normal) in which a particle-face interaction takes place.
2022-11-25 15:19:57 +00:00
6ccaf643e0 Lagrangian: LocalInteraction: Consistent handling of constraint types
The localInteraction model now no longer requires specification of an
interaction on any constrained patch type (e.g., symmetry, cyclic, ...).
Non-constrained types (patch, wall, ...) require an interaction to be
specified as before and will trigger an error if this is not the case.

In addition, constrained patches can be overridden by providing a
'patchType' specifier, in the same way as would be done to override a
constrained boundary condition for finite volume.

The filter tutorial now correctly demonstrates something unique; i.e.,
particles rebounding from a cyclic. It has therefore been reinstated.

Resolves (properly) bug report https://bugs.openfoam.org/view.php?id=3923
2022-11-25 15:18:36 +00:00
4d7bd7574f dynamicMesh: Removed unused code 2022-11-25 15:12:02 +00:00
6bfa468472 solidThermophysicalTransportModels::anisotropic: Corrected alignment test for parallel operation 2022-11-25 12:47:30 +00:00
386588b544 functionObjects::rigidBodyPoints: New functionObject to track the motion of points on a rigid body
Description
    Writes the position, linear and angular velocities and accelerations of a
    list of points on a body specified in the body local coordinate system.

Usage
    \table
        Property     | Description                  | Required | Default value
        type         | type name: rigidBodyPoints   | yes      |
        angleUnits   | degrees or radians           | no       | radians
        body         | name of the body             | yes      |
        points       | list of points on the body   | yes      |
    \endtable

    Example of function object specification:
    \verbatim
    rigidBodyPoints
    {
        type           rigidBodyPoints;
        libs           ("librigidBodyState.so");

        angleUnits     degrees;

        body           floatingObject;

        points
        (
            point1     (0 0 0)
            point2     (0.1 0.1 0.25)
        );
    }
    \endverbatim
2022-11-24 18:09:37 +00:00
e52c4e52a5 radiationModels::absorptionEmissionModels: Corrected documentation 2022-11-24 18:06:36 +00:00