Commit Graph

7452 Commits

Author SHA1 Message Date
587f79b39f foamToTecplot360: Link to the foamToVTK library rather than duplicating vtkMesh 2024-03-08 16:29:21 +00:00
9d4fe93bc6 utilities/mesh/manipulation/rotateMesh: Removed
This utility is superseded by the much more general transformPoints. A
rotation between vectors (0 1 0) and (0.707107 0.707107 0), and a
corresponding transformation of all vector and tensor fields, can be
achieved with the following call to transformPoints:

    transformPoints "rotate=((0 1 0) (0.707107 0.707107 0))" -rotateFields
2024-03-08 16:21:32 +00:00
fbfd35dfc4 prghCyclicPressure: New cyclic boundary condition for p_rgh
This boundary condition provides a cyclic condition for p_rgh. It applies
corrections to the value and gradient on both sides of the cyclic to
account for the non-cylicity of the gravitational force.

This condition is only needed when the cyclic patches have a transformation
and a normal component in the direction of gravity. If the cyclic patches
are orthogonal to the direction gravity, then a normal cyclic boundary
condition can be used instead.

Care must be taken when using this boundary condition that the simulation
is actually cyclic. The following constraints apply:

- Both cyclic patches must be oriented in the same way with respect to
  gravity. In practice this means that applicability is limited to cyclics
  with translational transformations.

- The model cannot have any dependence on the absolute value of the
  pressure field. The absolute value of the pressure, in reality, varies
  between each repetition of the geometry; it is not actually formally
  cyclic. Only the gradient of the pressure field can be truly cyclic. This
  model is therefore only valid if the absolute value of the pressure is
  arbitrary, and only the gradient has an effect on the solution. This is
  the case for incompressible multiphase solutions or incompressible
  Boussinesq-like models of density variation. It is not true if (for
  example) a compressible thermodynamic model is being used.

Specification is as follows. A "patchType" entry must be provided to
indicate that this condition overrides the underlying cyclic constraint,
and a "rhoInf" entry is needed (by the owner patch only) to specify the
density of the far-field environment. For example:

    cyclicA
    {
        type            prghCyclicPressure;
        patchType       cyclic;
        rhoInf          1; // [kg/m^3]
    }

    cyclicB
    {
        type            prghCyclicPressure;
        patchType       cyclic;
    }

A tutorial, incompressibleVoF/trayedPipe, has been added to demonstrate
usage of this boundary condition.
2024-03-08 14:43:52 +00:00
a424c3c684 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2024-03-08 11:55:03 +00:00
7a55c70970 snappyHexMesh: Changed movePoints -> setPoints
Avoids the unnecessary calculation of the swept volumes and caching of old-time
points, volumes etc.  Provides cleaner and faster code.
2024-03-08 11:53:26 +00:00
d03f94ebc6 jumpCyclicFvPatchField: Generalisation, construction and consistency improvements
The base jump cyclic patch now no longer assumes that the jump applies
equally to both sides. The jump() method for a field now returns the
jump appropriate for a transfer to the field in question; the base patch
no longer has to do any explicit negation. This provides the opportunity
to create alternative types of jump.

The derived classes are now well defined in terms of their construction.
No conditions require a "value" entry. Whether or not a "jump" entry
is required depends on whether the condition can re-calculate the jump
field without reference to other fields or boundary conditions. The
presence or otherwise of a jump or value entry should no longer result in
lookup failures or floating point errors or similar.
2024-03-07 21:11:08 +00:00
c9c5af65e3 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 20240308 2024-03-07 17:51:36 +00:00
19c3e0cb84 polyTopoChange: Removed remnants of unused and deprecated cell and face inflation
The concept of cell and face inflation proved unworkable in general and has been
replaced by the more flexible and robust cell-splitting combined with
conservative interpolative mapping and mesh morphing as appropriate.
2024-03-07 17:49:04 +00:00
b77e086295 foamGet: clean the pruneFiles function 2024-03-07 11:47:59 +00:00
de422504ba foamGet: remove caseDicts/postProcessing from search path 2024-03-07 11:44:49 +00:00
92da31039e polyTopoChange: Removed unused cell-from-face/point inflation support
The concept of cell inflation from faces or points proved unworkable in general
and has been replaced by the more flexible and robust cell-splitting combined
with conservative interpolative mapping and mesh morphing as appropriate.
2024-03-06 20:30:53 +00:00
dbff8d0f1c polyTopoChange: Merged addMesh into constructor
The addMesh function was not used in any other context.
2024-03-06 15:52:57 +00:00
1576f3c215 polyTopoChange/meshCut: Removed unused code 2024-03-06 15:46:20 +00:00
734df1c370 LangmuirHinshelwood: Corrected concentration derivative
Resolves bug report https://bugs.openfoam.org/view.php?id=4061
2024-03-06 11:11:29 +00:00
b5284a5751 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2024-03-06 10:33:09 +00:00
9ace53663b snappyHexMesh: Added -region option
This allows region meshes to be directly generated in the region sub-directory,
providing equivalent functionality to the -region option on blockMesh.
2024-03-06 10:30:46 +00:00
2dd82773fc multiphaseEuler: phaseTransferModels::reactionDriven: Permit transfers in both directions
The syntax of this model has changed to permit transfers of species in
either direction. A list of transferring species is now given for each
phase, rather than identifying a single reacting phase. For example:

    phaseTransfer
    (
        vapour_particles
        {
            type reactionDriven;

            // TiO2 and TiO2_s are created by reactions in the vapour
            // and are then transferred to the particles
            species.vapour (TiO2 TiO2_s);

            // H2O is created by reactions in the particles and is then
            // transferred to the vapour
            species.particles (H2O);
        }
    );
2024-03-05 11:28:06 +00:00
0840ae5d37 MeshZones: Added mesh change functions
in preparation for zones updating themselves on mesh topology change
2024-03-04 21:58:52 +00:00
c161539597 filmEjectionModels::BrunDripping: Removed unnecessary ejectionModel::correct() 2024-03-04 15:40:03 +00:00
5a0e913edc addPatchCellLayer: Removed redundant face zone clutter 2024-03-02 14:46:20 +00:00
e40c5324c5 polyTopoChangeMap: Removed unused and redundant zone maps 2024-03-01 18:25:07 +00:00
545ed8a0ee kivaToFoam: Switched-off functionObjects 2024-03-01 11:47:44 +00:00
7f8847bab0 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2024-02-29 15:43:49 +00:00
55410bedf5 laminarModels::lambdaThixotropic: Reformulated lambda equation in conservative form
to support standard fvModel sources.
2024-02-29 15:40:39 +00:00
4f72951f7e planeToFaceZone: Corrected operation across transformed couples 2024-02-28 16:39:17 +00:00
4bbcf7eead patchIntersection: Debug write source patch point normals 20240228 2024-02-28 12:41:24 +00:00
f5ea2dec99 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2024-02-28 12:02:51 +00:00
8ebff8616f multiValveEngineState: Execute at start with the clearance initialised to 0
Alternative resolution of bug-report https://bugs.openfoam.org/view.php?id=4054
2024-02-28 12:02:00 +00:00
1622e19021 functionObjects::cylindrical: Added packaged configuration
This function can now be run interactively using the following command:

    foamPostProcess -func "cylindrical(origin=(0 0 0), axis=(0 0 1), U)"

Or it can be executed at run time by adding the following entry in the
system/functions file:

    #includeFunc cylindrical(origin=(0 0 0), axis=(0 0 1), U)
2024-02-28 10:46:10 +00:00
66835ba9a9 functionObjects::cylindrical: Corrected normalisation of axes
Resolves bug report https://bugs.openfoam.org/view.php?id=4058
2024-02-28 10:46:10 +00:00
da16a1b0a9 MeshZones: Added zonesFlipFace function
Needed to support overlapping faceZones with topology change

        //- Return the list of flips for the facei
        //  for each of the face zones in faceiZones
        boolList zonesFlipFace
        (
            const label facei,
            const labelList& faceiZones
        );
2024-02-28 10:41:47 +00:00
b65cb2b087 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2024-02-27 15:13:00 +00:00
cf54411e0e MeshZones: Added whichZones function
//- Given a global object index, return the list of zones it is in
        labelList whichZones(const label objectIndex) const;

which will replace the original whichZone function

        //- Given a global object index, return the zone it is in.
        // If object does not belong to any zones, return -1
        // *** This will be replaced by whichZones
        label whichZone(const label objectIndex) const;

so that cells, faces and points can exist in any number of zones.
2024-02-27 14:50:02 +00:00
cbec00456f waveSpectra::GodaJONSWAP: New irregular wave spectrum
This is an alternative, approximate parameterisation of the JONSWAP
spectrum, in which the significant wave height and period are specified
instead of the wind speed and fetch.

Example specification, in constant/waveProperties:

    waves
    (
        irregular
        {
            spectrum GodaJONSWAP;
            Hs      2;  // <- significant wave height [m]
            Ts      6;  // <- significant wave period [s]
            n       12; // <- number of samples []
            angle   0;
        }
    );
2024-02-27 09:58:41 +00:00
8ba48acb7f Test-hexRef8: Removed
This application does not work and it is not clear why it is
necessary when hexRef8's operation is tested extensively across multiple
tutorial cases.
2024-02-23 21:43:44 +00:00
fdf76ebfb7 mergePatchPairs: Avoid adding duplicate vertex between edges added to edge modified faces 2024-02-23 16:42:43 +00:00
ef1b4fd386 primitiveMeshCheck: Added "***" to the "Faces with invalid vertex labels found" error message 2024-02-23 15:34:34 +00:00
f6e432f820 patchIntersection: Added test application 2024-02-23 15:01:37 +00:00
f5f50e0936 patchIntersection: Fix bug in mapping from tri to face patch 2024-02-23 15:01:31 +00:00
e99abc2d85 mergePatchPairs: Correct the orientation of residual faces of the target patch
In the case of partial overlap partial and complete faces of the original
patches remain and are re-introduced into the stitched mesh.
2024-02-22 14:49:10 +00:00
16b8bf5eae GeometricBoundaryField: Construct patch fields in patch order
Constructing the fields in patch order is logical, and preferable to
using the potentially arbitrary order in which the fields are specified
in the field dictionary. It also resolves the issue that the
construction of jump cyclics can fail if the patch fields are not
specified in the same order as the patches.
2024-02-22 09:09:20 +00:00
646a9f6fd9 etc/config.sh/bash_completion: Updated 2024-02-21 19:25:24 +00:00
be00d3ecdc includeFuncEntry: Added functionObjectTemplatePath for foamPostProcess 2024-02-21 16:52:17 +00:00
1896616caf foamPostProcess: Added -listTemplates option to list the available functionObject templates
located in the etc/caseDicts/functionTemplates directory
2024-02-21 16:37:15 +00:00
11be8e6a3f etc/caseDicts/functionTemplates: dedicated location for template (coded) functions 2024-02-21 16:15:09 +00:00
8b67521d49 fvMeshMovers::multiValveEngine: Added support for pointZones frozen with respect specific moving object
for example it is now possible to freeze the cylinder head points with respect
to the piston motion but still move with respect to the valve motion by
specifying the cylinderHead pointZone only in the piston specification, e.g.:

    piston
    {
        patches             (piston);
        axis                (0 0 1);

        motion
        {
            type            crankConnectingRodMotion;

            conRodLength    0.147;
            stroke          0.08423;
        }

        // Move the points in the piston bowl with the piston
        movingZones         (pistonBowl);

        // Freeze the points in the cylinder head
        frozenZones         (cylinderHead);

        // There is no need to update the motion weights
        fractionalTravelInterval       1;
    }
2024-02-21 12:42:48 +00:00
4d3228d2f6 fvModels: Removed "Base" suffix from classes with no similarly named derivation 2024-02-20 21:48:57 +00:00
00ad49cf8d createNonConformalCouples: Ensure the polyMesh is written 2024-02-20 21:48:57 +00:00
811faaa0be etc/caseDicts/functions/coded: added example coded function objects 2024-02-20 18:47:06 +00:00
eaf0531aa0 etc/caseDicts: Added postProcessing directory link for backwards compatibility 2024-02-20 15:37:44 +00:00