Commit Graph

3962 Commits

Author SHA1 Message Date
b3d61748a6 dictionary: Added support for directly reading entries from other dictionary files
In order to avoid conflict with the use of ':' in model-specific fields,
e.g. "thermo:rho", in the "slash" syntax the '!' character is now used to refer
to the top-level dictionary.

If there is a part of the keyword before the '!' then this is taken to be the
file name of the dictionary from which the entry will be looked-up using the
part of the keyword after the '!'.

For example, given a dictionary file named testSlashDict2:

internalField 5.6;

active
{
    type            fixedValue;
    value.air       $internalField;
}

it is now possible to read entries from it directly in the dictionary file testSlashDict:

external
{
    value $testSlashDict2!active/value.air;
}

active2
{
    $testSlashDict2!active;
}

which expands to

external
{
    value           5.6;
}

active2
{
    type            fixedValue;
    value.air       5.6;
}
2019-07-10 15:13:56 +01:00
73d253c34b blockMesh: Angle-and-axis specification for arc edges
Arc-edges can now be specified with a sector angle (in degrees) and an
axis of the circle of which the arc forms a part. The new syntax is as
follows:

   edges
   (
       arc <vertex-0> <vertex-1> <angle> (<axis-x> <axis-y> <axis-z>)
   );

This is often more convenient than the alternative specification where a
third third point somewhere in the arc is given; it usually does not
require any additional calculation on the part of the user, and multiple
entries are very likely to be identical.

Which specification is used depends on the form of the entry that comes
after the two vertices. If the entry is a vector then it is assumed to
be a point in the arc; if it is scalar then is is taken to be the angle
and the axis is assumed to follow.

For example, to put a 90 degree arc between the vertices 12 and 13, at
(1 0 0) and (0 1 0) respectively, the following specification can now be
used:

   edges
   (
       arc 12 13 90.0 (0 0 1)
   );

This is equivalent to the existing point-in-arc speficiation below:

   edges
   (
       arc 12 13 (0.707107 0.707107 0)
   );

An edge's points are ordered on the perimeter of the circle according to
a right-hand screw rule on the given axis. Changing the the side of the
edge on which the arc is defined can therefore be achieved by reversing
either the edge or the direction of the axis.

If the given axis is not perpendicular to the line between the vertices,
then the arc gains some axial length and becomes a helix.
2019-07-10 11:05:10 +01:00
a7b8425690 dictionary: Added experimental "slash" syntax
A new optional "slash" scoping syntax is now provided which is more intuitive
than the current "dot" syntax as it corresponds to the common directory/file
access syntax used in UNIX, and avoids limitations of the "dot" (see below)
e.g.

internalField 3.4;

active
{
    type            fixedValue;
    value.air       $internalField;
}

inactive
{
    type            anotherFixedValue;

    value           $../active/value.air;
    anotherValue    $:active/value.air;

    sub
    {
        value           $../../active/value.air;
        anotherValue    $:active/value.air;
    }
}

"U.*"
{
    solver GAMG;
}

e.air
{
    // This does expand
    $U.air;
}

"#inputSyntax slash;" selects the new "slash" syntax.
"../" refers to the parent directory.
":" refers to the top-level directory.

The corresponding dictionary using the current "dot" syntax is

internalField 3.4;

active
{
    type            fixedValue;
    value.air       $internalField;
}

inactive
{
    type            anotherFixedValue;

    value           $..active.value.air;
    anotherValue    $:active.value.air;

    sub
    {
        value           $...active.value.air;
        anotherValue    $:active.value.air;
    }
}

"U.*"
{
    solver GAMG;
}

e.air
{
    // This doesn't expand
    $U.air;
}

Note that the "$U.air" expansion does not work in this case due to the
interference between the use of '.' for scoping and phase-name.
This is a fundamental problem which prompted the development of the new more
intuitive and flexible "slash" syntax.

The new syntax also allows a for planned future development to access entries
in directories in other files, e.g.

active
{
    type            fixedValue;
    value.air       $FOAM_CASE/internalFieldValues/value.air;
}

or

active
{
    type            fixedValue;
    value.air       :../internalFieldValues/value.air;
}
2019-07-09 16:45:07 +01:00
481f643aec bool, int32, int64: Added writeEntry function to avoid ambiguity compiling with 64bit labels 2019-07-09 11:29:43 +01:00
3431c1d21e Updated unit expressions in documentation to new standardised form 2019-07-08 16:05:33 +01:00
9cc193398f tutorials/multiphase/reactingMultiphaseEulerFoam/laminar/bed: Increased water flow rate 2019-07-08 15:57:28 +01:00
95844db860 zoltanRenumber: include required PstreamGlobals.H 2019-07-08 10:49:59 +01:00
802f3c1c22 tutorials/mesh/snappyHexMesh: Corrected links 2019-07-05 15:33:59 +01:00
803fdc07f9 Updated User Guides to version 7 version-7 2019-07-05 14:21:52 +01:00
44753ff120 etc/config.*: Updated default ParaView version to 5.6.0 2019-07-05 13:30:52 +01:00
1cd4b292eb fvOptions::damping: Corrected handling of multiple damping regions
Resolves bug-report https://bugs.openfoam.org/view.php?id=3302
2019-07-04 14:25:21 +01:00
4915a13260 mapFields: Corrected FOAM_CASE_NAME -> FOAM_CASENAME 2019-07-02 17:03:14 +01:00
9980357df1 wmake: use expandPath to expand $PWD to handle symlinks
Resolves patch request https://bugs.openfoam.org/view.php?id=3301
2019-07-02 11:58:04 +01:00
28ef37d60e etc/templates/singleFluidCHT/templates/materials/water/thermophysicalProperties: Corrected water Prandtl number
Resolves bug-report https://bugs.openfoam.org/view.php?id=3298
2019-06-27 16:07:13 +01:00
fb6eff2c87 Moved tutorials/multiphase/compressibleInterFoam/RAS/sloshingTank2D to tutorials/multiphase/compressibleInterFoam/laminar/sloshingTank2D
Resolves bug-report https://bugs.openfoam.org/view.php?id=3296
2019-06-24 14:40:36 +01:00
5c188ddce7 Completed standardisation of the class declaration section comments to correspond to the foamNewSource template 20190622 2019-06-21 22:45:47 +01:00
5dbbac7c86 Solvers: standardised the class declaration section comments to correspond to the foamNewSource template 2019-06-20 13:53:03 +01:00
96b69f6f88 Standardised and rationalised the way in which units are written in function documentation 2019-06-20 10:54:14 +01:00
e599162b09 Utilities: standardised the class declaration section comments to correspond to the foamNewSource template 2019-06-19 17:53:10 +01:00
0101722b0f Standardised the class declaration section comments to correspond to the foamNewSource template 2019-06-19 16:45:21 +01:00
213319ae30 Standardised the class declaration section comments to correspond to the foamNewSource template 2019-06-19 15:01:35 +01:00
4d297126d9 Standardised the class declaration section comments to correspond to the foamNewSource template 2019-06-19 11:54:55 +01:00
251f91cfa5 fvOptions::isotropicDamping: New wave damping fvOption
This implicit isotropic damping function relaxes the velocity field towards a
specified uniform value which can be set to (0 0 0) if no flow is required.
This is particularly appropriate to damp the waves in a closed wave tank with no
mean flow.

Testing on the interFoam wave has shown that for this simple case with uniform
mean flow the new isotropicDamping fvOption provides more rapid and complete
damping than the original verticalDamping.
2019-06-18 22:06:17 +01:00
8e9f692aa4 Standardised the class declaration section comments to correspond to the foamNewSource template 2019-06-13 21:26:33 +01:00
47d19548c1 cut: Templated point type
This allows for different information to be passed around the cut
routines; in particular, classes representing the topology of the cuts.
2019-06-13 08:58:31 +01:00
ac5b46bafe mixtureKEpsilon: Added documentation for the bubble generated turbulence coefficient 2019-06-11 15:36:40 +01:00
6f6d5380d6 nutURoughWallFunction: Updated handling of the low y+ region, consistent with nutkRoughWallFunction
Results for nutkRoughWallFunction and nutURoughWallFunction are now reasonably
consistent and both are now more robust and handle small near-wall cells more
reliably.  However if the wall roughness height is large, ~domain width, the
nutURoughWallFunction produces a lot less realistic results than the
nutkRoughWallFunction which appears to behave surprisingly well.
2019-06-11 13:00:38 +01:00
958d907ca5 etc/templates/singleFluidCHT/README: Corrected typo
Resolves bug report https://bugs.openfoam.org/view.php?id=3290

Tested-by: Henry Weller <http://openfoam.org>
2019-06-10 10:19:37 +01:00
d0bf565783 tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile/Allrun: Updated for latest gnuplot 2019-06-08 14:38:23 +01:00
6eb05f8b3d snappyHexMesh::meshRefinement: clear the mesh before mapping to avoid issues with mapping the mesh flux field 2019-06-08 14:37:43 +01:00
926b6a25db nutURoughWallFunction: Updated for input consistency with nutkRoughWallFunction
Now both the nutkRoughWallFunction and nutURoughWallFunction us the same field
based Ks and Cs input to support non-uniform surface roughness.

Note that nutURoughWallFunction is not exactly consistent with the
nutUWallFunction in the limit of roughness height = 0 and also not consistent
with nutkRoughWallFunction, particularly if the near-wall cell is in the laminar
sub-layer for which nutURoughWallFunction is currently incorrect.

Significant further work on the nutURoughWallFunction is needed to make it
consistent with both the nutUWallFunction and nutkRoughWallFunction BCs.
2019-06-08 14:31:17 +01:00
94dbab46d2 nutkRoughWallFunction: Further rationalisation 2019-06-08 14:30:58 +01:00
a1091a254a nutkRoughWallFunction: Re-derived and implemented to improve stability and range of applicability
This wall function is now stable even if the near-wall cell centre distance is
less than the roughness height although it is unlikely to be very accurate if
used in this way.

The sudden change limit stabilisation has been re-implemented to avoid the
near-wall viscosity being lower limited to half the laminar viscosity which has
no physical meaning.
2019-06-07 23:24:55 +01:00
f8f083841e rigidBodyMeshMotion, rigidBodyMeshMotionSolver, rigidBodyMeshMotionSolver: ensure state dictionary is written ASCII
Resolves bug-report https://bugs.openfoam.org/view.php?id=3288
2019-06-06 12:43:36 +01:00
00ae415b71 Added copy constructors to classes with copy assignment operator defined
and copy assignment operator for classes with a copy constructor

This is often described as the rule of 3 (or rule of 5 in C++11 if move
constructors and assignment operators are also defined) and makes good sense in
ensuring consistency.  For classes in which the default bitwise copy constructor
or assignment operator are appropriate these are now specified explicitly using
the "= default" keyword if the other is explicitly defined fulfilling the rule
of 3 without the need to define the body of the function.
2019-06-05 23:32:22 +01:00
74d45a1313 rotorDiskSource: Use the scalar sign function 2019-06-04 15:56:19 +01:00
77f441344e Scalar: Changed the return type of sign, pos, pos0, neg and neg0 to int 2019-06-04 15:55:45 +01:00
fcbebe9eb3 rotorDiskSource: Enable opposite spin in rotorDisk, for fixed thrust direction
Patch contributed by Robert Lee
Resolves patch request https://bugs.openfoam.org/view.php?id=3285
2019-06-04 10:33:48 +01:00
68e9c8eac2 Lagrangian: Removed more instances of random-number-based perpendicular vector calculations
Perpendicular vectors should be generated using the global
"perpendicular" function, which guarantees a non-zero result without a
random number generator and without looping.
2019-06-03 08:31:33 +01:00
aaed26965f nutWallFunction: Added a nutw static function to return the nutWallFunction patchField for a given patch 2019-06-02 13:10:34 +01:00
1e2550b6cd Rationalised wall function implementation to avoid complex and inconsistent coefficients
All wall functions now operate collaboratively, obtaining the Cmu, kappa and E
coefficients and yPlusLam from the nutWallFunction base class.  Now these
optional inputs need only be specified in the nut boundary condition with the k,
epsilon, omega, v2 and f wall functions obtaining these values from there.  This
is much simpler to specify and avoids inconsistencies in the operation of the
wall functions for the different turbulence fields.

The code has also been rationalised and simplified avoiding unnecessary code
and duplication.
2019-05-31 19:40:32 +01:00
fc4d7b92c3 Corrected documentation comment for disabled copy constructors 2019-05-29 15:58:42 +01:00
f7ea836c65 src/OpenFOAM: Moved the deleted bitwise copy and assignment declarations into public section of the class 2019-05-29 15:48:49 +01:00
a7f4147887 HookFunctions: Ensure the checkHeaderIfndefNames is applied only if the "_H" is at the end of the line 2019-05-28 15:32:52 +01:00
9140984cf4 Added "= delete" to disabled bitwise copy constructors and assignment operators
Currently these deleted function declarations are still in the private section
of the class declarations but will be moved by hand to the public section over
time as this is too complex to automate reliably.
2019-05-28 15:26:45 +01:00
11780ffae9 decompositionMethods: Removed temporary debug build option 2019-05-27 22:35:13 +01:00
3ecef91e72 Standardised copy constructor documentation comment 2019-05-27 22:34:32 +01:00
dfe7b86e70 rotorDiskSource: Added output of rotor power
Patch contributed by Robert Lee
Resolves patch request https://bugs.openfoam.org/view.php?id=3262
2019-05-26 12:11:33 +01:00
47d2e03ae3 cuttingPlane: Corrected handling of intersection between a plane and a cellZone in parallel
Patch contributed by Federico Piscaglia
Resolves bug-report https://bugs.openfoam.org/view.php?id=3283
2019-05-26 12:01:41 +01:00
0a3b7a7932 Comment spelling corrections from codespell 2019-05-26 10:56:36 +01:00