Commit Graph

2456 Commits

Author SHA1 Message Date
8bd14164ad utilities removeFaces and createEngineZones: Replaced Pout with Info 2024-04-18 08:27:49 +01:00
6e754fd650 extrudeToRegionMesh: moved setting the mesh instance to after the deletion of empty patches 2024-04-17 17:37:42 +01:00
4707bc917e reorderPatches: New utility to reorder patches
corresponding to a give order, another case or another region.

Description
    Utility to reorder the patches of a case

    The new patch order may be specified directly as a list of patch names
    following the -patchOrder option or from the boundary file of a reference
    case specified using the -referenceCase option with or without the
    -referenceRegion option.

    This utility run either serial or parallel but either way the reference
    case boundary file is read from the constant directory.

Usage
    \b reorderPatches

    Options:
      - \par -patchOrder \<patch names\>
        Specify the list of patch names in the new order.

      - \par -referenceCase \<case path\>
        Specify the reference case path

      - \par -referenceRegion \<name\>
        Specify an alternative mesh region for the reference case.
        If -referenceCase is not specified the current case is used.

      - \par -overwrite \n
        Replace the old mesh with the new one, rather than writing the new one
        into a separate time directory

      - \par -region \<name\>
        Specify an alternative mesh region.
2024-04-17 16:15:10 +01:00
08870e4560 PhysicalPropertiesThermo, mirrorMesh, renumberMesh: Clang compilation fixes 2024-04-16 16:14:56 +01:00
1d05b224cb randomGenerator: Renamed Random 2024-04-16 16:14:56 +01:00
f0c63237aa multiphaseEuler: Corrected printing of interface names 2024-04-16 16:14:56 +01:00
95cb22b8bf multiphaseEuler::cellPressureCorrector: Removed redundant code 2024-04-15 09:50:27 +01:00
dfb816c511 foamPostProcess: Load the modular solver library before constructing the mesh
to ensure all the solver specific patch types are available when the mesh is
constructed.
2024-04-13 09:44:01 +01:00
ed59ea40bf vtkPVFoam: Updated handling of zones 2024-04-05 11:47:49 +01:00
985ec93636 dragModels::segregated: Corrected the muAlphaI expression
Corrected according to the original reference:
    Marschall, H. (2011).
    Towards the numerical simulation of multi-scale two-phase flows.
    PhD Thesis, TU München.
2024-04-03 17:33:58 +01:00
24a3bfdd17 DimensionedField, GeometricField: Consistent field-access interface 2024-04-03 15:14:45 +01:00
929952727c Renamed cellZones -> cellZoneList, faceZones -> faceZoneList, pointZones -> pointZoneList
to allow the names cellZones, faceZones and pointZones to be used for the
namespaces for run-time selectable zones.
2024-04-02 17:00:51 +01:00
acd2708db5 renumberMesh: Corrected renumbering of zones 2024-03-28 20:27:17 +00:00
3123551bfa Zones: Now derived from PtrListDictionary to provide faster lookup
Now the HashTable underlying PtrListDictionary is used for zone lookup by name
which is a lot faster than the linear search method used previously if there are
a large number of zones.
2024-03-28 20:25:29 +00:00
4ad52ea108 zones: General code clean-up and rationalisation to reduce duplication 2024-03-27 13:29:44 +00:00
fa36bc75cc faceZones: New class to replace the original typedef
The faceZone specific functionality from Zones moved to the faceZones class.
2024-03-26 22:42:36 +00:00
df6d3bf9d2 Renamed meshCellZones -> cellZones, meshFaceZones -> faceZones and meshPointZones -> pointZones
The prefix "mesh" was confusing and obviously relevant or helpful in
understanding the purpose or operation of these zone container classes.
2024-03-26 14:52:16 +00:00
ca2cae8c38 Zone: New templated replacement for zone
This allows more functionality from the cellZone, faceZone and pointZone derived
classes to be moved into the base class.
2024-03-26 12:25:42 +00:00
a833a81560 polyTopoChange: Removed restrictive faceZone functionality
Now faceZones are handled directly by the applications and the new
faceZone::topoChange function so that any face can now be in any number of
zones, significantly increasing the flexibility and usefulness of faceZones.

This completes the generalisation of cellZone, faceZone and pointZone to support
multiple zones for each cell, face or point respectively.  Next step will be to
make zones polymorphic and run-time selectable so that they can alter during the
run and adapt to moving meshes for example.
2024-03-25 14:32:59 +00:00
09c8263d08 faceZone: Added new insert function to add elements from a Map<bool>
//- Insert given indices and corresponding face flips into zone
        void insert(const Map<bool>& newIndices);
2024-03-21 16:32:42 +00:00
33aa449682 extrudeMesh: Added optional generation of cellZones for the extruded cells
For a case extruding patches left and right:

    sourcePatches   (left right);

if the optional zoneNames entry is also specified in extrudeMeshDict

    zoneNames       (leftCells rightCells);

the cells extruded from the left patch are added to the leftCells cellZone and
the cells extruded from the right patch are added to the rightCells cellZone.

Alternatively if a single zone name is specified, e.g.

    zoneNames       (extrudedCells);

then cells extruded from the left and right patches are added to the
extrudedCells cellZone.

If the number of patches to extrude is large it might be more convenient for
the cells extruded from each patch to be added to a cellZone named the same as
each patch, this option is selected by setting zoneNames to patchNames:

    zoneNames       (patchNames);
2024-03-19 11:16:16 +00:00
4b6b492408 renumberMesh: Removed the deprecated and unmaintained zoltan option 2024-03-16 23:43:32 +00:00
d8df578920 solvers::functions: Prevent creation of a functions sub-solver 2024-03-15 14:49:47 +00:00
bb77e8e66f polyTopoChangeMap: Updated the "reuse" constructor to use std::move 2024-03-15 14:41:03 +00:00
b41e0857ef polyTopoChange: Removed restrictive cellZone functionality
Now cellZones are handled directly by the applications and the new
cellZone::topoChange function so that any cell can now be in any number of
zones, significantly increasing the flexibility and usefulness of cellZones.

The same rationalisation and generalisation will be applied to faceZones in the
future.
2024-03-15 10:24:46 +00:00
9239b3bfa9 polyTopoChange: Removed restrictive pointZone functionality
Now pointZones are handled directly by the applications and the new
pointZone::topoChange function so that any point can now be in any number of
zones, significantly increasing the flexibility and usefulness of pointZones.

The same rationalisation and generalisation will be applied to cellZones and
faceZones in the future.
2024-03-13 20:36:00 +00:00
9e3d5fd521 snappyHexMesh: Removed unused -noFunctionObjects option 2024-03-13 14:26:51 +00:00
41864093ca polyTopoChange::modifyCell: Replaced by direct specification of the cell zone 2024-03-12 14:08:10 +00:00
18504eef62 phaseTransferModels::reactionDriven: Corrected access to species names 2024-03-12 11:01:15 +00:00
3f1e6e796f surface meshes: Renamed movePoints -> setPoints for consistency with polyMesh
The surface mesh setPoints function resets the points without caching the old
points or swept areas so is the equivalent of the polyMesh::setPoints rather
than movePoints.
2024-03-08 17:28:55 +00:00
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
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
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
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
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
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
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
f6e432f820 patchIntersection: Added test application 2024-02-23 15:01:37 +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
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
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
0ccea53d39 createEngineZones: New utility to create engine mesh control pointZones
This utility is used as a pre-processing step for the multiValveEngine
fvMeshMover and provides two options:

    -cylinderHead to generate the pointZone within the cylinder head
    -pistonBowl to generate the pointZone within the piston bowl

The updated tutorials/XiFluid/kivaTest case demonstrates the application of this
utility.
2024-02-13 21:44:46 +00:00