Commit Graph

5970 Commits

Author SHA1 Message Date
cc4f63fbd6 codedFvModel: Restored documentation removed in error 2022-06-14 09:17:22 +01:00
c451f73ed1 codedFvModel: Removed obsolete bits of documentation 2022-06-14 08:19:44 +01:00
737d737b22 polyMesh::setPoints: New function to reset the points
without calculating the mesh-motion fluxes or cache the old points.  Used for
efficient reconstruction of moving mesh cases run in parallel.
2022-06-14 00:21:51 +01:00
6437de8082 domainDecomposition: Call polyMesh::movePoints rather than fvMesh::movePoints
so that polyMesh::moving is not set during reconstruction of moving mesh cases.
2022-06-11 09:48:09 +01:00
867badc024 polyMesh, fvMesh: The moving and topoChanged flags are now maintained by fvMesh
avoiding problems with mesh generation, pre/post-processing applications
etc. triggering inappropriate changes to the moving and topoChanged states which
are only needed for updates in solvers corresponding to mesh changes.
2022-06-10 16:50:41 +01:00
6ff2603fce Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-06-10 16:50:06 +01:00
59f7a77093 lagrangian: PatchCollisionDensity: Corrected mass-density fields 2022-06-10 12:04:10 +01:00
d54f5ab9ad polyMesh: Changed topoChanging -> topoChanged
The topoChanged flag now indicates that the mesh topology has changed at the
start of the current time-step rather than it is changing during the run, for
subsequent time-steps without topology change it is set false until the next
topology change.
2022-06-10 12:01:28 +01:00
63ef6f59cf transonicEntrainmentPressureFvPatchScalarField: blending Mach No Mb now optional input
Mb, the Mach number at which blending to zeroGradient starts, can now be
specified in the input:

Description
    This boundary condition provides an entrainment condition for pressure
    including support for supersonic jets exiting the domain.

Usage
    \table
        Property     | Description                 | Required | Default value
        rho          | Density field name          | no       | rho
        psi          | Compressibility field name  | no       | thermo:psi
        gamma        | Heat capacity ratio (cp/Cv) | yes      |
        Mb           | Blending Mach No            | no       | 0.5
        phi          | Flux field name             | no       | phi
        p0           | Reference pressure          | yes      |
    \endtable

    Example of the boundary condition specification:
    \verbatim
    <patchName>
    {
        type            transonicEntrainmentPressure;
        gamma           1.4;
        Mb              0.3;
        p0              uniform 1e5;
    }
    \endverbatim
2022-06-09 21:21:02 +01:00
a9bd590793 fvMeshTopoChangers: Set topoChanging false before any updates and true on the first update
so that subsequent fvMeshTopoChangers in the fvMeshTopoChangers::list know if
any changes have already been applied to the mesh.
2022-06-08 16:55:57 +01:00
7d7d609975 fvMeshTopoChangers::linearValveFvMesh,linearValveLayersFvMesh: Removed, superseded by NCC
All sliding interfaces should use NCC.
2022-06-08 12:37:33 +01:00
ec02a0e881 fvMeshTopoChangers::raw: Prototype, no longer compiled by default
Description
    Prototype fvMeshTopoChanger without any added functionality.

    Can be used as the starting point for any polyTopoChanger based
    topo-changer.
2022-06-08 12:33:11 +01:00
f22e489a70 fvMeshTopoChangers::mixerFvMesh: Removed, superseded by NCC 2022-06-08 12:31:54 +01:00
45428b3260 fvMeshTopoChangers::list: New fvMeshTopoChanger which executes a list of fvMeshTopoChangers in order
Specified in the dynamicMeshDict as type list with the topoChangers dictionary
list following, e.g.

topoChanger
{
    type    list;

    libs    ("libfvMeshTopoChangers.so");

    topoChangers
    {
        refiner
        {
            type    refiner;
            .
            .
            .
        }

        another
        {
            type    another;
            .
            .
            .
        }
    }
}
2022-06-08 11:35:23 +01:00
c9d2b88a8f Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-06-07 16:31:19 +01:00
39422ac00a decompositionMethod: Removed the test for cellWeights
which is inconsistent with the weights storage arrangement for Zoltan

Resolves bug-report https://bugs.openfoam.org/view.php?id=3847
2022-06-07 16:29:44 +01:00
0040575a6f polyMesh: Removed unused "dynamic()" method 2022-06-07 13:38:02 +01:00
ed7073516f streamlines: Corrected calculation of age 2022-06-07 09:11:55 +01:00
3d0848996c kOmegaSST: Fixed propagation of correct to the base class 2022-06-07 08:38:44 +01:00
f9d575060e reconstructPar: Reinstate support for reconstructing pointLevel and cellLevel files
to be run with the -constant option after reconstructParMesh when reconstructing
a mesh generated by snappyHexMesh in parallel.
2022-06-04 11:15:03 +01:00
e3298597e1 compressibleInterFoam: Register dgdt to ensure it is mapped after mesh topology change 2022-06-04 11:14:26 +01:00
2a2cc976c4 tutorials/incompressible/pimpleFoam/laminar/movingCone: Added Allrun-parallel
to test and demonstrate the run-time mesh-to-mesh mapping in parallel
20220602
2022-05-30 15:20:34 +01:00
50a1522aaa Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2022-05-30 13:04:34 +01:00
8a517c4732 fvMeshTopoChangers::meshToMesh: Added support for "cutting" patches
These are introduced patches which do not correspond to any existing patches and
instead "cut" the internal mesh, thus requiring mapping from the internal mesh
fields rather than the patch fields.  Cutting patches are specified using the
optional 'cuttingPatches' keyword, e.g. in dynamicMeshDict:

topoChanger
{
    type        meshToMesh;

    libs        ("libmeshToMeshTopoChanger.so");

    cuttingPatches (splitter);

    times       (0.5 1.0);

    timeDelta   1e-6;
}
2022-05-30 13:00:37 +01:00
3e664e9279 mapFieldsPar: Removed unused function 2022-05-30 13:00:22 +01:00
f93300ee11 createBaffles: Simplified input syntax
This utility now always creates two patches, and only creates duplicate
faces when they connect to different cells and point in opposite
directions. Now that ACMI has been removed, there is no need to create
duplicate faces on the same cell and with similar orientations. This is
unituitive and is now considered an invalid mesh topology.

The preferred syntax for createBaffles is now as follows:

    internalFacesOnly true;

    baffles
    {
        cyclics
        {
            type        faceZone;
            zoneName    cyclicFaces;

            owner
            {
                name            cyclicLeft;
                type            cyclic;
                neighbourPatch  cyclicRight;
            }

            neighbour
            {
                name            cyclicRight;
                type            cyclic;
                neighbourPatch  cyclicLeft;
            }
        }
    }

Note that the 'patches' sub-dictionary is not needed any more; the
'owner' and 'neighbour' sub-dictionaries can be in the same dictionary
as the parameters with which faces are selected. For backwards
compatibility, however, a 'patches' sub-dictionary is still permitted,
as are keywords 'master' and 'slave' (in place of 'owner' and
'neighbour', respectively).

The 'patchPairs' syntax has been removed. Whilst consise, this syntax
made a number of assumptions and decisions regarding naming conventions
that were not sufficiently intuitive for the user to understand without
extensive reference to the code. If identical boundaries are desired on
both sides of the patch, dictionary substitution provides a more
intuitive way of minimising the amount of specifiection required. For
example, to create two back-to-back walls, the following specification
could be used:

    internalFacesOnly true;

    fields true;

    baffles
    {
        walls
        {
            type        faceZone;
            zoneName    wallFaces;

            owner
            {
                name            baffleWallLeft;
                type            wall;

                patchFields
                {
                    p
                    {
                        type            zeroGradient;
                    }

                    U
                    {
                        type            noSlip;
                    }
                }
            }

            neighbour
            {
                name            baffleWallRight;
                $owner; // <-- Use the same settings as for the owner
            }
        }
    }
2022-05-27 13:39:34 +01:00
d151a85bf7 tutorials/multiphase/multiphaseEulerFoam/RAS: Updated kineticTheoryModel tutorials 2022-05-27 10:28:48 +01:00
4b907e9bb0 semiPermeableBaffle: Move mapping to patch
This boundary condition no longer stores its own mapping. It now has to
be applied to a mapped wall (or equivalent) patch, which does the
mapping for it. This ensures that mapping information is shared between
multiple fields, and that redundant copies are not generated.
2022-05-26 11:08:43 +01:00
68151b8d01 multiphaseEulerFoam::kineticTheoryModel: Simplified the name of the divDevTau term in fvSchemes
For a single particle phase the divDevTau term in fvSchemes is now specified
thus:

    divDevTau(U.particles)    Gauss linear;

previously:
    div((((thermo:rho.particles*nut.particles)*dev2(T(grad(U.particles))))+(((thermo:rho.particles*lambda.particles)*div(phi.particles))*I))) Gauss linear;
2022-05-26 11:00:16 +01:00
861b7ba2b4 tutorials: Standardised boundary field indentation 2022-05-25 19:41:37 +01:00
141ee94b69 tutorials: Corrected end-of-file delimiter 2022-05-25 17:27:23 +01:00
3b4470d499 multiphaseEulerFoam, MovingPhaseModel: Register fields
All construct-on-demand fields are now registered, so tha they resize
and map appropriately when mesh changes occur
2022-05-25 16:02:57 +01:00
c58fa1c075 fvMeshStitchers::moving: Prevent communication missmatch
The sub mesh on which mesh fluxes are corrected potentially only exists
on a small subset of the processors. This was causing issues when
processor boundaries were evaluated as this triggered the construction
of weights and delta coefficients on only some of the processors,
causing a communications missmatch. This has been resolved by a
pre-emptive call to construct the surface interpolation coefficients.
2022-05-25 16:02:57 +01:00
744924bf69 mixtureKEpsilon: mixture k and epsilon fields are now required
to ensure complex BCs are selected and initialised correctly.

All mixture fields are now constructed and read as required in the construction
of the liquid (phase 1) mixtureKEpsilon model to ensure they are read before
time-increment and possible mesh topology change.
2022-05-25 15:57:33 +01:00
6d3e31f8e0 multiphaseEulerFoam::kineticTheoryModels, phasePressureModel: now use the phase.alphaMax()
rather than read and use a potentially inconsistent local value for alphaMax.
2022-05-25 13:47:18 +01:00
51307a5808 omegaWallFunction: Prevent hangs in cases where some processes have no wall 2022-05-25 10:19:11 +01:00
447ec4b5c2 epsilonWallFunction: Prevent hangs in cases where some processes have no wall 2022-05-24 16:55:45 +01:00
8521cdd0f4 polyMesh: Removed 'virtual' from methods that are never overridden 2022-05-24 14:22:22 +01:00
9302074836 createPatch: Simplification and removed unused dictionaries
The 'pointSync' setting in createPatchDict is now optional and defaults
to false. This setting is very rarely used. A number of unused
'createPatchDict' files have also been removed and obsolete information
has been removed from the annotated example dictionaries.
2022-05-20 14:04:17 +01:00
f54376b20c Code documentation: corrected typos 2022-05-20 10:42:25 +01:00
eb95e3f2c2 etc/templates: updated rotating cases to use non-conformal coupling (NCC) 20220520 2022-05-20 09:56:59 +01:00
d522047f95 etc/templates/singleFluidCHT: split models and constraints into separate files 2022-05-20 09:53:46 +01:00
14be487a80 etc/templates: renamed properties file to 'physicalProperties' 2022-05-20 09:52:23 +01:00
bda6db534f etc/templates: changed 'defaultPatch' to 'internal' type to help detect meshing errors 2022-05-20 09:49:11 +01:00
b439fc1599 polyMesh: Changed the mesh writing following motion and topology change
The mesh will now be written only for the write time following mesh-motion or
topology change (refinement/unrefinement, mesh-to-mesh mapping, load-balancing
etc.) and not for all subsequent time-steps as it did previously.  This reduces
storage and reconstruction effort of changing mesh cases.
2022-05-19 18:20:48 +01:00
8f8fa29e3e createNonConformalCouples: linked genericPatchFields library 2022-05-19 16:42:52 +01:00
2cac6285ea foamCloneCase: -startFrom option to set the time directory
When cloning a case, users can copy the field data from the
from the latest time directory in the source case, using
the -latestTime option.

The -startFrom option enables the copied time directory to be
renamed, often as the '0' (zero) directory in the new case, e.g.

    foamCloneCase -latestTime -startFrom 0 sourceCase newCase

When the time directories in the source and new cases are
different, the uniform directory and flux field "phi" are
deleted from the copied time directory to avoid incorrect
initial state.
2022-05-19 15:30:06 +01:00
94132c3a55 createNonConformalCouples: Added the option to modify fields
This utility can now add boundary conditions to fields which correspond
to the non-conformal patches that it adds to the mesh. This action is
enabled by means of a 'fields true;' flag which can be added to the
'system/createNonConformalCouplesDict'. No additional control is needed,
because all patches created by this utility are of constraint type.
2022-05-19 11:39:31 +01:00
755c0aa869 tutorials: TJunctionFan: Simplified orig usage 2022-05-19 09:50:46 +01:00
5fadb57d5d fvMeshStitcher: Fixed compilation of list reductions with Clang 2022-05-18 16:07:06 +01:00