Commit Graph

6399 Commits

Author SHA1 Message Date
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
2d8537759f driftFluxFoam: Added drift velocity to Courant number test
to aid stability in cases where the drift velocity is comparable to the mean
velocity.
2022-11-24 08:43:09 +00:00
f2b837579c Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-11-23 17:31:35 +00:00
4a0908a7bb singleLayerRegionModel: merged into surfaceFilm 2022-11-23 17:30:42 +00:00
723f522c51 cutPoly: New polyhedral cutting routines and isoSurface algorithm
A set of routines for cutting polyhedra have been added. These can cut
polyhedral cells based on the adjacent point values and an iso-value
which defines the surface. The method operates directly on the
polyhedral cells; it does not decompose them into tetrahedra at any
point. The routines can compute the cut topology as well as integrals of
properties above and below the cut surface.

An iso-surface algorithm has been added based on these polyhedral
cutting routines. It is significantly more robust than the previous
algorithm, and produces compact surfaces equivalent to the previous
algorithm's maximum filtering level. It is also approximately 3 times
faster than the previous algorithm, and 10 times faster when run
repeatedly on the same set of cells (this is because some addressing is
cached and reused).

This algorithm is used by the 'isoSurface', 'distanceSurface' and
'cutPlane' sampled surfaces.

The 'cutPlane' sampled surface is a renaming of 'cuttingPlane' to make
it consistent with the corresponding packaged function. The name
'cuttingPlane' has been retained for backwards compatibility and can
still be used to select a 'cutPlane' surface. The legacy 'plane' surface
has been removed.

The 'average' keyword has been removed from specification of these
sampled surfaces as cell-centred values are no longer used in the
generation of or interpolation to an iso-surface. The 'filtering'
keyword has also been removed as it relates to options within the
previous algorithm. Zone support has been reinstated into the
'isoSurface' sampled surface. Interpolation to all these sampled
surfaces has been corrected to exactly match the user-selected
interpolation scheme, and the interpolation procedure no longer
unnecessarily re-generates data that is already available.
2022-11-23 16:56:23 +00:00
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