Compare commits

...

4253 Commits

Author SHA1 Message Date
c5f3491968 COMP: g++11: suppress optimisation. See #3024 2024-01-19 20:47:20 +01:00
9b0e0b074f BUG: mapFields: incorrect patches. Fixes #2944. 2023-08-30 16:38:40 +02:00
8f214f744c BUG: UPstream::shutdown misbehaves with external initialisation (fixes #2808)
- freeCommmunicatorComponents needs an additional bounds check.
  When MPI is initialized outside of OpenFOAM, there are no
  UPstream communicator equivalents
2023-06-20 09:30:18 +02:00
02b2b3a450 Revert "BUG: Fixing ray dAve and omega for 1D and 2D cases"
This reverts commit 5848b0afd5.
2023-05-22 09:39:09 +01:00
935186b854 BUG: VTK write pointSet fails in parallel (fixes #2773)
- de-referenced autoPtr with () instead of ref() will fail on
  non-master ranks.
2023-05-05 16:03:17 +02:00
26ce72568b COMP: code adjustments for gcc-13 (#2714) 2023-03-01 16:26:47 +01:00
725615039d CONFIG: improve handling of empty/non-empty ThirdParty directory 2023-03-01 16:26:47 +01:00
9a893e0c1b BUG: solitaryWaveModel: avoid reference access to an operand object (Fixes #2178) 2022-08-24 09:55:44 +01:00
a72ae125b9 BUG: incorrect order for output scaling (transformPoints, ...)
- the output write scaling should be applied *after* undoing the
  effects of the specified rotation centre. Fixes #2566

ENH: update option names for transformPoints and surfaceTransformPoints

- prefer  '-auto-centre' and '-centre', but also accept the previous
  options '-auto-origin' and '-origin' as aliases.

  Changing to '-centre' avoids possible confusion with
  coordinate system origin().
2022-08-18 12:34:21 +02:00
b2dce9dffb CONFIG: bump patch level 2022-06-23 09:44:12 +02:00
99cf52f453 COMP: Gcc 11+ potential fix - see #2434 2022-06-23 09:44:12 +02:00
ae6320c285 COMP: references to temporaries
COMP: include <limits>
2022-06-23 09:44:12 +02:00
5798c875d4 COMP: gcc-12 buffer check bypasses xsputn (#2481, #2496)
- add overflow() method to the SHA1 streambuf. Previously could rely
  on xsputn for adding to sha1 content, but streams now check pptr()
  first to test for the buffering range and thus overflow() is needed.
2022-06-23 09:44:12 +02:00
df86bef1bb BUG: decomposeParDict: operate with masterUncollated. Fixes #2368. 2022-02-16 16:46:03 +01:00
0b312195e4 BUG: sample/store surface field triggers dimension check (fixes #2361)
- when used for example with wallShearStress, the stress field is
  initially created as incompressible but later updated with the
  correct compressible/incompressible dimensions.

  If this field is sampled as a surface and stored on the registry
  the dimensions should be reset() and not '=' assigned, since that
  causes a dimension check which will obviously fail.
2022-02-11 14:31:43 +01:00
127f4268af CONFIG: bump 2106 patch level to 211215 2021-12-15 11:08:43 +01:00
0bd1b0feac BACKPORT: config script bugfixes
- align with fixes for v2112

- align foamConfigurePaths with v2112 modifications

CONFIG: scan scotch-64.h as possible fallback (#1904)

- For RedHat 8, the /usr/include/scotch.h is actually wrapped
  with a condition check based on LP64 vs ILP32, so need to check
  with those headers if the first one failed.
2021-12-10 14:00:10 +01:00
42178fdd5d BACKPORT: simpler hashing of string-types
includes:

    ENH: simplify hashing overloads of string-types

    - this revises the changes made in 95cd8ee75c to replace the
      SFINAE-type of handling of string hashes with direct definitions.

      This places a bit more burden on the developer if creating hashable
      classes derived from std::string or variants of Foam::string, but
      improves reliability when linking.

    STYLE: drop template key defaulting from HashSet

    - this was never used and `HashSet<>` is much less transparent
      than writing `HashSet<word>` or `wordHashSet`

    STYLE: use Hash<word> instead of string::hasher for runTimeSelectionTables
2021-12-09 18:00:59 +01:00
f815a12bba BUG: error with empty distributed roots specification (fixes #2196)
- previously used the size of distributed roots to transmit if the
  case was running in distributed mode, but this behaves rather poorly
  with bad input. Specifically, the following questionable setup:

      distributed true;
      roots ( /*none*/ );

  Now transmit the ParRunControl distributed() value instead,
  and also emit a gentle warning for the user:

      WARNING: running distributed but did not specify roots!
2021-09-08 09:29:27 +02:00
4e6e7d59da BUG: ParticleCollector - corrected and simplified parallel reductions. See #2184 2021-08-18 10:29:17 +01:00
9645e1adc2 BUG: Curle - added missing division by r. See #2169 2021-08-02 18:51:58 +01:00
7f2cbd6cd4 BUG: boundaryData output incorrect when no fields are sampled (fixes #2163)
- add "point data" or "face data" note to the boundaryData output
  for easier diagnositics in the future.
2021-07-20 12:53:39 +02:00
40ff2acdd6 BUG: word input is too strict (fixes #2160)
- for v2106 restricted the input conversion of string types to disallow
  treating verbatim strings as possible word input.
  However, it was too strict in just allowing quoted strings
  and should have also permitted '$'-sigil variables as well.

- ensure that errors for bad string -> word input conversion
  are raised from within the '>>' read operator. These were
  previously triggered during the stripping process, which
  made error tracing more difficult.
2021-07-17 19:46:37 +02:00
90ad6ce9cf GIT: Updated gitlab bug template 2021-07-15 10:20:09 +00:00
028ca26617 COMP: resolve abi:cxx11 linker issue (fixes #2147)
Issue first shows up on gcc-11 with these types of library symbols:

     U Foam::tableReader<double>::dictionaryConstructorTablePtr_[abi:cxx11]
  xx B Foam::tableReader<double>::dictionaryConstructorTablePtr_

  Use concrete hasher functor for runtime selection tables, which
  avoids any additional template resolutions (introduced with
  95cd8ee75c). The library symbols now resolve _without_ an
  additional abi:cxx11 tag.
2021-07-08 13:58:28 +02:00
014dbf4004 Update Build.md 2021-07-07 09:24:55 +00:00
3f172ccae1 ENH: Provided links to source packs 2021-07-07 09:24:31 +00:00
c15bfde3cb RELEASE: Updated config scripts to v2106 2021-06-28 09:15:09 +01:00
e3796745ed CONFIG: Updated headers to v2106
Minor clean-up
2021-06-28 09:14:42 +01:00
c503deb72e CONFIG: Updated completions 2021-06-28 09:14:34 +01:00
03cc42414c BUG: Changing divDevRhoReff scheme for incompressible flows 2021-06-24 08:10:16 -07:00
155455398e SUBMODULE: update OpenQBMM 2021-06-24 13:51:36 +02:00
eb3c96fe30 Merge branch 'bugfix-fan' into 'develop'
Hot fixes for v2106

See merge request Development/openfoam!474
2021-06-24 11:06:35 +00:00
aaa5469261 ENH: fan bc: more logical initialisation. See #2138. 2021-06-24 12:03:13 +01:00
3b10cd84c6 ENH: Provided backwards compat for deprecated partialFaceAreaWeightAMI 2021-06-24 10:29:35 +01:00
3cf0c58d19 BUG: fan/jump BCs - updated construction 2021-06-24 10:29:35 +01:00
27cc914337 BUG: liquidProperties - corrected read scalar (was label). See #2142 2021-06-24 09:12:12 +01:00
c40796843d Merge branch 'feature-momErrSubMesh' into 'develop'
ENH: Adding subMesh option to momentumError and div FOs

See merge request Development/openfoam!463
2021-06-23 08:44:22 +00:00
acd8e53310 BUG: Managing topoBitSet as source in haloToCell. See issue #2137 2021-06-23 08:11:12 +00:00
6101272133 ENH: Adding subMesh option to momentumError and div FOs
1) Adding subMesh capabilities to momentumError and div FOs.
	- A subMesh is created from cellZones.
	- The operators (div, etc) are only calculated in the subMesh.

2) Optionally, halo cells can be added to the cellZones.

3) New helper class to handle the subMesh creation and field mapping.
2021-06-23 08:11:12 +00:00
6595429f53 Merge branch 'tutorial-boatAndPropeller-rigidBodyHull' into 'develop'
TUT: multiphase: replace boatAndPropeller with rigidBodyHull

See merge request Development/openfoam!473
2021-06-22 22:42:06 +00:00
6eae29aa1d TUT: reduce the number of postProcessing files 2021-06-22 22:41:41 +00:00
57304aeaf6 TUT: multiphase: replace boatAndPropeller with rigidBodyHull 2021-06-22 22:41:41 +00:00
7d42501107 ENH: Adjusting reactingEuler settings in tutorials 2021-06-22 14:23:54 -07:00
f5e0f69bae ENH: fvMeshSubsetProxy resetZones, noexcept on some methods 2021-06-22 14:02:49 +02:00
98aa92a07f BUG: noise did not set num of output fields (VTK legacy) [fixes #2133]
ENH: less cryptic error message in surfaceWriters::vtkWriter

- fall back to nFields=1 and report the problem.
2021-06-21 17:01:34 +02:00
3825c4ee95 STYLE: lagrangian: typo. 2021-06-21 09:08:04 +01:00
269d0ffd5c ENH: improve flexibility of zoneTo{Cell,Face,Point} (#2130)
- add setter/getter methods for the zone selection

- construct for multiple zone selection

- support explicit zone ids instead of name matcher
2021-06-19 14:10:22 +02:00
b2fdc67273 ENH: improve verbosity controls for topoSetSource 2021-06-19 11:56:47 +02:00
02881f6237 ENH: improve flexibility of haloToCell (#2130)
- add setter/getter methods for number of grow/shrink steps,
  which allows reuse of the same object.

- remove the lower input hard-limit of 1 step, to allow definition of
  a no-op filter.

- drop early exit from grow/shrink cycle (potential parallel issues).
2021-06-19 10:41:34 +02:00
521a9e4dd6 Merge remote-tracking branch 'origin/master' into develop.mol
CONFIG: set API level to 2106 in ramp-up for release
2021-06-18 17:22:24 +02:00
e2148b587e CONFIG: inline _foamEval within <etc/config.sh/setup>
- previously a function (unlike the csh version) but since bashrc and
  setup have been split -> replace with inline definition

STYLE: formatting/wording for openfoam starters

TUT: simplify controlDict modification, add default substitution

ENH: accept '/' for end-of-options terminator (etc/openfoam)

- makes the application or service more apparent.
  * eg.  /usr/bin/openfoam / blockMesh
  * vs.  /usr/bin/openfoam -- blockMesh

  Accept lone '-' as the end-of-options terminator, as per bash

- Adjust handling of openfoam '-c' option to flag that a command-string
  will appear, but continue with option parsing.
  Consistent with bash definition.
2021-06-18 17:14:22 +02:00
7d2a9fad1a ENH: add auto-detect 0/ to foamCleanTutorials
- in the 'auto' mode (now the default), it will use cleanCase and also
  remove the 0/ directory if a 0.orig/ directory also exists.

  This corresponds to a frequent idiom and can be used quite safely
  for most cases.

ENH: add -serial / -parallel preference for foamRunTutorials
2021-06-18 17:14:22 +02:00
096b9dc52e TUT: add parallel version for various squareBend cases
- adjust commented-out evaluation to avoid warnings.

  With code like this
  ```
  #if 0
  nxin    #eval{ round($nxin / 5) };
  #endif
  ```

  The handling of the "#if 0 / #endif" clause uses the plain ISstream
  parser to tokenize. This means that the "round(" is parsed as a word
  with a mismatched closing ')', whereas the "#eval" parser will slurp
  everything in until the closing brace and send it off as a string
  to the expression parser.
2021-06-18 17:14:22 +02:00
a3d90ae9b9 TUT: example of patch expressions (#2114) 2021-06-18 17:14:21 +02:00
3b29395a66 BUG: surfaceFieldValue with vectorWeights blocks in parallel (fixes #2129) 2021-06-18 15:47:18 +02:00
f39fedb7f9 Merge branch 'issue-2091-PDRFOAM-End' into 'develop'
STYLE: PDRFOAM End of Program was inconsistent with other applications

See merge request Development/openfoam!447
2021-06-18 13:17:59 +00:00
36dd86f89a STYLE: PDRFOAM End of Program was inconsistent with other applications 2021-06-18 13:07:26 +00:00
a9f55f06ba Merge branch 'feature-ami-face-area-intersect' into 'develop'
AMI improvements

See merge request Development/openfoam!468
2021-06-18 10:32:18 +00:00
ba4d38da68 ENH: AMI improvements
- Added new faceAreaWeightAMI2D AMIMethod:
  - performs intersection using a new 2D triangle class;
  - candidate face matches set using an AABBTree method (vs advancing front for
    faceAreaWeightAMI).

  - Use by setting the AMIMethod entry when specifying the AMI in the
    constant/polyMesh/boundary file, e.g.

        AMI
        {
            type            cyclicACMI;
            AMIMethod       faceAreaWeightAMI2D; // new method
            Cbb             0.1; // optional coefficient
            nFaces          1000;
            startFace       100000;
            matchTolerance  0.0001;
            transform       noOrdering;
            neighbourPatch  AMI1;
            nonOverlapPatch AMI1_non_overlap;
        }

  - The optional Cbb coeffcient controls the size of the bounding box used when
    looking for candidate pairs; the value of 0.1 is the default and worked well
    for a large range of test cases. For badly matched AMI patches this may need
    to be increased.

- Deprecated the partialFaceAreaWeightAMI class - primarily used by ACMI:
  - functionality now offered by the AMI variants.
2021-06-18 10:31:58 +00:00
3e5056144d ENH: Vector2D - added isClose function 2021-06-18 10:31:58 +00:00
b8768e2878 Merge branch 'feature-prghTotalPressurePermeable' into 'develop'
ENH: Adding new permeable boundary conditions and a tutorial

See merge request Development/openfoam!471
2021-06-17 20:53:50 +00:00
775194bea1 TUT: new multiphase tutorial: damBreakPermeable 2021-06-17 18:21:25 +01:00
3f7c057712 ENH: Adding new permeable boundary conditions
- prghPermeableAlphaTotalPressure for p_rgh
- pressurePermeableAlphaInletOutletVelocity for U
- new helper class for pressure-related BCs: updateableSnGrad
2021-06-17 18:21:22 +01:00
371619bc7a BUG: rigidBodyMeshMotion: do not access uninitialised. Fixes #2127 2021-06-17 16:46:35 +01:00
9823ddd480 STYLE: createBafflesDict: not used. Built-in into blockMesh 2021-06-17 16:08:36 +01:00
f46c57951d STYLE: dynamicFvMesh: indentation, naming 2021-06-17 14:46:25 +01:00
0110e69018 BUG: tutorial: missing writing of phi. Fixes #2124 2021-06-17 11:48:46 +01:00
1f84dcbac6 ENH: blockMesh: avoid 'empty' for initial mesh. Fixes #2125. 2021-06-17 10:18:39 +01:00
ee4f7feb30 ENH: noiseModel - report missing octave bands 2021-06-16 20:48:30 +01:00
98abafccdb Merge branch 'feature-multiRegion' into 'develop'
ENH: Added new multiRegion function object

See merge request Development/openfoam!470
2021-06-16 11:48:20 +00:00
af86d19ea5 ENH: Added new multiRegion function object
Wrapper that clones the supplied object for each region.

Simplifies the setup of identical post-processing requirements for
multi-region cases.
Applies the supplied function to all regions by default.

Example of function object specification:

    multiRegion
    {
        type    multiRegion;
        libs    (utilityFunctionObjects);
        ...

        function
        {
            // Actual object specification
            type    fieldMinMax;
            libs    (fieldFunctionObjects);
            fields  (<field1> .. <fieldN>);
        }

        // Optional entries
        regions     (region1 region2);
    }

    Where the entries comprise:
        Property   | Description                    | Reqd | Default
        type       | Type name: multiRegion         | yes |
        function   | Function object sub-dictionary | yes |
        regions    | List of region names           | no  | all
2021-06-16 13:44:50 +02:00
89de932685 Merge branch 'feature-multifieldvalue' into 'develop'
ENH: new multiFieldValue function object

See merge request Development/openfoam!469
2021-06-16 09:25:13 +00:00
ea12bfdb0f ENH: new multiFieldValue function object
Computes a selected operation between multiple \c fieldValue function
    objects.

    The operation is applied to all results of each \c fieldValue object.

Note
    Each object must generate the same number and type of results.

Usage
    Minimal example by using \c system/controlDict.functions:

    multiFieldValue1
    {
        // Mandatory entries (unmodifiable)
        type            multiFieldValue;
        libs            (fieldFunctionObjects);

        // Mandatory entries (runtime modifiable)
        operation       subtract;

        // List of fieldValue function objects as dictionaries
        functions
        {
            region1
            {
                ...
            }
            region2
            {
                ...
            }

            ...

            regionN
            {
                ...
            }
        }

        // Optional (inherited) entries
        ...
    }

    where the entries mean:

      Property     | Description                         | Type | Req'd | Dflt
      type         | Type name: multiFieldValue          | word |  yes  | -
      libs         | Library name: fieldFunctionObjects  | word |  yes  | -
      operation    | Operation type to apply to values   | word |  yes  | -
      functions    | List of fieldValue function objects | dict |  yes  | -
    \endtable

    Options for the \c operation entry:

       add           | add
       subtract      | subtract
       min           | minimum
       max           | maximum
       average       | average

Deprecated fieldValueDelta

- The fieldValueDelta function object was originally written to compute the
difference between two fieldValue-type function objects. The multiFieldValue
object name better describes its purpose whilst being able to operate on an
arbitrary number of fieldValue-type objects.
2021-06-16 11:19:44 +02:00
b6e8768034 CONFIG: update compiler versions
TUT: add missing restore0Dir (finiteArea)

STYLE: doc spelling
2021-06-14 19:20:15 +02:00
82fdeaf679 BUG: redistributePar: preserve zone ordering. Fixes #2120 2021-06-14 16:36:48 +01:00
64fb07c5db Merge branch 'feature-relax-fan-jump' into 'develop'
ENH: Added under-relaxation to jump conditions

See merge request Development/openfoam!467
2021-06-14 15:34:43 +00:00
f54b190f31 ENH: Jump conditions - added optional minimum jump value
Example:

    plane
    {
        type            fan;
        patchType       cyclic;
        jump            uniform 0;
        value           uniform 0;
        uniformJump     false;

        relax           0.2;

        jumpTable       ( (1000 0) (-200 1) (20 2) (-0.75 3) );

        // Optional minimum jump value
        minJump         0;
    }
2021-06-14 14:52:35 +00:00
05e0749d0e ENH: Added under-relaxation to jump conditions
Currently only applied to the fanFvPatchField, e.g.

    plane
    {
        type            fan;
        patchType       cyclic;
        jump            uniform 0;
        value           uniform 0;
        uniformJump     false;

        // Optional under-relaxation
        relax           0.2;

        ...
    }
2021-06-14 14:52:35 +00:00
30da494e55 STYLE: PatchParticleHistogram: simplify output for further parsing
CONFIG: update completion_cache
2021-06-11 17:18:36 +02:00
ae02a86562 ENH: multi-region support for reconstructParMesh (#2072) 2021-06-11 17:18:35 +02:00
620fe96c02 ENH: multi-region support for rotateMesh (#2072) 2021-06-11 17:18:35 +02:00
c4b0f3c63d STYLE: direct inclusion of region options 2021-06-11 17:18:20 +02:00
2797a8be25 TUT: missing run-limit on tutorials/Alltest 2021-06-11 11:18:01 +02:00
596d8fab39 Merge branch 'feature-distanceSurface-filtering' into 'develop'
ENH: add proximityRegions filter to distanceSurface (#2108)

See merge request Development/openfoam!460
2021-06-10 19:13:40 +00:00
ca88abba7e ENH: add proximityRegions filter to distanceSurface (#2108)
- combines region-based and proximity-based filtering

  proxityRegions (post-filter):
    Checks the distance of the resulting faces against the original
    search surface. Filters based on the area-weighted distance
    of each topologically connected region.
    If the area-weighted distance of a region is greater than
    \c absProximity, the entire region is rejected.

STYLE: 'proxityFaces' as newer synonym for 'proximity' filter
2021-06-10 18:21:04 +02:00
b6b4ab071d ENH: additional patch expressions (#2114)
- snGrad, internalField, neighbourField.
  Functional use as per swak: "... + internalField(T) ..."

ENH: additional volume/patch expressions

- deltaT()

STYLE: rename exprDriverWriter -> fvExprDriverWriter

- the original class name was a misnomer since it holds a reference
  to fvExprDriver

BUG: expression faceToPoint/pointToFace definitions were flipped

ENH: refactor expression hierarchy and code style

- handle TimeState reference at the top-level for simpler derivations

- unified internal search parameters (cruft)
2021-06-10 18:02:16 +02:00
239a7884a6 ENH: more flexible finiteArea patch selection (#2084)
- support wordRes for selecting patch names

- ownerPolyPatch specification is now optional, which simplifies input
  and also supports a faMesh spanning different patches but with a
  single boundary condition.

  Alternatively, can specify more granularity if required.

  ```
  polyMeshPatches  ( "top.*" );

  boundary
  {
      inlet1
      {
          type patch;
          ownerPolyPatch top1;    // <- specific to this portion
          neighbourPolyPatch inlet;
      }
      inlet2
      {
          type patch;
          ownerPolyPatch top2;    // <- specific to this portion
          neighbourPolyPatch inlet;
      }
      outlet
      {
          type patch;
          neighbourPolyPatch outflow;
      }
      bound
      {
          type symmetry;
          neighbourPolyPatch bound;
      }
  }
  ```
2021-06-10 09:25:00 +02:00
7b14af4230 DOC: reorganize Requirements.md, additional note for openSUSE leap
- move unreferenced Config.md to wiki content
2021-06-10 08:38:20 +02:00
853010309d ENH: replace tutorials/AutoTest with bin/foamTestTutorial
- additional -serial/-parallel option:
  prefer Allrun-serial or Allrun-parallel if available

- optional -output=DIR to preserve output

ENH: report missing tutorials/ directory in RunFunctions
2021-06-10 08:38:20 +02:00
c7bde70ecb ENH: robustness, consistency for wmake -show-api, -version
- add to wmakeFunctions to ensure it works even without 'make' being
  installed. Exit immediately after -show-api for consistency with
  -version.

foamEtcFile:
  - drop warnings for some old (pre-v1812) defunct options
    and simply flag as unknown options.
  - handle -version, --version as equivalent to -show-api
2021-06-10 08:34:43 +02:00
1afa6f1b46 COMP: PengRobinsonGas: construction order. 2021-06-09 16:33:24 +01:00
2941d0387d Merge branch 'issue-1452-solverInfo-writeResidualFields' into 'develop'
BUG: fixing various bugs for v2106

See merge request Development/openfoam!420
2021-06-09 14:28:51 +00:00
d92edabcb6 ENH: atmBoundaryLayer: ensure PatchFunction1s are valid 2021-06-09 14:28:18 +00:00
ab49eaf983 BUG: cellLimited<cubic>: ensure the limiter is differentiable (fixes #2113) 2021-06-09 14:28:18 +00:00
b4724c37ad DOC: solverInfo FO: improve header-file documentation
- TUT: solverInfo FO: add an example to pisoFoam/cavity
2021-06-09 14:28:18 +00:00
02129b0846 BUG: solverInfo: ensure access to initial residual fields (#1452)
Prior to the commit, initial residual fields were registered by
the `setResidualField()` function of a linear solver with a field name
prefixed by `residual:`. However, `solverInfo` FO could only access to
the initial residual fields prefixed by `initialResidual:`.

Due to this discrepancy, using `solverInfo` FO with `writeResidualFields=true`
option was resulting in empty residual fields to be output.
2021-06-09 14:28:18 +00:00
4eba7481bc BUG: DEShybrid: replace hardcoded scalar with SMALL (#2082) 2021-06-09 14:28:18 +00:00
0cc201e2b8 ENH: turbulenceProperties: make turbulence switch optional (#2112) 2021-06-09 14:28:18 +00:00
348ae6f4be COMP: incGamma: adjustments for int64 (#2100) 2021-06-09 14:28:18 +00:00
9dda3626b3 Merge branch 'tutorial-finiteArea' into 'develop'
TUT: finiteArea: clean up tutorials

See merge request Development/openfoam!451
2021-06-09 13:41:54 +00:00
de9657dd20 TUT: finiteArea: clean up tutorials 2021-06-09 13:41:45 +00:00
88f7dd7393 Merge branch 'feature-normalisation-dfsem' into 'develop'
ENH: turbulentDFSEMInlet: various improvements

See merge request Development/openfoam!454
2021-06-09 13:41:02 +00:00
f5fe37114f TUT: turbulentDFSEMInlet: update DFSEM tutorials (fixes #2097) 2021-06-09 13:40:51 +00:00
b9c174312b ENH: turbulentDFSEMInlet: refactoring by PatchFunction1
- ENH: turbulentDFSEMInlet: add normalisation factors for
input Reynolds stresses, mean velocity and integral-length
scales as entries `Uref` and `Lref`.
- ENH: turbulentDFSEMInlet: add scaling factor entries, `scale`
and `m`, to enable users to tune C1 normalisation coefficient,
if need be.
- BUG: turbulentDFSEM: (fixes #1004 #1744 #2089)
- see #2090 for theoretical issues related to the DFSEM method.
2021-06-09 13:40:51 +00:00
c6759692ba BUG: MappedFile: ensure separate entry scopes (fixes #2098)
BUG: MappedFile: ensure rmap() and automap() consistent
2021-06-09 13:40:51 +00:00
53f6431c31 Merge branch 'tutorial-basic-IO-preProcessing-verificationAndValidation' into 'develop'
TUT: basic, IO, preProcessing, VV: clean up tutorials

See merge request Development/openfoam!464
2021-06-09 13:39:15 +00:00
3384d37a9a TUT: basic, IO, preProcessing, VV: clean up tutorials
- TUT: mesh: add missing SnakeRiverCanyon files
- TUT: mesh: add missing cp source in a foamyHexMesh tutorial
2021-06-09 11:16:08 +01:00
48cdf5523b Merge branch 'vv-lagrangian-heat-transfer-models' into 'develop'
ENH: CloudFunctionObject: new particle function objects

See merge request Development/openfoam!443
2021-06-08 20:35:30 +00:00
7788a1a01a TUT: sprayFoam: add examples for the new cloud function objects
- ReynoldsNumber (thermo)
- NusseltNumber
- HeatTransferCoeff
2021-06-08 20:34:28 +00:00
d3d82c6a26 ENH: lagrangian: add new CloudFunctionObjects
New cloud function objects:
- ReynoldsNumber (for kinematic parcels, i.e. KinematicReynoldsNumber)
- ReynoldsNumber (for thermo/reacting parcels, i.e. ThermoReynoldsNumber)
- NusseltNumber
- HeatTransferCoeff
2021-06-08 20:34:28 +00:00
ea0afd8a35 ENH: lagrangian: split macros for CloudFunctionObjects
three macros:
- makeParcelCloudFunctionObjects for kinematic parcels
- makeThermoParcelCloudFunctionObjects for thermo parcels
- makeReactingParcelCloudFunctionObjects for reacting parcels
2021-06-08 20:34:28 +00:00
1911dba4d5 DOC: lagrangian: review heat transfer models 2021-06-08 20:34:28 +00:00
283c94fdd0 ENH: RanzMarshall: generalises the Nusselt-number correlation 2021-06-08 20:34:28 +00:00
1f8c6e0f5b ENH: rhoThermos: enable transport:tabulated + equationOfState:icoPolynomial 2021-06-08 20:34:28 +00:00
a857c8d3ad Merge branch 'issue-2076-updategeoVoF' into 'develop'
ENH: update geoVoF module (#2076)

See merge request Development/openfoam!450
2021-06-08 20:29:56 +00:00
9dada5f3f2 ENH: geoVoF module has the capability to run AMR with load balancing
code style and quality improvements
renamed recon::centre to interfaceCentre.{groupName}
ranmed recon::normal to interfaceNormal.{groupName}
centre and normal field are not written by default
2021-06-08 20:25:53 +00:00
7e4cd55882 Merge branch 'tutorial-combustion' into 'develop'
TUT: combustion: clean up tutorials

See merge request Development/openfoam!461
2021-06-08 20:24:34 +00:00
ab5c7765c4 TUT: combustion: clean up tutorials 2021-06-08 20:17:19 +00:00
1a747a12ab Merge branch 'tutorial-incompressible' into 'develop'
TUT: incompressible: clean up tutorials

See merge request Development/openfoam!462
2021-06-08 20:16:59 +00:00
e81cf778a1 TUT: incompressible: clean up tutorials 2021-06-08 20:15:47 +00:00
3395cba40e Merge branch 'tutorial-mesh-multiphase' into 'develop'
TUT: mesh, multiphase: clean up tutorials

See merge request Development/openfoam!465
2021-06-08 20:14:39 +00:00
91c1e8efe2 TUT: multiphase: clean up tutorials 2021-06-08 20:14:09 +00:00
3a858ac682 TUT: mesh: clean up tutorials 2021-06-08 20:14:09 +00:00
6120e13d29 ENH: add tmp/refPtr support for setting cref/ref from pointer
- makes it easier to use for local or alternative storage.
  Eg,

  ```
      tmp<volScalarField> tfld;

      tfld.cref(obj.cfindObject<volScalarField>("name"));

      if (!tfld)
      {
          tfld = volScalarField::New("name", ...);
      }
  ```
2021-06-08 14:01:08 +02:00
e2c8b0b13f TUT: avoid xterm in mpi schema (multiWorld) 2021-06-07 17:24:54 +02:00
3a2e725253 Merge branch 'issue-1922-user-access-to-dictionary' into 'develop'
add access to dictionary context for dynamic-coded items.

See merge request Development/openfoam!466
2021-06-07 14:23:45 +00:00
c2692e7c99 TUT: example of user access for Function1 2021-06-07 15:21:02 +02:00
b59ae32d68 ENH: provide dictionary access for coded BCs etc (#1922)
- in some cases, additional dictionary inputs are useful for extending
  the input parameters or functionality of dynamic coded conditions.

  Typically this can be used to provide a simple set of dictionary
  inputs that are used to drive specific code, but allows changing the
  inputs without causing a recompilation.

  Accessed with this type of code:
  ```
  const dictionary& dict = this->codeContext();
  ```

boundary conditions and function objects:

* specify an additional codeContext dictionary entry:
  ```
  codeContext
  {
      ...
  }
  ```

PatchFunction1:

* The code context dictionary is simply the dictionary used to specify
  the PatchFunction1 coefficients.

  To replicated persistant data, use local member static data.
  Eg,
  ```
  code
  #{
      // Persistent (Member) Data
      static autoPtr<Function1<scalar>> baseVel;
      static autoPtr<Function1<vector>> baseDir;
      ...
  #}
  ```

fvOptions:

* currently not applicable
2021-06-07 10:28:15 +02:00
b0891824fa ENH: improve codeTemplates
- meshTools include/library for many (most) coded items

- add PatchFunction1 include for coded BCs to provide ready access
  to Function1 and PatchFunction1
2021-06-07 09:48:21 +02:00
2f6739b140 ENH: protected method fa/fv option::resetApplied()
- resizes to current fieldNames_ size and assigns everything to
  false to avoid any "stickiness" if the field ordering changes
  between reads.

ENH: additional debugging faOption/fvOption (#2110)

- aids tracing which sources are being used/ignored
- update code style

STYLE: rename CodedSource -> CodedFvSource

- avoid future name clashes with CodedFaSource
2021-06-07 09:47:54 +02:00
d5a8ca5660 DOC: adjust documented requirements (#2068) 2021-05-31 21:05:33 +02:00
9f26e6738f COMP: fix linkage on some libs and utils (general and mingw)
- remove finiteVolume dependency from libfaDecompose
2021-05-31 20:54:58 +02:00
e681c127f2 CONFIG: accept module-prefix 'none' as equivalent to 'false' (ie, disabled) 2021-05-31 11:14:49 +02:00
0ba43df9c5 STYLE: remove erroneous reference in dynamicCast use 2021-05-31 09:11:49 +02:00
5d9e42cb70 ENH: multi-region support for transformPoints (#2080) 2021-05-30 21:33:20 +02:00
3e87a46498 ENH: multi-region support for foamToEnsight (#2080)
- additional finite-area support too.
2021-05-30 21:02:59 +02:00
9f5df1adba ENH: additional ensight output routines for finite-area fields (#2084)
- adds support for retaining local face numbers, to allow direct
  addressing into the corresponding area field
2021-05-30 21:02:59 +02:00
6c4a1b17ad ENH: update vtk reading to handle new legacy format (#2094)
- with the changes in vtkCellArray, the legacy files now have
  OFFSET, CONNECTIVITY information.

- support reading of both versions.

- continue to generate legacy format 2.0, since this is what
  many programs still expect
2021-05-30 21:02:59 +02:00
82cc00b153 STYLE: VTK ascii output with 9 items per line
- corresponds to the more recent VTK convention
2021-05-30 21:02:59 +02:00
f2d634c49f ENH: cellShape::reset() - simplifies modification of existing shapes 2021-05-30 21:02:59 +02:00
5ec49a3898 Merge branch 'finiteArea-decompose' into 'develop'
support parallel creation of finiteArea meshes with on-the-fly decomposition of fields #2084

See merge request Development/openfoam!457
2021-05-28 18:14:53 +00:00
f421e29c2e ENH: improved handling of dangling finiteArea edges (#2084)
- restrict searching to patch quantities to avoid triggering
  mesh edge calculations
2021-05-27 21:04:55 +02:00
ac51890051 ENH: parallel makeFaMesh with consistency on processor boundaries (#2084)
- consider the neighbour polyPatch addressing on the connecting edge,
  even when the neighbouring processor does not have a corresponding
  section of the finiteArea mesh.

  These "dangling" edges now propagate their real connectivity across.
2021-05-27 21:04:55 +02:00
e8d048d777 ENH: parallel makeFaMesh with addressing and field decomposition (#2084) 2021-05-27 21:04:55 +02:00
02bf8928cb ENH: faMeshReconstructor for reconstructing equivalent serial faMesh (#2084)
- A bare-bones reconstructor for finiteArea meshes when processor
  meshes are available (in parallel) but an equivalent serial faMesh
  is needed for reconstruction or decomposition.
  In these situations, a serial version of the faMesh is needed,
  but preferably without reconstructing the entire volume mesh.

  It uses the finiteVolume faceProcAddressing in addition to
  the geometric information available from the underlying polyMesh.

  The resulting equivalent faMesh can be used for basic operations,
  but caution should be exercised before attempting large operations.
2021-05-27 21:04:55 +02:00
2d9b31f6a4 ENH: support fa/fv field decomposers without the complete mesh (#2084) 2021-05-27 21:04:55 +02:00
0ae17908a2 ENH: collect and cleanup decompose and reconstruct methods (#2084)
- new faDecompose and faReconstruct libraries

- provide common readFields in the faDecompose library
2021-05-27 21:04:55 +02:00
830a217353 TUT: use system/ location instead of constant/faMesh/ for faMeshDefinition
- adjust surfactantFoam/planeTransport tutorial to have partial
  coverage of the plate by the finiteArea mesh.

  Depending on the decomposition, the outflow boundary may coincide
  with a processor patch (good for testing purposes).

- additional Allrun-parallel versions for targetted future behaviour
2021-05-27 21:04:55 +02:00
5076e6a745 CONFIG: adjust cleanup for faMeshDefinition constant/ or system/ locations 2021-05-27 21:04:55 +02:00
0cf4aede6e ENH: initial revamp of faMesh to improve modularity (#2084)
- improved separation of patch creation that is also parallel-aware,
  which now allows creation in parallel

- memory-safe use of PtrList for adding patches, with a more generalized
  faPatchData helper

- use uindirectPrimitivePatch instead of indirectPrimitivePatch
  for internal patch handling.

- align boundary methods with polyMesh equivalents

- system/faMeshDefinition instead of constant/faMesh/faMeshDefinition
  as per blockMesh convention. Easier to manage definitions, easier
  for cleanup.

- drop inheritence from GeoMesh.
2021-05-27 21:04:55 +02:00
0a5a0c29d7 ENH: lazier demand-driven evaluation in faOption
STYLE: namespace qualifiers on fa/fv option
2021-05-27 21:04:55 +02:00
0abafd98c7 BUG: areaWrite fails with partial fields (#2084)
- depending on how the finiteArea is split up across processors,
  it is possible that some processors have failed to register
  fields in their object registry.

  Now ensure that the field names are synchronized in parallel before
  attempting a write. Replace locally missing fields with a dummy
  zero-sized field.
2021-05-27 21:04:16 +02:00
2990b14d89 ENH: add more direct methods for getting meshEdge (PrimitivePatch)
- refine definition of patch boundary faces to distinguish between
  boundaryFaces() and uniqBoundaryFaces().

  * boundaryFaces() for edge to face lookup on boundary edges.
  * uniqBoundaryFaces() for accessing quantities such as face areas
    or eroding an outer layer

ENH: LabelledItem container, replaces unused 'Keyed' container

- method names in alignment with objectHit, pointIndexHit etc.
  Top-level name aligns with labelledTri.
2021-05-27 15:42:46 +02:00
aeb9644db4 ENH: use common internal calls for VTK begin/end DataArray
- reduces common boilerplate, ensures that label fields are
  more easily handled.
2021-05-27 15:41:21 +02:00
48c05e5441 ENH: mpirunDebug improvements
- provide '-clean' option for removing old files

- handle out of order '-decomposeParDict' as per RunFunctions

- implicit no-prompt '-yes' with the shortcuts (eg, -log, -xterm)
  and set -local if not already defined

- accept <return> to select defaults
2021-05-27 15:40:55 +02:00
da30533a8f Merge branch 'bugfix-issue-2016-geoVoF-infiniteloop' into 'develop'
BUG: normalResidual has the potential to contain uninitialized values

See merge request Development/openfoam!455
2021-05-27 09:01:13 +00:00
eb8e0aefa5 BUG: normalResidual has the potential to contain uninitilized values 2021-05-27 09:00:46 +00:00
6c3a868fbe Merge branch 'tutorial-compressible' into 'develop'
TUT: compressible: clean up tutorials

See merge request Development/openfoam!459
2021-05-27 09:00:22 +00:00
7ce111809e TUT: compressible: clean up tutorials 2021-05-27 08:59:28 +00:00
f3d715dd13 Merge branch 'feature-spalart-allmaras-model' into 'develop'
ENH: SpalartAllmaras: add estimation functions for k, epsilon and omega

See merge request Development/openfoam!441
2021-05-27 08:59:05 +00:00
42bbd05992 TUT: SpalartAllmaras: add showcase for k/epsilon/omega estimation funcs
TUT: airfoil2D: clean up the tutorial case
2021-05-27 09:04:53 +01:00
c7357bd1c3 ENH: SpalartAllmaras: add estimation functions for k, epsilon and omega
ENH: SpalartAllmaras: reduce peak-memory usage
2021-05-27 09:04:47 +01:00
3273e6c21a BUG: extrudeMesh: copy original patch. See #2103
This is a partial fix for #2103. If there are no points
extruded for a stand-alone mesh (so not adding to mesh)
it should still include the original patch points. Not
doing so would generate illegal faces (also copiedPatchPoints
would not get set).
2021-05-26 14:14:34 +01:00
ab00110b5c Merge branch 'feature-spline-extrudeMesh' into 'develop'
INT: splineEdge: allowing usage in extrudeMesh. See #1983.

See merge request Development/openfoam!453
2021-05-26 12:22:25 +00:00
4a87e2d0b4 INT: splineEdge: allowing usage in extrudeMesh. See #1983. 2021-05-26 12:22:24 +00:00
8be49d8683 Merge branch 'tutorial-heat-transfer' into 'develop'
TUT: heatTransfer: clean up tutorials

See merge request Development/openfoam!458
2021-05-26 11:36:21 +00:00
f62a599eef TUT: heatTransfer: clean up tutorials 2021-05-26 11:35:49 +00:00
ad75af0e50 Merge branch 'feature-localWorld' into 'develop'
Support AMI for multi-world operation

See merge request Development/openfoam!456
2021-05-26 08:27:31 +00:00
f44dbbc200 ENH: Support AMI for multi-world operation. Fixes #2099
Multi-world operation now supports AMI:

    // What to sample:
    sampleMode      nearestPatchFaceAMI;
2021-05-26 08:27:30 +00:00
9a3d27e3df ENH: blockMesh: enable named blocks and mergePatchPairs. Fixes #2088. 2021-05-20 16:13:52 +01:00
f99ba1adbd CONFIG: bump API to 2103
- reflect updated tokenizing of expressions, scotch/paraview version
2021-05-19 18:25:17 +02:00
cb7d8cef78 SUBMODULE: style/code updates for cfmesh, openqbmm, external-solver 2021-05-19 18:16:06 +02:00
b2ab5e8ae9 CONFIG: update scotch (6.1.0), paraview (5.9.1) and petsc (3.15.0) 2021-05-19 18:16:06 +02:00
4028738327 ENH: redistributePar - detect if reconstruct is required (#2092) 2021-05-19 18:16:06 +02:00
0df219d1b3 ENH: expose decomposePar -dry-run options -domains, -method
- can now drop older Test-decomposePar for exploration purposes
  and simply use -dry-run with the -domains and -method options.

- write VTK file instead of volScalarField in combination
  with -dry-run and -cellDist.

  Avoids adding any OpenFOAM fields and is usually faster to load.
  Also easier to rename than a volScalarField would be when exploring
  multiple decompositions.
2021-05-19 18:16:05 +02:00
0ea709e5ee STYLE: minor code reduction in reconstructParMesh 2021-05-19 18:16:05 +02:00
0affbceaca ENH: 'foamToVTK -finite-area' option (compat: -finiteAreaFields)
- aligns with the resulting VTK subdirectory name
2021-05-19 18:16:05 +02:00
edbee86271 Merge branch 'update-tokenizer' into 'develop'
ENH: adjust tokenizing

See merge request Development/openfoam!452
2021-05-19 16:11:50 +00:00
ec81436cce TUT: generalize (parameterize) blockMeshDict for half-cylinder geometries
- profit from some of the recent modifications to parser expansion

TUT: adjust some #eval statements for less clutter
2021-05-19 17:33:25 +02:00
2dbabb242b ENH: namedDictionary for managing keyword/dictionary combinations
- reworked from the openfoam.org wordAndDictionary version.

Allows, for example, named entries in topoSet.
2021-05-19 17:13:24 +02:00
c9fda67b5f ENH: refactor function arg splitting -> stringOps::splitFunctionArgs 2021-05-19 16:20:12 +02:00
44a243a94d ENH: improve stream handling of expansions (#2095)
* removed internal upper limit on word/string length for parsed input.

  - Although it has not caused many problems, no reason to retain
    these limits.
  - simplify some of the internal logic for reading string-like items.
  - localize parsers for better separation from the header

  - expose new function seekCommentEnd_Cstyle(), as useful
    handler of C-style comments

* exclude imbalanced closing ')' from word/variable

  - previously included this into the word/variable, but makes more
    sense to leave on the parser for the following token.

    Prevents content like 'vector (10 20 $zmax);' from being parsed
    as '$zmax)' instead of as '$zmax' followed by a ')'.
    No conceivable reason that the former would actually be desirable,
    but can still be obtained with brace notation: Eg, '${zmax)}'

* consistent handling of ${{ ... }} expressions

  - within a dictionary content, the following construct was
    incorrectly processed:

        value ${{2*sqrt(0.5)}};

    Complains about no dictionary/env variable "{2*sqrt(0.5)}"

    Now trap expressions directly and assign their own token type
    while reading. Later expansion can then be properly passed to
    the exprDriver (evalEntry) instead of incorrectly trying
    variable expansion.

    Does not alter the use of expressions embedded within other
    expansions. Eg, "file${{10*2}}"

* improve #eval { ... } brace slurping

  - the initial implementation of this was rudimentary and simply
    grabbed everything until the next '}'.  Now continue to grab
    content until braces are properly balanced

    Eg, the content:   value #eval{${radius}*2};

    would have previously terminated prematurely with "${radius" for
    the expression!

NOTE:
    both the ${{ expr }} parsed input and the #eval { ... } input
    discard C/C++ comments during reading to reduce intermediate
    overhead for content that will be discarded before evaluation
    anyhow.

* tighten recognition of verbatim strings and expressions.

  - parser was previously sloppy and would have accepted content such
    as "# { ..." (for example) as an verbatim string introducer.
    Now only accept parse if there are no intermediate characters
    discarded.
2021-05-18 15:41:26 +02:00
efd1ac4b5f ENH: adjust token in preparation for separate expression tokenization
- minor simplification of #if/#endif handling

ENH: improve input robustness with negative-prefixed expansions (#2095)

- especially in blockMeshDict it is useful to negate an value directly.
  Eg,
  ```
     xmax  100;
     xmin  -$xmax;
  ```
  However, this fails since the dictionary expansion is a two-step
  process of tokenization followed by expansion. After the expansion
  the given input would now be the following:
  ```
     xmax  100;
     xmin  - 100;
  ```
  and retrieving a scalar value for 'xmin' fails.

  Counteract this by being more generous on tokenized input when
  attempting to retrieve a label or scalar value.
  If a '-' is found where a number is expected, use it to negate the
  subsequent value.

  The previous solution was to invoke an 'eval':
  ```
     xmax  100;
     xmin  #eval{-$xmax};
  ```
  which adds additional clutter.
2021-05-18 15:30:00 +02:00
739c1c1d61 Merge branch 'feature-splitMeshRegions-merge' into 'develop'
ENH: splitMeshRegions: combine cellZones. See #2046

See merge request Development/openfoam!448
2021-05-17 10:53:41 +00:00
5120c51ba1 ENH: splitMeshRegions: combine cellZones. See #2046 2021-05-17 10:53:40 +00:00
18c1da05fd Merge branch 'refactor-schemes-handling' into 'develop'
refactor and extend handling of faSchemes/fvSchemes

See merge request Development/openfoam!449
2021-05-14 18:36:38 +00:00
3a1a160cbb ENH: refactor and extend handling of faSchemes/fvSchemes
- use common base for handling scheme lookups.
  Extended to support local injection of schemes into the dictionaries
  during runtime.
2021-05-13 15:27:24 +02:00
91ede9957c STYLE: consistency for usage of GeoMesh
- add const qualifiers on C() methods
2021-05-13 13:07:15 +02:00
662bed74f6 Merge branch 'feature-list-face-updates' into 'develop'
collected changes for Lists, faces and PrimitivePatch

See merge request Development/openfoam!446
2021-05-13 10:53:02 +00:00
5022591c36 ENH: return old file handler on change
- intended for the following type of use:

      auto oldHandler = fileHandler(fileOperation::NewUncollated());

      ... do something that only works with uncollated

      // Restore previous (if any)
      if (oldHandler)
      {
          fileHandler(std::move(oldHandler));
      }

ENH: make fileOperation distributed(bool) mutable

- use is "static-like" and akin to Pstream::parRun(bool),
  thus allow toggling of the switch without a const_cast
2021-05-13 11:39:30 +02:00
2a438385a3 STYLE: make polyMesh constructor explicit
- use polyMesh::defaultRegion instead of fvMesh::defaultRegion and
  others via static inheritance. (92 vs ~25 occurrences)
2021-05-12 11:24:57 +02:00
3bc8ab2839 ENH: improve PrimitivePatch access for edges
- return internalEdges() and boundaryEdges() sub lists directly

- calculate and return boundaryFaces() to identify faces attached to
  boundary edges.

- minor code cleanup, and add PrimitivePatchBase class for
  non-templated code.

STYLE: mark unused parameter in globalMeshData mergePoints
2021-05-12 11:24:57 +02:00
ea2bf72740 ENH: support gather of indirect list via globalIndex 2021-05-12 11:24:57 +02:00
17e6a14773 ENH: improve support for assignment from indirect list
- copy assignment from indirect list to SubList and Field
2021-05-12 11:24:57 +02:00
40567b844a DEFEATURE: remove construct List from two iterators (#2083)
- this constructor was added for similarity with std::vector,
  but continues to cause various annoyances.

  The main problem is that the templated parameter tends to grab
  anything that is not a perfect match for other constructors.

  Typically seen with two integers (in 64-bit mode), but various other
  cases as well.

  If required, the ListOps::create() function provides a lengthier
  alternative but one that can also incorporate transformations.
  Eg,

      pointField pts = ....;

      List<scalar> mags
      (
          List<scalar>::create
          (
              pts.begin(),
              pts.end(),
              [](const vector& v){ return magSqr(v); }
      );
2021-05-12 11:24:57 +02:00
c0138ee8b6 ENH: add forward/reverse circular index/value accessors for indirect lists
- improves interchangeability of List vs IndirectList
2021-05-12 11:24:57 +02:00
8eef91c5e2 ENH: improve edge access for face/triFace
- additional rcEdge(), rcEdges() methods for reverse order walk

- accept generic edge() method as alternative to faceEdge() for
  single edge retrieval.

- edge() method with points -> returns the vector

- reduce the number of operations in edgeDirection methods

DEFEATURE: remove longestEdge global function

- deprecated and replaced by face::longestEdge() method (2017-04)
2021-05-12 11:24:57 +02:00
5eb48c443a ENH: add set/zone support to randomise function object (#2086) 2021-05-12 11:24:52 +02:00
3595e6f93c COMP: specify default format for vtk::polyWriter constructor (internals)
- gcc-4.8.5 does not respect the default parameter,
  thus specify format explicitly
2021-05-12 09:50:23 +02:00
4d14c95567 ENH: change location of static ensight geometry (#2079)
Historically the "geometry" for static meshes was placed under
directly in the EnSight case directory.

Eg,

     ensight/ensight.case
     ensight/geometry
     ensight/data/000001
     ensight/data/000002 ...

This generally works ok, but relocating it to a constant data directory
Eg
     ensight/ensight.case
     ensight/data/constant/geometry
     ensight/data/000001
     ensight/data/000002 ...

Improves handling and avoids potential collisions when adding in
additional mesh regions
2021-05-10 14:34:44 +02:00
0a78e685ee ENH: introduce intermediate vtk::polyWriter class
- reduces code, simplifies creation of new, specialized polyData
  writers.

- new templated vtk::GenericPatchWriter, which adds support for
  writing both uindirectPrimitivePatch + indirectPrimitivePatch types.

- handle geometric fields separately from regular fields with
    * vtk:GenericPatchGeoFieldsWriter
    * vtk:indirectPatchGeoFieldsWriter
    * vtk:uindirectPatchGeoFieldsWriter
2021-05-10 14:34:44 +02:00
492d5cb645 ENH: support 'transform' specification for geometric decomposition
- can be used for block-like meshes that are not aligned with the global
  coordinate directions. Alternatively, for general testing purposes.

  Example,

    method  simple;
    coeffs
    {
        n       ( 2 2 2 );
        transform
        {
            origin  (-0.15 0.15 0);
            e1      (1 1 0);
            e3      (0 0 1);
        }
    }
2021-05-10 14:34:43 +02:00
36266a7e7d BUG: dynamicMotionSolverFvMeshAMI - correction for running in debug mode. See #2078 2021-05-10 13:24:26 +01:00
ac2dee910d Merge branch 'feature-allRegions' into 'develop'
add multi-region handling for checkMesh etc,  centralized the region handling #2072

See merge request Development/openfoam!445
2021-05-07 10:50:02 +00:00
1177dbd111 ENH: checkMesh: -allRegions. See #2072 2021-05-07 09:46:33 +02:00
c410edf928 ENH: centralized handling of -allRegions, -regions, -region (#2072)
Step 1.
    include "addAllRegionOptions.H"

    Adds the -allRegions, -regions and -region options to argList.

Step 2.
    include "getAllRegionOptions.H"

    Processes the options with -allRegions selecting everything
    from the regionProperties.

    OR use -regions to specify multiple regions (from
       regionProperties), and can also contain regular expressions

    OR use the -region option

    Specifying a single -regions NAME (not a regular expresssion)
    is the same as -region NAME and doesn't use regionProperties

    Creates a `wordList regionNames`

Step 3.
    Do something with the region names.
    Either directly, or quite commonly with the following

    include "createNamedMeshes.H"

    Creates a `PtrList<fvMesh> meshes`

STYLE: add description to some central include files
2021-05-07 09:46:33 +02:00
86a2ae4f03 ENH: add maxSize() and maxNonLocalSize() to globalIndex
- useful for establishing and preallocating a max buffer size
  when reading from sub-procs
2021-05-07 09:43:42 +02:00
56db12fca1 TUT: remove old metisCoeffs entries 2021-05-06 21:43:10 +02:00
3375ec952a GIT: remove unused file 2021-05-06 21:43:10 +02:00
8fcc1b893a BUG: OFstream does not remove existing link (fixes #2075) 2021-05-06 21:43:10 +02:00
03b0ca6f2e CONFIG: trap missing make command in canCompile (#2077) 2021-05-06 21:43:10 +02:00
db6c9c7bb2 BUG: cyclicAMIFvPatch - use AMI.distributed() flag instead of Pstream::parRun(). See #2078 2021-05-06 10:27:26 +01:00
bfea2326da Merge branch 'enh-streams-and-function1' into 'develop'
improve flexiblity of IOdictionary construction, use of ITstream, Function1

See merge request Development/openfoam!444
2021-04-29 08:18:21 +00:00
5a5fd1a43c COMP: sign check to avoid warnings about new[] range 2021-04-27 12:28:35 +02:00
308af39136 COMP: sign check to avoid warnings about new[] range 2021-04-27 10:20:25 +02:00
86f627b9e6 ENH: consolidate decomposition model, constructors for decomposition methods
- make regionName an optional constructor parameter, which eliminates
  a separate set of constructors and construction tables. Adjust
  internals to treat a missing/empty regionName as a no-op.

- pass in fallback dictionary content via new IOdictionary constructor
  with a pointer

ENH: further relax check for matching number of processor dirs

- if the "numberOfSubdomains" entry is missing (or even zero)
  ignore checks of processor dirs as meaningless.
2021-04-27 09:14:48 +02:00
dedb1c0c90 ENH: remove some "heavy" data when copying dictionary content 2021-04-26 17:09:39 +02:00
399c21d76c ENH: adjustments for Function1/PatchFunction1
- additional debug information

- improve support for dictionary specification of constant, polynomial
  and table entries. These previously only worked properly for
  primitiveEntry, which causes confusion.

- extend table Function1 to include TableFile functionality.
  Simplifies switching and modifying content.
2021-04-26 17:09:39 +02:00
0252b4d58d ENH: update {fa,fv}Schemes for more recent dictionary/ITstream definitions
- can construct named empty dictionary directly.
- removed some duplicate code
2021-04-26 17:09:39 +02:00
b267f8b6da ENH: add failsafe accessors for ITstream
- failsafe examine elements: peek(), peekFirst(), peekLast()
- failsafe traversing: skip()

  For example,

      ITstream& is = dict.lookup(key);
      if (is.peek().isWord())
      {
          is.skip();
      }
2021-04-26 17:09:39 +02:00
9dc3d2bf40 ENH: additional ITstream constructors
- additional default construct

- add explicit zero-size constructor for ITstream.
  For tagged dispatching, without ambiguity

- elminate mandatory name for parsing versions.
  This makes it easier to use ITstream, IStringStream, UListStream
  interchangeable.
2021-04-26 17:09:39 +02:00
eb01cab052 ENH: failsafe version of Istream peek()
- return undefinedToken on error

STYLE: fix slicing of ITstream from dictionary lookup
2021-04-26 17:09:38 +02:00
b62437081e ENH: support optional fallback content for IOdictionary 2021-04-26 17:09:38 +02:00
385f92732b STYLE: default construct empty dictionaries
- some code used copy construct from dictionary::null instead.
  The result is the same but suggests that something else may be intended.
  Only need dictionary::null for const-ref usage.
2021-04-26 17:09:38 +02:00
d2311437ef Merge branch 'feature-refactoring-dmd' into 'develop'
ENH: DMD: refactor dynamic mode decomposition FO

See merge request Development/openfoam!440
2021-04-26 14:50:44 +00:00
2c74298891 TUT: DMD: update cylinder2D with new DMD functionalities 2021-04-26 09:20:25 +00:00
2a8e1c0865 ENH: DMD: refactor dynamic mode decomposition FO
ENH: DMD: enable operations on patch fields
ENH: DMD: enable postProcess utility
2021-04-26 09:20:25 +00:00
8bfab7aa80 ENH: QRMatrix: improve stability in pinv 2021-04-26 09:20:25 +00:00
881eeb0214 TUT: atmFlatTerrain: fix atmAmbientTurbSource value (#2031) 2021-04-26 09:20:25 +00:00
7c494a6b64 ENH: accept quoted surface names in surfaceFeatureExtract (#2071)
- allows use of surface names starting with a digit
  (by quoting the name).

  User is responsible for not generating bad names for output files.
  Eg "bad.**.name", since these will be difficult to handle from the
  shell
2021-04-23 11:40:29 +02:00
8524d02218 STYLE: use full path for decompositionMethods includes
- improves overall consistency and simplifies mpi-specific reuse
  (ie, ptscotchDecomp)
2021-04-23 11:39:29 +02:00
77375a88fd CONFIG: additional intel compiler flags (#2056) 2021-04-23 11:39:29 +02:00
d549826528 CONFIG: adjust intel compiler and mpi settings (#2056)
- largely as per patch from Jong-Gwan (Jason) Do

NB: the intel-one setup adds in paths for intelmpi.
    Its mpicc version does not harmonize with the OpenFOAM
    system openmpi setup (using mpicc --showme:link).

    Needs adjustment, or use intelmpi instead.

- update name mappings for newer gcc, clang versions
2021-04-23 11:39:29 +02:00
8878050ff9 BUG: Checking sum of multiComponent mixture species
Checking for the sum of species mass fraction in multiComponentMixture.
It can't be zero at the internal field or patches. A fatal error is thrown.

A warning was added if the mixture sum is different from one. In a
re-start the mass fraction can be slightly unbounded and new
normalization is required.
2021-04-22 11:22:58 -07:00
f00357349c Merge branch 'feature-filename-regex-hashes' into 'develop'
consistency improvements for regex and hashes, etc

See merge request Development/openfoam!442
2021-04-19 16:34:09 +00:00
cf9063878e ENH: improve dynamicCode consistency
- refactor and provision for additional code context
2021-04-19 16:33:42 +00:00
2b7b3700c2 ENH: replace keyType with wordRe for matching selectors.
- The keyType is primarily used within dictionary reading, whereas
  wordRe and wordRes are used for selectors in code.
  Unifying on wordRe and wordRes reduces the number matching options.
2021-04-19 16:33:42 +00:00
95cd8ee75c ENH: improve hashing overloads of string-types and HashTable/HashSet
- additional dummy template parameter to assist with supporting
  derived classes. Currently just used for string types, but can be
  extended.

- provide hash specialization for various integer types.
  Removes the need for any forwarding.

- change default hasher for HashSet/HashTable from 'string::hash'
  to `Hash<Key>`. This avoids questionable hashing calls and/or
  avoids compiler resolution problems.

  For example,
  HashSet<label>::hasher and labelHashSet::hasher now both properly
  map to Hash<label> whereas previously HashSet<label> would have
  persistently mapped to string::hash, which was incorrect.

- standardize internal hashing functors.

  Functor name is 'hasher', as per STL set/map and the OpenFOAM
  HashSet/HashTable definitions.

  Older code had a local templated name, which added unnecessary
  clutter and the template parameter was always defaulted.
  For example,

      Old:  `FixedList<label, 3>::Hash<>()`
      New:  `FixedList<label, 3>::hasher()`
      Unchanged:  `labelHashSet::hasher()`

  Existing `Hash<>` functor namings are still supported,
  but deprecated.

- define hasher and Hash specialization for bitSet and PackedList

- add symmetric hasher for 'face'.
  Starts with lowest vertex value and walks in the direction
  of the next lowest value. This ensures that the hash code is
  independent of face orientation and face rotation.

NB:
  - some of keys for multiphase handling (eg, phasePairKey)
    still use yet another function naming: `hash` and `symmHash`.
    This will be targeted for alignment in the future.
2021-04-19 16:33:42 +00:00
b060378dca ENH: improve consistency of fileName handling windows/non-windows (#2057)
- wrap command-line retrieval of fileName with an implicit validate.

  Instead of this:
      fileName input(args[1]);
      fileName other(args["someopt"]);

  Now use this:
      auto input = args.get<fileName>(1);
      auto other = args.get<fileName>("someopt");

  which adds a fileName::validate on the inputs

  Because of how it is implemented, it will automatically also apply
  to argList getOrDefault<fileName>, readIfPresent<fileName> etc.

- adjust fileName::validate and clean to handle backslash conversion.
  This makes it easier to ensure that path names arising from MS-Windows
  are consistently handled internally.

- dictionarySearch: now check for initial '/' directly instead of
  relying on fileName isAbsolute(), which now does more things

BREAKING: remove fileName::clean() const method

- relying on const/non-const to control the behaviour (inplace change
  or return a copy) is too fragile and the const version was
  almost never used.

  Replace:
      fileName sanitized = constPath.clean();

  With:
      fileName sanitized(constPath);
      sanitized.clean());

STYLE: test empty() instead of comparing with fileName::null
2021-04-19 16:33:42 +00:00
96a1b86fb9 ENH: consistency improvements for keyType and wordRe
- simplify compile/uncompile, reading, assignment

- implicit construct wordRe from keyType (was explicit) to simplify
  future API changes.

- make Foam::isspace consistent with std::isspace (C-locale)
  by including vertical tab and form feed

ENH: improve #ifeq float/label comparisons
2021-04-19 16:33:42 +00:00
57c1fceabf ENH: disentangle testing and quoting of regex characters
- originally had tests for regex meta characters strewn across
  regExp classes as well as wordRe, keyType, string.
  And had special-purpose quotemeta static function within string
  that relied on special naming convention for testing the meta
  characters.

  The regex meta character testing/handling now relegated entirely
  to the regExp class(es).
  Relocate quotemeta to stringOps, with a predicate.

- avoid code duplication. Reuse some regExpCxx methods in regExpPosix
2021-04-19 16:33:42 +00:00
cdbc3e2de6 ENH: List/DynamicList appendUniq() method
- affords some code reduction.

STYLE: use HashSet insert() without found() check in more places
2021-04-19 16:33:42 +00:00
6dc6d7ca9a ENH: refactor generic patch fields for code reduction
- adjust compilation order to make available after
  finiteArea and finiteVolume are compiled
2021-04-19 16:33:42 +00:00
ed686f4ef6 COMP: missing separator
CONFIG: bad csh syntax
2021-04-19 16:33:42 +00:00
41d6b935dd Merge branch 'feature-snappyHexMesh-proximityCheck' into 'develop'
ENH: snappyHexMesh: block walk through other surfaces.

See merge request Development/openfoam!439
2021-04-19 09:28:54 +00:00
a9f8bc079f ENH: snappyHexMesh: block walk through other surfaces. 2021-04-19 09:22:28 +00:00
3f1f191034 BUG: noise - reinstated parallel running without processor directories 2021-04-16 09:57:44 +01:00
c1bc839841 GIT: relocate compatibility tmpNrc.H to tmp/ 2021-04-15 10:41:54 +02:00
8ad448b803 ENH: minor adjustments to token methods for more granularity 2021-04-15 10:41:54 +02:00
bb86eecdc4 ENH: add filtering version of dictionary copy
- can be useful when extracting portions of larger field files
2021-04-15 10:41:53 +02:00
100ae5c2bd ENH: fixedNormalSlip BC: add 'value' keyword (#1980, #1981)
DOC: improve header-file content

STYLE: fix stray use of wordReList instead of wordRes

Co-authored-by: Kutalmis Bercin
2021-04-15 10:41:08 +02:00
86744913f4 Merge remote-tracking branch 'origin/master' into develop 2021-04-15 10:29:07 +02:00
6740925621 CONFIG: bump patch level 2021-04-14 20:09:25 +02:00
19b90a1130 BUG: generic point patch fails (fixes #2062)
- the generic constructor could be called twice in pointPatchField::New,
  which results in an attempt to transfer tokens twice.
2021-04-14 19:35:41 +02:00
93befa4f63 ENH: surfaceNoise - added option to specify area-weighted|ensemble average 2021-04-01 13:04:01 +01:00
2dbdac109e STYLE: modifyMesh: left-over debug printing 2021-03-31 15:55:48 +01:00
c9c85d9afe BUG: primitiveMesh: incorrect uncached edgeFaces. Fixes #2047.
It was only looking for faces that were used in both
endpoints but not actually checking whether they were indeed
an edge (== consecutive vertex) in all faces. So if one
face had an additional crossing edge and another didn't it
would find more edgeFaces than the proper
'primitiveMesh::edgeFaces()' routine.
This occasionally happened inside snappyHexMesh
(e.g. motorBike tutorial)
2021-03-31 15:32:14 +01:00
fefd59f374 COMP: Allwmake: fix compilation problem
On high numbers of cores the extrudeModel/polyLine can
start compiling before blockMesh/lnInclude has been
constructed correctly.
2021-03-31 15:32:14 +01:00
6778ba9e3d Merge branch 'feature-acmi-layerAdditionRemoval' into 'develop'
Handle layer addition on acmi

See merge request Development/openfoam!434
2021-03-31 14:30:03 +00:00
22b4c44fe8 BUG: layerAddition: duplicate faces. Fixes #1988. Fixes #2036.
When extruding an edge to a patch face make sure to extrude
all the patch faces connected to that edge and cell. This
will handle cyclicACMI (has duplicate patches - AMI and non-overlap)
2021-03-31 14:29:48 +00:00
1829f7db6e BUG: fvMesh: handle cyclicACMI inside e.g. checkMesh
fvMesh::readUpdate calls polyMesh::readUpdate which updates
the ACMI (including mesh areas etc). So we should not call
polyMesh::clearOut again inside fvMesh::readUpdate to avoid
having to re-do all the ACMI.
2021-03-31 14:29:48 +00:00
aa971e901a Merge branch 'issue-2033-reactingMultiphaseEulerFoam-reactingTwoPhaseEulerFoam' into 'develop'
INT: reacting*EulerFoam: correct handling of K for energy equation (#2033)

See merge request Development/openfoam!438
2021-03-31 10:16:49 +00:00
ded81f4e65 INT: reacting*EulerFoam: correct handling of K for energy equation (#2033) 2021-03-31 10:16:23 +00:00
ef0786cca0 Merge branch 'tutorial-DNS-electromagnetics-financial-stressAnalysis' into 'develop'
TUT: DNS, electromagnetics, financial, stressAnalysis: clean up tutorials

See merge request Development/openfoam!437
2021-03-31 10:14:57 +00:00
16762e6d49 TUT: DNS, electromagnetics, financial, stressAnalysis: clean up tutorials 2021-03-31 10:14:42 +00:00
20af386290 Merge branch 'feature-radiationmodel-external-solarload' into 'develop'
ENH: solarLoad: new load model, timeDependent

See merge request Development/openfoam!431
2021-03-31 10:13:52 +00:00
82a24a39b0 ENH: solarLoad: enable time-dependent direct/diffuse irradiance
ENH: solarLoad, fvDOM: enable time-dependent spectralDistribution
DOC: solarLoad, fvDOM, solarCalculator: improve header documentation
TUT: solarLoadModel, solarDirectionModel: use new shorter entries
2021-03-31 10:13:08 +00:00
4ad4783e5f DOC: radiation fvOptions: improve documentation 2021-03-31 10:13:08 +00:00
644857ba9e SUBMODULE: update for visualization
- robuster handling of different VTK versions

- compilation changes for avalanche, cfmesh
2021-03-29 16:13:03 +02:00
21720bea12 ENH: support field width for #eval expressions
For example,
```
entry #eval 10 { vector(rand(), 0, 0) };
```

ENH: be more generous and ignore trailing ';' in expressions

STYLE: adjust parse token name for tensor::I
2021-03-29 16:00:11 +02:00
d4ac96cdf3 ENH: support use of 'vector' in #calc directive (fixes #2039) 2021-03-29 16:00:11 +02:00
4a3998c698 ENH: add exprResult output of a field without dictionary keywords 2021-03-29 16:00:11 +02:00
13ea1b70fe CONFIG: update/generalize FJMPI settings (#2044)
- previously had a very old (likely irrelevant) setting for solaris
  systems only.

- support site-specific customization.
  Eg, using etc/config.{csh,sh}/prefs.fjmpi

- remove erroneous shell redirects present in cshell files
2021-03-29 16:00:11 +02:00
b0e6c1fcd3 ENH: preserve face point order for VTK
- less important for VTK (may help in future though) but preserve
  the face point 0 when flipping faces to ensure that the result
  is the same as having called face::reverseFace()
2021-03-29 16:00:11 +02:00
8abac1dc4d Merge branch 'feature-function1-fields' into 'develop'
ENH: refactor Function1 to enable fields

See merge request Development/openfoam!435
2021-03-29 13:55:42 +00:00
7ff603d496 ENH: refactor Function1 to enable fields 2021-03-29 13:35:55 +00:00
7cd3b270d8 Merge branch 'issue-2016-geoVoF-infiniteloop' into 'develop'
BUG: possible infinteloop in plicRDF and isoAdvector - Fixes #2016

See merge request Development/openfoam!436
2021-03-26 12:11:00 +00:00
497215cc26 BUG: possible infinteloop in plicRDF and isoAdvector - Fixes #2016 2021-03-25 20:49:34 +01:00
05a0e7f371 Merge remote-tracking branch 'origin/master' into develop 2021-03-24 14:22:13 +00:00
79ea57bdc1 ENH: pointNoise - check pressure data before applying conversions 2021-03-24 13:59:15 +00:00
eb317550fe Merge branch 'tutorial-discreteMethods' into 'develop'
TUT: discreteMethods: cleanup tutorials

See merge request Development/openfoam!432
2021-03-24 13:17:15 +00:00
2fa8e5fdf3 TUT: discreteMethods: cleanup tutorials 2021-03-24 13:16:45 +00:00
c4a7563a73 Merge branch 'code-review.saf' into 'develop'
ENH: new solvers: overPhaseChangeInterFoam and overCompressibleInterDyMFoam

See merge request Development/openfoam!425
2021-03-24 13:15:22 +00:00
ad35fea763 ENH: new solvers: overCompressibleInterDyMFoam and overInterPhaseChangeDyMFoam
- overCompressibleInterDyMFoam: Overset solver for two compressible,
non-isothermal, immiscible fluids using a VOF (i.e. volume of fluid)
phase-fraction based interface capturing approach.
- overInterPhaseChangeDyMFoam: Overset solver for two incompressible,
isothermal, immiscible fluids with phase-change (e.g. cavitation) using
VoF (i.e. volume of fluid) phase-fraction based interface capturing approach.
- adds new tutorials:
  - multiphase/overCompressibleInterDyMFoam/compressibleTwoSimpleRotors
  - multiphase/overInterPhaseChangeDyMFoam/twoSimpleRotors

Signed-off-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2021-03-24 12:35:31 +00:00
b3142ffb54 ENH: runTimeControl - added option to trigger a fatal error on exit (#2042)
- useful when used in a batch process to trap the exit signal,
  e.g. stop the run when the velocity magnitude exceeds a given
  threshold:

    runTimeControl
    {
        type            runTimeControl;
        libs            ("libutilityFunctionObjects.so");
        nWriteStep      1;

        // Optional end 'action'
        satisfiedAction abort; // end; // setTrigger

        conditions
        {
            maxU
            {
                type            minMax;
                functionObject  MinMax;
                fields          ("max(mag(U))");
                value           1e6;
                mode            maximum;
            }
        }
    }
2021-03-23 20:49:31 +00:00
cbfa9f685e ENH: noiseModels - added feedback for the case that frequency range is empty 2021-03-23 18:10:37 +00:00
21dda3254c BUG: noiseModel - respect lower frequency bound in octave calculation. Fixes #2041 2021-03-23 17:12:43 +00:00
5ba31cd5de BUG: avoid blocking on redistributePar (continuation of #2027)
- adjust sync condition (continuation of 201f117f5f)
2021-03-23 18:00:14 +01:00
221c3c0200 ENH: add OFstream rewind() method.
- truncates output file, handles compressed streams
2021-03-23 18:00:14 +01:00
f5a931d4b5 STYLE: avoid some implicit dictionary construct from Istream 2021-03-23 17:59:46 +01:00
9cc497373b ENH: snappyHexMeshDict: added thicknessModel setting 2021-03-22 14:52:17 +00:00
1c0714f9b8 STYLE: snappyHexMeshDict: indentation 2021-03-22 14:52:17 +00:00
b99078768e ENH: downgrade missing default system/decomposeParDict to warning
- if the system/decomposeParDict is missing, skip check for matching
  number of processor dirs. This can make job dispatch easier.
  Does not apply if -decomposeParDict was explicitly specified.

STYLE: adjust naming of host/slaves in argList
2021-03-22 14:45:17 +01:00
201f117f5f BUG: prevent blocking when processor directories are missing (fixes #2027)
- ensure that the processor directory cache is consistently available
  by providing appropriate synthesized names. If the expected files
  really do not exist, it will still fail at a later point (but not in
  the caching).

  This addresses cases that have been manually distributed
  (different content on different nodes, but the same root path),
  while still maintaining the readDir on master only for massively
  parallel cases (#1946). It also addresses regular cases with
  gaps in the processor directories.
2021-03-22 14:45:17 +01:00
dc27daf4f4 ENH: additional data.class, data.format entries for collated 2021-03-22 10:47:52 +01:00
f8c2928a88 COMP: Adding fvDynamicMesh lib to option file 2021-03-18 14:12:12 -07:00
2f4d864c85 ENH: Adding dynamic mesh functionality to icoReactingMultiphaseInterFoam 2021-03-18 11:47:18 -07:00
5c4d714b45 ENH: Update icoReactingMultiPhaseInterFoam tutorials 2021-03-18 11:47:17 -07:00
85ff3d39d4 BUG: Fixing crankConRod re-reading controlDict 2021-03-18 11:47:17 -07:00
67e41f02ef ENH: Adding chemistry time scale information to EDC models 2021-03-18 11:47:17 -07:00
cd3fa1c04b BUG: Fixing pyrolysis region motion. 2021-03-18 11:47:17 -07:00
1f0476a84c Merge remote-tracking branch 'origin/master' into develop 2021-03-18 16:56:54 +00:00
dbed3a0602 BUG: Curle FO - corrected division by 4pi. Fixes #2035 2021-03-18 16:41:40 +00:00
1ca99a2c94 ENH: improve dimensions handling for setExpr* utilities (#2014)
- new '-ascii' option to write in ASCII format instead of the
  controlDict setting. This can be useful when generating fields that
  should be parsed with other tools, or for visual inspection.

- correct mismatch of option names and lookups
2021-03-18 11:53:42 +01:00
cd1350a87f ENH: support preloading fields for setExpr* utilities (#2014)
- can use either command-line option "-load-fields" or dictionary
  entry "readFields" to specify field names to be preloaded.

  Essentially the same functionality as with a readFields function
  object but with a lot less typing.

- tutorial examples provided by Ryan Danks <ryan.danks@rwdi.com>
  illustrate using setExpr* utilities to calculate a quantity
  as a post-processing step.
2021-03-17 21:42:37 +01:00
6ccc587bea ENH: reduce some code duplication in fileOperations 2021-03-17 15:52:36 +01:00
cb6dedacfc STYLE: suppress meta information for empty zone meshes 2021-03-17 15:10:00 +01:00
9a2a22a03a ENH: provide setter methods for IOobject read/write options etc.
- simplifies local toggling.

- centralize fileModification static variables into IOobject.
  They were previously scattered between IOobject and regIOobject
2021-03-17 15:10:00 +01:00
3ce18cb6e2 COMP: missing include file for math functions (FULLDEBUG)
- additional include "Switch" in expressions
2021-03-17 15:09:33 +01:00
3299f9ac0d ENH: redistributePar: single-step. See #1211
Support for DimensionedFields
2021-03-17 12:21:46 +00:00
853f50f7da Merge branch 'feature-rigidBody' into 'develop'
ENH: Improvement to overset that allows multiple motion solvers

See merge request Development/openfoam!428
2021-03-17 09:08:38 +00:00
ec609b90b8 STY: Clearing up code and updating tutrial 2021-03-17 09:07:26 +00:00
da1e6ea8d0 ENH: Improvement to overset that allows multiple motion solvers
to operate with overset

1) Adding zoneMotion to rigidBodyMotion
2) Introducing PID to prescribedRotation restraint
3) Making drivenLinearMotion read total displacement
4) When drivenLinearMotion is used sixDof and rigid-body solvers
   write total displacement
2021-03-17 09:07:26 +00:00
8d3efa1cb9 BUG: AABBTree - corrected addressing. Fixes #2028 2021-03-16 12:27:38 +00:00
1050314b8c Merge branch 'IOObject-headers' into 'develop'
file "meta" information

See merge request Development/openfoam!430
2021-03-16 08:49:21 +00:00
da44c100f0 ENH: support additional output meta data in FoamFile header
- currently add to mesh zones to provide a table of contents
  of the zone names that allows downstream consumers quick access to
  the information without needing to parse the entire file.
2021-03-16 08:47:59 +00:00
0c985edfc8 ENH: additional routines for reading/writing/parsing IOObject headers
- support selective enable/disable of the file banner.

ENH: improve code isolation for decomposedBlockData

- use readBlockEntry/writeBlockEntry to encapsulate the IO handling,
  which ensures more consistency

- new decomposedBlockData::readHeader for chaining into the
  block header information.

- remove unused constructors for decomposedBlockData

ENH: minor cleanup of collated fileOperations
2021-03-16 08:47:59 +00:00
e8cf2a2c62 ENH: more consistent use of IOstreamOption
- improves interface and data consistency.
  Older signatures are still active (via the Foam_IOstream_extras
  define).

- refine internals for IOstreamOption streamFormat, versionNumber

ENH: improve data alignment for IOstream and IOobject

- fit sizeof label/scalar into unsigned char

STYLE: remove dead code
2021-03-16 08:47:59 +00:00
e3c8af0c8f ENH: add read/write specialization for lists of character data
- read/write lists of character data in binary only.
  This is the only means of preserving data.
  If character data are written as an ASCII list, there is no means of
  determining if spaces or newlines are content or separators.
2021-03-16 08:47:58 +00:00
498de8a74a ENH: unify read/write for containers
- handle binary/contiguous first as being the most obvious, followed
  by increasing complexity of ascii.
  Structure reading and writing routines similarly by introducing a
  readList method to compliment the writeList method.
2021-03-16 08:47:58 +00:00
a76a3d760c ENH: add operator* to refPtr - makes it more like autoPtr
- would ideally like the same for tmp, but there is too much existing
  code that uses a multiply operation that would be interpreted as a
  dereference.
2021-03-16 08:47:58 +00:00
d15a396a6a TUT: add value entry for some uniformFixedValue bcs (#2014)
- generally OK to miss for easily evaluated functions, but highly
  misleading with expressions (where the evaluate may be invalid
  during construction).
2021-03-15 19:02:00 +01:00
bf0a48d68e ENH: avoid possible divide-by-zero (fixes #2025)
- based on fix supplied by Henning.Scheufler@dlr.de
2021-03-15 18:29:13 +01:00
88c256b86a ENH: add dictionaryContent wrapper
STYLE: adjust wording of age-warning
2021-03-15 16:24:42 +01:00
db343351f7 BUG: redistributePar: single-step. See #1211
- override casename, procesorCase flags to guarantee reconstructed
case to be written to the undecomposed directory
- alternative is to construct a Zero mesh on the undecomposed
runTime and add all other bits to that but that has not been
pursued
2021-03-15 08:31:10 +00:00
273741c052 BUG: correct the EnSight point value patch conversion (#2010)
- patch point ordering was affected by the EnSight face sorting
  (tri, quad, nsided). This did not affect other point fields,
  since they use the internal field values.
2021-03-12 18:13:34 +01:00
9dc70ab856 Merge branch 'tutorial-lagrangian' into 'develop'
TUT: lagrangian: clean up tutorials

See merge request Development/openfoam!429
2021-03-12 11:40:21 +00:00
86c1ecdf32 TUT: lagrangian: clean up tutorials 2021-03-12 11:40:02 +00:00
d10769f5a9 ENH: checkMesh: write surface fields. Fixes #2023 2021-03-10 18:46:40 +00:00
daf9af461c CONFIG: bump API to 2102
- fvMeshDistribute and redistributePar changes
2021-03-09 09:55:02 +01:00
fa645c2dac ENH: noexcept size_bytes() method for lists
- for use when the is_contiguous check has already been done outside
  the loop. Naming as per std::span.

STYLE: use data/cdata instead of begin

ENH: replace random_shuffle with shuffle, fix OSX int64 ambiguity
2021-03-09 09:49:31 +01:00
51cd7ceecb ENH: improvements for token methods
- direct check of punctuation.
  For example,

      while (!tok.isPunctuation(token::BEGIN_LIST)) ..

  instead of

  while (!(tok.isPunctuation() && tok.pToken() == token::BEGIN_LIST)) ..

  Using direct comparison (tok != token::BEGIN_LIST) can be fragile
  when comparing int values:

      int c = readChar(is);
      while (tok != c) ..  // Danger, uses LABEL comparison!

- direct check of word.
  For example,

      if (tok.isWord("uniform")) ..

  instead of

      if (tok.isWord() && tok.wordToken() == "uniform") ..

- make token lineNumber() a setter method

ENH: adjust internal compound method empty() -> moved()

- support named compound tokens

STYLE: setter method for stream indentation
2021-03-09 09:23:41 +01:00
ce45a12918 TUT: improve parameterization of squareBend geometry
- orient blocks in global x/y/z.
  Provisioning for coarser/smaller geometries.
2021-03-08 17:31:18 +01:00
496792f328 COMP: use single-parameter fvMeshDistribute 2021-03-08 15:34:39 +01:00
aa942aadd4 Merge branch 'develop' of https://develop.openfoam.com/Development/openfoam into develop 2021-03-08 11:07:28 +00:00
ba9e573812 ENH: redistributePar: single-step. See #1211
- single-step for reconstructParMesh
- no point merging for redistributePar -reconstruct
2021-03-08 11:01:57 +00:00
22832b87cb Merge branch 'issue-2005-objectiveManager-masked-function' into 'develop'
COMP:  objective manager masks regIOobject::write function (#2005)

See merge request Development/openfoam!427
2021-03-05 12:36:06 +00:00
50d21b32f2 GIT: removed unused files in the adjoint boundary conditions (#1994) 2021-03-05 12:35:32 +00:00
9ca6e4a548 COMP: objectiveManager::write was hiding regIOobject::write (see #2005) 2021-03-05 12:35:32 +00:00
175d35de22 TUT: minor adjustments 2021-03-05 12:51:39 +01:00
6940b08822 COMP: adjustments for OSX (#2013)
- int64 ambiguity
- std::array include

- bsd-sed syntax (replaces gnu-sed syntax):
  * wmake-build-info
  * wmake-with-bear
2021-03-05 11:17:11 +01:00
a6f7b0f2ee BUG: eigenVectors: correct field-function return type (#2011)
- return type of `eigenVectors`  field functions should be
  `tensor` instead of `symmTensor`
2021-03-04 18:08:29 +01:00
0256e20da3 BUG: reactingParcelFoam: missing entry required for dynamic mesh motion (#2019) 2021-03-04 12:41:21 +01:00
23e14cd1d9 ENH: fvMeshDistribute: single-step distribution. Fixes #1211
First receives all mesh parts and then stitches them
all together in one step. This avoids lots of intermediate
addressing calculation
2021-03-03 15:39:48 +00:00
de7bc07153 BUG: snappyHexMesh: sync deletion decision. See #1772. 2021-03-03 13:14:35 +00:00
a8c9b5936e BUG: cannot set expression from command-line (fixes #2012) 2021-02-25 08:29:15 +01:00
9b0f1b67df Merge branch 'thermo-ext' into 'develop'
Thermo ext

See merge request Development/openfoam!424
2021-02-22 16:49:01 +00:00
fcd17db839 COMP: chemkinToFoam: correct dependencies 2021-02-22 10:44:31 +00:00
fcfaf9ba88 ENH: Adding thermo pairs to Lee model 2021-02-22 10:10:11 +00:00
1020991796 ENH: Adding tabutaled type to thermoPhysicsTypes.
Adding thermo options for mass exchange Lee model for multiPhaseInter using
tabulated type of thermos.
2021-02-22 10:10:11 +00:00
125e60ca67 BUG: pointPatch value ignored in vtk, ensight conversion (fixes #2010
- pointPatches may or may not have a "value" type.
  Use the patch value field where possible and the internal field
  otherwise. Previously always used the internal field.
2021-02-19 14:14:11 +01:00
1bb7afc7fe ENH: raw format with optional output for face area normals (#2003)
- the raw surface writer simply outputs x/y/z and field values.
  This additional flag allows recovery of some geometric information.

- optional user-specified output precision

Example,
```
formatOptions
{
    raw
    {
        normal      yes;
        precision   10;
    }
}
```
2021-02-17 13:36:16 +01:00
af80006f97 Merge remote-tracking branch 'origin/master' into develop 2021-02-17 09:39:18 +01:00
66d1b54a79 ENH: 'Math' namespace for mathematical functions
- centralises existing functions (erfInv, incGamma*, invIncGamma*).
  Provides a location for additional functions in the future.

- adjusted existing models to use these functions
  (e.g. distributionModels::normal)
2021-02-16 18:08:50 +01:00
0b1a33e9be ENH: relax the tensor-inverse tolerance on Tensor (FULLDEBUG) 2021-02-16 18:00:16 +01:00
531e8ab66d CONFIG: relocate messageStream output level control to an InfoSwitch
- location and naming more consistent with other controls

    old: DebugSwitch  'level'
    new: InfoSwitch   'outputLevel'
2021-02-16 14:30:36 +01:00
b97cd5c380 ENH: add HashPtrTable release method
- effectively 'steals' the pointer from the table but leaves its
  name as a placeholder
2021-02-16 14:30:36 +01:00
f8a0677a66 ENH: replace base implementation of Foam::Swap with std::swap
- eliminates a potentially invalid code branch.
  Since it essentially had the same internals as std::swap anyhow,
  make that more evident.

ENH: use std::swap for basic types

- makes it clearer that they do not rely on any special semantics
2021-02-16 14:30:36 +01:00
8c460d8ec9 CONFIG: generate flat debian version name 2021-02-16 14:30:36 +01:00
f997013eb8 COMP: include mpi information for versioned cmake build
- since the wrapped cmake calls generally use the regular build
  locations, add in MPI information to properly handle changes
  in that as well. This makes it easier to build for multiple MPI
  instances.
2021-02-16 14:30:36 +01:00
2954f55f6a ENH: improve surfaceFieldValue sampling and writing (#1999)
- ensure surface writing is time-step and nFields aware.
  This avoids overwriting (ignoring) previous output fields.

- allow sampled surfaces to be used for weight fields as well.
  Not sure why this restriction was still there.

- remove old compatibility reading of orientedFields.
  Last used in v1612, now removed.

- only use face sampling. For surfaceFieldValue we can only do
  something meaningful with face values.

ENH: modify interface methods for surfaceWriter

- replace direct modification of values with setter methods.
  Eg,
     old: writer.isPointData() = true;
     new: writer.isPointData(true);

  This makes it possible to add internal hooks to catch state changes.

ENH: allow post-construction change to sampledSurface interpolation

- rename interpolate() method to isPointData() for consistency with
  other classes and to indicate that it is a query.

- additional isPointData(bool) setter method to change the expected
  representation type after construction

- remove 'interpolate' restriction on isoSurfacePoint which was
  previously flagged as an error but within sampledSurfaces can use
  sampleScheme cellPoint and obtain representative samples.
  Relax this restriction since this particular iso-surface algorithm
  is slated for removal in the foreseeable future.
2021-02-16 14:30:19 +01:00
0990d30b73 BUG: Adding relative flux to the mesh 2021-02-15 12:34:49 -08:00
48fdec46c7 BUG: Improving robustness of tracking on cells with detA zero
1) Small modification to the tracking logic for detA zero.
2) Adding small vector displacement to locate function to avoid error where
particle is inserted at the cell centre.
2021-02-15 12:34:49 -08:00
a334aaae78 ENH: noiseModel gainX - protect against very small input frequencies 2021-02-15 12:51:35 +00:00
ae8ccd7b94 BUG: foamToEnsight cellZones missing mesh coverage (closes #2002) 2021-02-15 13:10:01 +01:00
0ee7a23504 CONFIG: ensure PV_PLUGIN_PATH is also in the library path 2021-02-15 13:09:58 +01:00
9913dfb31a CONFIG: bump patch level 2021-02-10 13:48:10 +01:00
77c31a7bef BUG: inconsistent surfaceFieldValue writing (fixes #1999)
- setup writer outside the data loop to ensure that the number of
  output fields is correct (VTK format).

- ignore 'interpolate' on sampled surfaces to ensure proper
  face sampling, never allow point sampling

BUG: incorrect debug-switch for sampledIsoSurface
2021-02-10 13:47:53 +01:00
8f4b080542 ENH: preserve ThirdParty locations in env modules 2021-02-10 12:43:07 +01:00
9f7a400952 GIT: remove old "removed-file" dependency stubs, version file (#1994) 2021-02-10 12:43:07 +01:00
e71bf4445a GIT: fix edit errors 2021-02-10 12:43:07 +01:00
aa9cd50db9 Merge branch 'feature-PtrList' into 'develop'
PtrListOps and adjustments for sync

See merge request Development/openfoam!422
2021-02-09 19:04:04 +00:00
6cdf89dced ENH: use concise forms for walking processor and cyclic boundaries 2021-02-09 17:57:49 +01:00
f24e3f113f ENH: use PtrListOps to reduce code 2021-02-09 16:22:23 +01:00
5080d3cd1f ENH: additional PtrListOps to simplify gathering information
- get: uses access operation to get values for each list item
  Example,
  PtrListOps::get(mesh.boundaryMesh(), nameOp<polyPatch>());

- names: the name() of each list item filtered for matches

- firstMatching: index of first item with a matching name()

- findMatching: indices of items with a matching match name()
  Example,
  PtrListOps::findMatching(mesh.boundaryMesh(), wordRes( ... ));

STYLE: deprecate transitional getNameOp, getTypeOp

- use nameOp, typeOp (word.H) instead
2021-02-09 16:22:23 +01:00
10787d7e82 BUG: particle: use correct celli. Fixes #1992
Was checking the old celli instead of the result of
re-finding the position. See also Foundation commit 50a965f8866683a81d79cbc7811af7333baf9d10.
2021-02-08 10:30:09 +00:00
3941159d6a ENH: polyMesh: fixed error message 2021-02-08 10:30:09 +00:00
4245909efb BUG: typo in etc/colourTables 2021-02-03 15:05:36 +01:00
13152510b3 ENH: surfaceFieldValue - set surface output info for run-time post-processing
If the 'writeFields' option is set in surfaceFieldValue, e.g.

    surface1
    {
        type        surfaceFieldValue;
        libs        (fieldFunctionObjects);
        operation   none;
        fields      (p);
        regionType  patch;
        name        walls;

        // Create a surface in VTK format
        writeFields yes;
        surfaceFormat vtk;
    }

... the surface can now be used in runTimePostProcessing, e.g.:

    surfaces
    {
        surfaceFieldValueOutput
        {
            type            functionObjectSurface;
            representation  surface;
            liveObject      no;
            field           p;
            colourBy        field;
            range           (0 120000);
            functionObject  surface1;
        }
    }

Note: setting 'liveObject' to 'no' to suppress warnings due to the surface
not being retrieved from the object registry (default = 'yes') - this surface
can [currently] only be read from disk.
2021-01-28 16:55:30 +00:00
170d73f4ec STYLE: minor doc update 2021-01-28 16:55:30 +00:00
aa1e1eb15d COMP: fix inline friend declarations (gcc-4.8.5) 2021-01-27 10:33:19 +01:00
8bda4fadbe Merge remote-tracking branch 'origin/master' into develop 2021-01-26 17:06:33 +01:00
d70e11195c BUG: syncTools: incorrect communicator. See #1986 2021-01-26 10:28:12 +01:00
2c7e95d2cb ENH: rename protected UList size(label) -> setAddressableSize(label)
- modification/continuation of 8d63073b08 and 5c1ec7ecb8 (#595).

  Although this protected function is only used internally, the name
  `size(label)` is too easily confused with `resize(label)` and
  `setSize(label)`. The longer method name eliminates some ambiguity.
  Name consistent with PtrListDetail.

- leave size(label) method (for possible compatibility),
  but mark as deprecated

- improve sizing consistency for (Istream >> DynamicList)

STYLE: more consistent use of resize vs setSize in DynamicList

- more consistency between DynamicList and DynamicField.
  There were some inconsistencies in how construct with a size was
  interpreted.

STYLE: more consistent declaration/use of Swap
2021-01-26 09:42:29 +01:00
9b56c6b1ac ENH: consistent noexcept for list iterators and raw-data accessors
- add byteSize to FixedList and Matrix, for possible streaming

ENH: expose data/cdata for PackedList, bitSet
2021-01-26 09:42:27 +01:00
64c6f350ae ENH: simplify packaging of debian orig tarfile, support zstd compression 2021-01-26 09:42:26 +01:00
902f09b688 ENH: IOobject for header generation, preserve output format in datToFoam 2021-01-26 09:42:26 +01:00
0d6de94e8e COMP: ambiguity in IOobject::writeHeader
- a C-string is interpreted as a bool instead of as a word,
  so remove default parameter to eliminate ambiguity
2021-01-26 09:42:26 +01:00
d770ce7aa8 BUG: syncTools: incorrect communicator. See #1986 2021-01-25 18:06:28 +00:00
f88feaf0d4 BUG: surfaceFieldValue fails writing legacy VTK format
- number of fields was not set.
- interpolated surfaces incorrectly written for all formats
2021-01-22 16:20:46 +01:00
c9b34c52bb COMP: bad template for foamNewFunctionObject (closes #1987) 2021-01-22 12:46:31 +01:00
0e7a2d1529 ENH: syncTools: specialisation for contiguous data. Fixes #1986. 2021-01-20 09:33:44 +00:00
648f0593c8 ENH: primitiveMesh: do not copy input storage. See #1963. 2021-01-20 09:33:44 +00:00
81629a44d0 BUG: mapped: access map() for AMI cases. Fixes #1982
Should not call map() since it triggers building the
(one-to-one) mapping which conflicts with the self-contained
mapping of cyclicAMI
2021-01-18 18:19:24 +00:00
71812c21c5 ENH: add 'arch' information to output file headers (ASCII)
- this was previously suppressed for ASCII format as being 'clutter',
  but without it there is no context for interpreting the type of data
  contained in ASCII files: potentially leading to integer overflows
  when reading in ParaView etc.
2021-01-15 15:06:06 +01:00
80bb1b9f57 ENH: use dictionary get<> methods instead of older readScalar + lookup() 2021-01-15 15:06:06 +01:00
d38a4a9177 ENH: correct newlines in DimensionedField output
- orientedType: use explicit constructors, minor cleanup.
2021-01-15 15:06:06 +01:00
5f805b0592 TUT: add decomposeParDict for cavity
- useful for trivial tests
2021-01-15 15:06:06 +01:00
4561717c51 BUG: incorrect returned size from surfaceWriter 2021-01-13 18:05:31 +01:00
b84caecc1e BUG: useless copy of input (primitiveMeshTools::makeCellCentresAndVols) 2021-01-08 08:59:27 +01:00
84a1452995 BUG: Fix dynamicRefineFvMesh mapping flux.
dynamicRefineFvMesh optionally can map fluxes derived from velocities
fields specified in dynamicMeshDict. The surface interpolation was
using old weights. This fix clear the old weights before mapping
the fluxes
2021-01-06 10:22:36 -08:00
c036d4207b ENH: syncTools: edge orientation test. See #1974. 2021-01-06 09:58:17 +00:00
542dae4a6d ENH: syncTools: add edge orientation. Fixes #1974. 2021-01-06 09:54:37 +00:00
f5e689c6a8 BUG: redistributePar: symmetric logic. Fixes #1973. 2021-01-04 14:44:28 +00:00
d2c0c97af8 BUG: redistributePar: symmetric logic. Fixes #1973. 2021-01-04 14:42:10 +00:00
2f449c57ce DOC: adjust wording 2021-01-03 17:21:14 +01:00
0723bcbf8a GIT: reverted version back to 'com' 2020-12-23 10:01:24 +00:00
79e353b84e RELEASE: Updated version to v2012 2020-12-23 10:01:39 +01:00
c536c0fee5 TUT: use scale instead of convertToMeters 2020-12-23 09:21:14 +01:00
1a7fbc3d7f COMP: initialise to nullptr 2020-12-22 21:14:10 +00:00
7a34f29002 DOC: header documentation updates/corrections 2020-12-22 12:15:06 +00:00
77aa2e6026 COMP: corrections to interfaceTrackingFvMesh following commit 14a471f937 2020-12-22 12:15:06 +00:00
bdcc02cf64 TUT: added missing call to tutorial case 2020-12-22 12:15:06 +00:00
7bdb509494 TUT: adjust tutorials for test loop 2020-12-22 12:27:21 +01:00
e58b59ed6f CONFIG: pass through -prefix=false (ie, disable) 2020-12-21 23:52:28 +01:00
5b29be5f9b COMP: fix linkage (mingw) 2020-12-21 23:28:41 +01:00
9f865914e6 Merge branch 'issue-1962-setAlphaField' into 'develop'
BUG: setAlphaField: fix incompatibilities with BCs (#1962)

See merge request Development/openfoam!418
2020-12-21 18:55:40 +00:00
54dfcf5046 BUG: setAlphaField: fix incompatibilities with BCs (#1962)
Co-authored-by: Johan Roenby <johan.roenby@gmail.com>
Co-authored-by: Henning Scheufler <Henning.Scheufler@dlr.de>
2020-12-21 18:55:30 +00:00
e77e4dd462 Merge branch 'feature-surface-film-filmflux-fo' into 'develop'
ENH: Added new filmFlux function object

See merge request Development/openfoam!417
2020-12-21 18:06:57 +00:00
48f8811896 ENH: Added new filmFlux function object
Calculates the mass flux for surface film models.

Example usage:

    filmFlux
    {
        type            filmFlux;
        writeControl    writeTime;
        result          myPhi; // optional
    }
2020-12-21 18:06:57 +00:00
bf3e9b442d TUT: additional sampling planes, iso-surfaces 2020-12-21 18:31:23 +01:00
a2bc1fd3a6 BUG: extrudeMesh: revert previous fix. see #1964
The polyMesh construct-from-components will now ignore
the readOpt for the supplied primitives as before.
This again re-allows READ_IF_PRESENT for fv* in
combination with supplied primitives.
2020-12-21 17:25:56 +00:00
983b7579ee Merge branch 'feature-virtual-init' into 'develop'
Fix cyclicACMI (runtime-selection-geometry, scaling-of-weights)

See merge request Development/openfoam!419
2020-12-21 14:55:00 +00:00
14a471f937 BUG: cyclicACMI: different construction order. See #1953.
This makes the initialisation order of dynamicMesh consistent
with plain ones using the virtual mechanism. It does not
solve the cyclicACMI construction order yet.
2020-12-21 14:54:59 +00:00
18cd5d864e ENH: reinstate Test-decomposePar -cellDist, add -cellDist-internal
- Useful for diagnosis, the -cellDist-internal produces a
  volScalarField::Internal instead
2020-12-21 09:17:37 +01:00
73207dfcd7 BUG: Fixing cloud constructor for MPPICInterFoam 2020-12-20 19:24:12 -08:00
6d6c204745 BUG: extrudeMesh - partial fix for incorrect behaviour - see #1964
Changed IO flag so that new mesh is created
- was using old 'faces', 'owner' etc but then used the new patch starts

Corrected logic for contMap in polyTopoChange
2020-12-18 17:42:20 +00:00
04f3b26ba6 Merge branch 'feature-reactingParcelFoam-dynamicMesh' into 'develop'
INT: reactingParcelFoam: add dynamicMeshMotion capabilities

See merge request Development/openfoam!416
2020-12-18 11:58:19 +00:00
5e539b30a9 INT: reactingParcelFoam: add dynamicMeshMotion capabilities 2020-12-18 11:58:09 +00:00
6ca6b34add CONFIG: update completions 2020-12-18 11:33:46 +01:00
e9dcc59c4d STYLE: trim trailing space 2020-12-18 09:24:01 +01:00
c5dece6a09 STYLE: use IOError to report bad lookup of volumeUpdateMethod
- adjust comments for '-world' option
2020-12-18 09:21:18 +01:00
6068148c22 STYLE: adjust packing of members, header comments 2020-12-18 09:13:34 +01:00
a92cd03a89 GIT: update headers 2020-12-18 08:56:14 +01:00
9ee0023bc0 Merge branch 'feature-MPPIC-dynamicMesh' into 'develop'
ENH: MPPIC dynamic mesh

See merge request Development/openfoam!406
2020-12-17 21:17:59 +00:00
0923c1277c STY: Updating headers 2020-12-17 21:17:03 +00:00
06a0bf1868 TUT: Adding new MPPICDyMFoam and uncoupledKinematicParcelDyMFoam tutorials
STY: Style and header-content changes
2020-12-17 21:17:03 +00:00
6d4e72dc3f ENH: Using basicKinematicCloud for MPPICFoam and MPPICDyMFoam 2020-12-17 21:17:03 +00:00
eb33b7957e BUG: Correction to tgtPointFace srcPointFace member functions 2020-12-17 21:17:02 +00:00
5bc846553c ENH: Updates to MPPIC sub-models. Instantiation for kinematic clouds 2020-12-17 21:17:02 +00:00
9207140e37 ENH: Adding check for wall interaction when particle is stuck on moving
walls

A new user input parameter UrMax is added to the PatchInteractionModel.
In some occasions the partile remains on a patch face due to extremely
low relative U. If this Ur is lower than UrMax the particle is removed
2020-12-17 21:17:02 +00:00
d7b1a666b5 ENH: Adding MPPIC sub-models to Kinematic cloud 2020-12-17 21:17:02 +00:00
f7dc0d8edb ENH: Updating particle member functions
- Dealing with detA < 0 tracking issues
- Modified locate function
2020-12-17 21:17:01 +00:00
8427eccd00 ENH: Triggering oldCellCentres calculation in Clouds 2020-12-17 21:17:01 +00:00
9a39481062 ENH: Adding oldCellCentres field to polyMesh 2020-12-17 21:17:01 +00:00
fbfc09979e CONFIG: bump API to 2012 (pre-release) 2020-12-17 21:32:53 +01:00
a0fe5e4fb2 SUBMODULE: update for runTimePostProcessing 2020-12-17 21:29:56 +01:00
8afed765be ENH: memory management for exprResultGlobals via objectRegistry
- replaces previous code that used an autoPtr to hold a singleton.

  In some circumstances this deletion would conflict with clearing
  the objectRegistry - leading to error messages on exit.

  Now store directly on the registry (similar to a MeshObject)
2020-12-17 20:44:35 +01:00
66865b9fbc BUG: Correcting include path for MPPICFoam 2020-12-17 09:51:11 -08:00
260db42f7f BUG: Correcting DPMIncompressibleTurbulenceModel in DPM solvers 2020-12-17 09:26:56 -08:00
7f17a71f9c ENH: make PDRsetField ground, outer patch names configurable
- previously hard-coded, now adjustable within PDRsetFieldsDict

    // Change some predefined patch names
    patchNames
    {
        ground      ground;
        outer       outer;
    }

ENH: additions to PDRutils, improve comments

- expose enumerated expansion names and gridControl (PDRblock).
  Not commonly needed, but useful to have access when defining
  other grid generators

TUT: update PDRsetFieldsDict and tutorials to use "ground"

- remove tutorial references to unused types and legacy obstacles

- use "ground" for the boundary conditions instead of "seaGround".
  Consistent with PDRblockMesh
2020-12-17 01:23:31 +01:00
05d0a4f1d4 STYLE: add warning if function object subRegion is not found 2020-12-17 00:14:16 +01:00
4bd1bd7522 BUG: Using autoPtr for turbulence in interFoam and interIsoFoam 2020-12-16 15:00:15 -08:00
3e431de285 Merge branch 'feature-Eulerian-recycling-boundary-conditions' into 'develop'
ENH: outletMappedUniformInlet: add optional fraction and offset

See merge request Development/openfoam!399
2020-12-16 18:28:30 +00:00
12efbd8965 TUT: airRecirculationRoom: add new reactingParcelFoam tutorial 2020-12-16 18:28:18 +00:00
5af5222141 ENH: outletMappedUniformInlet: add optional fraction and offset entries
The new functionality optionally allows the patch-averaged
value to be scaled and/or offset by a pair of specified values.

Example of the boundary condition specification:

```
<patchName>
{
    // Mandatory entries (unmodifiable)
    type            outletMappedFilterInlet;
    outletPatch     <outletPatchName>;

    // Optional entries (unmodifiable)
    fraction        0.1;
    offset          10;    // (1 0 0);
    phi             phi;

    // Optional (inherited) entries
    ...
}
```
2020-12-16 18:28:18 +00:00
4a80672afb Merge branch 'feature-varRhoTurbVOF' into 'develop'
Feature var rho turb vof

See merge request Development/openfoam!405
2020-12-16 17:57:46 +00:00
3db12bbdef ENH: adding non-uniform rho to incompressible two-phase turbulent models
1) PhaseIncompressibleTurbulenceModel class was changed to use
   uniform alpha and non-uniform rho templates. This fits the need
   of incompressible two phase turbulence models.

2) A new type DPMIncompressibleTurbulenceModel was created for
   non-uniform alpha and uniform rho. It is  used in single phase flows
   in DPM solvers where alpha represents the volumen occupancy.

3) A new type incompressibleRhoTurbulenceModel  was created where
   non-uniform rho is allowed.

4) A new base templated turbulent class for two-phase VOF named
   VoFphaseTurbulentTransportModel was implemented which is created
   templating on PhaseIncompressibleTurbulenceModel and
   incompressibleRhoTurbulenceModel

5) In order to make the chnage to rho based VOF turbulence a help
   class was added incompressibleInterPhaseTransportModel templated
   on the mixing.
2020-12-16 17:57:45 +00:00
dbaed65d75 BUG: redistributePar: failing reconstruct. See #1953.
In reconstruct mode redistributePar will have
- master read undecomposed mesh
- slaves construct dummy mesh (0 faces/points etc.)
  but correct patches and zones
so all processors have two valid meshes. This was
all handled inside fvMeshTools::newMesh and this
was behaving differently.
2020-12-16 17:27:08 +00:00
723edc1c61 ENH: redistributePar: avoid temporary unassigned faces. See #1956. 2020-12-16 17:27:08 +00:00
7456335ba6 Merge branch 'issue-1849-volFieldValue-parallel-IO' into 'develop'
BUG: volFieldValue FO: parallel/empty output (#1853 #1849)

See merge request Development/openfoam!413
2020-12-16 17:09:17 +00:00
0d21f248a9 BUG: volFieldValue FO: parallel/empty output (#1853 #1849)
TUT: volFieldValue FO: adds usage example
TUT: multiply FO: adds usage example
2020-12-16 17:09:06 +00:00
062fad4662 Merge branch 'feature-function1-limit-range' into 'develop'
Feature function1 limit range

See merge request Development/openfoam!414
2020-12-16 15:25:24 +00:00
a4dc2cc94b ENH: Added new LimitRange Function1 wrapper
Function1 wrapper that limits the input range of another Function1

Example usage for limiting a polynomial:

    limitedPolyTest        limitRange;
    limitedPolyTestCoeffs
    {
        min         0.4;
        max         1.4;

        value       polynomial
        (
            (5 1)
            (-2 2)
            (-2 3)
            (1 4)
        );
    }

Here the return value will be:
- poly(0.4) for x <= 0.4;
- poly(1.4) for x >= 1.4; and
- poly(x) for 0.4 < x < 1.4.
2020-12-16 15:24:50 +00:00
9f5b8d0ebb ENH: polynomial - added clone() 2020-12-16 15:24:50 +00:00
dfe98fdf67 ENH: linearInterpolationWeights - protect against and provide early exit if input values are equal 2020-12-16 15:24:49 +00:00
2811c05444 ENH: lazier handling of dynamic libraries
- previously always called dlclose on opened libraries when destroying
  the dlLibraryTable. However, by force closing the libraries the
  situation can arise that the library is missing its own code that it
  needs on unload (#1524). This is also sometimes evident when closing
  VTK libraries for runTimePostProcessing (#354, #1585).

- The new default is to not forcibly dlclose any libraries, unless
  the dlcloseOnTerminate OptimisationSwitch specifies otherwise.

  - The dlLibraryTable::close() method can be used to explicitly close
    all libraries and clear the list.

  - The dlLibraryTable::clear() method now only clears the entries,
    without a dlclose.
2020-12-16 11:25:04 +01:00
dc0372858d ENH: Changing normalization with YMix for the ReactingMultiPhaseParcel
The parcel mass fractions transfer of ReactingMultiPhaseParcel was modified
in order to be consistent between processors.
2020-12-15 14:59:49 -08:00
373d88a4c4 ENH: Function1 - added some missing time conversions 2020-12-15 21:46:57 +00:00
d5260b18d7 ENH: add wmake -show-mpi-compile, -show-mpi-link options
- useful for diagnosing which MPI paths and flags are being used
  when setting up for a new MPI configuration.
2020-12-15 21:45:59 +01:00
c77194e6a1 BUG: incorrect return values for interpolated sampled meshedSurface (#1956)
- only slipped in recently, as part of Development/openfoam!394
2020-12-15 21:45:55 +01:00
b012475c01 ENH: snappyLayerDriver - ensure parallel consistent rebuilding of face centres 2020-12-15 20:38:41 +00:00
05bf4e119a BUG: potential fix for stale fvMesh addressing - see #1956
Failures shown in interFoam cases were found to be a result of stale ldu
addressing in fvMesh.  Potentially delete lduPtr_ alone, but likely safer to
clear all addressing:

    // deleteDemandDrivenData(lduPtr_);
    clearAddressing(true);
2020-12-15 12:06:46 +00:00
19bd7ed21f Merge branch 'feature-Bilger-mixture-fraction-fo' into 'develop'
ENH: BilgerMixtureFraction: New function object

See merge request Development/openfoam!393
2020-12-15 08:55:29 +00:00
e82956a9dc TUT: counterFlowFlame2D: add BilgerMixtureFraction FO 2020-12-15 08:55:13 +00:00
5a8caa35b2 ENH: BilgerMixtureFraction: add new reactionThermo FO
Signed-off-by: Sergio Ferraris <s.ferraris@opencfd.co.uk>
Signed-off-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2020-12-15 08:55:13 +00:00
a16c4ae920 ENH: Exposing specieComposition from ReactingMixture
The FO BilgerMixtureFraction needs access to specieComposition which is
stored in ReactingMixture. A virtual mechanism was added to
basicSpecieMixture to access specieComposition form rho and psi
reationThermos.

ptr was changed to autoPtr to avoid memory leaks (Kutalmis Bercin)
2020-12-15 08:55:13 +00:00
9f53fdcc36 DOC: moleFractions: improve header-file doc and style consistency
INT: moleFractions: add phaseName support
2020-12-15 08:55:13 +00:00
bb07945ad2 BUG: Change default behavior for particle vol-mass change
If keys constantVolume and volumeUpdateMethod are not preent
default to constantVolume = false
2020-12-14 13:47:04 -08:00
27ec25dfef STYLE: report address/field size mismatch 2020-12-14 17:30:08 +01:00
a629fb7db2 Merge branch 'feature-function-objects-multiply' into 'develop'
ENH: Function objects - added new 'multiply' function object

See merge request Development/openfoam!410
2020-12-14 16:08:54 +00:00
75769add98 ENH: Function objects - added new 'multiply' function object
Multiplies a given list of (at least two or more) fields and outputs the
result into a new field.

    fieldResult = field1 * field2 * ... * fieldN

Minimal example by using \c system/controlDict.functions:

    multiply1
    {
        // Mandatory entries (unmodifiable)
        type    multiply;
        libs    (fieldFunctionObjects);

        // Mandatory (inherited) entry (runtime modifiable)
        fields  (<field1> <field2> ... <fieldN>);

        ...
    }
2020-12-14 17:03:09 +01:00
b700456ac4 CONFIG: increment to ADIOS-2.6.0, petsc-3.14.2
- the adiosFoam module has been updated to handle restart with
  the newer time structure (directories only, no files)
2020-12-14 15:20:36 +01:00
75f13e1890 ENH: expose fileOperation::sortTimes as public 2020-12-14 14:23:54 +01:00
ea2e24b6c7 ENH: track old output times for lumpedPoint output (#1793)
- now also tracks the previous output time, which aids on restarts
  since it allows the FEA side the possibility of determining
  the effective deltaT between the output of forces
2020-12-14 12:32:08 +01:00
8fa0921556 COMP: resolved some compiler warnings 2020-12-14 10:35:42 +00:00
696704a0dd COMP: solidFoam: extraneous includes. See 1956. 2020-12-14 08:44:45 +00:00
4fdeb3be83 COMP: remove 64-bit label ambiguity
COMP: fix SP/DP inconsistency in fvGeometryScheme

STYLE: rename polyMesh::updateGeom to polyMesh::updateGeomPoints

- avoids compiler complaints and potential masking of
  primitiveMesh::updateGeom / fvMesh::updateGeom

- mark argument as movable, since that is what is happening inside.

GIT: remove merge cruft

TUT: better clean on MPPICInterFoam
2020-12-11 21:37:54 +01:00
b89f389606 CONFIG: support optional config.sh/readline file
- provides a hook for specifying alternative locations
2020-12-11 21:37:42 +01:00
4c501c4567 Merge branch 'feature-PDRblockMesh' into 'develop'
add outer region to PDRblockMesh.

See merge request Development/openfoam!388
2020-12-11 20:24:47 +00:00
cf3d983b80 ENH: add treatment for PDRblockMesh outer region expansions (#1906)
// Treatment of the outer region
   outer
   {
       type        sphere;
       onGround    true;
       expansion   relative;

       ratios      1.1;

       size        3;
       nCells      10;
   }
2020-12-11 20:24:25 +00:00
e2d7ad5c60 GIT: rename directory PDRsetFields -> PDR 2020-12-11 20:24:24 +00:00
649b1b1971 Merge branch 'feature-noise-weighting-and-refactor' into 'develop'
ENH: noise models - added A, B, C, and D weightings to SPL

See merge request Development/openfoam!408
2020-12-11 20:22:07 +00:00
67204543d0 ENH: noise models - added A, B, C, and D weightings to SPL
The SPL can now be weighted according to the new 'SPLweighting' entry
that can be set to:
- none: no weighting
- dBA : dB(A)
- dBB : dB(B)
- dBC : dB(C)
- dBD : dB(D)

This commit also includes code refactoring of the  noiseModel class to
remove the dependency on noiseFFT/declutter.
2020-12-11 20:21:35 +00:00
8534983b0a Merge remote-tracking branch 'origin/master' into develop 2020-12-11 17:42:29 +00:00
cfde0d679a Merge branch 'bug-1949-globalSum-in-derivative-of-merit-function' into 'master'
BUG: globalSum needed in the merit functions' directional derivative (fixes #1949)

Closes #1949

See merge request Development/openfoam!403
2020-12-11 17:39:00 +00:00
7ffa36dfa9 BUG: globalSum needed in the merit functions' directional derivative (fixes #1949)
Does not affect the current functionality of shape optimisation.
2020-12-11 17:38:22 +00:00
5d3f355d9d Merge branch 'bug-1948-wrong-first-merit-function-value' into 'master'
BUG: Wrong First extrapolated value of the merit function (fixes #1948)

Closes #1948

See merge request Development/openfoam!402
2020-12-11 17:37:35 +00:00
2eae536a70 BUG: Wrong First extrapolated value of the merit function (fixes #1948)
Affected only the first optimisation cycle, if line search was enabled

If eta was not set explicitly, it was computed after evaluating the
directional derivative of the merit function, which was computed
wrongly, leading to an erroneous value of the extrapolated merit
function value.
2020-12-11 17:37:18 +00:00
d119b8b8f9 Merge branch 'bug-1947-writing-control-points-in-collatedFormat' into 'master'
BUG: collated format and writing of NURBS3DVolume CPs - see #1947

See merge request Development/openfoam!401
2020-12-11 17:32:51 +00:00
821222834d Merge branch 'feature-adjoint-releaseCandidatev2012' into 'develop'
Adjoint: release candidate for v2012

See merge request Development/openfoam!400
2020-12-11 17:24:04 +00:00
f7e4b374d9 TUT: added a tutorial showcasing the transformBox option
for the definition of the morphing box in volumetric B-Splines.
2020-12-11 17:22:44 +00:00
d0b59a4529 TUT: updated the da entries for the multi-point, turbulent optimisations 2020-12-11 17:22:44 +00:00
73339d4985 STYLE: endl missing in the headerInfo of objectivePartialVolume 2020-12-11 17:22:44 +00:00
6dbaeaba50 ENH: added the capability of constraining the paEqn in adjointSimple 2020-12-11 17:22:44 +00:00
36159cb16d ENH: da is appended by the adjoint solver name
if useSolverNameForFields is set to true. This facilitates continuation.
2020-12-11 17:22:43 +00:00
95748b0183 ENH: deprecation of fvOptionsAdjoint
fvOptionsAdjoint was needlessly duplicating a lot of the functionality
of fvOptions in order to add an interface for computing sensitivity
contributions emerging from fvOptions. To reduce this code duplication:

- fvOptionsAdjoint was removed
- the corresponding sensitivity contributions have moved to fvOptions through
  virtual functions (returning a zero contribution in the base so
  backwards compatibility is retained)
- all sensitivity classes that were using fvOptionsAdjoint have been
  modified appropriately
- all adjoint solvers are now grabbing a reference to an fvOptionList
  from the database instead of constructing an fvOptionsAdjointList

Hence, all fvOptions contributions to the adjoint equations
or the sensitivity derivatives can be given through system/fvOptions,
removing the need for separate sub-dictionaries within optimisationDict.
2020-12-11 17:22:43 +00:00
7d83fb792a ENH: changes in objective::write
- Expanded the write function in the base class so that it can manage
  input coming from the derived ones. This reduces a lot of code
  duplication in the latter but keeps the functionality.
- Added a default width for all entries in the objective files.
- If a normalisation factor or a target is set, they are written on the
  header of the objective file.
- Cosmetic/code consistency changes in various files.
2020-12-11 17:21:38 +00:00
4981061c09 ENH: objectiveManager now writes the weighted objective function
to files, if the corresponding adjoint solver has more than one
objectives.
2020-12-11 17:21:38 +00:00
ae674b2809 ENH: changes in adjointSimple
- Added preLoop, loop and postLoop functions
- Added preIter, mainIter and postIter functions for each SIMPLE
  iteration
- Added addMomentumSource and addPressureSource virtual functions, to
  allow for additions by derived classes
2020-12-11 17:21:38 +00:00
ba300c3c6f ENH: changed the treatment of fvOptions in primal solvers
fvOptions are no longer a member of incompressiblePrimalSolver but are
looked up from the registry in each iteration of each primal solver.
This means that the main system/fvOptions dictionary is read by ALL
instances of the primal solvers and the latter no longer have their
own fvOptions dict in optimisationDict. This is safe since each fvOption
is applied to a specific field and in case of many primal solvers, the
primal fields are named differently for each of them.

In addition, simple is now split in preLoop, loop and postLoop phase.
Furthermore, each SIMPLE iteration is broken down to
a preIter, mainIter and postIter phase, to allow for different behaviour
by derived classes.
2020-12-11 17:21:37 +00:00
0fb515298d ENH: adjointRASModel now returns a reference
to the primal and adjoint solver names
2020-12-11 17:21:37 +00:00
aee0c30a3e ENH: change in the discretization of part of the (E)SI sensitivity terms
Part of the (E)SI shape sensitivities depends of grad(Ua) & nf computed
on the boundary. Up to now, the code was only computing the normal part
of grad(Ua), to avoid the potentially spurious tangential component
which is computed on the cell center and extrapolated to the boundary
faces. However, for some objectives that are strongly related to the
stresses (e.g. moment, stresses), including also the tangential part of
grad(Ua) is necessary for E-SI to replicate the outcome of FI.

Extensive testing on a number of objectives/cases showed
- No regression when including the tangential part
- Improved behaviour in some rare cases (moment, stresses)

Hence, the tangential part is now included by default. The previous code
behaviour can be replicated by setting the useSnGradInTranposeStresses
flag to true.
2020-12-11 17:21:37 +00:00
c2204eaa27 ENH: Minor NURBS3DVolume refactoring
- controlPointsDefinition is now controled by a class with
  runTimeSelection.
- Added a new controlPointsDefinition option that translates, rotates
  and scales a given box. The required entries have the same meaning as
  in the Paraview 'Transform' filter, facilitating the transition between the
  visual placement of control boxes (e.g. in Paraview) and their setup
  in the code.
- Improved performance during the parameterization, sensitivity
  computation and grid displacement phases by re-using already computed
  basis functions.
2020-12-11 17:21:37 +00:00
24d6497209 ENH: add the solver name to the MRF constructor of simple
in case useSolverNameForFields is set to true.
Used for multi-point optmisation runs.
2020-12-11 17:21:37 +00:00
27ea73f905 ENH: added a default word to the IOMRFZoneList constructor
to allow for constructing different MRF zones for multi-point
optimisation runs
2020-12-11 17:21:37 +00:00
5ec8a4d4b1 GIT: removed the deprecated forceTarget objective
since its behaviour can be replicated by the more general framework for
setting objective targets introduced in 6ee7bc66c.
2020-12-11 17:21:37 +00:00
7754e5bd6c Merge branch 'feature-iso_distance-surface' into 'develop'
Feature iso distance surface

See merge request Development/openfoam!407
2020-12-11 16:45:33 +00:00
4c3a95c808 ENH: additional filtering for distance surface (#1950)
- adds topology-based segmentation of the surfaces generated with
  distance surfaces. This can occur when the surface terminates
  close to a thin wall gap in the mesh; resulting in a cuts that
  extend into the next region.

  The cutting algorithm does not normally distinguish between these
  types of "ragged" cuts, and legitimate ones (eg, cutting multiple
  pipes). The additional segmentation controls provide for two common
  scenarios:

  largestRegion (pre-filter):
  - The cut cells are checked for topological connectivity and the
    region with the most number of cut cells is retained.
    This handles the "ragged" edge problem.

  nearestPoints (pre-filter):
  - The cut cells split into regions, the regions closest to the
    user-defined points are retained.
    Uses maxDistance for additional control.

  proximity (post-filter):
  - Checks the resulting faces against the original search surface
    and rejects faces with a distance greater than absProximity.

ENH: restructure distance surface geometric filtering

- prefilter cells, which can be used to adjust the distance
  calculation in the far field to the real distance
  (not the normal distance).

  This can also be used to artificially sharpen the transition
  between near/far regions, if required in the future.
2020-12-11 16:44:54 +00:00
7a99866db0 ENH: unify sampling code for isoSurfaces, support multiple offsets
- support multiple offsets for cutting plane samples
  and multiple iso-values
2020-12-11 16:44:53 +00:00
8fe0d1bacd ENH: improvements for managing iso-surfaces
- generic isoSurfaceBase. Provides simpler cell-cut detection and
  various functions that can be used for iso-surfaces or when
  preparing prefiltered input for iso-surfaces.

- rudimentary runtime selection

ENH: isoSurface Cell/Topo uses the isoSurfaceBase infrastructure

- simpler cell cut detection, common routines
- ensure that tetMatcher is only called once per cell

ENH: use indirect patch during edge erosion

- lower overhead, allows backtracking (future) if needed
2020-12-11 16:44:53 +00:00
4c7f92d29c Merge branch 'tut-alltest-corrections' into 'develop'
TUT: Alltest: Corrections

See merge request Development/openfoam!412
2020-12-11 14:33:26 +00:00
bcae4b7a4f TUT: Alltest: minor corrections (#1956) 2020-12-11 14:33:04 +00:00
e646218af9 BUG: Fixing reading of volumeUpdateMethod
Signed-off-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2020-12-11 14:33:04 +00:00
ba4a675cd3 Merge branch 'feature-PatchFunction1-ACMI' into 'develop'
Feature add additional scaling to geometric area overlap calculation inside acmi

See merge request Development/openfoam!374
2020-12-11 10:35:06 +00:00
31ecf0d732 ENH: cyclicACMI: optional scaling with PatchFunction1.
Added 'scale' parameter to cyclicACMI. Scales the amount of 'coupledness' (= mask). Allows opening/closing without mesh motion.
2020-12-11 10:35:06 +00:00
6ac8e06245 Merge branch 'feature-runtime-selection-geometry' into 'develop'
Feature runtime selection geometry

See merge request Development/openfoam!411
2020-12-11 10:31:34 +00:00
46dbfabd9d ENH: primitiveMesh: make geometry calculation runtime selectable
This adds a 'geometry' scheme section to the system/fvSchemes:

geometry
{
    type            highAspectRatio;
}

These 'fvGeometryMethod's are used to calculate
- deltaCoeffs
- nonOrthoCoeffs
etc and can even modify the basic face/cellCentres calculation.
2020-12-11 10:31:34 +00:00
4a166c6f3e Merge branch 'feature-lagrangian-patch-interaction-fields' into 'develop'
ENH: Lagrangian - added new PatchInteractionFields cloud function object

See merge request Development/openfoam!409
2020-12-10 17:26:02 +00:00
9d765adaf4 ENH: Lagrangian - added new PatchInteractionFields cloud function object
Creates volume fields whose boundaries are used to store patch interaction
statistics.

Current field output per patch face:
- \<cloud\>\<model\>:count - cumulative particle hits
- \<cloud\>\<model\>:mass - cumuluative mass of hitting particles

Fields can be reset according to:
- none: fields are not reset
- timeStep: reset at each time step
- writeTime: reset at each write time

Usage

    patchInteractionFields1
    {
        type            patchInteractionFields;
        resetMode       writeTime;
    }
2020-12-10 17:25:40 +00:00
8268d8aaba BUG: redistributePar: avoid par comms. Fixes #1953 2020-12-10 15:43:28 +00:00
b179cd355e STYLE: headers: unused includes. 2020-12-10 15:43:28 +00:00
27a676ca20 Merge branch 'feature-generalizedNewtonian' into 'develop'
Feature generalized newtonian

See merge request Development/openfoam!384
2020-12-10 13:41:46 +00:00
341aea0f5c STY: Removing redundant read function in constructor 2020-12-10 13:40:13 +00:00
b9f7f04bed BUG: Fix to HerschelBulkley model to use nu0 from thermo 2020-12-10 13:40:13 +00:00
a98fbcd493 BUG: Fix to powerLaw model to use nu0 from thermo 2020-12-10 13:40:13 +00:00
54ebe724ea ENH: Derivative of B in thermo.H (dKcdTbyKc) calculated from S and G instead of dGdT
Member function dKcdTbyKc in thermo.H is calculated from S and G at Pstd.
Thus dGdT was removed from the thermos.

- Add optional hRef, eRef and Tref as optional.

- Use new thermo to multiphase solver icoReactingMuliPhaseFoam

- Remove hRefConst and eRefConst thermos.

TUT: Updated tutorials
2020-12-10 13:40:13 +00:00
0dd91a9dc4 ENH: Adding tabulated transport and thermo.
TUT: multiphase/icoReactingMultiPhaseInterFoam/inertMultiphaseMultiComponent
2020-12-10 13:40:12 +00:00
97448c655d ENH: Using icoTabulated EoS and non-Newtonian laminar model 2020-12-10 13:40:12 +00:00
c3c4f30a55 ENH: adding generalizedNewtonian to laminar turbulence model
The generalizedNewtonian viscocity models were ported from
the org version and added to the laminar turbulence framework.

This allows use in compressible and incompressible solvers
through the turbulence dictionary under the laminar sub-dictionary.

The thermal laminar viscosity is taken from the thermo for solvers
that use thermo library or from the transportProperties dictionary
for incompressible solvers.

At the moment the option to include viscocity models through the
transportDict is still available.

The icoTabulated equation of state was ported from the org version.

STYLE: use 'model' instead of 'laminarModel' in tutorials
2020-12-10 13:40:12 +00:00
a89ecdeee0 Merge branch 'feature-vibroAcousticShell' into 'develop'
New vibro-acoustic model suite

See merge request Development/openfoam!404
2020-12-10 13:38:37 +00:00
bc430ccdef ENH: New vibro-acoustic model suite
- New solver: `acousticFoam`
  - New base finite-area region class: `regionFaModel`
  - New base shell model classes:
    - `vibrationShellModel`
    - `thermalShellModel`
  - New shell models:
    - A vibration-shell model: `KirchhoffShell`
    - A thermal-shell model: `thermalShell`
  - New finite-area/finite-volume boundary conditions:
    - `clampedPlate`
    - `timeVaryingFixedValue`
    - `acousticWaveTransmissive`
  - New base classes for `fvOption` of finite-area methods: `faOption`
  - New `faOption`s:
    - `contactHeatFluxSource`
    - `externalFileSource`
    - `externalHeatFluxSource`
    - `jouleHeatingSource`
  - New tutorial: `compressible/acousticFoam/obliqueAirJet`

Signed-off-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2020-12-10 13:36:12 +00:00
25246f22a6 Merge branch 'feature-localWorld' into 'develop'
Feature local world

See merge request Development/openfoam!398
2020-12-09 15:20:30 +00:00
348c2a87ad ENH: Adding dynamic mesh to solidFoam and tutorial 2020-12-09 15:17:45 +00:00
df777ce3c6 ENH: waterCooler: new tutorial. 2020-12-09 15:17:45 +00:00
b017ef47bb ENH: Added new multiWorld test case 2020-12-09 15:17:45 +00:00
faba8ee2a1 ENH: Added new solidFoam solver 2020-12-09 15:17:45 +00:00
89f2cda3ab ENH: mpi: use per-application communicator. 2020-12-09 15:17:44 +00:00
627d79dba6 ENH: reduce use of readdir on individual processors (#1946)
- implicitly enabled when timeStampMaster (default) is used
  for the fileModificationChecking

- When running with non-distributed roots (eg, NFS-share) read for
  processor directories on master only and send to sub-processes
  instead individual reads.

- If disabled (old default, or when running with distributed roots),
  uses the regular fileHandler readDir, which may perform readDir
  on each processor. Potentially slow startup times on large systems.

Improvements based on analysis from T.Aoyagi(RIST), A.Azami(RIST)
2020-12-09 14:43:27 +01:00
c51bfdcd05 Merge branch 'feature-buoyancy-fvoption' into 'develop'
ENH: buoyantTurbSource: new fvOption

See merge request Development/openfoam!397
2020-12-08 16:54:50 +00:00
3e4341ad02 ENH: buoyancyTurbSource: add a new fvOption
Applies sources on turbulent kinetic energy (i.e. `k`)
    and either turbulent kinetic energy dissipation rate (i.e. `epsilon`)
    or specific dissipation rate (i.e. `omega`) to incorporate effects
    of buoyancy on turbulence in incompressible and compressible flows.

    See buoyancyTurbSource.H for details.
2020-12-08 16:49:17 +00:00
5de23079ea DOC: fvOptions: improve header documentation
STYLE: use auto/tmp wherever possible
  ENH: make destructor/deleted constructors consistent with FOs
2020-12-08 16:49:17 +00:00
8ad61f8e9d ENH: optional innerRadius for searchable disk
- can be used directly, or in special cases like a searchable plane
  with a gap of things in the centre that are not to be sampled.
2020-12-08 15:32:50 +01:00
56b5234fbc ENH: store concrete sampled isoSurface faces/points as member data
- was previously via inheritance, but using member data instead
  supports a more flexible internal switching of the storage. It also
  ensures that data access remains safe, even in the absence of
  an isoSurface.
2020-12-08 13:31:23 +01:00
ccde68d410 ENH: cellZones support for isoSurface cell/topo sampling variants (#1678)
- better alignment of sampling Cell/Point/Topo inputs

- make exposedPatchName optional for isoSurface, cuttingPlane. This
  was a holdover requirement from an older version of fvMeshSubset
2020-12-08 13:31:23 +01:00
9da5215786 ENH: add sampledSurface::sampleOnPoints
- loop for interpolating volume elements to face points,
  which removes duplicate code in several other places
2020-12-08 13:31:22 +01:00
2f6082712e ENH: modernize some code constructs in isoSurface
- add debug field to isoSurfaceTopo
- don't need dynamic field for new points

- reduce code in sampledIsoSurfaceCell
2020-12-08 13:31:22 +01:00
811a83599e CONFIG: change default distanceSurface algorithm from 'cell' to 'topo'
- yields cleaner surfaces with few cuts.

  Can use isoMethod keyword to select cell/point/topo if they prove
  better for any particular case.

CONFIG: change default cuttingPlane algorithm from 'cell' to 'topo'
2020-12-08 13:31:22 +01:00
b1a27d3d00 ENH: rename 'classic' Foam::isoSurface as Foam::isoSurfacePoint
- better distinction between types of algorithms.
  Easier for future deprecation/replacement.
2020-12-08 13:31:22 +01:00
be783632f2 ENH: isoSurfaceParams
- bundles selection and control parameters used when creating
  iso-surfaces. This simplifies selection and specification

- drop old compatibility handling of "cell" as a bool

- harmonize filter/regularisation flags for iso-surface

- for dictionary input, accept "isoMethod" and "isoAlgorithm" as being
  synonymous. Using "isoMethod" is less subject to typing errors.
2020-12-08 13:31:22 +01:00
61dd6aa701 ENH: code consistency in sampling
TUT: dictionary form of surfaces instead of list
2020-12-08 13:18:38 +01:00
4421021e99 ENH: support use of bitSet for regionSplit 2020-12-08 13:18:38 +01:00
0b68f14f7d ENH: more explicit about handling empty matchers for index lookup
- for boundary meshes, zones etc. The behaviour with an empty matcher
  was either not properly documented, and looped through all
  names just to establish there was no match.

STYLE: removed redundant typedefs for point fields
2020-12-08 13:18:34 +01:00
df74e8448c ENH: robuster fileOperations splitProcessorPath
- robuster matching behaviour when encountering paths that themselves
  contain the word "processor" in them. For example,

    "/path/processor0generation2/case1/processor10/system"
    will now correctly match on processor10 instead of failing.

- use procRangeType for encapsulating the processor ranges

- provision for information of distributed vs non-distributed roots.
  The information is currently available from the initial setup, but
  can useful to access directly within fileOperation.

STYLE: modernize list iteration
2020-12-08 11:58:28 +01:00
a939042e1b ENH: add bitSet::null() and clarify some documentation
- the NullObject singleton can also be cast to a bitSet
  (sufficient size and bit-pattern). Useful for places that
  need to hold a reference on construction
2020-12-08 11:58:28 +01:00
08efeb1a03 ENH: define UPstream rangeType
- UPstream::rangeType as typedef for IntRange<int> for better use
  semantics
2020-12-08 11:58:27 +01:00
e697ac277f CONFIG: respect WM_QUIET=false as a logic value in wmake
- Makefile only checks set/unset, so handle 'false' within wmake
  itself
2020-12-08 11:58:27 +01:00
b966b7cd4b ENH: static test methods for matching simple cell shapes
- (tet, pyr, hex) can be identified from their number of faces
  and vertices. For these common shapes can use static `test()`
  method instead of the virtual isA() method.

  This is much cheaper for calling on an individual basis since
  it avoids the overhead of constructing an object.

ENH: tetCell edge/reverseEdge (already had tetEdge)
2020-12-08 11:58:27 +01:00
b7c8a45de2 STYLE: bracket instead of braces on List constructors
- avoid potential future mistakes if someone adds a sizing dimension
  and finds they have inadvertently called construct labelList with
  `{std::initializer_list<label>}` instead of `label`
2020-12-08 11:58:27 +01:00
7b5c6868dd BOT: Update contributors file 2020-12-08 11:58:27 +01:00
cb924ec3d2 Merge branch 'issue-1900-atmwallfunction-double-value-entry' into 'develop'
BUG:  atm wall functions: fix double "value" entry issue

See merge request Development/openfoam!395
2020-12-08 09:36:13 +00:00
1bc2ffad99 BUG: atm wall functions: fix double "value" entry issue (#1900)
STYLE: atm wall functions: use auto and bool types wherever possible
  TUT: atmosphericModels: changes for style consistency
2020-12-08 09:33:44 +00:00
3b949b66ff BUG: collated format and writing of NURBS3DVolume CPs - see #1947
The if(Pstream::master()) clause in NURBS3DVolume::writeCpsInDict() was
causing the fileName of the regIOobject not to be allocated in all
processors, giving problems when masterUncollatedFileOperation::masterOp
was called by collatedFileOperation::writeObject for the mkDirOp.
2020-12-07 16:41:26 +02:00
14e86437ae Merge branch 'feature-recycle-particles' into 'develop'
Feature recycle particles

See merge request Development/openfoam!396
2020-12-07 09:37:32 +00:00
74ada2aa7f TUT: New recycleParticles tutorial case
Shows an example of the new recyclePatchInteraction model
- particles that escape from the outlet are recycled back into the
  domain via the second inlet

Signed-off-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2020-12-04 13:40:28 +00:00
5a71667f45 ENH: Lagrangian - new parcel recycle patch interaction model
Parcels that hit an 'outflow' patch are recycled to an 'inflow' patch, with
optional:
- recycle fraction < 1

Example usage:

    RecycleInteractionCoeffs
    {
        recyclePatches
        (
            (outlet1 inlet1)
            (outlet2 inlet2)
        );

        recycleFraction     0.8; // [0-1]
    }

Signed-off-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2020-12-04 13:40:28 +00:00
b25c4611cb ENH: Cloud patch interaction model updates
- MultiInteraction: updated to call info() function of child models
- PatchInteractionModel: added postEvolve hook
- KinematicCloud: call patchInteraction() postEvolve hook
2020-12-04 13:40:28 +00:00
7d897ee7a3 Merge branch 'issue-1871-refPtr-adjointTurbulence' into 'develop'
Issue 1871 - simplifies adjoint turbulence code by using refPtr instead of combined autoPtr/tmp

See merge request Development/openfoam!385
2020-12-04 07:33:40 +00:00
fcf3f8ec17 ENH: replace autoPtr/tmp combination with refPtr (issue #1871)
- reduces some code complexity.
2020-12-03 19:17:59 +00:00
5ad2fe621a Merge branch 'updated-surface-handling' into 'develop'
Updated surface handling

See merge request Development/openfoam!394
2020-11-30 17:13:39 +00:00
029b1373a3 DOC: document writeFile updateHeader flag (fixes #1942) 2020-11-30 13:59:10 +01:00
ab692caf7c ENH: support multiple weights on some field function objects (#1930)
- weight fields are combined by multiplication

  - volFieldValue:
    * 0-N scalar fields

  - surfaceFieldValue:
    * 0-N scalar fields
    * 0-1 vector fields

  In some cases this can be used to avoid creating additional
  fields.

      weightFields  (rho U);
  vs.
      derivedFields (rhoU);
      weightField   rhoU;
2020-11-30 13:59:10 +01:00
f8d08a805b ENH: additional handling for out-of-range sampling (#1891)
- when sampling onto a meshed surface, the sampling surface may be
  outside of the mesh region, or simply too far away to be considered
  reasonable.

  Can now specify a max search distance and default values for samples
  that are too distant.
  If a default value is not specified, uses Type(Zero).

  Eg,

      maxDistance     0.005;
      defaultValue
      {
          "p.*"   1e5;
          T       273.15;
          U       (-100 -100 -100);
      }
2020-11-30 13:59:10 +01:00
a947e9ddcf ENH: new sampled faceZones (#1874) 2020-11-30 13:59:10 +01:00
90fe49e8e5 ENH: adjust sampledPatch (#1874) for similarity with surfaceFieldValue 2020-11-30 13:59:10 +01:00
6cf8151817 ENH: support surfaceFieldValue on multiple faceZones or patches (#1874)
- additional "names" entry to specify a word/regex list of selections
  For example,
  {
      type    patch;
      name    inlets;
      names   ("inlet_[0-9].*" inlet);
  }

- if "names" exists AND contains a literal (non-regex) that can be used
  as a suitable value for "name", the "name" entry becomes optional.
  For example,
  {
      type    patch;
      names   ("inlet_[0-9].*" inlet);

      // inferred name = inlet
  }

- reduce some overhead in surfaceFieldValue

TUT: surfaceFieldValue on patches : reactingParcelFoam/verticalChannel
2020-11-30 13:59:10 +01:00
f82af7cb2a ENH: initial support for abaqus surface sampled output (#1600)
- supports geometry and field-specific scaling, separate geometry and
  fields. Beta-feature for suppressing geometry output entirely.
2020-11-30 13:59:10 +01:00
1d398d8cae ENH: handle abaqus SURFACE input (#1600)
- read surfaces which are defined in terms of solid element sides. Eg,

```
  *ELEMENT, TYPE=C3D4, ELSET=...
  1, ...
  2, ...

  *SURFACE, NAME=Things, TYPE=ELEMENT
  1, S1
  2, S1
```

  The element and side number are encoded as a synthetic face id
  according to

      -(10 * elemId + sideNum)

  but the underlying solid geometry is discarded, since there is no
  reasonable way to pass it through the surface sampling mechanism.
2020-11-30 13:59:10 +01:00
986199f897 ENH: align bitSet and FixedList methods names
- bitSet and PackedList fill() as per boost dynamic_bitset.
  Silently deprecate assign(val), which is potentially confusing
  with other forms of assign().

- FixedList fill() as per std::array.
  Add missing assignment from Foam::zero

- minor code simplication in bitSet and PackedList

STYLE: fix typo in comment, qualify Foam::zero
2020-11-30 13:59:07 +01:00
66c8607d5f CONFIG: trap -with-bear, but continue argument processing
- makes it easier to combine with -log options etc.
2020-11-30 10:21:57 +01:00
fc6a5a6dad GIT: correct submodule indices 2020-11-28 21:17:35 +01:00
7830cc503e BUG: Fix sign in Lee model. Fixes #1934. 2020-11-27 19:46:08 -08:00
c879c24412 ENH: redistributePar: suppress warning. Fixes #1937. 2020-11-26 13:46:50 +00:00
9c86b5d722 ENH: robustness improvements for wmakeFunctions
- relocated module-prefix handling to wmakeFunctions
2020-11-26 12:54:46 +01:00
a50047bbcc ENH: add hook for bear frontend to create json output (#1936)
Example usage,

   wmake -with-bear src/OpenFOAM
   src/Allwmake -with-bear -s -j

- bin/tools/vscode-settings

  Emit some json content suitable for setting up Visual Studio Code
  for use with OpenFOAM.

  For example,
      bin/tools/vscode-settings > .vscode/settings.json

Ideas from Volker Weissman
2020-11-26 12:54:46 +01:00
fb7afd5f96 TUT: fix missing line ending and wrong blockMeshDict vertex location 2020-11-26 02:15:20 +01:00
024d22cb64 BUG: missing nullptr check in Function1/PatchFunction1 fallback logic 2020-11-26 01:53:15 +01:00
b4eb214d56 BUG: transformPoints flagged zero or negative scaling as an error
- additional check was introduced by 51b2490258, but scaling with
  zero is useful for flattening a mesh
2020-11-26 01:04:55 +01:00
9fe09ad21d ENH: installation helpers
----
install-dirs: a general directory installer

  Copy installs non-binary (platform) directories.
  Eg,

      install-dirs -prefix=... -devel
      install-dirs -prefix=... -default -no-app

----
install-platform: a platform (binary) installer

  This is primarily driven by the need to install into system mpi
  directories. The problem noted in issue #1893 is caused by the
  rpm-mpi-hooks (fedora and redhat-8).

  For the additional mpi library qualifier (openmpi-x86_64) to be
  added to the requirements, the mpi-specific libraries (eg,
  libPstream.so) need to be installed in the mpi system directory
  (eg, /usr/lib64/openmpi).

  However, then need symlinks from the system locations back to our
  local directories to ensure that the libraries are correctly found
  via our LD_LIBRARY_PATH and we don't get dummy libraries.

----
update-mpi-links: a post-install update hook

  Expected paths are registered as persistent information into the
  hook during packaging. Triggering the hook after installation
  completes the creation of the symlinks.

Normal usage,
```
prefix="/tmp/local-install/openfoam"

bin/tools/install-dirs -prefix="$prefix" -common
bin/tools/install-platform -prefix="$prefix"
```
Installs
 - /tmp/local-install/openfoam/META-INFO
 - /tmp/local-install/openfoam/bin
 - /tmp/local-install/openfoam/etc
 - /tmp/local-install/openfoam/platforms/linux64GccDPInt32Opt/bin
 - /tmp/local-install/openfoam/platforms/linux64GccDPInt32Opt/lib

Can also place architecture-dependent bits elsewhere,
```
prefix="/tmp/local-install/openfoam"
multi_arch="$(dpkg-architecture -qDEB_TARGET_MULTIARCH)"

bin/tools/install-dirs -prefix="$prefix" -common
bin/tools/install-platform -exec-prefix="$prefix/$multi_arch"
```
Installs
 - /tmp/local-install/openfoam/META-INFO
 - /tmp/local-install/openfoam/bin
 - /tmp/local-install/openfoam/etc
 - /tmp/local-install/openfoam/x86_64-linux-gnu/bin
 - /tmp/local-install/openfoam/x86_64-linux-gnu/lib

Can use it to flatten out platforms entirely,
```
prefix="/tmp/local-install/openfoam"
bin/tools/install-dirs -prefix="$prefix" -common
bin/tools/install-platform -exec-prefix="$prefix"
```
Installs
 - /tmp/local-install/openfoam/META-INFO
 - /tmp/local-install/openfoam/bin
 - /tmp/local-install/openfoam/etc
 - /tmp/local-install/openfoam/lib
2020-11-25 21:31:22 +01:00
c2bf9e1cc8 CONFIG: bump API to 2011
- mostly to reflect changes in config prefs and output methods
2020-11-25 21:31:02 +01:00
52c6642a4c Merge remote-tracking branch 'origin/master' into develop 2020-11-25 21:30:49 +01:00
1fa4221bc8 COMP: fix label ambiguity 2020-11-25 19:53:03 +01:00
501cd35351 ENH: consistent naming for ZoneMesh lookup method
- findZone(), cfindZone() to return pointer to existing or nullptr if
  not found. This fits with methods such as findObject() etc for other
  classes and can simplify code without checks for '-1' as not found.

- use simpler constructors for empty cell/face/point zones
2020-11-25 19:53:03 +01:00
be7a3f21be ENH: add BitOps::set(), unset() functions for boolList, labelHashSet 2020-11-25 19:53:03 +01:00
0de32a6e6f ENH: improve flexiblity for flat output of items (#1929)
- change to a templated implementation instead of relying on
  the container's writeList() method.

  This inlines the generation while also adding the flexibility to
  define different delimiters (at compile time) without the
  performance penalty of passing run-time parameters.
2020-11-25 19:53:03 +01:00
d2f1690536 ENH: align Enum methods with HashTable
- deprecate get(key, deflt) in favour of lookup(key, deflt).
  Method name compatibility with HashTable.

- deprecate operator().
  The meaning is too opaque and equally served by other means:

  - use get(key) instead of operator()(key).
    Const access whereas HashTable::operator()(key)
    creates missing entry.

  - lookup(key, deflt) - instead of operator()(key, deflt).
    Const access whereas HashTable::operator()(key, deflt)
    creates a missing entry.

- make Enum iterable to allow participation in range-for etc.
2020-11-25 19:53:02 +01:00
9122713b37 STYLE: mark deprecated findIndices methods with warnings
- were deprecated Aug-2018, but not marked as such
2020-11-25 19:53:02 +01:00
7349b97ecc STYLE: use labelRange for identity 2020-11-25 19:53:02 +01:00
ae49b51182 ENH: improve offsets handling in extrudeToRegionMesh (#1933)
- non-uniform offsets are generated due to truncation errors,
  which can lead to problems later on (e.g. redistributePar).

  Detect if the offsets are close to being uniform.
2020-11-25 19:53:02 +01:00
89ea011585 ENH: snappyHexMesh: gapLevel. See #1463.
Adds distance-to-surface as a pre-selection
to detect cells-in-gaps. Before it could only
use inside or outside but not distance.
2020-11-25 16:10:02 +00:00
ac98e498fe BUG: meshToMesh - corrected mapping of internal field for tgt->src mapping. Fixes #1935 2020-11-24 12:01:15 +00:00
9c26b5ce9f BUG: subsetMesh: map instead of truncate. See #1558.
This also is to do with redistributePar:
this uses subsetMesh to generate parts to
send to different processors.
2) related to 1558: make sure not to choose 'mapped'
patches to move the processor patches into so
we can use the mapper cloning and correctly
size additional data (e.g. offsets). This should
be generalised to hold for any patch type
holding local data ...
2020-11-23 19:58:31 +00:00
f9033cbf92 BUG: wall distance: Fixes #1932.
Potential problem with multiple faces. Rewritten to
use DynamicList.
2020-11-23 13:08:17 +00:00
eaf6440a0a COMP: Allwmake: delay building finiteArea
For convenience - build finiteVolume first
2020-11-23 13:08:17 +00:00
88afcae8e8 Merge branch 'feature-Function1' into 'develop'
corrections and improvements for Function1

See merge request Development/openfoam!391
2020-11-20 15:18:25 +00:00
4b964f676e STYLE: fix doxygen comments 2020-11-19 16:57:45 +01:00
8d2d894ae0 ENH: support frequency or period for Sine/Square Function1 (#1917)
- For slow oscillations it can be more intuitive to specify the
  period.

ENH: separate mark/space for Square

- makes it easier to tailor the desired intervals.

BUG: incorrect square wave fraction with negative phase shifts

ENH: additional cosine Function1

STYLE: avoid code duplication by inheriting Cosine/Square from Sine.
2020-11-19 16:57:45 +01:00
6e3bc1f7d0 STYLE: can add compile-time deprecated message for autoPtr::set()
- deprecated Feb-2018, but not marked as such.

  The set() method originally enforce an additional run-time check
  (Fatal if pointer was already set), but this was rarely used.
  In fact, the set() method was invariably used in constructors
  where the pointer by definition was unset.

  Can now mark as deprecated to catch the last of these.
  We prefer reset() for similarity with std::unique_ptr

  Eg,
  FOAM_EXTRA_CXXFLAGS="-DFoam_autoPtr_deprecate_setMethod"  wmake
2020-11-19 16:57:45 +01:00
2f2dcdcf6f ENH: Function1 and PatchFunction1 improvements (#1917)
- easier support for non-mandatory functions.

  In some boundary conditions it can be desirable to support
  additional functions, but not necessarily require them. Make this
  easier to support with a Function1, PatchFunction1 NewIfPresent()
  selector.

- support for compatibility lookups

- harmonize branching logic and error handling between Function1 and
  PatchFunction1.

ENH: refactor a base class for Function1, PatchFunction1

- includes base characteristics, patch or scalar information

ENH: additional creation macros

- makeConcreteFunction1, makeConcretePatchFunction1Type for adding a
  non-templated function into the correct templated selection table.
  makeScalarPatchFunction1 for similarity with makeScalarFunction1
2020-11-19 16:57:45 +01:00
07bbae0c55 STYLE: use brace constructors for Foam::zero and Foam::one
- makes it clearer that these are constructors and not function calls
2020-11-19 16:57:45 +01:00
98d05fa80a STYLE: prefix zero/one with Foam:: qualifier
ENH: support construction of zero-sized IndirectList

- useful when addressing is to be generated in-place after construction.
  Eg,

      indirectPrimitivePatch myPatches
      (
          IndirectList<face>(mesh.faces(), Zero),
          mesh.points()
      );
      labelList& patchFaces = myPatches.addressing();

      patchFaces.resize(...);
      // populate patchFaces

STYLE: add noexcept for zero/one fields and remove old dependency files

COMP: correct typedefs for geometricOneField, geometricZeroField
2020-11-19 16:55:29 +01:00
f126e29121 ENH: fanPressureFvPatchScalarField - adjust compatibility handling
COMP: add missing clone() for fanCurve member

STYLE: reduce padding in data members
2020-11-19 12:36:57 +01:00
d1453b037a STYLE: duplicate include dir 2020-11-18 22:41:14 +01:00
da7165077c BUG: typo in solidProperties prevents re-reading of "Hf" (fixes #1927) 2020-11-18 19:38:55 +01:00
6dd2cc808e CONFIG: provisional cuda rule. Update naming for CGAL rules 2020-11-17 21:29:07 +01:00
9fd514bbe6 ENH: support OFstream "/dev/null" equivalent directly
- uses ocountstream for the output, which swallows all output.
  Improves portability

ENH: improved efficiency in countstreambuf

- xsputn() instead of overflow
- more consistent seek* methods
2020-11-17 14:43:00 +01:00
345a42f2d8 ENH: improve overhead in planeToFaceZone
- use bitSet instead of boolList/HashSet. Simplify looping
2020-11-17 12:36:45 +01:00
24c9761429 COMP: silence warnings, fix transcription error for planeToFaceZone
ENH: add construct from components

STYLE: adjust action variable name for consistency
2020-11-17 12:36:45 +01:00
8969110f2a ENH: distinguish between face zone topoSetSource (#1060)
- add intermediate class topoSetFaceZoneSource
  and corresponding New() factories
2020-11-17 12:33:13 +01:00
54139592b9 ENH: add bitSet found() method - method name compatibility with HashSet 2020-11-17 10:50:42 +01:00
146a1d1b67 ENH: snappyHexMesh: par extrusion. Fixes #1923 2020-11-16 11:22:56 +00:00
fc541cee40 BUG: crash during gap refinement (fixes #1919)
- fixed indexing error (crashes under windows).
  No crash but still incorrect on other systems
2020-11-13 11:00:13 +01:00
79a4dc5153 Merge branch 'feature-particle-histogram' into 'develop'
ENH: PatchParticleHistogram: add a new cloud FO

See merge request Development/openfoam!386
2020-11-13 09:23:24 +00:00
2a64d98d02 ENH: PatchParticleHistogram: add a new cloud FO
Computes a histogram for the distribution of particle diameters
  and corresponding number of particles hitting on a given list of patches.

  A minimal example by using `constant/reactingCloud1Properties.cloudFunctions`:

  ```
  patchParticleHistogram1
  {
      // Mandatory entries (unmodifiable)
      type             patchParticleHistogram;
      patches          (<patch1> <patch2> ... <patchN>);
      nBins            10;
      min              0.1;
      max              10.0;
      maxStoredParcels 20;
  }
  ```
2020-11-13 09:22:46 +00:00
48592e8152 Merge branch 'code-review-nov20.kbc' into 'develop'
Miscellaneous code changes - Nov 20

See merge request Development/openfoam!387
2020-11-13 09:22:36 +00:00
a1c25e6201 ENH: heatTransferCoeff: add optional Nusselt number functionality
DOC: heatTransferCoeff models: complete remaining header docs
  STYLE: heatTransferCoeff models: use auto specifier when appropriate

  Optionally, the Nusselt number (i.e. the ratio of convective to conductive
  heat transfer at a boundary in a fluid) can be output:

  ```math
      Nu = \frac{h L}{\kappa}
  ```

  where
  ```
    Nu | Nusselt number
    h  | Convective heat transfer coefficient of the flow
    L  | Characteristic length that defines the scale of the physical system
    \kappa | Thermal conductivity of the fluid
  ```
2020-11-13 09:18:44 +00:00
bbeda07862 BUG: polynomialEqns: fix discriminant limit
It was observed in a MPPICDyMFoam simulation involving a single particle
in a moving mesh that the barocentric trajectory of the particle follows
an unexpected path at some arbitrary instant in time.

The issue was tracked to "hitEqn()" where cubicEqn/quadraticEqn computes
one of the roots wrongly due to the discriminant limit we set, e.g. for:

    0x^3 + 1.4334549e-33 x^2 - 9.0869006e-10 x + 0.0027666538

Although the discriminant limit was carefully selected to avoid various
problems at the time, the new change is required more due to its exposition
to a wider spectrum of applications.
2020-11-13 09:18:44 +00:00
b42db6cee5 BUG: reconstructPar: prevent crashes when operating on processor cases (#1143)
From OpenFOAM Foundation e4d89daf5d

The main issue here was that reconstructPar is serial but coupled() in
cyclicAMIFvPatch.C could return true if both sides of the patch was present
(this->size() && neighbFvPatch().size()). However, this would result in an
evaluate call in cyclicAMIFvPatchField. This would only work if both sides
were completely contained on the same processor. The change in logic prevents
coupled() from returning true when called in serial for a decomposed case.

Signed-off-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2020-11-13 09:18:44 +00:00
d392bf9841 DOC: actuationDiskSource: fix content (#1828)
ENH: actuationDiskSource: change two FatalError to FatalIOError
2020-11-13 09:18:43 +00:00
83b432c9d2 TUT: cavity: add Allrun-parallel
The change helps to carry out and monitor
  parallelisation tests for FOs and topoSets.
2020-11-13 09:18:43 +00:00
da65e02707 INT: planeToFaceZone: integrate a new topoSet from OpenFOAM.org 2020-11-13 09:18:43 +00:00
cf6d5b844f Merge branch 'feature-rationalize-mpi-configs' into 'develop'
Feature rationalize mpi configs

See merge request Development/openfoam!389
2020-11-12 17:25:07 +00:00
c91fc6f41c CONFIG: rationalize mpi config tuning (#1910)
- prefix FOAM_MPI and library directories with 'sys-' for system
  versions for uniform identication.

  WM_MPLIB      | libdir (FOAM_MPI)  | old naming |
  SYSTEMMPI     | sys-mpi            | mpi        |
  SYSTEMOPENMPI | sys-openmpi        | openmpi-system |

- prefix preferences with 'prefs.' to make them more easily
  identifiable, and update bin/tools/create-mpi-config accordingly

      Old name: config.{csh,sh}/openmpi
      New name: config.{csh,sh}/prefs.openmpi

- additional mpi preferences now available:
    * prefs.intelmpi
    * prefs.mpich
    ...

CONFIG: added hook for EASYBUILDMPI (eb-mpi), somewhat like USERMPI

- EasyBuild uses mpicc when compiling, so no explicit wmake rules are
  used

ENH: support different major versions for system openmpi

- for example, with

     WM_MPLIB=SYSTEMOPENMPI2

  defines FOAM_MPI=sys-openmpi2 and thus creates lib/sys-openmpi2

ENH: centralize handling of mpi as 'mpi-rules'

    Before:
        sinclude $(GENERAL_RULES)/mplib$(WM_MPLIB)
        sinclude $(DEFAULT_RULES)/mplib$(WM_MPLIB)

        ifeq (,$(FOAM_MPI_LIBBIN))
            FOAM_MPI_LIBBIN := $(FOAM_LIBBIN)/$(FOAM_MPI)
        endif

    After:
        include $(GENERAL_RULES)/mpi-rules

- also allows variants such as SYSTEMOPENMPI2 to be handled separately
2020-11-11 18:36:01 +01:00
26ec9b5a17 CONFIG: rationalize compiler tuning
- support prefs.compiler with better possibilities to provide
  overload values

STYLE: reduce code for WM_ARCH_OPTION (seldom-used)
2020-11-11 17:58:47 +01:00
67b3c01e13 ENH: generalize argList help output 2020-11-11 16:59:01 +01:00
ef2ea9629c STYLE: line breaks and spelling 2020-11-11 10:02:17 +01:00
30ea7d6134 BUG: Make volUpdateType default to constRho particle. Fixes #1916 2020-11-10 09:17:21 -08:00
fbcf7111be BUG: Taking out contErr contribution to TEq for divUp. Fixes #1813.
contErr is based on rhoPhi not on phi. The term contErr/rho*p in TEq
makes a large correction which occasionally makes T unbounded
2020-11-10 08:52:31 -08:00
4cf44850a7 CONFIG: detect newer adios library name (fixes #1911)
ENH: provide fallback prefix for cmake detection

STYLE: simplify some shell syntax, avoid uname call in sysFunctions

STYLE: report FOAM_MPI during mpiLib builds
2020-11-09 15:43:52 +01:00
f7c8e39804 ENH: update lemon version (#1768)
- upstream fixes: minor compiler warnings, style changes
2020-11-07 18:04:55 +01:00
5e660c36e9 CONFIG: ptscotch header not found on RedHat/Fedora (fixes #1904)
- no limit to the number of ways of filing ptscotch libraries.
  RedHat/Fedora/CentOS should look for these directories:

      ptscotch include=/usr/include/openmpi-x86_64
      ptscotch library=/usr/lib64/openmpi/lib

  when MPI_ARCH_PATH=/usr/lib64/openmpi
  and mpicc --showme:compile yields -I/usr/include/openmpi-x86_64
2020-11-04 15:22:44 +01:00
1d544540d9 ENH: handle wmake -debug option via FOAM_EXTRA_CXX_FLAGS
- ensures that subsequent Allwmake scripts know about it.

ENH: add bin/tools/query-detect wrapper for wmake have_* scripts

CONFIG: use project/ThirdParty without additional sanity checks

- no need to test for Allwmake or platforms/ if ThirdParty is located
  within the project directory itself.

COMP: add simple mpi test to 00-dummy

- for testing library linkage, etc.
2020-11-04 15:17:28 +01:00
83fb48678d COMP: adjust build order
- blockMesh <- extrudeModel <- dynamicMesh

COMP: bad constructor in searchableSphere

- used brace initializer instead of bracket initializer, which
  triggered component-wise construction instead of copy/move
  construction (gcc 4.8)

STYLE: use uint8_t instead of relying on definition of 'direction'
2020-11-04 15:15:36 +01:00
aea876885f ENH: support surfaceFieldValue faceZone on internal volume (#1884)
- uses averaged value instead of emitting a fatal error
2020-10-29 11:32:50 +01:00
bed1305d96 BUG: extraneous brackets after Fluent cell types (fixes #1872)
ENH: limit output to 25 cell types per line for readability

- makes it easier to trace potential format errors etc

STYLE: downgrade warning about polyhedrals to a simple info message

- can assume that polyhedral support is widespread enough to not
  warrant a warning.
2020-10-29 11:21:39 +01:00
3b7100a9a1 BUG: PDRsetFields fails with non-orthogonal outer region (fixes #1907)
- first sort the cells into their ijk bins, and restrict testing for
  face orientation to those faces with an owner or neighbour that has
  an ijk bin.

ENH: ensure polyMesh from PDRblockMesh is marked as AUTO_WRITE

- the particular polyMesh constructor inherits the writeOpt, which
  makes is dependent on the caller and thus somewhat fragile for the
  top level caller.
2020-10-28 20:56:32 +01:00
043419f30a TUT: add examples of general spheroid (#1901)
- for blockMesh meshing and as snappyHexMesh geometry
  (adjust the igloo aspect ratio)
2020-10-28 16:04:12 +01:00
e9d130f022 ENH: support general searchable spheroid (issue #1901)
- a sphere/spheroid can be specified as a single radius or three radii.
  If all three values happen to be identical, they are collapsed to a
  single value. Examples,

      radius 2;
      radius (2 2 2);
      radius (2 3 4);
      radius (2 2 4);

  The search for nearest point on an ellipse or ellipsoid follows the
  description given by Geometric Tools (David Eberly), which also
  include some pseudo code. The content is CC-BY 4.0

  In the search algorithm, symmetry is exploited and the searching is
  confined to the first (+x,+y,+z) octant, and the radii are ordered
  from largest to smallest.

  Searching is optimized for sphere, prolate and oblate spheroids.
2020-10-28 16:04:12 +01:00
4258f8059f ENH: adjustments to searchable surfaces
- code reduction, documentation, code stubs for spheroid (#1901)

- make searchableSurfaceCollection available as 'collection'
  for consistency with other objects
2020-10-28 16:04:12 +01:00
f999013f41 ENH: use static to define default blockMesh verbosity
- make handling of verbosity more consistent.

  Make all setter return the old value, remove (unused) default
  parameter as being counter-intuitive.  This makes it easier to
  restore the original values.

  For example,

     const bool oldVerbose = sampler.verbose(false);
     ...
     sampler.verbose(oldVerbose);
2020-10-28 16:04:12 +01:00
f959c8eb36 ENH: generate local orientation vectors for blockMesh VTK output (#1903)
- can help when designing/debugging blockMesh layouts

- propagate low-level cellModel methods face() and edge() to cellShape

STYLE: relocate blockMesh OBJ output to application only

- remove blockTopology files in cleanCase function

- improve code consistency in top-level blockMesh, PDRblockMesh
  generation.
2020-10-28 16:04:12 +01:00
242d9e40a2 ENH: consistency update for GeometricField::Boundary constructor
- make patchFieldType default to calculated,
  as per GeometricField constructor
2020-10-28 16:04:12 +01:00
410d38b9d9 ENH: support true/false, yes/no values for FOAM_ABORT (#1896)
- consistent with FOAM_SIGFPE etc.

- centralize code as error::useAbort() static function to avoid
  scattering the logic throughout the code.

ENH: also accept "0" and "1" string values for Switch

- not the normal path for Switch input (eg, from a dictionary), but
  consistent with bool definitions and simplifies string parsing.

  This means that `FOAM_SIGFPE=1 application` will now also work.
2020-10-28 16:04:12 +01:00
9eb73a92e2 TUT: fix use of "constant/triSurface" etc (#1887)
- use bracketed syntax (eg, "<constant>/triSurface") instead for
  implicit case resolution.
2020-10-28 16:04:12 +01:00
5579e7a62b ENH: improve some efficiency in expressions
- use refPtr to simplify some logic.
- avoid copying field if an average will be used
- initialize geometric fields with a uniform value instead of Zero
- minor tweak of method names

- apply bugfix #1889 (longer description elsewhere)
2020-10-28 16:04:08 +01:00
9dc4f76b03 BUG: incorrect boundary type for expressions variables (fixes #1889)
- had calculated boundaries (default) for the evaluated variables,
  which meant they retained their initialized values (usually Zero).

  This normally goes unnoticed, since the boundary values are largely
  irrelevant in the volField expressions. However, when applying
  functions that balk at a zero value - eg, log() - this raises a
  floating point exception.

  These boundary should be zeroGradient, since the evaluated variables
  correspond to the internalField only. Could continue to use
  calculated, but then need to set the calculated boundary values from
  the patch internal field manually.
2020-10-23 11:03:05 +02:00
3e4d9e15c0 BUG: using FatalIOErrorInLookup with incorrect exit type (fixes #1898)
- two occurrences where FatalIOErrorInLookup used exit(FatalError)
  instead of exit(FatalIOError), which caused the error messages
  to be lost.
2020-10-23 09:31:02 +02:00
51b2490258 ENH: additional options for transformPoints and surfaceRefineRedGreen
- add -recentre option to shift points according to the bounding box
  centre before performing other operations

- add -auto-origin to use the bounding box centre as the origin for
  rotations. Has lower priority than the -origin option.

- surfaceTransformPoints now has distinct -read-scale, -write-scale
  options (as per surfaceMeshConvert). Silently accepts -scale as
  equivalent to -write-scale, for backwards compatibility and
  similarity with transformPoints

- add -steps option for surfaceRefineRedGreen for successive
  refinement
2020-10-22 14:59:12 +02:00
4f84aa5362 STYLE: adjustments for code integration
- adjust contributor names to include windows port

BUG: bash script marked as sh (fixes #1890)
2020-10-22 14:52:56 +02:00
d8525f1746 INT: polyline: new extrusion model
Allows specification of extrusion path using blockMesh 'edges' syntax.
See tutorials/mesh/extrudeMesh/polyline

Contribution by Ivor Clifford/Paul Scherrer Institut
2020-10-22 10:13:15 +01:00
e11c072bc4 CONFIG: incorrect BC code templates (fixes #1885)
- autoPtr to Function requires clone() method, not optional copy/move
  argument.

- fix bad character range for 'sed'
2020-10-20 14:23:40 +02:00
f425424eef ENH: add api/patch information to FatalError (#1880)
- can be useful when confronted with partial outputs

- provision for redirecting error/warning
2020-10-19 21:14:22 +02:00
1071d413a3 ENH: add ROOTGREAT constants (symmetry with ROOTSMALL)
ENH: add some scalar constants for .org compatibility (#1881)

Although it can very much be a moving target, it can prove partly
useful to have some compatibility constants/methods.

- The wholesale change of 'GREAT' -> 'great' etc (JAN-2018), makes
  user coding for multiple versions problematic. When
  COMPAT_OPENFOAM_ORG is defined, now define constants (aliases) named
  as per the openfoam.org version. Values, however, remain identical.

- For type-safe dictionary value retrieval, we have the templated
  get<> methods added around NOV-2018 and deprecated the lookupType
  method.

  The .org version followed suit in NOV-2019, but opted for renaming
  the templated lookupType method as a templated 'lookup' method.

  Using this is discouraged, but allowed when COMPAT_OPENFOAM_ORG is
  defined.
2020-10-19 21:14:17 +02:00
cb47decbf1 ENH: add Switch::negate() method (no-op for invalid state)
- flips state while preserving the textual representation.
  Eg, OFF <-> ON, YES <-> NO etc.

- fix test case to avoid triggering abort(), which we cannot try/catch
2020-10-15 17:21:33 +02:00
f7839acd47 ENH: output Enum name list without leading number
- not usually of any interest.
  Unifies code for Ostream and std::ostream operators
2020-10-15 17:21:33 +02:00
f1d9fea6f2 ENH: construct token::compound from object and token from compound (#1879)
- provides a more direct means of generating a compound token without
  an Istream

- add transferCompoundToken() without Istream reference

- mark more token methods as noexcept
2020-10-15 17:21:33 +02:00
de544c9422 COMP: mark autoPtr copy assigment as '= delete' (#639)
- was marked as transitional/deprecated (2018-02), now deleted.

- avoids unexpected stealing of the pointer.
  Use the move assignment it that is the intention.
2020-10-15 17:21:33 +02:00
132ae101f6 COMP: avoid autoPtr copy assignment and implicit casting 2020-10-15 17:21:33 +02:00
3186bd87de BUG: regionToFace: does not stop walking. Fixes #1882
Problem was initial value of zone (transported label) was
still 0. Fixed by properly checking for 'valid' state.
2020-10-15 09:41:21 +01:00
f0d4f7cdc5 ENH: additional cellModel edge() method to return a single edge
STYLE: update cell methods

- avoid shadow variable names, range-for, etc
- simplify coding

STYLE: relocate cellModeller (compatibility) from namespace to a struct

- avoids misleading namespace clutter in doxygen
2020-10-13 12:47:37 +02:00
2d67788c74 ENH: simplify treeBoundBox::calcExtremities
STYLE: avoid shadow variable names, add more doxygen markup

STYLE: cull some unused code from triangleFuncs
2020-10-13 12:47:37 +02:00
2a6cbeb7cb ENH: update and document point/object hit methods
- add point() as unchecked getter method.

- add hitPoint(.., label) convenience method for common combination of
  setHit() + setIndex(label) + setPoint(..)

GIT: remove unused headers, typedefs (point2DHit.H pointHitSort.H)
2020-10-13 12:47:37 +02:00
a475a19d01 CONFIG: bump API to 2010
- mostly reflects minor additions to Pstream methods and blockMesh
  improvements.
2020-10-12 12:52:39 +02:00
f83bc8c22b Merge remote-tracking branch 'origin/master' into develop 2020-10-12 12:52:17 +02:00
9c7aa9727a ENH: add UPstream::parRun(const bool)
- slightly neater code when disabling/restoring parallel state

  New
      const bool oldParRun = Pstream::parRun(false);
      ...
      Pstream::parRun(oldParRun);

  Old
      const bool oldParRun = Pstream::parRun();
      Pstream::parRun() = false;
      ...
      Pstream::parRun() = oldParRun;
2020-10-12 12:51:22 +02:00
295eef471d CONFIG: increment patch level 2020-10-12 11:17:59 +02:00
6ecb4b69b1 SUBMODULE: update for bugfixes, compilation (external-solver, OpenQBMM) 2020-10-12 11:17:48 +02:00
bea6563210 CONFIG: ptscotch header not found on ArchLinux (fixes #1877)
- on ArchLinux, everything is installed under /usr/include/scotch.

  The detection script uses SCOTCH_ARCH_PATH as an initial guess for
  ptscotch as well. However, on the second pass, it has an absolute
  value ("/usr") instead of a logical one ("scotch-system").
  This resulted in the logic for handling scotch+ptscotch subdirs
  being bypassed.
2020-10-12 10:34:49 +02:00
c1ad429564 BUG: parallel foamToEnsight fails depending on lagrangian order (fixes #1873)
- the problem arises when output fields are missing on some
  processors.

  When the information is combined, the resulting HashTables can have
  different insertion orders. This poses an issue when there are hash
  key collisions and thus different chaining.

- Use sorted order.
2020-10-08 18:23:54 +02:00
ea0de58bbf ENH: add ffmpeg support to foamCreateVideo
- additional -tool= option to guide the discovery process
2020-10-07 20:48:04 +02:00
0783bd28d1 ENH: additional face constructors, cellModel methods
- support construct face from subset of labels.

- additional cellModel face() method to return a single face.

- reduce some allocations in cellModel centre/mag methods

STYLE: mark old cellModeller methods as compile-time deprecated

- deprecated in 2017, but not marked as such

STYLE: indentation, spacing in some headers
2020-10-07 09:18:23 +02:00
525ad206be BUG: compilation error for DimensionedField::T() fixes #1868
- incorrectly used const access for the tmp instead of ref()
2020-10-07 09:18:23 +02:00
833ee40904 ENH: add pTraits for uint8_t 2020-10-07 09:17:00 +02:00
568cb050f2 STYLE: place projectCurveEdge, projectEdge into blockEdges namespace
- consistent with other blockEdge types
- adjust some debug output
2020-10-07 09:17:00 +02:00
57a76e2647 Merge branch 'feature-blockMesh-edges' into 'develop'
Feature block mesh edges

See merge request Development/openfoam!383
2020-10-06 09:37:10 +01:00
121c69ef2e TUT: use new 'arc' specification in several tutorials
- in most cases this eliminates manually calculation of circumferential
  points.

TUT: improve parameterization of sphere blockMeshDict

- allow separate parameterization of radius, ratio of inner to outer,
  and the number of divisions in x/y/z and radial directions
2020-10-05 15:45:39 +02:00
1d08ed9be2 ENH: support arc edge specification with origin point
- The arc will frequently enclose an angle less than 180 degrees.
  For the case, it is possible to define the arc by its endpoints
  and its centre (origin) point. For example,

      arc 0 1 origin (0 0 0);

  When defined in the way, any discrepancy in the arc radius for the
  endpoints is resolved by adjusting the origin to ensure that the
  average radius is satisfied.

  It is also possible to specify a \em flatness factor as a multiplier
  of the radius. For example,

      arc 0 1 origin 1.1 (0 0 0);

ENH: minor code cleanup for block edges

ENH: expose point appending as polyList::concat
2020-10-05 14:08:48 +02:00
8939a55653 ENH: relocate blockMesh polyMesh generation into library (for code reuse)
STYLE: adjust blockMesh advanced/non-advanced options

- make -merge-points "non-advanced" (for better exposure)
- make -write-obj "advanced" (-write-vtk is preferred)
2020-10-05 12:36:04 +02:00
179e4cbcf2 STYLE: dimensionSet lookup with LITERAL, not REGEX 2020-10-02 09:19:32 +02:00
f9190e2a3c ENH: primitiveEntry construct with empty token list
- contents to be filled with a later assignment.

  This can help avoid deduction issues when populating from a list of
  tokens, and the templated version is selected:

  ```
  template<class T>
  primitiveEntry(const keyType&, const T&);
  ```

ENH: support construct empty ITstream with given name

- populate contents later by assigment
2020-10-02 09:16:07 +02:00
a415f04431 COMP: cannot compare 'this' for different DynamicList types
- Eg, cannot compare addresses of DynamicList<T,16> and DynamicList<T,8>
  [clang], so compare their cdata pointers instead.
2020-10-01 11:35:59 +02:00
9785029979 BUG: CompactListList transfer leaves old size (fixes #1863)
- use clear/swap paradigm for more code reuse

Note: fixed similar issue with copy/reuse constructor
2020-10-01 11:35:59 +02:00
56c9134ccc ENH: add identity(IntRange) and Istream operator for common types
- provides consistency with identity(label, label) and looks more
  familiar than using labelRange::labels()

- relocates labelRange IO operators to IntRange

ENH: make sliceRange interators random access

STYLE: scalarRanges::match() instead of predicate operator
2020-10-01 11:35:43 +02:00
3b3cffc758 BUG: mapPolyMesh: incorrect addressing. Fixes #1864
Triggered when running e.g. postProcess
2020-09-30 11:44:25 +01:00
27e71c2d9e Merge branch 'Pstream-ranges' into 'develop'
Pstream ranges

See merge request Development/openfoam!382
2020-09-29 10:16:37 +01:00
5dc5ea928a ENH: add UPstream::subProcs() static method
- returns a range of `int` values that can be iterated across.
  For example,

      for (const int proci : Pstream::subProcs()) { ... }

  instead of

      for
      (
          int proci = Pstream::firstSlave();
          proci <= Pstream::lastSlave();
          ++proci
      )
      {
          ...
      }
2020-09-28 14:26:07 +02:00
e18ff114a6 ENH: add UPstream::allProcs() method
- returns a range of `int` values that can be iterated across.
  For example,

      for (const int proci : Pstream::allProcs()) { ... }

  instead of

      for (label proci = 0; proci < Pstream::nProcs(); ++proci) { ... }
2020-09-28 14:25:59 +02:00
f8a8728f8f TUT: update movingCone blockMesh to merge points (#1862)
- wedge geometry, so topology merge results in zero-sized faces.
2020-09-28 11:08:32 +02:00
aca4f077ac ENH: fanPressure - use fanCurve entry if present
- only use implicit legacy handling if the "fanCurve" entry is missing
  and the "file" entry is present.
2020-09-28 11:08:32 +02:00
245ac07312 COMP: add missing include and clone() method to TableFile 2020-09-28 11:08:32 +02:00
43b9b63ab0 ENH: fanPressureFvPatchScalarField - updated fanCurve to use a Function1 2020-09-28 11:08:32 +02:00
12b68e1151 ENH: replace finiteArea timeVaryingUniformFixedValue with Function1 version
- timeVaryingUniformFixedValue -> uniformFixedValue

- allows a variety of functions (eg, coded, expressions, tables, ...)

- more similarity to finiteVolume patch type

STYLE: remove unused timeVarying... from etc/controlDict
2020-09-28 11:08:30 +02:00
bb3660b9a5 ENH: add construct ConstantField with uniform value 2020-09-25 15:30:50 +02:00
97be8fc767 ENH: add finer control to the expected expression types
- adds "future-proofing" for derived expression boundary conditions
  by moving potential failure modes into the base class.
2020-09-25 08:45:16 +02:00
ea42a7a6d4 ENH: change uniformGradient from Function1 to PatchFunction1 2020-09-25 08:39:57 +02:00
0dfdeb36d4 COMP: declare scalarRanges default constructor (gcc-4.8.5)
- failed to properly use the inherited constructors

STYLE: adjust documentation comments
2020-09-25 08:39:57 +02:00
a4c2842420 Merge remote-tracking branch 'origin/master' into develop 2020-09-24 16:17:22 +02:00
cbc0da8a60 CONFIG: increment patch level 2020-09-24 13:46:35 +02:00
d22134ed12 BUG: unexpected treatment of missing fractionExpr (fixes #1858)
- specifying gradientExpr without a valueExpr, a missing fractionExpr
  should be treated as 0 (gradient only), not as 1 (value only)

ENH: improve sanity checks + evaluation short-cuts in exprMixedFvPatchField
2020-09-24 13:46:32 +02:00
1550a12223 BUG: fractionExpr "0" ignored (fixes #1855)
- incorrect branching logic caused the "0" case to be ignored
2020-09-24 11:59:17 +02:00
413ccd5ce3 STYLE: adjust tests and one code instance for updated labelRange 2020-09-23 10:46:04 +02:00
2aa46d4379 STYLE: manage send/recv ensight parallel output with integer range 2020-09-23 10:46:04 +02:00
d204d33c4e ENH: new IntRange class, enhancements to labelRange, sliceRange
- add reverse iterators and replace std::iterator
  (deprecated in C++17) with full definitions

- simplify construction of iterators

- construct labelRange from a single single parameter.
  This creates a (0,len) range.

- make basic constructors forms constexpr.
  Remove unused size checks.

- Derive labelRange from new IntRange template class.
  Allows reuse of base functionality with different integral sizes.

Deprecations:

  - deprecate labelRange::valid() in favour of using
    labelRange::empty() or the bool operator.
    For example,

        if (range) ...  vs older  if (range.valid()) ...

DEFEATURE: drop labelRange::null, scalarRange::null static variables

- turned out to be not particularly useful.
  Can simply use constexpr contructor forms

DEFEATURE: drop labelRange::identity static method

- simply use the single-parameter constructor
2020-09-23 10:45:57 +02:00
ad8ac2fcd0 STYLE: remove unused code references to Pstream::procID() 2020-09-23 09:25:07 +02:00
48cb2de4eb STYLE: adjust send/receive in tests 2020-09-23 09:25:07 +02:00
52025dfb1b STYLE: add END tag for dependency files
- aids when locating truncated files
2020-09-23 09:25:07 +02:00
2cba04e204 STYLE: make some tmp, refPtr constructors constexpr 2020-09-23 09:25:07 +02:00
49ae975b72 Merge branch 'lagragianEvaporation' into 'develop'
New Evap-Cond Lagrangian model  (FuchsKnudsen)  for solution (liquid + solid) droplets

See merge request Development/openfoam!377
2020-09-22 16:37:02 +01:00
274bb0740e STY: Headers and code style 2020-09-22 16:35:53 +01:00
11d17fec5f ENH: Adding evaporation-condensation lagragian model for solution
1) Adding LiquidEvapFuchsKnudsen model for lagrangian evaporation.
   This models is based on a diffusion type of evaporation/
   condensation on particles composed of solution (liquid + solid).

2) Adding modes of calculating the particle rho and volume change.
   The new keyword in constantProperties is 'volumeUpdateMethod'
   which three options:
        a) constantRho
        b) constantVolume
        c) updateRhoAndVol

   The old keyword 'constantVolume' true/face is still valid

3) The entry rho0 is now optional for multicomponent parcels.
   If defined , it is used, but if it is not the actual mixture
   provided is used to calculate rho0 of the particle.
   T0 is still used as initial T and Cp0 is over-written in the
   multicomponent cloud but still required.

4) Adding tutorial for evaporation/condensation model
2020-09-22 16:35:53 +01:00
973e2d4e2d COMP: remnant foam-extend code in faMatrix::setValues (fixes #1834)
BUG: faMatrix::residual changes source vector (fixes #1835)

ENH: improve code alignment between faMatrix and fvMatrix

- support setValues() with a single value
2020-09-16 17:27:56 +02:00
bf3b4fabb4 ENH: UniformList to wrap a single value into a list-like container
- refactor UniformField accordingly
2020-09-16 17:27:56 +02:00
0d08942bf3 STYLE: mark globalMeshData::ListPlusEqOp as deprecated
- can use ListOps::appendEqOp as the more general form.
  Note that this uses a different template parameter.
  Eg,
      `globalMeshData::ListPlusEqOp<labelList>()`
  vs. `ListOps::appendEqOp<label>()`
2020-09-16 17:27:56 +02:00
0a1cd580ac ENH: improvements for nastran surface writer
- select default nastran PLOAD2 or PLOAD4 based on field type.
  Default to PLOAD2 for scalar types and PLOAD4 for vectors etc.

- relocate nastran SHELL/MAT cards.
  Previously wrote at the end of the file, now emit when writing the
  geometry itself. This improves modularity (of code and files)

- initial support for common geometry file for nastran
2020-09-16 17:27:56 +02:00
7d203443c3 ENH: refactor surface writer collated time management (#1600)
- abstracted out from ensight surface writer for potential reuse by
  other surface writers.
2020-09-16 17:27:56 +02:00
f8ffee8135 ENH: support fieldScale for more surface writers 2020-09-16 17:27:56 +02:00
a9bf69b551 ENH: suppress surface Face-id field if writer manages that itself (#1600)
- for CAE formats such as abaqus, nastran, starcd, etc, the element id
  is already part of the output format itself. For these cases, there
  is no use in generating an additional "Ids" field.

ENH: add code to ignore negative face ids

- these will arise from very special cases, such as when a
  solid element and side are encoded into a single integer.

BUG: starcd surface values output did not use original face ids
2020-09-16 17:27:56 +02:00
a001c0d2fa BUG: volPointInterpolation: fixes #1831 2020-09-16 15:30:09 +01:00
52e0ebca57 ENH: gradingDescriptor(s) correct() and normalise() methods
- single entry point to handle negative expansions etc.
  Reduces typos and forgotten code (as per #1841)
2020-09-16 09:47:08 +02:00
9762b547fe BUG: gradingDescriptor stream input ignores negative expansion (Fix #1841)
- mostly only tripped when using fractional edge grading, since this
  is where the list reading is used. Overseen in commit 7da0b5bee1.
2020-09-16 09:25:28 +02:00
ab55157358 BUG: snappyHexMesh: fixes #1836.
When truncating layers in one go (nBufferCellsNoExtrude -1) it
should set the nCells per face to be the min of the number of points
per edge.
2020-09-10 14:09:58 +01:00
c9ab12cb3d ENH: IOobject: print some more info 2020-09-10 14:09:57 +01:00
1e95af4d57 STYLE: use more generic terms allow/deny for selections 2020-09-09 13:54:34 +02:00
d4cd87830d BUG: Changing rho mixing to volume-based in rhoThermo. Fixes #1812. 2020-09-08 15:24:12 -07:00
7be3092414 BUG: Fixing parallel writing for interfaceHeight FO. Fixes #1788 2020-09-08 09:20:51 -07:00
be99805986 ENH: isolate config/version information from regular globals
- slight speed gain for recompilation and provisions for future
  refactoring
2020-09-07 17:36:26 +02:00
9423d2bd83 CONFIG: improve support for compiler/link options (#1830)
- introduce WM_COMPILE_CONTROL variable to convey control information
  into the build rules.

  The convention (as per spack):
      - '+' to select a feature
      - '~' to deselect a feature

  Eg, to select the gold linker, and disable openmp
  (spaces are not required):

      WM_COMPILE_CONTROL="+gold ~openmp"

CONFIG: accept FOAM_EXTRA_LDFLAGS for AMD, gold, Mingw linkers

CONFIG: generalize PROJECT_LIBS (-ldl used almost universally)
2020-09-07 09:45:51 +02:00
fbfcdfc723 ENH: allow default parameter for Tuple2 (#1827)
- simplifies cases where Tuple2 is used as a Pair replacement
  (for output format reasons)
2020-09-07 09:37:05 +02:00
1c71c7cb23 Merge remote-tracking branch 'origin/master' into develop 2020-09-03 12:04:45 +02:00
916dcc85a5 ENH: bin/tools/git-find-non-ascii: find non-ASCII chars in source code 2020-09-03 12:04:04 +02:00
73057447a2 COMP: pass-through targetType for a few Allwmake files (#1824) 2020-09-03 11:35:18 +02:00
4735776246 COMP: pass shell args for Allwmake-mpi (#1824) 2020-09-03 10:15:12 +02:00
0e6df58c70 STYLE: simpler construct for empty tmp field in volFieldValue
- originally (incorrectly) was a Field(0.0), which was generalized
  to Field(Zero), but Field() is the correct form

STYLE: rename 'mustGet' to more standard 'mandatory' variable
2020-09-03 09:26:37 +02:00
b2feb6a8d8 ENH: avoid redundant IO in readFields function object (fixes #1825)
- read header info once and reuse
- short-circuit logic to avoid unneeded checks
- additional debug information if field cannot be found

STYLE: remove unused old code remnants from #1206
2020-09-03 09:07:31 +02:00
719d3f77be COMP: Intel compiler bug with inheriting constructors (fixes #1821)
- the compiler reports

      Internal error loop: assertion failed:
      find_seq_in_lookup_table: seq_number not found
      (shared/cfe/edgcpfe/il.c, line 4118)

  Seems to be the same as the bug report
  https://community.intel.com/t5/Intel-C-Compiler/Internal-error-loop-assertion-failed-find-seq-in-lookup-table/td-p/1087603

This _should_ be fixed in icc 17.0 update 1, but appears to have
struck here as well.

- workaround: explicitly construct member elements.
2020-09-01 11:49:27 +02:00
8d55c37b2f BUG: missing tab in actuationDiskSource output (fixes #1819) 2020-08-31 15:17:54 +02:00
fa364eda12 BUG: inconsistency between constructor and output (fixes #1816)
- slipped in with changes to csvTableReader (commit 59ed3ba18d) so
  only affects the 2006 version.

- adjust constructor to expect "componentColumns", but also accept
  "valueColumns" as 1912 and earlier-compatibility. This not only
  fixes the reported bug, but also ensure proper compatibility with
  older files.

ENH: use "refColumn" instead of "timeColumn" for csvTableReader

- consistent with the CSV Function1.
  Support 'timeColumn' as 1912 and earlier-compatibility.

TUT: remove unused table-reader entry
2020-08-31 15:17:32 +02:00
a85446cad3 DOC: update BuildIssues for mingw changes 2020-08-12 17:02:53 +02:00
dd1c2edb6b COMP: wmake findObjectDir fails for non-project directories (fixes #1807)
- experienced while reusing src/Pstream/Allwmake-mpi to create
  additional mpi-layers after installation. Since the copied sources
  are not located within the OpenFOAM source-tree (and/or the
  source-tree is non-writable), it should not and does not use the
  central build/WM_OPTIONS directory.

  However, when exploring for the appropriate local Make directory, it
  searched for the current '.' directory instead of checking for the
  resolved directory.

  This fails, since there is no src/Pstream/Make directory.
  Must check for src/Pstream/mpi/Make directory first!

- Adjust wclean to always remove a local build directory
  (Make/WM_OPTIONS) for additional safety.
  After which, attempt to remove central build/WM_OPTIONS version too.
2020-08-12 12:33:34 +02:00
18c68e6b74 ENH: add bin/tools/createMingwRuntime helper
Script to copy/create mingw run-time installation from the Linux
  cross-compilation. Packs everything into a tar or a zip file.

  To accommodate Windows, all .dll files are also placed in the
  platforms bin/ directory where they are easily found via the PATH.

  Futhermore, ThirdParty dll files (including those from mingw itself)
  are also placed in the same directory.

---
Steps
  - bundles common files and directories (bin, etc, META-INFO, ...)

  - copies .exe files from FOAM_APPBIN and .dll files from FOAM_LIBBIN
    to the new target platforms/win64MingwDPInt32Opt/bin.

  - copies mingw sys-root .dll files to the new target
    platforms/win64MingwDPInt32Opt/bin

  - copies other ThirdParty dll files (scotch, fftw, etc) to
    platforms/win64MingwDPInt32Opt/bin

  - copies tutorials (can be deactivated)

---
Note
    Can only be called when the linux64Mingw environment is active.
2020-08-11 16:39:43 +02:00
a6e86caa62 ENH: improvements for FOAM_CONFIG_ETC
- handle relative directory names for FOAM_CONFIG_ETC
2020-08-11 13:16:03 +02:00
6a1efe3b5c ENH: support construct/reset refPtr from autoPtr and unique_ptr (#1775)
- makes it easier to use in combination with various 'New' selectors,
  which mostly return an autoPtr.

ENH: add very simple FFT test

- basic sanity test that the library links properly
2020-08-11 13:15:28 +02:00
e94fdee58d STYLE: add hints about setting GMP/MPFR within etc/config.*sh/CGAL 2020-08-10 14:38:41 +02:00
6e2b7be983 ENH: direct access to wrapped ifstream/ofstream with compression (#1805)
- previously hidden as Detail::[IO]FstreamAllocator, now exposed
  directly as [io]fstreamPointer, which allows reuse for
  std::ifstream, std::ofstream wrapping, without the additional
  ISstream, OSstream layers.

  These stream pointers have some characteristics similar to a
  unique_ptr.

- restrict direct gzstream usage to two files (fstreamPointers.C,
  gzstream.C) which improves localization and makes it simpler to
  enable/disable with the `HAVE_LIBZ` define.

  The HAVE_LIBZ define is currently simply hard-coded in the
  Make/options.

  If compiled WITHOUT libz support:
    - reading gz files : FatalError
    - writing gz files : emit warning and downgrade to uncompressed
    - warn if compression is specified in the case controlDict
      and downgrade to uncompressed

ENH: minor updates to gzstream interface for C++11

- support construct/open with std::string for the file names.

CONFIG: provisioning for have_libz detection as wmake/script
2020-08-10 12:40:08 +02:00
b2bded48c9 STYLE: use Time::printExecutionTime() method
- makes format of ExecutionTime = ... output configurable (#788)
  and reduces code clutter.

STYLE: more consistent line-breaks after "End" tag
2020-08-07 09:24:56 +02:00
1178fc190b CONFIG: add runtime settings for mingw cross-compiled binaries
- WM_ARCH=win64 to indicate the runtime environment

ENH: cross-compile wmake toolchain for the target-side as well
2020-08-06 19:36:19 +02:00
44052de594 TUT: skip some tutorials when dynamicCode is not available
- silence failed restoration of controlDict from controlDict.orig
  (idempotent?)
2020-08-06 19:34:20 +02:00
9ef144118d BUG: directory information spoils "wmake -show-cxx" (fixes #1799)
- the various information queries MUST be executed with
  the '--no-print-directory' or risk polluting values
  in the information queries.

  This is mostly seen with the 'canCompile' test for tutorials running
  in parallel.
2020-08-06 18:30:03 +02:00
67a17f7c78 Merge branch 'functionObject-dispatch' into 'develop'
ENH: finer granularity for handling functionObject failure (#1779)

See merge request Development/openfoam!380
2020-08-06 17:15:09 +01:00
583905fdeb BUG: directory information spoils "wmake -show-cxx" (fixes #1799)
- the various information queries MUST be executed with
  the '--no-print-directory' or risk polluting values
  in the information queries.

  This is mostly seen with the 'canCompile' test for tutorials running
  in parallel.
2020-08-06 17:52:02 +02:00
5424c5e5bc ENH: finer granularity for handling functionObject failure (#1779)
- additional "errors" entry with enumerated values
  (default|warn|ignore|strict) for defining warning or error at
  construct or runtime stage

- default : construct = warn, runtime = fatal
- warn    : construct = warn, runtime = warn
- ignore  : construct = silent, runtime = silent
- strict  : construct = fatal, runtime = fatal

The errors control can be added at the top-level and/or for individual
function objects.
2020-08-06 07:45:12 +02:00
f39c1d3c57 Merge branch 'comp-cyclic-dependencies' into 'develop'
remove cyclic dependencies for phase systems

See merge request Development/openfoam!379
2020-08-05 19:02:59 +01:00
a192095ce0 COMP: remove unused variable from phasePressureModel 2020-08-05 18:56:25 +01:00
99e20b3b6f ENH: combine some phaseSystem selectors into regular .C files
- reduces the number of files, eases code refactoring
2020-08-05 18:56:24 +01:00
93ed933770 STYLE: use unitConversion degToRad() from instead of separate value 2020-08-05 18:56:24 +01:00
915c0785ae ENH: avoid phaseSystem cyclic dependencies, reduce number of libraries
Reduce the number of phaseSystems libraries:

- phaseSystems previously had a number of smaller libraries to provide
  interface and model properties, etc. This potential flexibility was
  never actually used anywhere, but causes cyclic dependencies between
  phaseSystem and the models (and turbulence) that causes extreme
  difficulty for mingw linking (issue #1238).

- libincompressibleMultiphaseSystems
  - removed: libmassTransferModels

- libmultiphaseSystem
  - removed: libcompressibleMultiphaseEulerianInterfacialModels

- libreactingMultiphaseSystem
  - removed: libreactingPhaseSystem
  - removed: libreactingEulerianFvPatchFields
  - removed: libreactingEulerianInterfacialCompositionModels
  - removed: libreactingEulerianInterfacialModels
  - removed: libmultiphaseReactingTurbulenceModels

- libreactingTwoPhaseSystem
  - removed: libreactingPhaseSystem
  - removed: libreactingEulerianFvPatchFields
  - removed: libreactingEulerianInterfacialCompositionModels
  - removed: libreactingEulerianInterfacialModels

Avoid duplicate symbol for phaseCompressibleTurbulenceModels

  Common turbulence models are defined in libreactingMultiphaseSystem,
  and libmultiphaseReactingTurbulenceModels is now redundant.

  The libtwoPhaseReactingTurbulenceModels extends the common models
  for reactingTwoPhaseSystem.
2020-08-05 18:56:23 +01:00
03526e2097 ENH: centralize more libraries in src/phaseSystemModels
- prelude to code refactoring

NOTE
    no source code change in this commit, only relocation,
    renaming and adjustment of Make/{files,options}
2020-08-05 18:56:22 +01:00
42ce617b43 ENH: prefer 'model' keyword instead of 'RASModel',... (#149)
- since the context (laminar/RAS/LES) is already given by the
  sub-dictionary, it is redundant to use as prefix as well.

- silently support the longer names as compat methods
2020-08-05 15:29:03 +02:00
7051abc371 TUT: fix run/clean scripts syntax 2020-08-04 15:12:40 +02:00
14c9582458 ENH: provide wordPair typedef in Pair.H, and separate wordPair.H 2020-08-04 12:13:33 +02:00
6b074985ac ENH: improve separation of turbulence models macros (define vs make) 2020-08-03 16:28:21 +02:00
65d9cd503a COMP: stricter inclusion of headers in turbulenceModels
- include fvOptions header, Smagorinsky header
2020-07-31 13:08:33 +02:00
23ea498c08 BUG: inconsistent check in non-const '->' dereference (tmp, refPtr)
- old code just checked for pointer vs non-pointer.
  Should actually treat CREF and REF types differently
  Overseen in commit be058bec7d. Only affects develop branch

ENH: improved naming consistency in tmp, refPtr

- also use long-form to check for pointer type instead of the isTmp()
  method. Makes differences between PTR, CREF, REF easier to spot.

STYLE: typeName() for tmp, refPtr is static
2020-07-30 10:20:07 +02:00
e56e195ab5 ENH: support objectRegistry store of refPtr (as per tmp) 2020-07-30 09:45:55 +02:00
487002d2e2 STYLE: consistent file naming (rigidBodyDynamics,sixDoFRigidBodyMotion) 2020-07-30 09:45:13 +02:00
28eae0573b BUG: The option to cache the limiter field was not working
In fvSolution is possible to cache the limiter. This surface field
is stored in the database to be read later.

The internal tmp management of the field was not working properly.
2020-07-29 11:14:12 -07:00
d073724232 BUG: Limiting min alpha to SMALL to avoid zero transient term of turbulence model
In certain turbulence models such as kEpsilon, kOmegaSST, etc when used
in the multiphase context throw an error in the preconditioner. This
is due to alpha being zero. Fixes #1789.
2020-07-28 12:40:06 -07:00
d3d03de48c DOC: relocate cross-compile (mingw) information to wiki content 2020-07-28 15:48:42 +02:00
74a062d1d5 Merge remote-tracking branch 'origin/master' into develop 2020-07-28 08:42:12 +02:00
65d640e58e BUG: potential memory leaks in HashPtrTable (#1787)
- using HashPtrTable::set() with the same key twice did not guarantee
  proper cleanup of memory since it simply used the underlying
  HashTable::set() without doing anything about the old memory. Now
  check for pre-existing storage and delete it when it does not
  correspond to the newly stored pointer.

  This problem is independent of potential memory slicing previously
  flagged (#1286) and only partially resolved.
2020-07-28 08:40:43 +02:00
fa71840d8b ENH: add get() retrieval of a pointer from PtrLists, HashPtrTable
- naming similarity with autoPtr, unique_ptr and other containers.

  For UPtrList derivatives, this is equivalent to the existing
  operator(). The read-only variant is also equivalent to the
  single-parameter 'set(label)' method.

  With PtrList<T> list(...) :

      const T* ptr = list.get(10);
      if (ptr)
      {
          ptr->method();
      }

  vs.
      if (list.set(10))
      {
          list[10].method();
      }

  For HashPtrTable there is only a read-only variant which is equivalent
  to testing for existence and for value.

  With HashPtrTable<T> hash(...) :

      const T* ptr = list.get("key");
      if (ptr)
      {
          ptr->method();
      }

  vs.
      if (list.found("key"))
      {
          // Fails on null pointer!!
          list["key"].method();
      }

Use of get() is largely a matter of taste or local coding requirements
2020-07-28 08:40:43 +02:00
872c9d370b ENH: support emplace methods and std::unique_ptr for PtrList-derivatives
- emplace methods
  Eg,
      m.internalCoeffs().emplace(patchi, fc.size(), Zero);
  vs.
      m.internalCoeffs().set(patchi, new Field<Type>(fc.size(), Zero));

- handle insert/append of refPtr wherever tmp was already supported

COMP: incorrect variable names in PtrListOpsTemplates.C
2020-07-28 08:40:43 +02:00
4110699d90 ENH: HashTable::emplace_set() method, HashPtrTable support for unique_ptr
- forwarding like the emplace() method, but overwriting existing
  entries as required

- propagate similar changes to HashPtrTable

  For example, with HashPtrTable<labelList> table(...) :

  With 'insert' semantics

      table.emplace("list1", 1000);

  vs
      if (!table.found("list1"))
      {
          table.set("list1", new labelList(1000));
      }
  or
      table.insert("list1", autoPtr<labelList>::New(1000));

  Note that the last example invokes an unnecessary allocation/deletion
  if the insertion is unsuccessful.

  With 'set' semantics:

      table.emplace_set("list1", 15);

  vs
      table.set("list1", new labelList(15));
2020-07-28 08:40:43 +02:00
c77afff48f COMP: fix sloppy (and now ambiguous) use of PtrList::set()
- constructs such as the following will no longer worked, but that is
  also a good thing.

     ptrlist.set(i, scalarField(nFaces, Zero));

  this called set(.., const tmp<scalarField>&), which meant under
  the hood:

     - create local temporary const scalarField&
     - wrap as const tmp&
     - use tmp::ptr(), to clone the const-ref

  This implies an additional allocation (for the const scalarField&)
  which is immediately discarded. Doubtful that compiler optimization
  would do anything.
2020-07-28 08:35:42 +02:00
6461eec886 CONFIG: increment patch level 2020-07-27 10:28:44 +02:00
3455d556c4 BUG: potential memory leaks in HashPtrTable::set (#1787)
- backported fix from develop

COMP: incorrect variable names in PtrListOpsTemplates.C
2020-07-27 10:28:40 +02:00
540589fc22 SUBMODULE: visualization installation prefix on older ubuntu (#1757) 2020-07-27 09:58:24 +02:00
dc52e5ae67 STYLE: use range-for with labelHashSet in MULES 2020-07-27 09:47:33 +02:00
d5884c8d85 STYLE: use HashSet xor instead of two operations (faceZoneSet)
STYLE: use global operator instead of HashSet -= operator
2020-07-27 09:47:33 +02:00
6e75cf2e7d STYLE: unify HashSet list insertion (use iterator pair) 2020-07-27 09:47:33 +02:00
85e74567ff ENH: added subtraction operator for HashSet
- offers similarity with bitSet

STYLE: remove remnant parent::operator= from HashSet

STYLE: code formatting in HashTables
2020-07-27 09:47:33 +02:00
2de4501e47 ENH: add testFunctionObjects library with fakeError function object
The fakeError function object emits FatalError at different stages (or
does nothing), which is useful for testing purposes (issue #1779).

Can request errors from constructor, execute and write methods.
2020-07-24 09:04:07 +02:00
c411c0cc09 SUBMODULE: adios (style), external-solver (bugfix), visualization (style) 2020-07-23 18:12:06 +02:00
e8b06ac222 STYLE: remove incorrect branch condition in setExprFields 2020-07-23 16:52:15 +02:00
181e27a90f ENH: improve abort/exception handling in error class (#1780)
- previously setting FOAM_ABORT would preempt checks for throwing
  exceptions.

  Now check for throwing first, to allow try/catch code to do its job.
  However, ignore exception throwing for abort(). These are used
  infrequently in the code, but indicate that recovery is deemed
  impossible.

STYLE: use unique_ptr for internal stream buffer management
2020-07-22 19:11:57 +02:00
707b29bbbd STYLE: minor doc and formatting changes 2020-07-22 19:11:28 +02:00
bcda061f54 ENH: checkMesh: improved checking on writeFields. Fixes #1786. 2020-07-23 17:26:09 +01:00
d3c76d8ec8 ENH: ListOps: added findIndices with predicate 2020-07-23 17:26:09 +01:00
f1e950ce83 ENH: snappyHexMeshDict: document small region removal. See #1772 2020-07-23 17:26:09 +01:00
45982d97fa BUG: Correct evaluate function for ddt0 in CrankNicolson scheme. Fixes
The function evaluate was returning true every outer loop, triggering
the re-calculation of ddt0 in every outer loop.

The evaluation of the term ddt0 should be performed once per time step.
The corrected function updates the timeIndex of ddt0 to avoid the
re-evaluation of this term in the outer loops.
2020-07-21 16:23:13 -07:00
be058bec7d ENH: support writable reference for tmp (#1775)
- improves flexibility. Can tag a tmp as allowing non-const access to
  the reference and skip additional const_cast in following code. For
  example,

      tmp<volScalarField> tfld(nullptr);
      auto* ptr = getObjectPtr<volScalarField>("field");
      if (ptr)
      {
          tfld.ref(*ptr);
      }
      else
      {
          tfld.reset(volScalarField::New(...));
      }
      auto& fld = tfld.ref();

ENH: renamed tmpNrc to refPtr

- the name 'refPtr' (reference|pointer) should be easier to remember
  than tmpNrc (tmp, but non-ref-counted).

- provide tmpNrc typedef and header for code compatibility

NOTE

- in some places refPtr and tmp can be used instead of a
  std::reference_wrapper for handling external references.

  Unlike std::reference_wrapper, it can be default constructed
  (holding nothing), whereas reference_wrapper may need a dummy
  reference. However, the lifetime extension of references _may_ be
  better with reference_wrapper.
2020-07-21 11:02:20 +02:00
5acb5f3580 STYLE: rename/adjust local pointer naming and handling 2020-07-20 16:59:19 +02:00
dc6c3c8add TUT: Correction for Alltest 2020-07-20 10:19:54 +01:00
065db9a7b8 Merge branch 'enh-memory-cleanup' into 'develop'
autoPtr/tmp cleanup

See merge request Development/openfoam!378
2020-07-17 16:29:16 +01:00
fa86a98482 BUG: Minor correction to lumpedPointState.C for debug build 2020-07-17 14:09:34 +01:00
6d4928d585 ENH: extend nullptr check for tmp ptr() method (#1775)
- Cannot call ptr_->clone() with a null pointer!
2020-07-16 15:09:57 +02:00
fde93b6603 STYLE: compile-type deprecate empty() method for autoPtr/tmp (#1775)
- autoPtr: less clutter using plain tests with the bool operator

    (!ptr)  vs  (ptr.empty())
    (ptr)   vs  (!ptr.empty())

- tmp: was entirely unused.
2020-07-16 15:09:57 +02:00
35a0fd3e8e ENH: reset tmp via assignment from literal nullptr (#1775)
- previously this was marked as '= delete' for consistency with
  assignment from an empty pointer being a runtime error.
  However, these can be considered semantically different and it makes
  sense to permit this as equivalent to reset(nullptr).

  This change does not break existing code since the operator was
  previously unavailable (deleted).

STYLE: refactor tmp operator=(T*)

- delegate to reset() after initial checks
2020-07-16 15:09:56 +02:00
59bfbb9541 ENH: simpler, more consistent checks for tmp validity (#1775)
- Previously considered to be valid() if it was any reference
  (null or non-null) or a non-null pointer.

  This appears to be a holdover from old code (pre-2015) where
  reinterpret_cast<..>(0) was used instead of the NullObject.

  A reference via a null pointer isn't really possible anywhere. Even
  for things like labelList::null(), they now use the NullObject,
  which has a non-zero memory location.

- now simply check for a non-zero memory address. Regardless of
  pointer or referenced object.
2020-07-16 15:09:56 +02:00
d282d1a285 STYLE: minor code reduction/simplification for tmp (#1775)
- combine reset() methods by adding a default parameter

- improve top-level visibility of empty/valid/get methods for symmetry
  symmetry with autoPtr, future adjustment
2020-07-16 15:09:56 +02:00
12c91b9472 STYLE: check autoPtr as plain bool instead of valid()
- cleaner code, more similarity with unique_ptr

  Now
      if (ptr)
      if (!ptr)

  instead
      if (ptr.valid())
      if (!ptr.valid())
2020-07-16 11:39:24 +02:00
9af3f85cf9 STYLE: simplify short-circuit involving autoPtr (#1775)
- with '&&' conditions, often better to check for non-null autoPtr
  first (it is cheap)

- check as bool instead of valid() method for cleaner code, especially
  when the wrapped item itself has a valid/empty or good.
  Also when handling multiple checks.

  Now
      if (ptr && ptr->valid())
      if (ptr1 || ptr2)

  instead
      if (ptr.valid() && ptr->valid())
      if (ptr1.valid() || ptr2.valid())
2020-07-16 10:17:25 +02:00
3baebcb101 STYLE: replace uses of autoPtr::empty() with bool check (#1775)
- less clutter using plain tests with the bool operator:

      (!ptr)  vs  (ptr.empty())
      (ptr)   vs  (!ptr.empty())
2020-07-16 08:58:22 +02:00
53eda1c4f1 ENH: use boolVector for NURBS3DVolume constraints
- same as FixedList<bool,3> for I/O
2020-07-15 14:34:52 +02:00
5e954d2881 STYLE: use autoPtr instead of tmp for holding sensitivities
- since only pointers are stored, autoPtr is better fit than tmp
2020-07-15 13:41:15 +02:00
e2021550fd Merge branch 'feature-dynamicLibrary' into 'develop'
Feature dynamic library - issue #1737

See merge request Development/openfoam!375
2020-07-14 16:41:39 +01:00
5dc04530d9 COMP: additional linkage libraries for AMD compiler (#1627) 2020-07-14 12:17:09 +02:00
1e7c6ea2f1 ENH: mutable libs() access in Time and other classes (#1737)
- This reflects the pre-existing coding situation where const_cast was
  used throughout to effect the same.

STYLE: fix private/protected access

- CodedField, codedMixedFvPatchField
2020-07-14 11:19:05 +02:00
41d3e6f1d4 ENH: various dlLibraryTable improvements/refinements (#1737)
- libs() singleton method for global library handling

- explicit handling of empty filename for dlLibraryTable open/close.
  Largely worked before, but now be more explicit about its behaviour.

- add (key, dict) constructor and open() methods.
  More similarity to dimensionedType, Enum etc, and there is no
  ambiguity with the templated open().

- construct or open from initializer_list of names

- optional verbosity when opening with auxiliary table,
  avoid duplicate messages or spurious messages for these.

- basename and fullname methods (migrated from dynamicCode).

- centralise low-level load/unload hooks

- adjust close to also dlclose() aliased library names.
2020-07-14 11:19:05 +02:00
950e667259 ENH: snappyHexMesh: optionally remove 'small' regions. Fixes #1772.
This is for a very specific use case where the faceZones are
imprinted after meshing the normal geometry. This sometimes
splits off badly connected bits of the mesh. One way to remove
these is to use e.g. subsetMesh. This embeds the
same functionality inside snappyHexMesh.
2020-07-13 15:29:12 +01:00
a86860430a BUG: checkMesh: index into surfaceScalarField. Fixes #1771. 2020-07-13 13:02:07 +01:00
331e86cf17 BUG: checkMesh: index into surfaceScalarField. Fixes #1771. 2020-07-13 13:00:13 +01:00
8594fb43c8 ENH: snappyHexMesh: Cleanup of parallel cyclics. See #1731. 2020-07-13 09:45:00 +01:00
6365bab800 ENH: update lemon version and linkage directive (#1768)
- replace `%namespace` directive with simpler `%static` directive.

  We always encapsulate Lemon parser routines in an anonymous
  namespace, so a simpler static linkage directive suffices.

  This reduces the size of the Lemon patch (program and template).
2020-07-10 12:01:58 +02:00
a088bda4d2 ENH: use unique_ptr for memory management of profiling
- makes it easier to distinguish between pointers referring to pool
  data versus pointers actually holding storage, avoids
  manual demand-driven deletion and autoPtr.

ENH: simplify/improve Pstream profiling

- times now double (not scalar) for consistency with what cpuTime
  delivers

- use bool to track suspend state
2020-07-09 16:17:33 +02:00
b64ada3dde BUG: argList: use fileHandler to read decomposeParDict. Fixes #1765 2020-07-09 15:11:39 +01:00
c06c63f49f ENH: snappyHexMesh: handle parallel cyclics. Fixes #1731. 2020-07-08 16:48:14 +01:00
423bbcefa8 Update Build.md 2020-07-03 09:48:50 +01:00
9b78472e06 DOC: Updated header doc - see #1756 2020-07-02 09:17:48 +01:00
6d965d699b BUG: mergeOrSplitBaffles -dict option ignored (fixes #1759)
- regression from f721b5344f
2020-07-01 18:41:31 +02:00
0b41521d98 CONFIG: avoid triggering dash expansion bug (fixes #1757)
- use long form to avoid dash 0.5.8 error (ubuntu bionic)

- consolidate the prefix handling into modules/Allwmake
2020-07-01 16:20:13 +02:00
968ce0290d DOC: Corrected header documentation - see #1756 2020-07-01 14:59:11 +01:00
ae76b38270 BUG: TableBase: illegal reference. Fixes #1753 2020-07-01 14:53:26 +01:00
0dc07fb00f CONFIG: reset version 2020-06-30 12:45:36 +01:00
b45f8f6f58 MOD: updated OpenQBMM reference 2020-06-29 18:16:22 +01:00
294cfc4a77 REL: Updated completions cache 2020-06-29 17:27:54 +01:00
780c156103 REL: Updated config to v2006 2020-06-29 17:27:54 +01:00
538d749220 REL: Updated headers to version v2006 2020-06-29 17:27:54 +01:00
b244cd1b21 Merge remote-tracking branch 'origin/master' into develop 2020-06-29 11:08:27 +01:00
d1dae159ad BUG: Corrected use of ddtCorr off 2020-06-29 11:07:09 +01:00
b325cb86c0 TUT: added mixerVesselAMI2DRefined to show example of AMI with topology change 2020-06-29 11:07:09 +01:00
2ba6243862 CONFIG: refine handling of git information for debian builds
- When OpenFOAM is under git control and a 'debian/' directory exists,
  this could mean two things:

  1) Additional debian control has been added to OpenFOAM
  2) OpenFOAM has been imported into a debian project

For the case that OpenFOAM has been imported into a debian project,
using the git information would be highly misleading. There will be no
OpenFOAM SHA1 correspondence.

However, if additional debian control has been added to OpenFOAM the
SHA1 will be valid.

The ad hoc solution is to use an additional "openfoam.debian"
directory to flag the addition of debian controls into openfoam.

When a "debian/" directory exists without a "openfoam.debian", assume
that the OpenFOAM has been imported into debian and do not use the SHA1.
2020-06-29 10:33:30 +02:00
5754beeab4 COMP: remove old, unused/unusable lnInclude path (fixes #1752) 2020-06-29 09:32:14 +02:00
d93dd11ae4 ENH: add heatTransferCoeff caseDicts template (#1751) 2020-06-26 14:48:05 +02:00
df7044845e GIT: remove whitespace, backslash escape angle brackets in comments
- fix older '> >' template parameters as '>>'
2020-06-26 12:28:49 +02:00
51dd8f1c63 CONFIG: increment patch level 2020-06-26 10:35:55 +02:00
6534245359 BUG: incorrect lookup name in ReynoldsAnalogy (fixes #1751)
- used fluidThermo::typeName instead of fluidThermo::dictName
  within the Cp() method.
2020-06-26 10:32:13 +02:00
b6bf3502a3 BUG: Adding phasePropertyName to basicThermo constructor (fixes #1745) 2020-06-26 10:32:13 +02:00
c49d923392 BUG: Correcting htc definition to avoid negative values 2020-06-26 10:32:13 +02:00
4248fdcd96 BUG: windows IOobject::path() incorrect from absolute (fixes #1738)
- only checked if it started with '/' and not 'd:/' (for example).
2020-06-26 10:32:13 +02:00
1bd5d03ea6 TUT: Adjusting settings for tutorials climbingRod and mixerVessel2D 2020-06-25 11:07:53 -07:00
f0c5f762d6 BUG: Adding phasePropertyName to basicThermo constructor (fixes #1745) 2020-06-25 08:35:21 -07:00
6cf560338e BOT: Added contributors file 2020-06-25 14:57:07 +01:00
f51cac3ad1 ENH: SemiImplicitSource: allow Function1 for Su,Sp. Fixes #1750. 2020-06-25 14:54:46 +01:00
7b7142536d DOC: additional documentation in MappedFile 2020-06-25 11:54:38 +02:00
0a7eb6e6dc BUG: bad names if ensight mask contains NO placeholder (fixes #1747)
- affects ensightSurfaceReader only.

  If there are no `*` characters, protect against replacement.
  Otherwise it would attempt to replace a zero-length string with
  a single `0`, which results in prepending the name.

STYLE: ensightSurfaceReader constructor explicit
2020-06-25 11:54:38 +02:00
013a52238d COMP: some resolved compiler warnings 2020-06-25 10:02:50 +01:00
b98e060967 Merge branch 'feature-ami' into 'develop'
AMI code enhancements

See merge request Development/openfoam!367
2020-06-24 22:12:38 +01:00
6e716c66d5 ENH: pimpleFoam - ddtCorr now optional 2020-06-24 22:10:20 +01:00
88dd3a1818 ENH: pimpleControl - added ddtCorr flag 2020-06-24 22:10:20 +01:00
11ed7a0efe ENH: cyclicAMIFvPatch - added hooks to correct delta coeffs and vecs 2020-06-24 22:10:20 +01:00
438f38bb61 ENH: surfaceInterpolation: extended patch override of geometry calculation. 2020-06-24 22:10:20 +01:00
7c1c9fee0c ENH: Updated AMI dependent code 2020-06-24 22:10:20 +01:00
66d270b924 DOC: cyclicAMI - added reference paper to header; function documentation 2020-06-24 22:10:19 +01:00
1e3cd399f2 WIP: dynamicMotionSolverFvMeshAMI - reset Uf 2020-06-24 22:10:19 +01:00
c6e18e7593 ENH: AMI code refactoring 2020-06-24 22:10:19 +01:00
2a955ad949 AMI: deprecated directAMI - use nearestFaceAMI instead 2020-06-24 22:10:19 +01:00
3cd4bc9c09 ENH: mapNearestAMI - re-written to use tree search instead of advancing front 2020-06-24 22:10:18 +01:00
c357d7a760 ENH: AMI: refactored parallel handling to be local to the AMI method 2020-06-24 22:10:18 +01:00
a13e00b5c4 ENH: AMI - multiple updates
- start of work to create a 1-to-1 face mapping across AMI patches
- faces are inserted according to the AMI addressing based on Horacio's method
- removed 'updated' flag and reworked some demand driven updates
- updated to handle 'walking' through baffles
- use bitSet instead of boolList
- moved update of meshPhi to movePoints() functions at fvPatch level
- moved scaling of areas to movePoints() functions at fvPatch level
- rehomed topology change code to own file
- added warning re: geometry construction

ACMI
- split srcMask into srcMask and srcAreaMask
  - former in range 0-1, and latter has bounding or tol to (1-tol) to avoid
    sigFpe's
2020-06-24 22:10:18 +01:00
b61dd6fd51 DOC: update note about Thermo problems with Clang - fixed in clang-10 2020-06-24 18:10:37 +02:00
01f8ea9dd5 CONFIG: update Fujitsu rules (#1671)
- openmp using the libfjomp

- fastmath as per the ArmClang compiler
2020-06-24 18:04:01 +02:00
78fe186727 SUBMODULE: release candidates for external-solver 2020-06-24 16:10:51 +02:00
37895095d7 ENH: also support --prefix for AllwmakeParseArguments
- corresponds to general conventions/expectations
2020-06-24 16:10:41 +02:00
c3f2a01fc9 STYLE: use range-for when iterating labelHashSet 2020-06-24 11:06:54 +02:00
f6deaeef33 STYLE: formatting, remove unused file(s) 2020-06-24 10:51:03 +02:00
ca540320df BUG: Correcting htc definition to avoid negative values 2020-06-23 08:19:54 -07:00
cbcc87549e CONFIG: support openfoam -init=FILE
- useful for supporting a variety of different predefined
  configuration files. Bypasses the regular etc/bashrc entirely.

- minor refactoring in foamCreateModuleInclude
2020-06-23 15:35:52 +02:00
31bbca3c38 DOC: misc updates to doc files 2020-06-23 10:18:32 +02:00
c32f59e268 COMP: fix dlLibraryTable InfoProxy output (older gcc) 2020-06-23 09:09:06 +02:00
65d2394bb9 BUG: windows IOobject::path() incorrect from absolute (fixes #1738)
- only checked if it started with '/' and not 'd:/' (for example).
2020-06-22 14:27:12 +02:00
15d6febeff COMP: chtMultiRegion: avoid excess unused references. See #1726. 2020-06-22 11:55:08 +01:00
676a904c99 BUG: flipped cellZones compat setting for foamToEnsight (#1579)
STYLE: reword text for -excludePatches
2020-06-22 11:19:34 +02:00
8526e44884 ENH: dlLibraryTable InfoProxy output (#1735) 2020-06-22 10:22:45 +02:00
5b6969fce3 TUT: fluxSummary surfaces as list (inadvertently changed in 5982a1aa) 2020-06-22 08:44:46 +02:00
80a4d53885 SUBMODULE: release candidates for avalanche, external-solver 2020-06-19 13:22:28 +02:00
7065593b3f BUG: regression in fluxSummary cellZoneAndDirection (fixes #1736)
- related to change c3571b7357 (does not affect 1912 or older).

  Remnant check for data() should have used valid() method instead.

TUT: add fluxSummary cellZoneAndDirection to angledDuct/implicit
2020-06-19 12:52:00 +02:00
2dcbc09b3e ENH: add foamHasLibrary to test for availability of libraries (#1735)
- For some cases it can be helpful to test if additional libraries can
  be properly resolved.

  This can be useful in scripts to test for additional capability:

      if foamHasLibrary geometricVoF
      then ...
      fi

  But also directly from the command-line to help resolve configuration
  issues:

      foamHasLibrary -verbose petscFoam

  Could not load "petscFoam"
  libpetsc.so.3.13: cannot open shared object file: No such file or directory
2020-06-19 12:52:00 +02:00
420be3f9ab CONFIG: improve handling of in-source PETSC installations
- when installed in-source, use PETSC_ARCH to find additional include
  directory and the correct library directory

CONFIG: bump to new hypre version

- add -hint option for have_adios2, have_hypre, have_petsc
2020-06-19 12:44:14 +02:00
6194548871 ENH: split off modules/list-modules script
STYLE: string quoting when echoing paths in wmake have_* scripts

STYLE: more consistency in foamRunTutorials, foamCleanTutorials options
2020-06-19 12:43:33 +02:00
a4864eb1a8 TUT: relocate flange.ans -> tutorials/resources/geometry
- makes it easier to copy/duplicate the case
2020-06-19 10:09:09 +02:00
86cd5400ce Merge branch 'bug-GL1732' into 'develop'
BUG: provide setup backward-compat for actuationDiskSourceCoeffs

See merge request Development/openfoam!372
2020-06-18 21:59:49 +01:00
0445b00e02 BUG: provide setup backward-compat for actuationDiskSourceCoeffs (#1732) 2020-06-18 21:59:25 +01:00
c7584e1a92 Merge branch 'gitlab-issues.kbc' into 'develop'
ENH: prevent natural-logarithm domain errors in nut wall functions

See merge request Development/openfoam!371
2020-06-18 21:57:06 +01:00
7668f381c8 ENH: prevent natural-logarithm domain errors in nut wall functions (#1730) 2020-06-18 21:56:59 +01:00
d576ab6e6f Merge branch 'feature-curle-fo' into 'develop'
ENH: Updated Curle function object

See merge request Development/openfoam!373
2020-06-18 21:56:16 +01:00
7d4cdc4f8c TUT: Updated vortexShed case wrt latest Curle FO updates 2020-06-18 21:55:44 +01:00
1251b82175 ENH: ensightSurfaceReader updates re: replacing file name masks 2020-06-18 21:55:44 +01:00
ceed53775d ENH: Updated Curle function object
The function object now computes the acoustic pressure at a list of user
specified locations, or from the face centres of a user-supplied surface.
When operating on an input surface, the output can be written back to the
surface or as a list of point values.

Example of function object specification:

    Curle1
    {
        type            Curle;
        libs            ("libfieldFunctionObjects.so");
        ...
        patches         (surface1 surface2);
        c0              330;

        // Input - either points or surface

        input           points;
        observerPositions ((0 0 0)(1 0 0));

        //input           surface;
        //surface         "inputSurface.obj"

        // Output - either points or surface
        output          points;

        //output          surface;
        //surfaceType     ensight;
    }

    Where the entries comprise:
        Property     | Description                  | Required | Default value
        type         | Type name: Curle             | yes      |
        p            | Pressure field name          | no       | p
        patches      | Sound generation patch names | yes      |
        c0           | Reference speed of sound     | yes      |
        input        | Input type                   | yes      |
        observerPositions | List of observer positions (x y z) | no      |
        surface      | Input surface file name      | no       |
        output       | Output type                  | yes      |
        surfaceType  | Output surface type          | no       |
2020-06-18 21:55:44 +01:00
9e311151e3 CONFIG: bump API to 2006 (pre-release) 2020-06-17 16:39:40 +02:00
e8e36db320 Merge branch 'feature-fsi-lbf' into 'develop'
lumped point motion using local linear basic functions (#1341)

See merge request Development/openfoam!271
2020-06-17 15:15:50 +01:00
7db868b509 TUT: bridge using external lumped point motion (#1341)
- see its accompanying README for additional setup instructions
2020-06-17 15:16:27 +02:00
b0136d835e ENH: lumped point motion using local linear basic functions (#1341)
- the earlier implementation of externally controlled lumped point
  motion (see merge request !120 and OpenFOAM-v1706 release notes) was
  conceived for the motion of simple structures such as buildings or
  simple beams. The motion controller was simply defined in terms of
  an orientation axis and divisions along that axis.

  To include complex structures, multiple motion controllers are
  defined in terms of support points and connectivity.

  The points can have additional node Ids associated with them, which
  makes it easier to map to/from FEA models.

  OLD system/lumpedPointMovement specification
  --------------------------------------------

      //- Reference axis for the locations
      axis            (0 0 1);

      //- Locations of the lumped points
      locations       (0 0.05 .. 0.5);

  NEW system/lumpedPointMovement specification
  --------------------------------------------

      // Locations of the lumped points
      points
      (
          (0  0  0.00)
          (0  0  0.05)
          ...
          (0  0  0.50)
      );

      //- Connectivity for motion controllers
      controllers
      {
          vertical
          {
              pointLabels (0 1 2 3 4 5 6 7 8 9 10);
          }
      }

  And the controller(s) must be associated with the given
  pointDisplacement patch. Eg,

     somePatch
     {
         type            lumpedPointDisplacement;
         value           uniform (0 0 0);
         controllers     ( vertical );   // <-- NEW
     }

TUT: adjust building motion tutorial

- use new controllor definitions
- replace building response file with executable
- add updateControl in dynamicMeshDict for slowly moving structure
2020-06-17 15:16:27 +02:00
17ea2c544d TUT: include geometricVoF library for interface sampling 2020-06-17 10:55:24 +02:00
01ec92fd35 GIT: remove leading/trailing blank lines, trailing whitespace 2020-06-17 10:46:26 +02:00
5982a1aab4 STYLE: update tutorials
- use simpler decomposeParDict in tutorials, several had old
  'boilerplate' decomposeParDict

- use simpler libs () format

- update surface sampling to use dictionary format
2020-06-17 10:11:33 +02:00
5225697542 GIT: add missing function object examples for MachNo, log, pow 2020-06-17 08:54:05 +01:00
bcb6e834f8 SUBMODULE: release candidates for avalanche, external-solver 2020-06-17 00:15:22 +02:00
b1182ee8c2 DOC: update modules/README.md and Cross-Compile-mingw information
COMP: provide modules/Allwmake script

- unified entry point with -prefix=... handling (#1721)
2020-06-17 00:01:22 +02:00
c1c995d3fe COMP: fix some linkage issues for mingw
COMP: automatically add FlexLexer.h to MSwindows OSspecific

- useful, frequently forgotten step for cross-compiling
2020-06-16 23:56:41 +02:00
ddfe9ae2a3 COMP: adjustments for SPDP, int64 2020-06-16 21:30:12 +02:00
5adb11f3d3 Merge branch 'release-corrections.kbc' into 'develop'
DOC-STYLE: various release changes

See merge request Development/openfoam!370
2020-06-16 13:50:22 +01:00
4d295c84a0 DOC-STYLE: various release changes 2020-06-16 10:51:44 +01:00
39c2f16eca DOC: add note about openmpi versions, update Requirements 2020-06-15 17:32:49 +02:00
458cec60b1 ENH: support time-varying Tref for externalCoupledTemperature (#1729) 2020-06-15 15:41:05 +02:00
c21c5e070a COMP: relocate compressibleInterIsoFoam (#1726)
- place under compressibleInterFoam to ensure that the library
  dependency on VoFphaseCompressibleTurbulenceModels is satisfied
2020-06-15 14:16:52 +02:00
8b191109b3 COMP: default copy construct for MatrixBlock 2020-06-15 12:39:41 +02:00
e83145ce2b SUBMODULE: (final) release candidate for OpenQBMM 2020-06-15 12:04:33 +02:00
a32ee1b406 COMP: adjust build order for sampling
- build prior to transportModels, which includes geometricVoF and its
  own form of surface sampling (interface sampling)
2020-06-15 11:56:19 +02:00
7dab7f91d8 STYLE: update comments for DynamicList 2020-06-15 11:42:48 +02:00
9b9a070b82 Merge branch 'feature-adjoint-updates' into 'develop'
Updates for the adjoint optimisation library

See merge request Development/openfoam!368
2020-06-12 15:04:48 +01:00
d6104bd497 INT: Minor integration updates 2020-06-12 15:01:09 +01:00
c344520474 TUT: updated/cleaned the optimisation tutorials
- Removed some unnecessary dynamicMeshDicts.
- Removed the writeActiveDesignVariables execution from the Allrun
  scripts, since it is no longer necessary to execute it before
  adjointOptimisationFoam.
- Updated the entries in dynamicMeshDict according to efbc9fc99.
2020-06-12 13:27:55 +01:00
1404b5ffe0 ENH: Homogenised the dynamicMeshDict entries for NURBS3DVolume
(old keywords are still valid, throwing a compatibility warning)

- using (U,V,W) instead of (X1,X2,X3)
- using confine instead of bound
2020-06-12 13:27:55 +01:00
6ee7bc66c5 ENH: added a general framework for normalization and setting targets
for all objective functions.

- The normalization is useful for practically all update methods dealing
with constraints (e.g. SQP, MMA). The normalization factor can be either
given explicitly or, if not given, will be the value of the objective
function in the first optimisation cycle.
- The target value is useful when using the objective as a constraint in
constrained optimisation problems (e.g. drag - dragTarget). It should
only be used with update methods that understand the value of the
constraint (e.g. SQP, MMA) but not when the objective in hand is the
only objective of the optimisation problem. In such a case, a squared
objective should be used (e.g. sqr(drag - dragTarget))
2020-06-12 13:27:55 +01:00
4d67819a2c ENH: changes related to when the objective value is written
- Objective now inherits from localIOdictionary and writes the mean
objective value under the uniform folder, each time mesh.write() is
called. This is crucial for getting the correct old merit function value
if the simulation is continued from a previous state and lineSearch is
used.
- Objectives are now computed and written even if the corresponding
adjoint solver is inactive. This, among others, is also essential for
getting the correct old merit function value in case of continuation.
- Writing of the objective function (and its mean, if present) history
has now moved to updatePrimalBasedQuantities, instead of the preLoop
part of the adjoint solvers. This was decided to get the objective
values to files, even if the adjoint solver is inactive. Arguably, an
even better place to write the objective functions would be the postLoop
part of the primal solvers, however this might cause multiple writes of
the objective value for the inner iterations of lineSearch, if one is
used.
2020-06-12 13:27:55 +01:00
01dfdc4794 ENH: objective: added function to output a blank line
to be used in separating instantaneous objective values of different
optimisation cycles.
2020-06-12 13:27:55 +01:00
dcc039ce80 ENH: Added the nutSqr surrogate noise objective
which qualitatively quantifies noise through a volume integral of the squared
turbulent viscosity.
2020-06-12 13:27:55 +01:00
ad76df43c3 ENH: refactoring and cleaning of optimisationType
Moved part common to all derived classes (e.g. update) to the base
class to avoid code duplication. Practically, only the protected
updateDesignVariables has to be overwritten in each derived class now.
steadyOptimisation was also affected in a minor way.
2020-06-12 13:27:54 +01:00
1eaa54ed2c ENH: Added optional suffix to the file names
holding the sensitivity maps
2020-06-12 13:27:54 +01:00
2048959bb4 ENH: volBSplinesBase: added function returning box ID
given a global control point ID
2020-06-12 13:27:54 +01:00
7192cc924c ENH: added function just returning the sensitivities
without recomputing them. Use with caution!
2020-06-12 13:27:54 +01:00
36b0c5ce15 ENH: changes in SIBase and derived classes
- Added function returning the underlaying surface sensitivities
- Added boolean to control whether to write the underlaying sensitivity
  map (defaults to false)
2020-06-12 13:27:54 +01:00
d5c8dd52bb ENH: introduced an incompressible::shapeSensitivities class
Encapsulates all terms that are common in both E(SI) and FI
formulations, like direct sensitivities and sensitivities due to
primal boundary conditions. Added the latter to all derived sensitivity
types, except for sensitivity maps.
2020-06-12 13:27:53 +01:00
0d9421c6a8 ENH: added the adjointRotatingWallVelocity boundary condition
Same as adjointWallVelocity but also returns the contribution
of the differentiation of the rotatingWallVelocity BC wrt the
face centres, to be added to the sensitivity derivatives.
2020-06-12 13:27:53 +01:00
d3938a79f4 ENH: made adjointBoundaryCondition templated
Main reason was the insertion of a templated virtual function
returning the contribution of the differentiation of the primal
boundary condition, in the case the latter directly depends on a
a geometric quantity (e.g. rotatingWallVelocity).
2020-06-12 13:27:52 +01:00
f21d0ea31e ENH: New cloud function object to remove parcels at face zones
Example usage:

    removeParcels1
    {
        type            removeParcels;
        log             yes;
        resetOnWrite    no;
        resetOnStart    no;
        faceZones       (cycLeft cycRight);
    }

Number and mass of particles removed are written to file
2020-06-12 10:40:52 +01:00
01221babfc TUT: Corrected link in README - fixes #1698 2020-06-12 10:03:12 +01:00
98a9cde998 ENH: fieldAverage - protect against numerical error when determining the next periodic restart 2020-06-12 09:55:52 +01:00
ffa7bfb4f5 TUT: Setting up tutorials for change on planeImplicit function 2020-06-11 12:54:57 -07:00
c712abad09 COMP: Taking out sampledInterface FO from sampling lib and adding it
to geometricVoF

sampledInterface was linked to interfaceProperties thorugh geometricVoF,
and interfaceProperties created a conflict on surfaceTension table
when linked in the reactingEuler solvers by the sampling lib
2020-06-11 12:54:56 -07:00
ffe07039e0 ENH: boundaryData: prefer output with header. See #1640. 2020-06-11 16:01:42 +01:00
1666180271 STYLE: directionalMeshWave: input renaming. 2020-06-11 15:39:25 +01:00
14e561d212 Merge branch 'feature-weber-number' into 'develop'
New Weber number cloud function object

See merge request Development/openfoam!369
2020-06-11 15:00:36 +01:00
ee94720594 ENH: Cloud function objects - added Weber number calcuation and output
Example usage:

    cloudFunctions
    {
        WeberNumber1
        {
            type    WeberNumber;
        }
    }

This will calculate and write the Weber number field as a 'standard'
cloud field, available for post-processing alongside other lagrangian
fields in the lagrangian/<cloudName> directory.
2020-06-11 14:56:46 +01:00
13fa1b0517 ENH: Cloud function objects - pass trackingData into pre|post evolve functions
Might also consider passing through the remaining hooks, e.g. for postMove,
postPatch, postFace etc
2020-06-11 14:56:46 +01:00
5c3059d218 Merge branch 'misc.0620.kbc' into 'develop'
ENH: Miscellaneous enhancement/features and bug fixes

See merge request Development/openfoam!364
2020-06-11 13:30:35 +01:00
60809c3f50 ENH: simplify turbulentDigitalFilterInlet BC 2020-06-11 13:30:30 +01:00
4a798b9ea5 ENH: add new 'pow' FO 2020-06-11 13:30:30 +01:00
2803f765f5 BUG: decomposePar -decomposeParDict option (fixes #1649)
DOC: reorder the options of decomposePar in the header file
2020-06-11 13:30:30 +01:00
8a188a1fd6 ENH-DOC: fix inconsistent Cmu lookup (fixes #647) 2020-06-11 13:30:30 +01:00
d0d3670d01 ENH: add missing/improve annotated dictionaries
New:
  - blockMeshDict
  - sampleDict
  - boxTurbDict
  - createBoxTurbDict
  - dsmcInitialiseDict
  - mdEquilibrationDict
  - mdInitialiseDict
  - obstaclesDict
  - optimisationDict
  - potentialDict
  - probesDict
  - sampleDict
  - setExprBoundaryFieldsDict
  - setExprFieldsDict

  Improved:
  - extrudeMeshDict
  - topoSetSourcesDict
2020-06-11 13:30:29 +01:00
5cbdb7a3d7 INT: various integrations from openfoam.org
ENH: add log FO
  ENH: improve log with scale, and offset entries
  BUG: ensure extrueMesh does not fail in parallel with wedge extrusion
  BUG: add missing clone and mapping funcs to copiedFixedValue, fixedMultiPhaseHeatFlux
  ENH: meshToMesh0::cellAddressing slight speed up for some geometries
  BUG:0003495: Divide-by-zero in SHF particle break-up model
  BUG:0003492: The formula in the OF is inconsistent with the Rosin-Rammler distribution theory formula
2020-06-11 13:30:29 +01:00
5bf440956a ENH: timeVaryingMapped: abstract IFstream/regIOobject handling. See #1640.
This change abstracts out the reading of "boundaryData". It should
now support OpenFOAM headers and with that also binary input.
2020-06-11 12:00:51 +01:00
30ea38a77e ENH: shanppyHexMesh: disable gap detection on same surface. See #1463. 2020-06-10 15:36:33 +01:00
34ee7b0b95 STYLE: use .template instead of .temp for tutorial template files
- avoids possible confusion with temporary files
2020-06-10 15:29:08 +02:00
0712beb21a ENH: relocate some PDRsetFields internals into library 2020-06-10 15:29:08 +02:00
8cf346a9c5 ENH: PDRsetFields adjustments
- missing minThreshold in activePressureForceBaffleVelocity

- update names of cyclics

- increase tolerance for zero-thickness baffles

- velocity field "U" instead of "UBet"

- viscosity field "nut" instead of "mut"
2020-06-10 15:29:07 +02:00
b6a953cfc9 STYLE: writeEntry instead of writeKeyword / END_STATEMENT pair 2020-06-10 15:29:07 +02:00
5a6f54f24b COMP: use files() method name in interfaceHeight function object
- avoid warnings about masked method names
2020-06-10 15:29:07 +02:00
b89e1f025c ENH: portable scoping char for fieldCoordinateSystemTransform (fixes #1675)
- replace ':' scoping with IOobject::scopedName(), which automatically
  uses '_' for Windows compilations where the ':' is a meta-character
  (drive separator)

- apply similar local change for the momentum function object.

*** This topic will be revisited in the future ***
2020-06-10 15:29:07 +02:00
b87dd8147a ENH: add moveMesh -deltaT option
- overrides normal deltaT for testing accelerated motion.

  Can be useful to test mesh motions with constant/dynamicMeshDict
  entries (updateControl, updateInterval) where the mesh motion is
  much slower than any of the fluid physics.

  see commit 87bba9ae14
2020-06-10 15:29:07 +02:00
076bcc25c9 ENH: relocate externalFileCoupler from finiteVolume to meshTools 2020-06-10 15:29:07 +02:00
e2ad9f08a8 COMP: Resolved compiler warning messages 2020-06-10 14:27:01 +01:00
6a8dab0011 STYLE: tutorials: load in additional models. See #1726. 2020-06-10 12:56:55 +01:00
003ec000e0 COMP: max: add explicit type. See #1726. 2020-06-10 12:21:00 +01:00
aa956f4b05 ENH: Pstream: Feed through outstanding requests more. See #1626.
This e.g. was giving a problem with using volPointInterpolation (in
functionObjects) with non-blocking global reductions.
2020-06-10 12:10:02 +01:00
ff568aa67f Merge branch 'feature-wall-functions' into 'develop'
ENH: New wall-function blending approaches

See merge request Development/openfoam!350
2020-06-10 10:24:25 +01:00
07a5babdde ENH: add wall-function blending treatments
Please see the Extended Code Guide and header files for the details.

    ENH: add wall-function blending treatments to epsilonWallFunc
         adds `stepwise`, `max`, `binomial`, and `exponential` wall-function
         blending treatments:
    COMP: check backward compatibility for:
          `serial`
          `parallel`
          `serial restart`
          `parallel restart`
          computations in comparison to the following tutorials from v1906:
          `circuitBoardCooling  condensatingVessel  evaporationMultiComponent
           hotRoom  movingBox  multiRegionHeaterRadiation  reverseBurner
           solidQuenching2D`
    STYLE: simplify `forAll`s

    ENH: add new wall blending approaches into omegaWallFunction
         adds stepwise, max, binomial, and exponential wall function blending apprs.
         ensures/forces the backward compatibility:
           - blended = true    (blending:BINOMIAL2) (default)
           - blended = false   (blending:STEPWISE)
        simplifies forAlls
        deprecates objects:
           - "blended" - use "blending::" options
           - "includeG" - as was hardcoded

    ENH: add wall-func blending treatments into nutWallFuncs
    - nutWallFunction
    - nutUWallFunction
    - nutkWallFunction
    COMP: check backward compatibility for:
          - serial
          - parallel
          - serial restart
          - parallel restart
          computations in comparison to the following tutorials from v1906:
          - heatTransfer/buoyantSimpleFoam/buoyantCavity
          - compressible/rhoSimpleFoam/gasMixing/injectorPipe

    DOC: modify header docs in wallFuncs
    - nutUTabulatedWallFunction
    - nutUSpaldingWallFunction
    - nutURoughWallFunction
    - nutUBlendedWallFunction
      - REVERT: change write order
    - nutLowReWallFunction
    - kLowReWallFunction:
      - ENH: protect against zero-division error through 'Ceps2' entry
      - STYLE: remove few redundant empty lines
2020-06-10 10:09:31 +01:00
324e85a9c9 Merge branch 'feature-atmospheric-boundary-layer-model-suite' into 'develop'
ENH: New atmospheric boundary layer (ABL) model suite (Part 1)

See merge request Development/openfoam!363
2020-06-09 11:09:10 +01:00
41e264f27d ENH: New atmospheric boundary layer (ABL) model suite (Part 1)
Please refer to the header file documentation for complete set of details.

  ENH: add new fvOptions for ABL modelling

    - atmAmbientTurbSource
    - atmBuoyancyTurbSource
    - atmCoriolisUSource
    - atmLengthScaleTurbSource
    - atmPlantCanopyTurbSource
    - atmPlantCanopyUSource
    - atmPlantCanopyTSource
    - atmNutSource

  ENH: add new boundary conditions for ABL modelling
       with PatchFunction1 and TimeFunction1 support

    - atmAlphatkWallFunction
    - atmEpsilonWallFunction
    - atmNutkWallFunction
    - atmNutUWallFunction
    - atmNutWallFunction
    - atmOmegaWallFunction
    - atmTurbulentHeatFluxTemperature

  STYLE: change names of nutkAtmRoughWallFunction -> atmNutkWallFunction by
         ensuring the bitwise backward compatibility

  ENH: add new variable-scaling force computation method to actuationDiskSource

  ENH: review actuationDiskSource and radialActuationDiskSource

  ENH: add new function object, ObukhovLength

  ENH: add new ABL tutorials/verifications

    - verificationAndValidation/atmosphericModels/atmFlatTerrain
      - verification with the Leipzig field experiment
      - illustration of precursor/successor field mapping
    - verificationAndValidation/atmosphericModels/atmForestStability
      - verification with the Sweden field experiment
    - update incompressible/simpleFoam/turbineSiting
2020-06-09 11:08:14 +01:00
70cd6c6176 Merge branch 'integration-vof-library' into 'develop'
CONT: Addition of compressibleIsoInterFoam and PLIC

See merge request Development/openfoam!349
2020-06-09 08:15:54 +01:00
3c131d8504 TUT: new/updated for compressibleInterIsoFoam 2020-06-09 08:11:04 +01:00
44a84d4778 CONT: Addition of compressibleIsoInterFOam and PLIC
1) Implementation of the compressibleIsoInterFOam solver
   2) Implementation of a new PLIC interpolation scheme.
   3) New tutorials associated with the solvers

This implementation was carried out by Henning Scheufler (DLR) and Johan
Roenby (DHI), following :

\verbatim

Henning Scheufler, Johan Roenby,
Accurate and efficient surface reconstruction from volume fraction data
on general meshes, Journal of Computational Physics, 2019, doi
10.1016/j.jcp.2019.01.009

\endverbatim

The integration of the code was carried out by Andy Heather and Sergio
Ferraris from OpenCFD Ltd.
2020-06-09 08:11:04 +01:00
237f2e1076 STYLE: accept label for version in dictionary header
- refinement of commit 33f9ae5080.

  After foamDictionary -expand, the '2.0' becomes '2', so accept that
  as a reasonable token.
2020-06-09 00:55:58 +02:00
51db3c85a7 ENH: add canCompile test to RunFunctions
- allow conditional skipping of tutorials (for example) if wmake or
  the expected compiler is not available
2020-06-09 00:55:58 +02:00
b2467ff442 STYLE: minor code style changes 2020-06-09 00:55:01 +02:00
f5874937eb ENH: copy assignment, bool comparison for polynomialFunction 2020-06-08 21:33:31 +02:00
087e963af5 STY: Changing AUTO_WRITE flags in mass exchange models 2020-06-08 12:22:24 -07:00
1397b59dc2 TUT: Adding CodeField example in tutorial 2020-06-08 12:22:24 -07:00
9d1f39165b GIT: remove merge/rebase artifacts 2020-06-08 16:39:17 +01:00
2c751d2ad3 Merge branch 'doc.topoSet' into 'develop'
DOC: Elaborate the usage of topoSet

See merge request Development/openfoam!361
2020-06-08 15:52:11 +01:00
3bf15d1b33 DOC: elaborate the usage of topoSet
TUT: add topoSet examples to pisoFoam/RAS/cavity tutorial
  BUG: fixes #1673
2020-06-08 15:46:18 +01:00
2c827fdf99 Merge branch 'doc-FOs-part-1' into 'develop'
DOC: Elaborate the usage of function objects

See merge request Development/openfoam!348
2020-06-08 15:44:33 +01:00
a5c6516e23 DOC: elaborate the usage of function objects
ENH: update libs of etc/caseDicts/postProcess items
  ENH: ensure destructor=default
  ENH: ensure constness
  ENH: ensure no 'copy construct' and 'no copy assignment' exist
  TUT: add examples of function objects with full set
       of settings into a TUT if unavailable
  TUT: update pisoFoam/RAS/cavity tutorial in terms of usage
2020-06-08 15:43:47 +01:00
b549116588 Merge branch 'code-review.saf' into 'develop'
Adding PIMPLE option finalOnLastPimpleIterOnly

See merge request Development/openfoam!365
2020-06-08 15:42:53 +01:00
775fe1d596 ENH: Adding finalOnLastPimpleIterOnly to allow Final solver in PIMPLE
The PIMPLE option finalOnLastPimpleIterOnly allows the call the Final
solver only in the last PIMPLE loop. The default is false which is
the present behavior.
2020-06-08 15:42:52 +01:00
95c675428d SUBMODULE: update modules prefix handling (see #1721) 2020-06-08 15:57:04 +02:00
15e2384d51 SUBMODULE: added external-solver PETSc submodule 2020-06-08 15:57:03 +02:00
5d364f886a BUG: swallowed -fromWmake argument 934d0bd743
- should pass onwards to other Allwmake scripts
2020-06-08 15:57:03 +02:00
8a27989cbf ENH: Added support for internal vol fields 2020-06-08 13:59:46 +01:00
4032ab5e15 DOC: waveMaker - removed references to unused x0 input parameter 2020-06-08 13:59:46 +01:00
53767fc8ce Merge branch 'feature-flexible-install-paths' into 'develop'
Feature flexible install paths

See merge request Development/openfoam!366
2020-06-08 13:50:46 +01:00
934d0bd743 ENH: support FOAM_MODULE_PREFIX to guide location of module builds (#1721)
- When compiling additional modules or user code, we need more control
  for the installation locations beyond the usual FOAM_USER_LIBBIN,
  FOAM_SITE_LIBBIN, FOAM_LIBBIN, and wish to have these values be
  modifiable without editing files.

- provide wmake rules for handling standard defaults:
    * GENERAL_RULES/module-path-user
    * GENERAL_RULES/module-path-group
    * GENERAL_RULES/module-path-project
  which are incorporated as follows:

  Make/options:
      include $(GENERAL_RULES)/module-path-user

  Make/files:
      LIB = $(FOAM_MODULE_LIBBIN)/libMyLibrary

  By default these would compile into FOAM_USER_{APPBIN,LIBBIN} but
  could be adjusted at compilation time. For example,

```
wmake -module-prefix=/path/my-install-location
```
Or
```
./Allwmake -module-prefix=/path/my-install-location
./Allwmake -prefix=/path/my-install-location
```
Or
```
FOAM_MODULE_PREFIX=/path/my-install-location ./Allwmake
```

ENH: add -no-recursion option for AllwmakeParseArguments

- more descriptive naming than the -fromWmake option (still supported)

- remove wmake/scripts/wmake.{cmake,wmake}-args since the -prefix
  handling and -no-recursion is now directly handled by AllwmakeParseArguments
2020-06-08 13:51:26 +02:00
0f27a540be COMP: initialization order 2020-06-08 12:47:43 +02:00
8e0b05368f CONFIG: add gcc 10 series, reorder the compiler version list
- now list compiler versions in reverse order (newest first) similar
  to how they are listed on the gcc/llvm sites. Add comments to
  mention which compiler series are now considered unsupported.
2020-06-08 11:41:08 +02:00
636d2688a5 COMP: corrected code removed in 51c2329f97 2020-06-08 08:07:34 +01:00
bcc1a49937 TUT: add parallel test for laplacianFoam
- one of the simplest test applications to run quickly and test
2020-06-05 17:54:42 +02:00
bb2ae5c90d GIT: remove merge/rebase artifacts 2020-06-05 17:01:27 +02:00
f6bd56ddae STYLE: some tests built into FOAM_APPBIN (should be FOAM_USER_APPBIN) 2020-06-05 16:34:51 +02:00
ba8f1265e1 CONFIG: update boost, cgal, openmpi versions (#1705)
- the CGAL version change is associated with a header-only build
  (needs updated ThirdParty scripts).

- openmpi is a major version change (4.0.3)
2020-06-05 16:28:01 +02:00
538dfcd6d3 Merge branch 'feature-atmInletBCs' into 'develop'
ENH: Improve and verify atmBoundaryLayerInlet conditions

See merge request Development/openfoam!354
2020-06-05 14:42:23 +01:00
336fb3bddf ENH: improve/verify atmBoundaryLayerInlet conditions
ENH: add generalised log-law type ground-normal inflow boundary conditions for
  wind velocity and turbulence quantities for homogeneous, two-dimensional,
  dry-air, equilibrium and neutral atmospheric boundary layer (ABL) modelling

  ENH: remove `zGround` entry, which is now automatically computed

  ENH: add `displacement height` entry, `d`

  ENH: add generalised atmBoundaryLayerInletOmega boundary condition

  ENH: add a verification case for atmBoundaryLayerInlet BCs

  DOC: improve atmBoundaryLayerInlet header documentation

  BUG: fix value-entry behaviour in atmBoundaryLayerInlet (fixes #1578)
  Without this change:
  - for serial-parallel computations, if `value` entry is available in
    an `atmBoundaryLayerInlet` BC, the theoretical ABL profile expressions
    are not computed, and the `value` entry content is used as a profile data
  - for parallel computations, if `value` entry is not available, `decomposePar`
    could not be executed.
  With this change:
  - assuming `value` entry is always be present, the use of `value` entry for
    the ABL profile specification is determined by a flag `initABL`
  - the default value of the optional flag `initABL` is `true`, but whenever
    `initABL=true` is executed, `initABL` is overwritten as `false` for the
    subsequent runs, so that `value` entry can be safely used.
  Thanks Per Jørgensen for the bug report.

  BUG: ensure atmBoundaryInlet conditions are Galilean-invariant (fixes #1692)

  Related references:

      The ground-normal profile expressions (tag:RH):
        Richards, P. J., & Hoxey, R. P. (1993).
        Appropriate boundary conditions for computational wind
        engineering models using the k-ε turbulence model.
        In Computational Wind Engineering 1 (pp. 145-153).
        DOI:10.1016/B978-0-444-81688-7.50018-8

    Modifications to preserve the profiles downstream (tag:HW):
        Hargreaves, D. M., & Wright, N. G. (2007).
        On the use of the k–ε model in commercial CFD software
        to model the neutral atmospheric boundary layer.
        Journal of wind engineering and
        industrial aerodynamics, 95(5), 355-369.
        DOI:10.1016/j.jweia.2006.08.002

    Expression generalisations to allow height
    variation for turbulence quantities (tag:YGCJ):
        Yang, Y., Gu, M., Chen, S., & Jin, X. (2009).
        New inflow boundary conditions for modelling the neutral equilibrium
        atmospheric boundary layer in computational wind engineering.
        J. of Wind Engineering and Industrial Aerodynamics, 97(2), 88-95.
        DOI:10.1016/j.jweia.2008.12.001

    The generalised ground-normal profile expression for omega (tag:YGJ):
        Yang, Y., Gu, M., & Jin, X., (2009).
        New inflow boundary conditions for modelling the
        neutral equilibrium atmospheric boundary layer in SST k-ω model.
        In: The Seventh Asia-Pacific Conference on Wind Engineering,
        November 8-12, Taipei, Taiwan.

  Reproduced benchmark:
      Rectangular prism shown in FIG 1 of
        Hargreaves, D. M., & Wright, N. G. (2007).
        On the use of the k–ε model in commercial CFD software
        to model the neutral atmospheric boundary layer.
        Journal of wind engineering and
        industrial aerodynamics, 95(5), 355-369.
        DOI:10.1016/j.jweia.2006.08.002
  Benchmark data:
      HW, 2007 FIG 6

  TUT: update simpleFoam/turbineSiting tutorial accordingly
2020-06-05 14:40:53 +01:00
5863c94be0 Merge branch 'issue-1556-fo-header-writing' into 'develop'
ENH: enable user to control re-writing of function object output file headers.  See #1556

See merge request Development/openfoam!360
2020-06-05 14:38:15 +01:00
1b45599b26 ENH: enable user to control re-writing of function object output file headers. See #1556 2020-06-05 14:37:21 +01:00
d44babcc78 Merge branch 'feature-iterative-eigendecomposition' into 'develop'
ENH: Robust Iterative Eigendecomposition and Parallel Low-Memory Dynamic Mode Decomposition

See merge request Development/openfoam!353
2020-06-05 14:35:57 +01:00
730233cd15 ENH: add new FO Streaming-Total Dynamic Mode Decomposition (STDMD)
STDMD (i.e. Streaming Total Dynamic Mode Decomposition) is a variant of
    a data-driven dimensionality reduction method.

    STDMD is being used as a mathematical post-processing tool to compute
    a set of dominant modes out of a given flow (or dataset) each of which is
    associated with a constant frequency and decay rate, so that dynamic
    features of a given flow may become interpretable, and tractable.
    Among other Dynamic Mode Decomposition (DMD) variants, STDMD is presumed
    to provide the general DMD method capabilities alongside economised and
    feasible memory and CPU usage.

    Please refer to the header file documentation for further details.

  ENH: add new STDMD tutorial, pimpleFoam/laminar/cylinder2D
2020-06-05 14:35:37 +01:00
ef9ee7a8b1 ENH: add iterative eigen decomposition solver, EigenMatrix
ENH: add Test-EigenMatrix application

  The new iterative eigen decomposition functionality is
  derived from:

    Passalacqua et al.'s OpenQBMM (openqbmm.org/),
    which is mostly derived from JAMA (math.nist.gov/javanumerics/jama/).
2020-06-05 14:35:36 +01:00
153f847ad2 BUG: fix pinv() for single-element input matrices
ENH: return zero-valued matrix when input zero-valued matrix in pinv()
2020-06-05 14:35:36 +01:00
af22163492 ENH: improve Matrix classes and tests 2020-06-05 14:35:36 +01:00
b3e5620d2a COMP: typo in surfaceBooleanFeatures/PolyhedronReader Make/options
ENH: strip {GMP,MPRF}_ARCH_PATH in make rules
2020-06-05 12:36:37 +02:00
1c5508a61b SUBMODULES: updates and revert
- update OpenQBMM to origin/openfoam.com

- revert adios, visualization
  * changes inadvertently crept in recent commit
2020-06-05 11:40:07 +02:00
7618150ea4 ENH: fileModificationSkew: Changed default. See #1472 2020-06-05 09:06:14 +01:00
67b7b378db ENH: motorBike: change coarseLevel solver 2020-06-05 09:06:14 +01:00
5c220a9e2d Merge remote-tracking branch 'origin/master' into develop 2020-06-04 22:30:12 +02:00
fec5093c04 ENH: add blockMesh -write-vtk option
- generates a vtk file in an ASCII, XML format (blockTopology.vtu).

  More information than the equivalent obj file since it includes
  connectivity, cell shapes and cell IDs (equivalent to the block
  numbers).
2020-06-04 22:15:26 +02:00
8f8617a8ca CONFIG: increment patch level 2020-06-04 21:49:35 +02:00
11ff01f434 ENH: refactor vtk::internalWriter, vtk::patchWriter
- new vtk::internalMeshWriter, vtk::patchMeshWriter
  intermediate classes without finiteVolume dependencies.

  Enables direct use with a polyMesh.
  Makes vtk::internalWriter, vtk::patchWriter header/template only.
2020-06-04 21:44:26 +02:00
9d2fe2086a BUG: missing compilation for some vtk conversion components (fixes #1720) 2020-06-04 21:07:44 +02:00
ea4c8f4bea ENH: boolVector for specialized bundling of boolean values
- bundled of boolean values as a vector of 3 components with
  element access using x(), y() and z() member functions.
  It also has some methods similar to bitSet.

- Not derived from Vector or VectorSpace since it does not share very
  many vector-like characteristics.
2020-06-04 16:56:21 +02:00
bc9e97cf36 ENH: additional polynomial constructors, improved I/O
- support construct from initializer_list, which can help simplify
  code with constant coefficients.

- add default constructor for polynomialFunction and Istream reading
  to support resizable lists of polynomialFunction.

  A default constructed polynomialFunction is simply equivalent to
  a constant zero.

- no special IO handling for Polynomial required,
  it is the same as VectorSpace anyhow.
2020-06-04 15:02:21 +02:00
95f7ed0342 COM: Separate htc FO from general FO and reactingEuler solvers (#1714)
The phase systems tables for multiphase solvers create conflict
between each other as they are defined in the same namespace and using
similar class names.

Therefore a special htc function object for reactingEulerSolver was
added (reactingEulerHtcModel), located under
src/phaseSystemModels/reactingEulerFoam/functionObjects/

This commit includes the following:

- Relocate solvers/reactingEulerFoam functionObjects to
  src/phaseSystemModels
- Remove links for fieldFunctionObject to multiphase libs to avoid
  conflicts
- New FO for htc for reactingEulerFoam called reactingEulerHtcModel
2020-06-03 20:58:02 +02:00
cf09b67b28 ENH: support shell syntax for foamCreateModuleInclude (#1717)
- can pre-generate shell environment for later sourcing as an
  alternative to sourcing etc/bashrc itself
2020-06-03 18:23:58 +02:00
44ccf1e4d4 CONFIG: adjust aliases to use project-dir directly
- reduces some reliance on env variables
2020-06-03 12:11:17 +02:00
84d7141e31 STYLE: adjust return branching 2020-06-03 10:38:10 +02:00
65c2ec29de Merge branch 'style-dictionary-methods' into 'develop'
ENH: unify use of dictionary method names

See merge request Development/openfoam!362
2020-06-03 09:31:00 +01:00
3e43edf056 ENH: unify use of dictionary method names
- previously introduced `getOrDefault` as a dictionary _get_ method,
  now complete the transition and use it everywhere instead of
  `lookupOrDefault`. This avoids mixed usage of the two methods that
  are identical in behaviour, makes for shorter names, and promotes
  the distinction between "lookup" access (ie, return a token stream,
  locate and return an entry) and "get" access (ie, the above with
  conversion to concrete types such as scalar, label etc).
2020-06-02 17:26:03 +02:00
f721b5344f ENH: report dictionary name actually used (for -dict option) 2020-06-02 14:29:36 +02:00
31b172217c ENH: support predicate checks for argList (similar to dictionary methods)
- Favour use of argList methods that are more similar to dictionary
  method names with the aim of reducing the cognitive load.

  * Silently deprecate two-parameter get() method in favour of the
    more familiar getOrDefault.
  * Silently deprecate opt() method in favour of get()

  These may be verbosely deprecated in future versions.
2020-06-02 13:51:18 +02:00
695766af16 COMP: no constexpr methods for older gcc (nullObject) 2020-05-31 20:44:12 +02:00
8600d6ba1c COMP: change fieldsFunctionObject library link order (fixes #1714)
- before (-lreactingPhaseSystem -ltwoPhaseReactingTurbulenceModels)
  after  (-ltwoPhaseReactingTurbulenceModels -lreactingPhaseSystem)
  to fix symbol resolution issue on clang.
2020-05-29 15:58:08 +02:00
1d7d5b2d26 ENH: provide lightweight labelFwd, scalarFwd headers
- centralizes sizing information and typedefs
  without dependencies beyond <cstdint>

COMP: ensure label typedef exists for nullObject.H
2020-05-29 15:56:08 +02:00
727ea48e0c STYLE: include scalar.H instead of floatScalar.H/doubleScalar.H separately
STYLE: adjust code comments
2020-05-29 15:55:56 +02:00
1d2391e0b4 ENH: add swallow assignment to nullObject
- similar to the behaviour of std::ignore and consistent with the
  no input / no output nature of nullObject. Similarly accept a
  const reference for its Istream operator.

- make most nullObject methods constexpr
2020-05-29 15:55:27 +02:00
e3367dbdc1 ENH: inline and extend clockValue, clockTime
- mostly wraps std::chrono so can inline much of it, which is potentially
  helpful when used for inner timings.

- add elapsedTime() method for direct cast to double and for
  naming similarity with wall-clock method.

Potential breaking change (minor):

- clockValue construct with a bool parameter is now simply tagged
  dispatch (value is ignored) and always queries the current clock
  value. This avoids needless branching.
  Since this constructor form has primarily been used internally (eg,
  clockTime), breakages in user code are not expected.
2020-05-29 15:48:21 +02:00
45a05012c6 STYLE: use Time::printExecutionTime() method
- makes format of ExecutionTime = ... output configurable (#788)
  and reduces code clutter.
2020-05-29 15:48:20 +02:00
5eebe5050b ENH: reduce dependencies for foamVersion.H
- have printBuildInfo output to std::ostream
- removed extraneous include "stdFoam.H"

ENH: revert to pre-processor defines for hard-coded paths (#1712)

- redundant information, but more robust at run-time without relying
  on initialization order
2020-05-29 15:48:20 +02:00
bee23c79bd ENH: adjust foamSystemCheck, foamInstallationTest
- add clang test, don't complaint about dash, zsh

- don't bother with checking gzip and tar
2020-05-29 15:46:01 +02:00
0e480f3d7e ENH: allow bin/tools/foamConfigurePaths from anywhere
- previously could only run from the project directory

- strip surrounding double quotes on input of path names
  since they are added automatically when editing.
2020-05-28 12:03:08 +02:00
da989f3680 STYLE: remove older deprecation scripts (older than 3-4 versions)
- interDyMFoam, multiphaseInterDyMFoam, pimpleDyMFoam, rhoPimpleDyMFoam
- surfaceMeshTriangulate
2020-05-28 12:03:06 +02:00
be417c9841 COMP: erroneous return from void method (fixes #1716) 2020-05-26 10:40:26 +02:00
03c2373d2c ENH: align meshRefinement dictionary wrapper with dictionary code
COMP: do not rely on implicit conversion to PtrList from Istream
2020-05-26 08:56:11 +02:00
997c9a232c STYLE: use compact form for libs () entries 2020-05-23 18:42:47 +02:00
b68ab9bd5a ENH: Function1 and PatchFunction for external wall heat transfer (#1709)
- can define spatial/temporal variations for heat-flux or
  convection coefficient.

- can define temporal variations for power or ambient temperature
2020-05-23 18:42:47 +02:00
1a9f067df9 TUT: use expression and/or step function in a few places 2020-05-23 18:42:47 +02:00
5105154b88 ENH: expression versions of Function1 and PatchFunction1 (#1709) 2020-05-23 18:42:47 +02:00
51c2329f97 ENH: additional step function, cleanup autoPtr use in Function1 2020-05-23 18:42:41 +02:00
09d9c5cc03 ENH: consistent autoPtr handling in PatchFunction1 2020-05-23 16:02:35 +02:00
2659c48f36 COMP: change foamVersion::configuredProjectDir to function (#1712)
- exhibited apparent issues with initialization order (on some
  installations of gcc-4.8.5) when a variable was used.
2020-05-23 15:56:25 +02:00
02517e971a ENH: no implicit loading of controlDict libs for foamListRegions (#1713)
ENH: eliminate duplicate input region types
2020-05-23 15:53:17 +02:00
a5a504693a ENH: support disable libs when constructing Time from argList (#1714)
- previously relied on presence/absence of command-line options.
  Can now explicitly disable individually

- provide shorter constructors for dealing with these types of cases.
  Make construction with non-default names for "system" and "constant"
  lengthier so there is no ambiguity.
2020-05-23 15:28:32 +02:00
06ae8dca14 ENH: output Warning messages to stderr when banners are suppressed (#1713) 2020-05-23 13:07:48 +02:00
c47937e337 ENH: add fvPatch::lookupPatch static function
- lookup a fvPatch given a polyPatch reference.
  Replaces ad hoc helpers in patchExprFieldBase
2020-05-22 21:53:42 +02:00
36c1993c5e CONFIG: only set PV_PLUGIN_PATH if the directory actually exists
- this does mean two passes are required on the initial compilation,
  but improves reliability thereafter.

ENH: correct csh handling of system paraview
2020-05-22 21:53:42 +02:00
8d1f32641c CONFIG: ignore possible compilation errors in modules
- now treating as an optional component
2020-05-22 21:53:42 +02:00
59933555d8 STYLE: remove trailing space, tabs
COMP: deletion of incomplete type
2020-05-22 21:53:13 +02:00
11965904b7 COMP: Avoiding double entry in runTime table TurbulenceModel
multiphaseReactingTurbulenceModels and twoPhaseReactingTurbulenceModels
add models to the same table TurbulenceModel. These two libs were removed
from libreactingPhaseSystem which created the conflict.

The multiphaseReactingTurbulenceModels was added to
reactingMultiPhaseEulerFoam solver and twoPhaseReactingTurbulenceModels to
twoPhaseReactingEulerFoam solver

The FO heatTransferCoeffs for libfieldFunctionObjects needs
twoPhaseReactingTurbulenceModels.

These change avoids linking conflict from multiphaseReactingTurbulenceModels
and twoPhaseReactingTurbulenceModels being linked in the same lib.
2020-05-22 11:01:55 -07:00
b9cb778e9e Merge branch 'wip-support-eulersolver-heat-transfer-FO' into 'develop'
support eulersolver heat transfer fo

See merge request Development/openfoam!333
2020-05-21 15:21:38 +01:00
486df96fbc ENH: Re-ordering compilation phaseSystemModels 2020-05-21 15:21:23 +01:00
dc04980d5c STYLE: remove trailing space, tabs 2020-05-21 15:21:23 +01:00
8218923b8c ENH: Adding support for two phases Euler solver to heatTransferModel FO 2020-05-21 15:21:23 +01:00
8eeb5e8699 ENH: redistributePar: handle cyclicACMI. See #1558.
Explicitly avoid updating cyclicACMI.
2020-05-20 18:03:54 +01:00
eacba8256c BUG: redistributePar: handle cyclicACMI. Fixes #1558. 2020-05-20 12:55:40 +01:00
7f936ad01f ENH: coded version of PatchFunction1. See #1709. 2020-05-20 10:38:39 +01:00
7a063c58ce BUG: processorCyclic: patch face ordering. Fixes #1704. 2020-05-20 09:29:19 +01:00
fec570f3ea Merge branch 'feature-build-granularity' into 'develop'
Feature build granularity

See merge request Development/openfoam!359
2020-05-19 07:14:06 +01:00
f233595a7f ENH: improved granularity for MPI-rebuilds
- Provide Allwmake-mpi scripts for handling the MPI-only build segment.

- Adjust Make/options to support a FOAM_MPI_LIBBIN target location.
  This will simply default to FOAM_LIBBIN/FOAM_MPI, but allows different
  types of builds with out-of-tree targets.

Example,

Build OpenFOAM with default MPI settings (eg, system openmpi)
```
./Allwmake
```

Rebuild MPI-layers with different MPI.

For any given and known type
```
othermpi()
{
    export WM_MPLIB=OPENMPI
    export FOAM_MPI=openmpi-3.1.3

    export OPAL_PREFIX=$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER/$FOAM_MPI
    export MPI_ARCH_PATH="$OPAL_PREFIX"
}
```

May wish to build/rebuild ptscotch
```
(
    othermpi
    $WM_THIRD_PARTY_DIR/makeSCOTCH
)
```

Rebuild the mpi-dependent parts. Can also provide install location
```
for script in $(find src -name Allwmake-mpi)
do
(
    other_mpi
    export FOAM_MPI_LIBBIN="$HOME/tmp/install-prefix/lib/$FOAM_MPI"
)
done
```
2020-05-19 07:13:12 +01:00
d7db8f8292 COMP: support cgal header-only configurations
- improve wmake CGAL rule(s) accordingly
2020-05-19 07:13:12 +01:00
f8ef85b72f ENH: split up internals of wmake/scripts/have_XXX functions
- adds some more flexibility
2020-05-19 07:13:12 +01:00
c156125669 ENH: construct fixed-length items as a fixed-length subset (#1708)
For example,

    const edge meshE(patch.meshPoints(), patch.edges()[edgei]);
2020-05-18 20:01:18 +02:00
836dc16f30 ENH: support an 'arg()' pseudo-function for fv-based expressions 2020-05-18 18:42:14 +02:00
5bba554d6d GIT: renamed .keep files to .gitignore
- purpose is to preserve empty directories under git, so use the more
  general name
2020-05-18 15:18:20 +02:00
3d746e8ac9 ENH: leak-detection. Fixes #1572.
The final leak can only be decided once all cells have been
deleted. So only exit on final invocation and give warning-only
beforehand. This avoids a lot of false positives.
The tutorial itself didn't actually produce a mesh with leakage
with the old settings. Upped the refinement level to force it
to go through the hole in the geometry.
2020-05-18 12:40:08 +01:00
2fa0a2ea9a ENH: PatchFunction1: expose variables.
This makes coded versions easier.
2020-05-16 15:49:48 +01:00
2b8af776b4 Merge remote-tracking branch 'origin/master' into develop 2020-05-15 15:32:43 +02:00
591f7dee3f Merge branch 'feature-injection-out-of-bounds' into 'develop'
ENH: Injection models - added entry to ignore injection positions outside of the mesh

See merge request Development/openfoam!355
2020-05-15 09:29:33 +01:00
72037bc9ea ENH: Injection models - added entry to ignore injection positions outside of the mesh
Example in the injection model input dictionary:

    // New entry to ignore injections out of bounds
    ignoreOutOfBounds yes;
2020-05-15 09:29:27 +01:00
dd4b8cf30d BUG: incorrect startLineNumber for primitiveEntry (fixes #1706) 2020-05-14 17:27:56 +02:00
4d9c7ca828 COMP: additional wmake adjustments
- scripts/wmake.wmake-args partial logic for Allwmake scripts.

- handle '-quiet' as synonym for '-silent'

- Do not specify '-j' option for wrapped cmake creation to avoid
  the warning:
  make[1]: warning: -jN forced in submake: disabling jobserver mode.
2020-05-14 16:53:06 +02:00
614db5a1e2 STYLE: adjust 'No completions' message for more clarification
- Now state "[ignore if OpenFOAM is not yet compiled]"
2020-05-14 11:20:49 +02:00
3d0404af18 STYLE: simpler use of autoPtr, unique_ptr for OSspecific, fileFormats 2020-05-14 11:15:24 +02:00
841b65536b ENH: use unique_ptr for resource handling in dynamicMesh
ENH: defaulting for destructors where possible

STYLE: clear() instead of setSize(0) for plain Lists

STYLE: use bool operator instead of valid()/empty() for autoPtr tests
2020-05-14 02:16:58 +02:00
2c3425ac1e ENH: simplify coding for local faces (in enrichedPatch)
- similar to changes made in PrimitivePatch (commit 8a5d108fd2)
2020-05-13 21:22:13 +02:00
2530bb77ae COMP: add copy assign List from FixedList (was missing) 2020-05-13 21:21:23 +02:00
3688957e01 GIT: moved polyTopoChange from dynamicMesh -> meshTools 2020-05-13 20:59:03 +02:00
44b225604d ENH: add blockMeshDict "mergeType" keyword (#1589)
- enumerated values are (points | topology) which can be optionally
  specified in the blockMeshDict. Default is 'topology'.

  If the command-line option `blockMesh -merge-points` is specified,
  this has absolute priority over any blockMeshDict entry.

STYLE: changed blockMesh "-blockTopology" option to "-write-obj"

- this is more specific to what it does. Potentially wish to add a
  "-write-vtk" option in the future.

TUT: adjust tutorials to use preferred or necessary merge strategies:

  * channel395DFSEM - topology
  * nozzleFlow2D - points
  * pipeCyclic - points
2020-05-13 20:59:03 +02:00
5999125cd9 BUG: Fix info statement in parallel. Fix #1694 2020-05-13 11:48:23 -07:00
1584f28e91 ENH: blockMesh: generate duplicate boundary faces. Fixes #1516 2020-05-13 11:59:47 +01:00
bb13d27d2b ENH: inverseDistance: output stencil per zone. See #1683.
Code provided by Nicolas Edh.
2020-05-13 10:24:40 +01:00
90e21679b3 DOC: Corrected header documentation 2020-05-12 15:27:26 +01:00
ed3c6bcb63 COMP: only use Project/build if Project directory is writable (#1693) 2020-05-12 10:16:18 +02:00
d4e31093fd ENH: improved encapsulation of MPI (re)builds
- dependency handling relocated from cmakeFunctions to wmakeFunctions
  and reused for mpi-versioned builds. This allows more checks for
  configuration parameters and removes hard-code build path
  information.

CONFIG: remove spurious mplibHPMPI entries

CONFIG: remove ADIOS1 rules (antiquated)
2020-05-12 10:05:47 +02:00
f99561700b ENH: add 'subcommand' handling to wclean (#1693)
- wcleanBuild, wcleanPlatform now accessible as "wclean -build" and
  "wclean -platform", respectively
2020-05-12 10:05:47 +02:00
9e3d06853e ENH: add 'subcommand' handling to wmake (#1693)
- initial split of wmake-related commands into "plumbing" and
  "porcelain" akin to how git handles things.

- wmakeBuildInfo (very low-level), now relocated to the wmake/scripts
  and accessible for the user as "wmake -build-info".

  This satisfies a long-standing desire to access build information
  in a fashion similar to the api/patch information.

CONFIG: avoid git information when building with a debian/ directory

- when a 'debian/' directory exists, there is a high probability that
  the '.git/' directory is from debian and not from OpenFOAM (ie,
  useless here). This corresponds to an implicit '-no-git', which has
  no effect when building from pristine sources.

ENH: wmakeCheckPwd becomes scripts/wmake-check-dir

- accessible for the user as "wmake -check-dir" and with 1 or 2
  directory names. A wmakeCheckPwd symlink left for compatibility.
2020-05-12 10:05:24 +02:00
8bd9f41efd ENH: wmakeLnInclude support for multiple dirs and -force option (#1693)
STYLE: minor changes to makefiles
2020-05-12 08:00:26 +02:00
488b03980e ENH: support different config names in foamConfigurePaths 2020-05-11 20:37:19 +02:00
a577f8e006 BUG: Pair sort on construct did the opposite (fixes #1701) 2020-05-11 20:37:19 +02:00
8395d69cdb BUG: Pair sort on construct did the opposite (fixes #1701) 2020-05-11 20:23:19 +02:00
435957ac87 ENH: exposed access to compile-time project, etc directories
- less frequently used, but the information was previously inaccessible
  under etcFiles.C.

  Now exposed within the foamVersion namespace and defined under
  <global.Cver> to improve configuration possibilities.
2020-05-11 14:14:59 +02:00
6a16db3708 ENH: use hasEnv() instead of env() for naming symmetry with getEnv, setEnv
- less confusing than the env() name, which could look like a
  setter/getter instead of a test
2020-05-11 10:12:26 +02:00
584ff5e0d0 TUT: Adjusting tutorial settings 2020-05-08 13:56:42 -07:00
712512d4f4 BUG: Reverting change on qr signs for power and heatFlux modes 2020-05-07 14:00:45 -07:00
e5afe55e9b CONFIG: bump API to 2004 2020-05-06 17:25:00 +02:00
30612f42ae SUBMODULES: adios, OpenQBMM, visualization - handle installation prefixes 2020-05-06 17:15:17 +02:00
0ec0facff6 ENH: add paraFoam -plugin-path=DIR option
- convenient way to use alternative plugin installations

- provide separate -help-build information and reduce the noisy output
  when a reader module cannot be located.
2020-05-06 16:44:05 +02:00
b3464d8afc COMP: wmake rules for AMD (clang-based) compiler (#1627)
- not fully tested
2020-05-06 13:11:09 +02:00
78dc8c6ba6 CONFIG: refactor common link rules, support FOAM_EXTRA_CFLAGS (#1256)
- additional cgal-headers-only rules (future use)

COMP: add -lgmp for CGAL with mpfr linkage
2020-05-06 13:10:30 +02:00
595579e01d COMP: use -iquotedir for including the local '.' directory
- adds into the include-quoted search list instead the general (-Idir)
  search list.

  * makes it less subject to ordering (since it will now generally be
    searched first) and makes it less subject to how duplicate removal
    is implemented. In some compilers (#1627), the last instance of
    a duplicate directory would be used and not the first instance.

  * removes clutter in some Make/options files

COMP: add missing linkage libraries
2020-05-06 13:06:40 +02:00
b4bf26ea4f Merge remote-tracking branch 'origin/master' into develop 2020-05-06 10:13:56 +02:00
d0846edf50 CONFIG: increment patch level 2020-05-06 09:11:55 +02:00
bcd798aa65 SUBMODULES: catalyst module with updated cmake/wmake scripts 2020-05-06 09:11:32 +02:00
c853080d91 COMP: provide makefile fallbacks for FOAM_SOLVERS, FOAM_UTILITIES
- improves build robustness, even with a reduced environment (#517)
2020-05-06 09:11:04 +02:00
cf5928c3b8 Merge branch 'config-improve-cmake-paraview-handling' into 'master'
ENH: improve cmake/ParaView config handling

See merge request Development/openfoam!358
2020-05-05 17:50:48 +01:00
aafe674f5f ENH: improve cmake/ParaView config handling
- improve handling of changes in ParaView/VTK or cmake parameters (#1693)

  * adjust internals to support recording of an unlimited number of
    configuration parameters and use file `cmp` instead of trying
    to check strings ourselves.

ENH: new wmake/scripts/wmake.cmake-args handler

- additional handling of -prefix=... as CMAKE_INSTALL_PREFIX export.

- in some contexts, can use instead of AllwmakeParseArguments
2020-05-05 18:06:09 +02:00
8756791b00 ENH: use topological merge as default for blockMesh (closes #1589)
- faster and fewer issues with high aspect ratio cells.

- `blockMesh -merge-geometric` for old behaviour
2020-05-04 16:19:03 +02:00
8d29896fca TUT: illustrate inverse expansion ratio in a few places
- see commit 7da0b5bee1
2020-05-04 15:41:37 +02:00
77a2c1b578 ENH: support token conversion of scalar to label (#1696)
- this specifically arises in the case we have used the `#eval` syntax
  to generate a value.
  However, since the expressions produce scalar/vector/tensor etc, the
  tokenized value will *not* be introduced into the dictionary as a
  label, even if it appears to be an integer value.

  Eg, eval "2*5", eval "sqrt(100)" both yield `scalar(100)`, which
  will not be suitable for any consumer expecting a label value.

  With the `#calc` version, this problem is glossed over since it uses a
  string buffer for the output (which can suppress the decimal)
  and re-parses the string into tokens, which causes a label to be
  recognized.

- Since we obviously already support implicit handling of ints as
  floats (when reading), now also allow conversion of float
  representations of integral values.

  Uses the ad hoc value of 1e-4 for deciding if the value deviates too
  far from being integral.

- As a side-effect, can now also support scientific notation when
  specifying integers.  Eg, (10 100 1e+3) for cell counts.
2020-05-04 14:54:45 +02:00
8cfb483054 STYLE: some general spelling fixes 2020-05-04 09:15:21 +02:00
2a24bab057 STYLE: consistent looping of patchSet entries 2020-05-01 17:31:01 +02:00
0680416b59 COMP: tag lookupObjectPtr and lookupObjectRefPtr as deprecated
- were deprecated via comments (2018-10).
  Now mark with compilation warning
2020-05-01 16:42:55 +02:00
0c163e40e5 COMP: missing clone methods for some derived boundary conditions 2020-05-01 16:25:11 +02:00
a1ccd1b716 STYLE: use DebugInFunction macro 2020-05-01 16:11:18 +02:00
a3c226a1bd Merge branch 'style-primitive-patch' into 'develop'
Update primitive patch templating and storage

See merge request Development/openfoam!357
2020-05-01 07:10:04 +01:00
8a5d108fd2 STYLE: update PrimitivePatch (#1648)
- simplified templating, which cleans up code and does not appear to
  break any normal user coding.

ENH: unique_ptr instead of homegrown demand-driven handling.
2020-04-30 15:52:42 +02:00
5c9f07df7a STYLE: include demandDrivenData.H wherever deleteDemandDrivenData is used
- allows easier identification for future changes
2020-04-30 11:16:06 +02:00
aeebdc3cdc Merge branch 'feature-directionalMeshWave' into 'develop'
WIP-ENH: add directionalMeshWave functionality

See merge request Development/openfoam!356
2020-04-30 08:52:47 +01:00
ea16cb4b29 ENH: add directionalMeshWave functionality
For a given point within a given mesh, the existing `meshWave` method gives
  the orthogonal distance to a patch. In meshes with very steep terrain (e.g.
  a hill of 90 [deg], this might be problematic for the fields that require
  the distance to the patch associated with the terrain surface.

  `directionalMeshWave` is a variant of `meshWave` distance-to-patch method,
  which ignores the component in the specified direction. Can be used e.g. to
  calculate the distance in the z-direction only.

  TUT: add example of directionalMeshWave to mesh/moveDynamicMesh/SnakeCanyon

  Requirement by CENER
  Implementation by Mattijs Janssens
2020-04-29 19:54:00 +01:00
50055b3d00 ENH: add IOobject::scopedName() static method
- preliminary to further changes (#1675)
2020-04-28 16:21:34 +02:00
119796b6cb STYLE: avoid ":<>" in EnSight file names (#902) 2020-04-28 16:21:34 +02:00
14e2dbfb2a ENH: add string replaceAny() method
- takes a search string and a replacement character.
  The replacement character can also be a nul char ('\0'), which
  simply removes the characters.

  Possible uses:

  * Replace reserved characters
      str.replaceAny("<>:", '_');

  * Remove shell meta-characters or reserved filesystem characters
      str.replaceAny("*?<>{}[]:", '\0');
2020-04-28 16:21:34 +02:00
344940829a STYLE: use simpler typedefs for PrimitivePatch instances 2020-04-28 16:21:30 +02:00
8cbf55acad STYLE: reuse faceCentres if they already exist 2020-04-28 15:38:47 +02:00
cc7af66a15 STYLE: use face_type instead of FaceType typedef 2020-04-28 15:38:47 +02:00
213d413464 STYLE: simplify handling of null faceMap for MeshedSurface 2020-04-28 12:13:15 +02:00
64fcbd5e4f ENH: additional dimensionedType constructors
- construct from dimensioned/value, defaulting name from value.
  Can be convenient for these type of operations:

      max(.., dimensionedScalar(somedims, 0.5))

- construct from dimensioned/one, forwarding to pTraits::one.
  Can be convenient for constructors:

    volScalarField( ..., dimensionedScalar(somedims, one{}))

ENH: minor updates to zero/one classes.

- add global 'One' constant for symmetry with 'Zero'.
2020-04-28 10:41:25 +02:00
79048eb68f STYLE: use writeEntry(), beginBlock(), endBlock() methods
- use dictionary::get<..> instead of lookup in a few more places
2020-04-28 10:41:23 +02:00
8525d4a2c5 CONFIG: no default verbosity for openfoam shell session
- an otherwise confusing amount of output that may not be expected
2020-04-27 21:24:56 +02:00
81bd0aa09f STYLE: pass autoPtr for fileHandler and matrix solver as moveable
- clearer than passing a reference to a dummy variable,
  or relying on move occuring within the copy constructor
  (historical, but should be deprecated)

STYLE: consistent autoPtr syntax for uncollated file operations
2020-04-27 13:09:45 +02:00
394a3a9b6e ENH: retain compound type on List output (continuation of 68de05285a)
- can help in circumstances when an zero-sized entry is written on
  some processors, but the compound-type may be useful for determining
  a particular code path when re-reading the files. Ensures that the
  information is consistent on all processors.

STYLE: adjust separation of includes between List.H and UList.H
2020-04-27 13:08:53 +02:00
bfa20286f2 STYLE: remove spurious coordinate system validity check 2020-04-27 13:08:53 +02:00
5ab04f5745 GIT: remove prebuilt pdf file(s) 2020-04-27 09:45:17 +02:00
c3571b7357 ENH: topoDistanceData: templated on passive data type.
Also adds pointTopoDistance, edgeTopoDistance.
2020-04-24 12:34:08 +01:00
9b4462e07b CONFIG: bump API to 2003
- various changes
2020-04-21 15:09:12 +02:00
9cfa5fe454 Merge remote-tracking branch 'origin/master' into develop 2020-04-21 15:07:35 +02:00
aa2f932b75 CONFIG: additional packaging helpers, tutorial test helper
- bin/tools/create-mpi-config to query/write values for system openmpi.
  In some cases this can be used to avoid an mpicc requirement at runtime.

- adjust openfoam session to include -test-tutorial forwarding to the
  tutorials/AutoTest. This helps with writing installation tests.

- adjust foamConfigurePaths to latest version

- removal of gperftools default config, as per develop
2020-04-21 14:59:07 +02:00
6691e6563c COMP: adjust for CGAL-1.14 changes 2020-04-21 14:59:07 +02:00
2ed60bbc01 STYLE: generalize transform/invTransform no-op for base types 2020-04-21 13:32:27 +02:00
c99d074247 CONFIG: additional options for foamPackRelease 2020-04-21 13:32:27 +02:00
a14a231f09 STYLE: spelling and misc code style for interfaceHeatResistance 2020-04-21 13:32:26 +02:00
a686491187 Merge branch 'feature-VOF-massModels' into 'develop'
Feature VOF mass models

See merge request Development/openfoam!351
2020-04-20 20:58:32 +01:00
b240f9f963 ENH: Adding interfaceHeatResistance mass transfer model
1) Add interfaceHeatResistance model to icoReactingMultiphaseInterFoam
   This model uses a spread source for the continuity Eq.
   It is recommended for cases with good mesh resolution.

2) Adding iso-surface type of calculation for the interface for
   the kineticGasEvaporation model

3) Add switch for option to take into account volume change

4) Add poolEvaporation tutorial
2020-04-20 20:58:32 +01:00
da070b573f ENH: transform: support for unsigned int 2020-04-20 09:04:47 +01:00
302b4443e8 ENH: mappedPatchBase: support topo changes. Fixes #1676 2020-04-20 08:26:37 +01:00
04fc529589 TUT: Adjusting Tsat in phase change model 2020-04-17 11:31:32 -07:00
c8b504a680 BUG: Bound Tsource and pEq sign for condensation. Fix #1682. 2020-04-17 11:30:10 -07:00
b2bf82360c COMP: cleanup of surfaceCoarsen/bunnylod
- remove MSWindows components (code and makefiles)

- use cxx, hxx extensions to reduce possible confusion with other
  "list" and "vector" classes

- use C++ versions for C headers
2020-04-16 13:34:56 +02:00
a5b2cf9069 BUG: bad internal coeff for finiteArea zeroGradient BC (closes #1637)
- inadvertently set to zero instead of one (in commit 1d85fecf4d)
2020-04-16 10:11:33 +02:00
e1586bdaa0 CONFIG: add linuxARM64Fujitsu settings (#1671) 2020-04-16 00:48:08 +02:00
6152940ba2 CONFIG: support compiler query in bin/tools/query-versions
- Query the etc/config.sh/compiler for Gcc/Clang versions
2020-04-16 00:47:05 +02:00
9aae45fa51 Merge remote-tracking branch 'origin/master' into develop 2020-04-16 00:45:11 +02:00
2416599ea9 STYLE: format consistency for copyright 2020-04-15 23:28:41 +02:00
392d497d30 BUG: Time: check for processorsDDD. Fixes #1679. 2020-04-15 12:50:10 +01:00
06333efd2d CONFIG: improve detection of scotch system include/libraries
- align wmake have_* scripts to support version query as per current
  develop branch

- use config.sh/ fallbacks when the corresponding *_ARCH_PATH is empty
  (eg, BOOST, CGAL, FFTW).
  This aids when building outside of the regular OpenFOAM environment.
2020-04-15 13:35:45 +02:00
4200774d35 CONFIG: improve support for compiler derivatives (#1671)
- add '[-+.~]' to the recognized qualifiers.
  This allows simple readable names such as

      WM_COMPILER=Clang-vendor

  but also opens the FUTURE (not yet supported) possibility of
  combining in additional information. For example,

      WM_COMPILER=Clang~openmp
      WM_COMPILER=Clang+cuda~openmp

  by using '+' (add) and '~' (subtract) notation similar to what
  spack uses.

CONFIG: support 'override' rules

- if present, compiler-family 'override' rules are included after
  compiler-family 'general' rules have been included. This allows a
  central means for including dynamically generated content to
  override some values.

  Some examples:

  To handle different gcc versions (system compiler):

  wmake/rules/...Gcc/override

  ```
  ifneq (,$(findstring 9, $(WM_COMPILER)))
      cc  := gcc-9
      CC  := g++-9 -std=c++11
  endif
  ```

  To handle different openmp on Darwin (#1656):

  wmake/rules/darwin64Clang/override

  ```
  # Use libomp (not libgomp) unless openmp is disabled
  ifeq (,$(findstring "~openmp", "$(WM_COMPILER)"))
      COMP_OPENMP = -DUSE_OMP -Xpreprocessor -fopenmp
      LINK_OPENMP = -lomp
  else
      include $(GENERAL_RULES)/no-openmp
  endif
  ```

  This treatment arguably fits into wmake/rules/darwin64Clang/general,
  but it serves to illustrate a possible use case.
2020-04-15 13:18:31 +02:00
04b5291c55 CONFIG: handle openmp on Darwin (#1656)
- requires -Xpreprocessor
- uses 'libomp' (no 'libgomp' link)
2020-04-15 13:18:19 +02:00
a41584ff26 Merge branch 'tut-multiphase-review.kbc' into 'develop'
TUT: clean up multiphase tutorials

See merge request Development/openfoam!347
2020-04-14 20:18:37 +01:00
01514e4d43 TUT: clean up multiphase tutorials 2020-04-14 16:30:44 +01:00
86e78ac3c1 BUG: forces - corrected moment field calculation 2020-04-09 10:00:43 +01:00
647e161511 BUG: Fixing sign of qr in externalWallHeatFluxTemperature
1) The sign of radiative flux (qr) for modes Power and HeatFlux was
corrected.

2) Relaxation factor implementation was incomplete. Now caching
valueFraction and refValue from  the previous time step.
2020-04-08 14:11:07 -07:00
5425de66e4 ENH: adding momemtumErro FO 2020-04-08 12:19:23 -07:00
f01ad2f187 CONFIG: improve config files for Darwin (#1667), BSD-csh syntax (#1668)
- use Clang instead of Gcc for Darwin since this is its system
  compiler. The user can force use of Gcc by using Gcc92 etc.

- make etc/cshrc sed check more robust.

- replace tcsh (${%var}) syntax with ("${var}" != "")

[Fixes and ideas from Alexey Matveichev]

CONFIG: do not source the gperftools environment by default

- this is now an used feature, but can be re-enabled by advanced users
  if required.
2020-04-08 11:38:18 +02:00
3fd91c9084 ENH: improve foamConfigurePaths, remove some antiquated tools
- add edit of llvm/mesa/vtk paths. Reduce some verbosity

- include Darwin in foamInstallationTest, foamSystemCheck to avoid
  a false negative.
2020-04-08 11:38:18 +02:00
5f90964dee BUG: minor regression in surface reading of compressed files (#1600)
- as a side-effect of recent changes, command-line stripping of .gz
  extensions on input was lost. For example,

      OK:    surfaceTransformPoints file.stl ...
      Fail:  surfaceTransformPoints file.stl.gz ...

- restore the previous behaviour of silently stripping the '.gz'
  extension on input.

ENH: add triSurface::New selector entry point

- for symmetry with MeshedSurface
2020-04-08 09:17:12 +02:00
0eed8fa829 ENH: Adding option to thermalBaffle to be used as external/internal baffle
Now the thermal baffle can be extrapolated from a patch which is
  coupled to the bottom patch of the solid region.

  The user can set the T bc on the 'top' patch of the solid.

  The new keyword is 'internal' and its default is true. Check new
  tutorial for an example:

  tutorials/heatTransfer/buoyantSimpleFoam/roomWithThickCeiling/
2020-04-06 15:29:07 -07:00
f644d78bde Merge remote-tracking branch 'origin/master' into develop 2020-04-06 12:38:57 +02:00
e26568f2de CONFIG: add foamPackRelease -gitbase option 2020-04-06 12:29:50 +02:00
55b49ac0d0 CONFIG: bump patch level 2020-04-06 08:34:58 +02:00
a8b6d01b87 CONFIG: relocate wmake binaries into project platforms/tools (#1647)
- can aid when creating source-only or binary-only packages
2020-04-06 08:32:42 +02:00
8075804b18 COMP: add -pthread compile/link dependency for std::thread (#614) 2020-04-06 08:30:11 +02:00
497cdb50a3 ENH: add low-level handling for abaqus files (#1600)
- reads/write shell elements
  Output elements are "bunched" according to type and their set
  without reordering.

- preliminary reading of solids without extraction.
  Handling of *Surface specifications is not implemented
2020-04-03 19:11:52 +02:00
eeb050cca4 ENH: refine geometry and field scaling for nastran and raw surfaces (#1600)
- enhancement and potential breaking change.

  Nastran surface writer previously used the keyword 'scale' for
  field scaling, which was applied uniformly to all output fields.

  Change the meaning of 'scale' to be geometric scaling
  (consistent with reading triSurfaceMesh etc).

  New 'fieldScale' entry is an optional dictionary of scaling
  parameters.

  Example,

      nastran
      {
          scale   1000;     // [m] -> [mm]
          fieldScale
          {
             "p.*"   0.01;  // [Pa] -> [mbar]
          }
      }
2020-04-03 19:11:51 +02:00
cfd8873012 ENH: keep element ids when reading/writing meshed surfaces (#1600) 2020-04-03 19:11:51 +02:00
560c053bc8 ENH: support independent specification of surface read/write format (#1600)
- adjustments to internal handling to improve run-time addition of
  other formats (eg, with additional user library)

  For example, to write a binary STL with a '.stl' extension:

    $ surfaceMeshConvert input.obj  -write-format stlb  output.stl

  Or in a sampler,
  to specify the input type without ambiguity:

  surf
  {
      type        meshedSurface;
      surface     sampling.inp;

      fileType    starcd;
      scale       0.001;
      ...
  }

STYLE: regularize naming for input/output scaling

  * -read-scale   (compat: -scaleIn)
  * -write-scale  (compat: -scaleOut)

CONFIG: change edge/surface selection name for STARCD format

- now select as "starcd" instead of "inp" to avoid naming ambiguity
  with abaqus
2020-04-03 19:11:50 +02:00
a88e67f2e1 BUG: potential divide-by-zero in x3d surface output (#1212)
- eg, for a uniform field and auto range.
2020-04-03 15:38:58 +02:00
b4229841c0 BUG: Extension of commit d16f1312cb 2020-04-03 09:30:43 +01:00
ae14a1ef31 COMP: correct the internal reference types for surfMesh
- had a PrimitivePatch with SubField, but now use const pointField&.

  There is no derivation path from a pointIOField to SubField<point>,
  so a const reference makes more sense.
2020-04-02 23:19:46 +02:00
d79954869d STYLE: simplify IO routines for ac3d, types in isoSurface 2020-04-02 23:19:40 +02:00
7f32509abc STYLE: additional surface-related typedefs
- face_type, point_type (similar to STL value_type, etc).
  The naming avoids potential confusion with template parameters.

- rename private typedef from ParentType to MeshReference for more
  consistency with polySurface etc.
2020-04-02 23:18:09 +02:00
74bc5f327c BUG: triSurfaceMesh scaling applied twice
- regression introduced by 431c9632f9

  The triSurface dictionary constructor applies the scaling,
  and thus it can be reported, but not applied in triSurfaceMesh
2020-04-02 22:22:16 +02:00
617b60279c ENH: adjustments to error streams
- refactor common exit/abort code

- support single-parameter output. Eg,

    FatalError("some-executable")
        << "Cannot load something\n"
        << exit(FatalError);
2020-04-01 16:57:18 +02:00
01f6505442 ENH: add a Pstream::shutdown() method (#1660)
- previously used a Pstream::exit() invoked from the argList
  destructor to handle all MPI shutdown, but this has the unfortunate
  side-effect of using a fixed return value for the program exit.

  Instead use the Pstream::shutdown() method in the destructor and allow
  the normal program exit codes as usual. This means that the
  following code now works as expected.

  ```
  argList args(...);

  if (...)
  {
      InfoErr<< "some error\n";
      return 1;
  }
  ```
2020-04-01 12:33:39 +02:00
d16f1312cb BUG: P1 model - read qr field if present - see #1659 2020-04-01 10:29:28 +01:00
b2a3e9487f GIT: remove unused files
- orphaned file: extendedFeatureEdgeMeshI.H

- unused primitiveFaceZone typedef.
  Identical to indirectPrimitivePatch typedef
2020-04-01 10:32:15 +02:00
68b2f50365 STYLE: unique_ptr instead of manual management
- conversion, sampling, surfMesh
2020-03-30 11:34:35 +02:00
95f14621de ENH: support relative expansion for PDRblockMesh (#1655) 2020-03-31 16:59:53 +02:00
9b1c0786ce TUT: verificationAndValidation Allrun uses bash
STYLE: double-quote "$@" for isTest/notTest
2020-03-30 21:14:29 +02:00
8a4ea197cd ENH: allow use of std::unique_ptr directly as Foam::unique_ptr
- placed in stdFoam.H (as well as autoPtr.H) for general availability

STYLE: minor adjustments to autoPtr code layout
2020-03-25 13:21:11 +01:00
a5dbd27ddb CONFIG: update llvm versions 2020-03-25 13:21:11 +01:00
816e96e0f2 ENH: tuning wmake behaviour (#1647)
- preferentially handle Allwmake.override, which allows packaging
  tools to define alternative make scripts, or selectively disable
  components.

- remove legacy handling of 'Optional' directory.
  Conditionals have since migrated into scripts themselves and/or
  use the wmake/scripts/have_* framework.

BUG: missed passing -debug for Allwmake scripts
2020-03-25 10:41:29 +01:00
6849c008a1 ENH: support -case option for foamCleanTutorials, foamRunTutorials
- makes it easier to run/clean individual cases
2020-03-25 09:58:52 +01:00
11a4a659cb STYLE: avoid spurious ddt warning about unknown field (#1643) 2020-03-23 12:21:32 +01:00
89c21888a9 ENH: 'mag' postOperation returns scalar (#1622) 2020-03-23 11:14:57 +01:00
c589d1c90f COMP: Resolved compiler warning 2020-03-31 10:05:53 +01:00
0e6213e548 BUG: Correct interface after alphaEq in interCondensatingEvaporatingFoam 2020-03-30 10:32:35 -07:00
e50b2c04e1 ENH: Adding clipping information for limitTemperature FO 2020-03-30 10:32:35 -07:00
69861df91d COMP: snappyHexMesh: growing cellZones. See #1528 2020-03-30 17:14:43 +01:00
e1ca5806dc BUG: marshakRadiation: default to mixedfvPatch mapping. Fixes #1653 2020-03-30 17:08:39 +01:00
cffcbc343e BUG: snappyHexMesh: growing cellZones. Fixes #1528 2020-03-30 17:08:38 +01:00
4678638abb Merge branch 'region-model-mesh' into 'develop'
Enabled postProcess on film region for reactingParcelFoam

See merge request Development/openfoam!352
2020-03-27 09:35:50 +00:00
af34e61ef7 ENH: reactingParcelFoam - made film region mesh available for postProcess 2020-03-26 21:27:44 +00:00
5265a87223 ENH: regionModel - simplified construction of regionMesh - now owned by time db 2020-03-26 21:27:44 +00:00
179d9fd61d ENH: correct pow(complex, ..) functions (fixes #1638)
* Use cast for std::pow(??, z).
* No cast for std::pow(z, ??) - already properly specialized.
2020-03-19 12:31:49 +01:00
ba8d45c82d CONFIG: forces.cfg - updated output controls. See #1642 2020-03-18 18:21:32 +00:00
5f115371d1 STYLE: use bitSet class instead of PackedBoolList typedef 2020-03-18 17:21:34 +01:00
d0522f7300 STYLE: relocate duplicate versions of unionEqOp to ListOps 2020-03-18 17:21:34 +01:00
071d979ebb BUG: timeVaryingMapped: fixes #1640 2020-03-18 15:37:19 +00:00
75b9f2618b ENH: support sequencing of vtp/vtu files 2020-03-17 10:52:08 +01:00
3e3193aa5e Merge remote-tracking branch 'origin/master' into develop 2020-03-16 15:27:27 +01:00
80e4033810 CONFIG: bump patch level 2020-03-16 14:56:50 +01:00
794ab39742 BUG: missing output for foamDictionary -includes (closes #1635)
- log to stdout when explicitly enabled
2020-03-16 14:54:25 +01:00
2c3bfcc684 STYLE: incorrect file permissions (from commit 499933dbab) 2020-03-16 13:06:21 +01:00
fe17c8ad5f CONFIG: improve prefix matching for system libraries (#1607)
- missed detection of system libraries when installed with multiarch
  paths like /usr/lib/x86_64-linux-gnu

CONFIG: improve handling of group/user config files (#928)

- changed bashrc handling of FOAM_CONFIG_NOUSER to use
  FOAM_CONFIG_MODE instead. Propagate into foamEtcFile to make this
  a stickier control.

  This change allows better control, but also enables cluster
  installations to define their own value within the OpenFOAM prefs.sh
  file to prevent users accidentally mis-configuring things if
  necessary.

- remove undocumented handling of an (a)ll mode in foamEtcFile to
  avoid potential pitfalls.

- add support for FOAM_CONFIG_ETC handling.
  This allows injection of an extra search layer when finding
  project etc files

ENH: improvements to foamConfigurePaths (#928)

- handle FOAM_CONFIG_ETC implicitly, or explicitly with the new
  -etc option.

STYLE: more explicit wording in foamConfigurePaths usage (#1602)

- document that an absolute path (eg, -scotch-path) overrides/ignores
  the equivalent ThirdParty setting (eg, -scotch)

- longer options -system-compiler and -third-compiler for -system
  and -third, respectively. Clearer as to their purpose.

- adjust the location sanity check to look for META-INFO directory.
2020-03-16 12:03:58 +01:00
ac8b64df46 CONFIG: support FOAM_EXTRA_CXXFLAGS (#1256)
- allows custom tuning of compilation parameters
2020-03-16 12:03:58 +01:00
ba3a31af95 ENH: openfoam shell session - improved and relocated
- '-c' option (as per shell), '-Dkey[=value]' option to provide
  preferences via the command-line. For example,

      etc/openfoam -DWM_COMPILER=Clang -int64  ./Allwmake -j -s -l

  These can also be combined with other options. Eg,

      etc/openfoam -DWM_COMPILER=Clang \
          -c 'wmake -show-path-cxx -show-cxxflags'

- relocated from bin/tools/ => etc/ for easier access

- bin/tools/openfoam.in : for autoconfig-style installation

- Auto-detect if the shell script was executed with openfoam and
  interpret accordingly.

  Simple example,

      --------------
      #!/usr/bin/openfoam
      cd "${0%/*}" || exit   # Run -*-sh-*- from this dir

      blockMesh
      simpleFoam
      --------------

   Note it is NOT currently possible to provide any other parameters
   this way. Eg,

      `#!/usr/bin/openfoam -sp` (NOT)

   This will either fail to run, or result in infinite recursion.
2020-03-16 12:03:57 +01:00
c35e7a7bf1 ENH: support packing of modules-only tar files (#907)
- make tar-file generation more flexible
2020-03-16 11:33:37 +01:00
69a61bf835 BUG: objToVTK - corrected for empty lines in obj file. See #1632 2020-03-16 10:21:34 +00:00
1a6824f9e4 Merge remote-tracking branch 'origin/master' into develop 2020-03-13 12:41:33 +00:00
989fda3b18 BUG: BSpline - only snap to points at ends and not intermediate knots. See #1628 2020-03-13 10:43:10 +00:00
38334ed15a Merge branch 'feature-surface-handling' into 'develop'
Feature surface handling

See merge request Development/openfoam!343
2020-03-12 16:37:39 +00:00
5a395dde0f ENH: support for patch subsets on a sampled mesh (#1600) 2020-03-12 16:20:57 +01:00
06c4dc34ee ENH: adjust sampling onto meshed surfaces (#1600)
- base level surface container is now a meshedSurface instead of
  a triSurface. This avoid automatic triangulation of surfaces
  when they are read, and simplifies the internals.

- sampling types:
  * "meshedSurface" (compat: "sampledTriSurfaceMesh")
  * "meshedSurfaceNormal" (compat: "sampledTriSurfaceMeshNormal")
2020-03-12 16:20:57 +01:00
e3d4443871 ENH: improve surfaceSplitByPatch controls (#1600)
- uses MeshedSurface instead of triSurface to prevent automatic
  triangulation.

- supports '-patches' and '-excludePatches' controls as per foamToVTK.
  For example,

    surfaceSplitByPatch -patches '( ".*rider.*" )'  motorBike.obj

ENH: use MeshedSurface for surfaceSubset
2020-03-12 16:20:57 +01:00
465630bbb0 ENH: code cleanup in MeshedSurface (#1600)
- removed swapZones method (unused, potentially fragile)

- add subsetMesh by name

BUG: incorrect zone assignment in MeshedSurface::subsetMesh

- used the new (zero-sized) zone when determining the old zone ending
  instead of the original zone bounds.
2020-03-12 16:20:57 +01:00
408f252d64 ENH: regularize surfaceFormat writers (#1600)
- use local branching for face maps to reduce code complexity
  and duplication
2020-03-12 16:20:57 +01:00
431c9632f9 ENH: add IOobject-based constructors for meshed surfaces (#1600)
- refactor logic from triSurfaceMesh for triSurface, MeshedSurface,
  UnsortedMeshedSurface.

  Makes it easier to locate and use surface files without the
  triSurfaceMesh (meshTools) infrastructure.

STYLE: remove unused sampledTriSurfaceMesh constructors
2020-03-12 16:20:56 +01:00
de4c728e12 STYLE: use List::found() instead of deprecated findIndex function 2020-03-12 13:05:42 +01:00
6744a2102b Merge remote-tracking branch 'origin/master' into develop 2020-03-12 11:35:26 +01:00
28d24fefbc CONFIG: bump patch level 2020-03-12 11:34:14 +01:00
161c66df17 BUG: incorrect EnSight lagrangian fields in parallel (fixes #1629) 2020-03-12 11:13:23 +01:00
30d9cfa7c2 STYLE: remove trailing space, use Enum::get() 2020-03-12 10:17:49 +01:00
3df281b367 SUBMODULE: update OpenQBMM 2020-03-12 10:04:45 +01:00
8e27022ea2 STYLE: find(), cfind() methods instead of lookupPtr()
- coordinateSystems, DictionaryBase
2020-03-11 22:05:15 +01:00
a18617bbd1 ENH: add line number for dictionary getCheck errors 2020-03-11 19:54:51 +01:00
418248709f BUG: Corrected update of T field for energyJump[AMI]FvPatchScalarField. See #1624 2020-03-11 17:47:19 +00:00
6ab699633d ENH: wallHeatFlux - separated field and log writing. Fixes #1613 2020-03-11 17:45:25 +00:00
97ff8fee20 BUG: matrix checking: Fixes #1626 2020-03-11 16:48:32 +00:00
b69360fec3 Merge branch 'feature-turbModel-access' into 'develop'
ENH: improve access to the inner content of turbulence models

See merge request Development/openfoam!344
2020-03-11 16:32:20 +00:00
2319762cda ENH: register internal fields of kOmegaSST 2020-03-11 16:31:42 +00:00
d7622d1ef8 ENH: add virtual omega to turbulenceModels
STYLE: update dimensionSets in SpalartAllmaras
2020-03-11 16:31:42 +00:00
aa9be5b5cd ENH: nearWallFields - updated construction of sampled field. Fixes #1620 2020-03-11 15:26:46 +00:00
0eecec4811 ENH: Added GeometricField copy constructor with additional BC handling. See #1620
Often we want to copy a field and replace boundary conditions, e.g. change type
to calculated for some patches.  This has typically been achieved by creating a
word list of new patch types which are then fed through to the fvPatchField::New
factory method.  This is OK for types that require no additional input (usually
from dictionary) but leaves other more complex types partially
constructed/usable.

The new constructor clones all BCs except those with indices specified, for
which the fvPatchField::New method is called for the supplied patch field type.
2020-03-11 15:26:46 +00:00
149c1b66f3 COMP: mpi: missing cast in debug message 2020-03-11 15:19:44 +00:00
a47fc3ded8 STYLE: polyMesh: remove duplicated code. 2020-03-11 13:54:09 +00:00
6ae359f662 Merge branch 'feature-pipecg' into 'develop'
ENH: lduMatrix: new matrix solvers: PPCG,PPCR

See merge request Development/openfoam!334
2020-03-11 13:53:04 +00:00
ab4bfaeee3 ENH: lduMatrix: new matrix solvers: PPCG,PPCR
PPCG is pipelined version of PCG, PPCR is conjugate
residual version.
2020-03-11 13:53:03 +00:00
2c4b639e1f ENH: 'mag' postOperation for surfaceFieldValue (#1622)
- support postOperation for volFieldValue as well
2020-03-11 11:59:04 +01:00
6f230a8b67 COMP: Corrections for icc compiler. Fixes #1608 2020-03-03 17:00:35 +00:00
ca28377642 BUG: Resolve circular call to ::write(Ostream&). See #1617 2020-03-03 11:17:11 +00:00
18e53c3c06 BUG: Fixes issue #1606
Proper counting of regime on faces of the patch
2020-02-28 11:56:06 -08:00
7e8a215506 Merge branch 'feature-analytic-eigen-small-offdiag' into 'develop'
ENH: improve analytic eigen for small off-diagonals

See merge request Development/openfoam!342
2020-02-28 10:50:50 +00:00
6576397e81 ENH: improve analytic eigen for small off-diagonals 2020-02-28 10:49:58 +00:00
b476dd92e6 ENH: improvements for nastran surface writer (#1571)
- avoid face copying.
  Maintain separate offsets/list for non tri/quad face decomposition,
  which eliminates copying for tri/quad types that represent the bulk
  of geometries

- report inappropriate use of PLOAD2 for higher-ranks only once per
  field instead of per face.  For this case, write its magnitude
  instead of 0.

- perform field output scaling prior to calling the write face
  function. This will make it easier to handle different per-field
  scaling in the future (#1612)

BUG: nastran quad written as "CTRIA3" instead of "CQUAD4"
2020-02-27 13:16:40 +01:00
fc26fb758d ENH: add stringListOps with whitelist/blacklist matching
- refactored from ensightMesh, foamToVTK, surfaceMeshExtract

STYLE: use wordRes matching() method instead of findString() function
2020-02-26 21:40:09 +01:00
a456e9ae92 STYLE: relocate nonCoupledBoundaryTree into meshSearcher
- use point::uniform in more places
2020-02-24 18:41:02 +01:00
3835734f6a DEFEATURE: remove further remnants of surfMesh samplers
- continuation of commit 57d2eabc6f (2019-02-22)
2020-02-24 18:17:56 +01:00
5ba2cbc54f CONFIG: improve prefix matching for system libraries (#1607)
- missed detection of system libraries when installed with multiarch
  paths like /usr/lib/x86_64-linux-gnu

CONFIG: improve handling of group/user config files (#928)

- changed bashrc handling of FOAM_CONFIG_NOUSER to use
  FOAM_CONFIG_MODE instead. Propagate into foamEtcFile to make this
  a stickier control.

  This change allows better control, but also enables cluster
  installations to define their own value within the OpenFOAM prefs.sh
  file to prevent users accidentally mis-configuring things if
  necessary.

- remove undocumented handling of an (a)ll mode in foamEtcFile to
  avoid potential pitfalls.

- add support for FOAM_CONFIG_ETC handling.
  This allows injection of an extra search layer when finding
  project etc files

ENH: improvements to foamConfigurePaths (#928)

- handle FOAM_CONFIG_ETC implicitly, or explicitly with the new
  -etc option.

STYLE: more explicit wording in foamConfigurePaths usage (#1602)

- document that an absolute path (eg, -scotch-path) overrides/ignores
  the equivalent ThirdParty setting (eg, -scotch)

- longer options -system-compiler and -third-compiler for -system
  and -third, respectively. Clearer as to their purpose.

- adjust the location sanity check to look for META-INFO directory.
2020-02-24 16:00:16 +01:00
083181cac4 ENH: handle entry alternatives outside of string expansion
- string expansions have supported "${var:-default}" syntax for
  several versions, but this did not apply plain dictionary expansions.

  Eg, the following did not parse

     massFlow  ${entry1:-100};

ENH: remove content and length restriction on '${..}' quoted variables

- allows this type of content:

     velocity2  ${velocity1:- ( 0 -100 10) };

- accept empty parameter strings for entries. This allows the
  following expansion to work as expected:

      hex (n1 n2..)  ${inletBlock:-} (10 10 10) simpleGrading (1 1 1)

  ie, optionally define the cellZone name for a given block

ENH: add single parameter dictionary writeEntry method.

- the dictionary knows its own name (dictName), which can be used
  when writing content
2020-02-21 14:37:11 +01:00
3c9c39e92a STYLE: use data/cdata instead of begin when accessing raw content 2020-02-21 12:32:12 +01:00
a054f31857 STYLE: remove dubious bool list initialization 2020-02-21 11:56:43 +01:00
4e6caf8d61 STYLE: return Switch by value, not const-reference 2020-02-21 11:44:29 +01:00
86fe2b7bc9 STYLE: remove dead code, refactor constructors in extrudePatchMesh 2020-02-21 11:13:22 +01:00
585ee0fe89 COMP: fix construct assignment from tmp (clang) 2020-02-21 10:08:47 +01:00
40e00fab01 STY: Updating multiphase tutorial settings 2020-02-20 09:04:11 -08:00
2892b78d72 CONFIG: support FOAM_EXTRA_CXXFLAGS (#1256)
- allows custom tuning of compilation parameters
2020-02-20 12:18:12 +01:00
fbbf9064b9 STYLE: remove trailing space, shell quoting
- emit "constant " and "uniform " as separate word/space combination
2020-02-20 10:11:23 +01:00
2d416a68a0 CONFIG: bump API to 2002
- changes in IOstreamOption, Switch, writeObject
2020-02-19 23:36:47 +01:00
5f93f20652 ENH: add stringOps::inplaceRemoveSpace()
Style changes:
  - use std algorithm for some stringOps internals
  - pass SubStrings iterators by const reference

ENH: special nullptr handling for ISstream getLine
  - pass through to istream::ignore to support read and discard
2020-02-19 23:36:46 +01:00
6b3b6bb99f ENH: add stream format options for surface writers (#1595)
- additional boundaryData options (header, binary, compression)

- remove vtkSurfaceWriter "writePrecision" keyword (1806 compatibilty)
  and use "precision" in format option sub-dictionary.
2020-02-19 21:30:55 +01:00
514751dcf7 STY: General clean up 2020-02-19 10:40:56 -08:00
83c06f1ace Merge branch 'feature.interPCFoam' into 'develop'
Feature.interPCFoam

See merge request Development/openfoam!338
2020-02-19 15:33:39 +00:00
1319144a72 STYLE: stefanProblem: cleanup. 2020-02-19 14:18:25 +00:00
31eb7c61b5 ENH: interfaceHeight: avoid tracking to corner point 2020-02-19 14:18:25 +00:00
4abb2153a1 STY: Updating headers for tutorial 2020-02-19 14:18:25 +00:00
499933dbab ENH: Adding features for phase change solvers
1) Adding interfaceHeight FO
2) Adding interfaceHeatResistance mass transfer model to
   interCondensatingEvaporatingFoam with spread source approach
3) Reworking framework for icoReactingMultiphaseInterFoam
2020-02-19 14:18:25 +00:00
2ee9315532 Merge branch 'feature-writeObject' into 'develop'
Feature write object

See merge request Development/openfoam!341
2020-02-19 09:26:35 +00:00
8498e3f516 ENH: reduce some overhead in fileOperations
- more consistent handling of file format (#1587)
2020-02-19 09:25:33 +00:00
42299dca22 ENH: use IOstreamOption for writeObject() calls.
- reduces the number of parameters that are being passed around
  and allows future additions into the IOstreamOption with mininal
  effort.
2020-02-19 09:25:33 +00:00
9be1772e0c BUG: surfaceInertia analytic eigendecomposition (fixes #1599)
- was missing cast to symmTensor
2020-02-19 10:14:57 +01:00
e3f681fa59 ENH: support use of IOstreamOption for IFstream/OFstream
- can be convenient to bundle IO options as a single parameter
2020-02-18 21:51:36 +01:00
f3106ec146 STYLE: use unique_ptr for Fstream resource management
STYLE: change return type of NewOFstream from Ostream to OSstream
2020-02-18 21:51:35 +01:00
3135dcf2a9 ENH: support IOstreamOption in abstract stream types
- expose the write IOstreamOption in Time
2020-02-18 21:51:35 +01:00
33f9ae5080 ENH: improvements to IOstreamOption
* Support default values for format/compress enum lookups.

  - Avoids situations where the preferred default format is not ASCII.
    For example, with dictionary input:

        format binar;

    The typing mistake would previously have caused formatEnum to
    default to ASCII. We can now properly control its behaviour.

        IOstream::formatEnum
        (
            dict.get<word>("format"), IOstream::BINARY
        );

    Allowing us to switch ascii/binary, using BINARY by default even in
    the case of spelling mistakes. The mistakes are flagged, but the
    return value can be non-ASCII.

* The format/compression lookup behave as pass-through if the lookup
  string is empty.

  - Allows the following to work without complaint

      IOstream::formatEnum
      (
          dict.getOrDefault("format", word::null), IOstream::BINARY
      );

  - Or use constructor-like failsafe method

      IOstream::formatEnum("format", dict, IOstream::BINARY);

  - Apply the same behaviour with setting stream format/compression
    from a word.

       is.format("binar");

    will emit a warning, but leave the stream format UNCHANGED

* Rationalize versionNumber construction

  - constexpr constructors where possible.
    Default construct is the "currentVersion"

  - Construct from token to shift the burden to versionNumber.
    Support token as argument to version().

    Now:

        is.version(headerDict.get<token>("version"));

    or failsafe constructor method

        is.version
        (
            IOstreamOption::versionNumber("version", headerDict)
        );

    Before (controlled input):

        is.version
        (
            IOstreamOption::versionNumber
            (
                headerDict.get<float>("version")
            )
        );

    Old, uncontrolled input - has been removed:

        is.version(headerDict.lookup("version"));

* improve consistency, default behaviour for IOstreamOption construct

  - constexpr constructors where possible

  - add copy construct with change of format.

  - construct IOstreamOption from streamFormat is now non-explicit.
    This is a commonly expected result with no ill-effects
2020-02-18 21:51:35 +01:00
bb53e8adb3 ENH: adjustments to Switch
- align Switch more with Enum.
  Now have find(), found() static methods.
  Constructors with failsafe option.

  The find() method makes for clearer coding:

  OLD

     Switch sw(some_string, true); // NB: true = allowBad

     if (sw.valid()) ...

  NOW

     Switch sw = Switch::find(some_string);

     if (sw.good()) ...

  or

     if (Switch::found(some_string)) ...

- improve construct from dictionary to handle all valid token types.
  Previously just read in a word.

- Remove asText() method - replaced by c_str() and str() several
  versions ago.
2020-02-18 21:51:35 +01:00
ed4bd54846 STYLE: provide return value for IOstream::fatalCheck()
- allows reuse as base implementation for IOstream::check()
2020-02-18 17:02:45 +01:00
ac709da3ac STYLE: FatalError instead of warning for handling deprecated field format
- The warning in Field.C has been emitted since 2005.
- The warning in mappedPatchBase.C has been emitted since 2012.
2020-02-18 17:02:45 +01:00
2834193c27 STYLE: remove "originalVersion" face handling
- an old pre-OpenFOAM transitional feature (prior to 2004)
  for named faces.
2020-02-18 17:02:44 +01:00
9ee870e09c ENH: impose type-narrowing for Ensight output 2020-02-18 17:02:44 +01:00
fedcbff6f4 ENH: provide narrowFloat, narrowInt32 definitions
- underflow/overflow handling for type narrowing.
  Eg, double -> float, int64 -> int32
2020-02-18 17:02:44 +01:00
4e1bc2d2f1 COMP: incorrect placement of compiler attributes 2020-02-18 13:51:20 +01:00
d7969b1ba4 ENH: preserve tokenized directive and variable types 2020-02-18 13:51:20 +01:00
4307e1719f STYLE: adjust names, locations for fileFormats
- renamed 'core/' -> 'base/' to avoid gitignore masking when re-adding
  files

- rename 'nas/' to 'nastran/' for more clarity

- relocated OBJstream from surfMesh to fileFormats

STYLE: remove unused parseNASCoord. Was deprecated 2017-09
2020-02-18 13:51:20 +01:00
fbb371dda4 STYLE: avoid extraneous c_str() for OFstream construct 2020-02-18 13:51:20 +01:00
0e1c9b0af7 Merge branch 'feature-analytic-eigen' into 'develop'
ENH: Improve polynomial equations and analytical eigendecompositions

See merge request Development/openfoam!340
2020-02-18 12:23:46 +00:00
55e7da670c ENH: improve analytical eigendecompositions
- `tensor` and `tensor2D` returns complex eigenvalues/vectors
  - `symmTensor` and `symmTensor2D` returns real eigenvalues/vectors
  - adds new test routines for eigendecompositions
  - improves numerical stability by:
    - using new robust algorithms,
    - reordering the conditional branches in root-type selection
2020-02-18 12:21:01 +00:00
6a53794e0a STYLE: reorder global funcs and opers in Tensor types
- In the course of time, global funcs/opers of Tensor types expanded
    leaving funcs/opers unordered.

  - Therefore, by following the order designated in Matrix class, the order
    of global funcs and global opers are reordered:
    - oper+ oper- oper* oper/ inner-product double-inner-product outer-product
2020-02-18 12:21:01 +00:00
66b02ca5ca ENH: improve funcs and opers in Tensor types
- ensures each Tensor-container operates for the following base types:
    - floatScalar
    - doubleScalar
    - complex

  - adds/improves test applications for each container and base type:
    - constructors
    - member functions
    - global functions
    - global operators

  - misc:
    - silently removes `invariantIII()` for `tensor2D` and `symmTensor2D`
      since the 3rd invariant does not exist for 2x2 matrices
    - fixes `invariantII()` algorithm for `tensor2D` and `symmTensor2D`
    - adds `Cmpt` multiplication to `Vector2D` and `Vector`
    - adds missing access funcs for symmetric containers
    - improves func/header documentations
2020-02-18 12:21:01 +00:00
8ca724fffa ENH: improve stability in polynomialEqns
- replaces floating-point equal comparisons in
    `linearEqn`, `quadraticEqn`, and `cubicEqn`,
  - ensures `quadraticEqn` and `cubicEqn` can return `complex` roots,
  - reorders if-branches in `quadraticEqn` and `cubicEqn` to avoid
    zero-equal comparison,
  - adds Kahan's cancellation-avoiding algorithm into `quadraticEqn` and
    `cubicEqn` for the numerically-sensitive discriminant computation,

  - adds/improves `polynomialEqns` tests:
    * adds Test-linearEqn.C
    * adds Test-quadraticEqn.C
    * improves Test-cubicEqn.C
2020-02-18 12:21:01 +00:00
97bdd5bc04 Merge branch 'feature-ensight-parts' into 'develop'
Feature ensight parts

See merge request Development/openfoam!339
2020-02-18 11:10:42 +00:00
a97628121c ENH: overhaul ensight handling (#1579)
- includes restructuring and simplification of low-level ensight part
  handling and refactor of backends to improve code reuse.

foamToEnsight
-------------

  * new cellZone support.
    This was previously only possible via a separate foamToEnsightParts
    utility that was not parallelized.

  * support for point fields.

  * `-nearCellValue` option (as per foamToVTK)

  * data indexing now uses values from the time index.
    This is consistent with the ensightWrite function object and
    can help with restarts.

  * existing ensight directories are removed, unless the -no-overwrite
    option is supplied

foamToEnsightParts
------------------
  * now redundant and removed.

ensightOutputSurface (new class)
--------------------------------
  * a lightweight wrapper for point/face references that is tailored
    for the ensightSurfaceWriter. It uses compact face/point information
    and is serial only, since this is the format requirements from the
    surfaceWriter class.

ensightMesh (revised class)
---------------------------
  * now only holds a polyMesh reference, which removes its dependency
    on finiteVolume and allows it to be relocated under fileFormats
    instead of conversion.

Removed classes: ensightParts, ensighPartFaces, ensightPartCells

- these were used by foamToEnsightParts, but not needed anymore.
2020-02-18 11:09:43 +00:00
c7e8f22baf ENH: improve ensightFile output support (#1579)
- indirect lists, lists of labels
- writeString() methods to avoid any ambiguities

- support handling of mixed element/node data in ensightCase
2020-02-18 11:09:43 +00:00
79cf72d573 BUG: foamListTimes does not remove collated directories (fixes #1588)
- also now report any verbosity on stderr

- fix similar collated directories issue for foamRestoreFields
2020-02-14 17:44:49 +01:00
a65b9fdd7c BUG: file format mangled by collated format (fixes #1587)
- incorrectly set BINARY format in the construction of the received
  data (a side-effect of the parameter ordering).

  Now use the same default parameters as IFstream and set the correct
  filename subsequent to construction.
2020-02-13 09:04:13 +01:00
92214eb4af CONFIG: misedit of csh mpi settings with foamConfigurePaths 2020-02-12 21:28:30 +01:00
4fea7b3bb4 BUG: SPDP: PrecisionAdaptor copies input list. Fixes #1590. 2020-02-12 17:27:41 +00:00
09db19c3f0 Merge remote-tracking branch 'origin/master' into develop 2020-02-12 17:13:34 +00:00
80b5d3a1a0 ENH: blockMesh: protect face projection from misses. Fixes #1591. 2020-02-12 17:13:11 +00:00
ec3de7128c STYLE: adjust logic names for point-values in foamToVTK 2020-02-12 18:03:50 +01:00
ff19bedbc3 BUG: SPDP mode: guaranteeing initial value. Fixes #1590.
In differing precisions the PrecisionAdaptor will copy
the input array element by element and this can trigger
NaN detection.
2020-02-12 16:54:05 +00:00
f90de02159 ENH: openfoam shell session - improved and relocated
- '-c' option (as per shell), '-Dkey[=value]' option to provide
  preferences via the command-line. For example,

      etc/openfoam -DWM_COMPILER=Clang -int64  ./Allwmake -j -s -l

  These can also be combined with other options. Eg,

      etc/openfoam -DWM_COMPILER=Clang \
          -c 'wmake -show-path-cxx -show-cxxflags'

- relocated from bin/tools/ => etc/ for easier access

- bin/tools/openfoam.in : for autoconfig-style installation

- Auto-detect if the shell script was executed with openfoam and
  interpret accordingly.

  Simple example,

      --------------
      #!/usr/bin/openfoam
      cd "${0%/*}" || exit   # Run -*-sh-*- from this dir

      blockMesh
      simpleFoam
      --------------

   Note it is NOT currently possible to provide any other parameters
   this way. Eg,

      `#!/usr/bin/openfoam -sp` (NOT)

   This will either fail to run, or result in infinite recursion.
2020-02-12 17:48:09 +01:00
d483123cef STYLE: limit foamEtcFile -show-api to querying the META-INFO/api-info
- simplifies code, covers most cases.
  Can use wmake -show-api or wmakeBuildInfo to query the make rules.

STYLE: Allwmake script adjustments

- use bin/foamEtcFile instead of relying on PATH.
  The make environment may not have the OpenFOAM bin/ in it.

- simpler shell syntax
2020-02-12 17:48:09 +01:00
8ab37e13e2 ENH: foamFormatConvert: leave boundary intact. Fixes #1358. 2020-02-12 15:04:05 +00:00
8e63f084b1 ENH: improve type consistency for HashTable iterators (#1563) 2020-02-11 11:00:30 +01:00
beebe4e214 STYLE: fix shell syntax 2020-02-10 17:02:30 +01:00
49e63378f8 TUT: corrected link to online case. Fixes #1584 2020-02-10 11:44:20 +00:00
531f6d9ea2 TUT: add inner-region cellZone to simpleFoam/motorBike
- useful for post-processing and data conversion tests
2020-02-07 17:00:20 +01:00
553c01d52e CONFIG: bin/tools/query-versions
- Query the etc/config.sh values for ThirdParty software.
  Usable without an active OpenFOAM environment.
2020-02-07 17:11:49 +01:00
739bc3c4af COMP: add -pthread compile/link dependency for std::thread (#614) 2020-02-07 11:06:06 +01:00
9da83a3e4f ENH: snappyHexMesh: allow cellZone erosion in parallel. See #1528.
Issues:
- neighbouring processors use different ray since always from
owner cc to nbr cc
- growing cellZones did not correctly unmark intersections
- stand-alone baffles now always removed (if inside 'grow' region,
i.e. within 1 cell of cellZone)
2020-02-06 12:40:34 +00:00
01c14532bd ENH: checkMesh: write cellZone, faceZone info. See #1543. 2020-02-06 12:36:26 +00:00
1b47034e24 ENH: Pstream: use native reduce in SPDP mode. Fixes #1574. 2020-02-06 12:36:26 +00:00
92a148e9e5 CONFIG: provide separate default settings for clang/gcc (fixes #1566)
- the foamConfigurePaths script is quite simplistic and aggressive in
  what it changes. This was particularly evident when using it to
  change gcc/clang versions.

  Restructured the corresponding compiler settings to define default
  versions (eg, "default_gcc_version") that limits the scope of
  changes performed by foamConfigurePaths and makes it easier to
  understand if changing manually.
2020-02-06 12:36:26 +00:00
53dec91cc2 COMP: add -help-man for Test-dummyLib (minimal packaging tests) 2020-02-06 10:06:20 +01:00
e693f21d69 STYLE: use ListOps::appendEqOp instead of local version
BUG: bad buffer size in globalMeshData::sharedPoints()

- introduced by vector::zero -> Zero replacement (commit 683cfb9d97)
2020-02-06 08:39:46 +01:00
a100b49606 BUG: csh ignores additional parameters (fixes #1582) 2020-02-05 10:27:38 +01:00
44e3860888 BUG: regression in FixedList find() method (from 8629755f69) 2020-02-03 16:07:42 +01:00
e53419c025 ENH: Pstream: use native reduce in SPDP mode. Fixes #1574. 2020-02-03 11:29:06 +00:00
81015889f2 CONFIG: provide separate default settings for clang/gcc (fixes #1566)
- the foamConfigurePaths script is quite simplistic and aggressive in
  what it changes. This was particularly evident when using it to
  change gcc/clang versions.

  Restructured the corresponding compiler settings to define default
  versions (eg, "default_gcc_version") that limits the scope of
  changes performed by foamConfigurePaths and makes it easier to
  understand if changing manually.
2020-02-03 11:05:04 +01:00
0bc59af983 ENH: snappyHexMesh: allow cellZone erosion. Fixes #1528. 2020-02-03 09:29:10 +00:00
87b3006566 STYLE: backslash doxygen commands, email address, typos in error messages 2020-01-31 17:06:30 +01:00
8629755f69 STYLE: code consistency in find/rfind methods 2020-01-31 17:05:57 +01:00
822d052e32 ENH: added IndirectSubList
- provides an indirect access to a sub-section of a list that is
  somewhat less efficient than a Foam::SubList, but supports the
  following:
    * adjustment of its addressing range after construction
    * recovery of the original, underlying list at any time

  This can be more convenient for some coding cases.
  For example,

      template<class Addr>
      void renumberFaces(IndirectListBase<face, Addr>& faces, ...);

  which can be called for

      * Specific faces:
        UIndirectList<face>(mesh.faces(), facesToChange)

      * A sub-range of faces:
        IndirectSubList<face>(mesh.faces(), pp.range())

      * All faces:
        IndirectSubList<face>(mesh.faces())

CONFIG: added IndirectListsFwd.H with some common forwarding
2020-01-31 17:01:22 +01:00
9c85d40cc6 Merge remote-tracking branch 'origin/master' into develop 2020-01-31 16:53:36 +01:00
d18a5be82d CONFIG: specify OpenQBMM module url with ".git" ending 2020-01-31 14:04:09 +01:00
d3bcc71b64 COMP: avoid -Wstringop-truncation warning
- the gcc c++/9 includes now inline strncpy, which obliterates
  the previous method of suppressing the warning.
  Now simply allocate additional space for the nul character.

COMP: silence some icc warnings
2020-01-31 13:32:24 +01:00
7da7907eac Merge branch 'comp-generated-methods' into 'develop'
Generated methods

See merge request Development/openfoam!335
2020-01-30 12:39:48 +00:00
4ecc6ccfca ENH: declare generated methods for vector-space, primitives
- make read construct from Istream explicit

BUG: sph(const SymmTensor2D<Cmpt>&)

- had incorrect constant, but the 2D routines still need more attention
 (#1575)
2020-01-30 12:38:28 +00:00
6953760460 ENH: declare generated methods for containers 2020-01-30 12:38:28 +00:00
b2713d2324 ENH: declare generated methods for lagrangian and thermo/functions 2020-01-30 12:38:27 +00:00
370d1a4589 CONFIG: bump patch level 2020-01-29 18:35:01 +01:00
9a4851268e GIT: update reference for modules/adios (stale tag at time of release) 2020-01-29 18:32:37 +01:00
f62a86575b Merge branch '1912-generated-methods' into 'master'
COMP: backport of updates for gcc-92 compilation

See merge request Development/openfoam!336
2020-01-29 16:54:16 +00:00
c83cc8cb35 STYLE: lagrangian: debug to Pout, not Info 2020-01-29 14:58:43 +00:00
f7d4e8a8e8 BUG: searchableExtrudedCircle: incorrect search sphere. Fixes #1567. 2020-01-29 14:58:43 +00:00
fdece1d7dd Merge branch 'tutorial-review.kbc' into 'develop'
TUT: cleanup compressible tutorials

See merge request Development/openfoam!337
2020-01-29 12:42:39 +00:00
cee3dab140 TUT: cleanup compressible tutorials
- for all tutorial cases:
     - correct/uniformize dict-style
     - rm redundant dict entries

 - compressible.overRhoPimpleDyMFoam.twoSimpleRotors: rm redundant file: pointDisplacement
 - compressible.overRhoSimpleFoam.hotCylinder
 - compressible.rhoCentralDyMFoam.movingCone
 - compressible.rhoCentralFoam.forwardStep: activate purgeWrite=10
 - compressible.rhoCentralFoam.LadenburgJet60psi: rm redundant files: mapFieldsDict & sample
 - compressible.rhoCentralFoam.shockTube: rm redundant file: sample; command: cleanSample
 - compressible.rhoPimpleFoam.laminar.sineWaveDamping: rm redundant file: V; activate purgeWrite=10
 - compressible.rhoPimpleFoam.LES.pitzDaily: activate purgeWrite=10
 - compressible.rhoPimpleFoam.RAS.aerofoilNACA0012: activate purgeWrite=10
 - compressible.rhoPimpleFoam.RAS.angledDuct: add Allclean
 - compressible.rhoPimpleFoam.RAS.mixerVessel2D: add Allclean; rm makeMesh
 - compressible.rhoPimpleFoam.RAS.angledDuctLTS: add Allclean
 - compressible.rhoPimpleFoam.RAS.TJunctionAverage
 - compressible.rhoPorousSimpleFoam.angledDuct
 - compressible.rhoSimpleFoam.aerofoilNACA0012
 - compressible.rhoSimpleFoam.angledDuctExplicitFixedCoeff
 - compressible.rhoSimpleFoam.squareBend
 - compressible.rhoSimpleFoam.gasMixing.injectorPipe
 - compressible.sonicDyMFoam.movingCone: rm redundant file: cuttingPlane
 - compressible.sonicFoam.laminar.shockTube
 - compressible.sonicFoam.RAS.nacaAirfoil
 - compressible.sonicFoam.RAS.prism
2020-01-29 12:26:36 +00:00
f55da4b690 ENH: allow datToFoam writing points dict directly
- refactors the corresponding tutorial by removing redundant files and items:
    compressible/rhoCentralFoam/biconic25-55Run35
2020-01-29 12:26:36 +00:00
e252ec46dc COMP: backport of updates for gcc-92 compilation 2020-01-28 16:09:18 +01:00
21de95bb81 COMP: exprResultGlobals typo in FULLDEBUG 2020-01-28 16:09:14 +01:00
ae40bd9f9b STYLE: use guards for dictionary lookup() 2020-01-28 11:57:23 +01:00
500a3b62ca STYLE: declare generated methods for blockDescriptor
- remove stray, unused file
2020-01-28 11:57:23 +01:00
056fb32f8f SUBMODULE: update OpenQBMM, visualization 2020-01-28 11:57:22 +01:00
9338f0b860 ENH: adjust wrapping routines for new vtkCellArray definition
- the vtkCellArray internal structure was still largely oriented on
  the VTK legacy format, but has now been revised.
  https://gitlab.kitware.com/vtk/vtk/merge_requests/5682

  The `VTK_CELL_ARRAY_V2` define from vtkCellArray.h indicates
  that the newer version is being used.

* In VTK-8.2.0 and older, sizes are interwoven (prefixed) in the
  connectivity.

  Connectivity: [n1, verts..., n2, verts... ]

  When using these in vtkUnstructuredGrid, also needed a secondary
  list of offsets for each of the starting locations.

* The update version now resembles a CompactListList. For example

  Connectivity: [verts..., verts... ]
  Offsets:      [0, n1, n1+n2, n1+n2+n3... ]

  The offsets are properly handled within vtkCellArray, and dropped as
  an additional input for vtkUnstructuredGrid.
2020-01-28 11:57:22 +01:00
3be7610710 BUG: incorrect Nastran surface output and segmentation faults #1571
- indexing error in the output of values resulted in uniform output in
  most cases.

- allocation error for on-the-fly triangulation

ENH: changed decomposed storage from DynamicList to plain faceList for
clearer allocation control and better overhead
2020-01-27 12:34:41 +01:00
f4ee841c6d STYLE: adjust code format for trackingData
- rationalized some layout and comments
2020-01-23 17:10:39 +01:00
0a9295b219 Merge branch 'enh-streams' into 'develop'
ENH: stream adjustments

See merge request Development/openfoam!332
2020-01-23 15:43:56 +00:00
0ff0271392 ENH: stream adjustments
- make stream constructors explicit

- remove "using std::ifstream", "using std::iofstream" statements
  for a cleaner namespace.

* copy/move assignments for ITstream

* IStringStream: default construct and construct from std::string
  instead of Foam::string

- reduce some overhead in masterOFstream

- simplify Pstream handling of string variants (#1525)
2020-01-23 16:34:43 +01:00
2270f649d7 Merge branch 'submodule-visualization' into 'develop'
Submodule visualization

See merge request Development/openfoam!331
2020-01-23 14:24:31 +00:00
449ba56750 CONFIG: bump API to 2001 2020-01-23 14:22:27 +01:00
7cec644ea2 SUBMODULE: added visualization submodule
- this submodule (https://develop.openfoam.com/modules/visualization)
  consolidates VTK-related visualization routines:

    * catalyst
    * paraview-plugins
    * runTimePostProcessing

  A benefit of this is make it easier to mix and match
  different combinations of VTK/ParaView versions and capabilities
  (Eg, MESA, MPI etc).

The catalyst submodule is now obsolete
2020-01-23 14:22:27 +01:00
ae5c7dab36 DEFEATURE: remove runTimePostProcessing (migrate to submodule) 2020-01-23 14:22:26 +01:00
de57d2da7e DEFEATURE: remove paraview reader modules (migrate to submodule) 2020-01-23 14:04:23 +01:00
858f0f2ccc GIT: remove leading "modules/" qualifier on the OpenQBMM module name 2020-01-23 13:59:13 +01:00
a48d258ab8 Merge branch 'submodule-openqbmm' into 'develop'
SUBMODULE: added OpenQBMM submodule - see #1522

See merge request Development/openfoam!330
2020-01-23 12:39:55 +00:00
54f8098014 SUBMODULE: added OpenQBMM submodule - see #1522
OpenQBMM is a suite of solvers to simulate polydisperse multiphase flows using
Quadrature-Based Moment Methods (QBMM).  For more information, please see
https://www.openqbmm.org/

Main author: Alberto Passalacqua
2020-01-23 12:36:53 +00:00
42c8bbf6d3 GIT: update submodule references 2020-01-23 13:15:18 +01:00
860e7df50b ENH: use DetailInfo for fileOperation I/O information
- allows suppression when the banner is suppressed
2020-01-22 20:46:37 +01:00
16e8d29476 CONFIG: handle different paraview (paraFoam) module names
For example,
  - ParaFoamReader     = (paraview >= 5.7)
  - libParaFoamReader  = (paraview < 5.7) and (OPENFOAM > 1912)
  - libPVFoamReader_SM = (OPENFOAM <= 1912)
2020-01-22 17:29:37 +01:00
59ed3ba18d ENH: consistency improvements for interpolationTable, table readers
- avoid stealing autoPtr in interpolationTable copy operations

- improve local memory requirements of readers

- make OpenFOAM table reader default constructible

- more code alignment between csvTableReader and Function1::CSV
  (fix #1498 for csvTableReader as well)
2020-01-21 15:17:04 +01:00
835c392dd5 Merge branch 'bug-1560-kEpsilonPhitF' into 'master'
BUG: add switch for nu:DphitEff in kEpsilonPhitF (fixes #1560)

Closes #1560

See merge request Development/openfoam!329
2020-01-21 12:28:09 +00:00
c234acf1ed BUG: add switch for nu:DphitEff in kEpsilonPhitF (fixes #1560)
Including `nu` in `DphitEff` even though it is not present in (LUU:Eq. 17)
    provided higher level of resemblance to benchmarks for the tests considered,
    particularly for the peak skin friction (yet, pressure-related predictions
    were unaffected). Users can switch off `nu` in `DphitEff` by using
    `includeNu` entry in `kEpsilonPhitFCoeffs` in order to follow the
    reference paper thereat. `includeNu` is left `true` by default.
    See GitLab issue #1560,

  LUU: Laurence, D. R., Uribe, J. C., & Utyuzhnikov, S. V. (2005).
2020-01-21 12:20:12 +00:00
ee96dba0cf STYLE: simplify Random constructors
COMP: use generated methods in a few more places
2020-01-21 12:12:44 +01:00
d7c18a328c STYLE: simplify/shorten some token names 2020-01-20 10:15:50 +01:00
21456b8cdc BUG: verbatim token output strips type (#1497)
- use os::write(token) for verbatim string to preserve its type
2020-01-20 10:09:58 +01:00
5d33586864 STYLE: use constexpr for static const char strings 2020-01-17 10:15:57 +01:00
f0be8679f6 ENH: provide defaultName() static method for patches, zones
- consistent way of writing "patch" + Foam::name(id) etc.
2020-01-16 13:24:23 +01:00
2a98c4e665 ENH: consistency improvements for surface patch handling (fixes #483)
- remove (unused) Istream constructors, prune some unused methods,
  rationalize write() vs writeDict().
  Deprecate inconsistent construction order.

- handle empty names for ".ftr" surface patches (for plain triSurface
  format) with double-quoted strings for more reliable streaming.
  Written on a single line.

  This is _backward_ compatible, but if users have been parsing these
  files manually, they will need to adjust their code.

Previously:
```
  (
  frt-fairing:001%1
  empty

  windshield:002%2
  empty
  ...
  )
```

Updated (with example handling of empty name):
```
  (
  frt-fairing:001%1 empty

  windshield:002%2 ""
  ...
  )
```
2020-01-16 10:07:26 +01:00
9dbf94777c GIT: relocate geometricSurfacePatch, geometricSurfacePatchList
- was in surfMesh/triSurface/patches/
  now in OpenFOAM/meshes/Identifiers/surface/

This places the code closer to other identifier classes,
which aids in maintaining consistency
2020-01-15 17:21:22 +01:00
5979078ede STYLE: avoid copy in fieldSelection 2020-01-13 17:14:45 +01:00
f62d6d96aa BUG: reactingOneDim - corrected DiNum calc for parallel running. Fixes #1552 2020-01-13 09:44:58 +00:00
eb125303c0 Merge branch 'bug-bound-sensitivities' into 'master'
BUG: wrong bounding of sensitivity contituents in case of many control boxes (Fixes #1549)

Closes #1549

See merge request Development/openfoam!325
2020-01-09 21:04:40 +00:00
ed63d9b2c6 BUG: wrong bounding of sensitivity contituents in case of many control boxes (Fixes #1549)
When more than one volumetric B-Splines control boxes are present, the
sensitivity constituents corresponding to the non-active design
variables were not bounded(zeroed) correctly. The resultant
sensitivities, used in the optimization, were bounded correctly, so this
was more a bug pertaining to the output file of the sensitivities rather
than a functional one.
2020-01-09 20:26:41 +02:00
b5b55fbd86 STYLE: noexcept specification instead of throw()
- make IOerror constructors explicit
2020-01-09 12:38:53 +01:00
669f3de327 TUT: file cleanup 2020-01-17 08:11:05 +01:00
596e4aef3f STYLE: remove trailing space, tabs 2020-01-22 10:00:03 +01:00
f172309956 BUG: Fix sigmap for scatter particle radiation 2020-01-21 14:10:22 -08:00
00a88f2cab Merge branch 'feature-shm-faceZoneRegions' into 'develop'
ENH: shm: support for automatic faceZones

See merge request Development/openfoam!327
2020-01-16 12:22:02 +00:00
b8c2c0acf6 ENH: shm: support for automatic faceZones 2020-01-16 12:22:02 +00:00
0c7140c967 Merge branch 'feature-regIOobject-store' into 'develop'
ENH: regIOobject store() now also registers the object

See merge request Development/openfoam!326
2020-01-13 15:42:53 +00:00
b0072bfab8 ENH: regIOobject store() now also registers the object
- previously the store() method just set the ownedByRegistry flag.
  Now ensure that it is indeed registered first.

- support register/store of tmp<> items.
  The tmp parameter is not cleared, but changed from PTR to CREF
  to allow further use.

  The implicit registration allows code simplification using the
  GeometricField::New factory method, for example.

  Old Code
  ========
      volScalarField* ptr = new volScalarField
      (
          IOobject
          (
              fieldName,
              mesh.time().timeName(),
              mesh,
              IOobject::NO_READ,
              IOobject::NO_WRITE,
              true  // Register
          ),
          mesh,
          dimless,
          zeroGradientFvPatchField<scalar>::typeName
      );
      ptr->store();

  New Code
  ========
      auto tptr = volScalarField::New
      (
          fieldName,
          mesh,
          dimless,
          zeroGradientFvPatchField<scalar>::typeName
      );
      regIOobject::store(tptr);

  or even
      regIOobject::store
      (
          volScalarField::New
          (
              fieldName,
              mesh,
              dimless,
              zeroGradientFvPatchField<scalar>::typeName
          )
      );
2020-01-13 15:37:25 +00:00
12bd45673a BUG: coded: preserve VERBATIMSTRING. Fixes #1497. 2020-01-13 15:10:07 +00:00
9b67ffaf74 COMP: update lemon to 2019-12-19 version 2020-01-13 13:56:23 +01:00
8fdb9b2f70 COMP: robuster storage of pv/vtk sentinel files with out-of-source builds 2020-01-13 13:56:23 +01:00
b1a866c37c BUG: collated: correctly handle ascii writing. See #1545.
The collated container ('decomposedBlockData') is always binary
but the 'payload' might be ascii so use that header information
instead of the decomposeBlockData header.
2020-01-13 11:23:30 +00:00
4e73d0e40e Merge remote-tracking branch 'origin/master' into develop 2020-01-10 10:02:08 +00:00
a1fbe8283c Merge branch 'misc-kbc-jan-1' into 'develop'
TUT: misc cleanup in various tutorials

See merge request Development/openfoam!324
2020-01-10 09:54:55 +00:00
a68333d695 TUT: simplify basic/overPotentialFoam/cylinder
BAKW: ensures bitwise backward compatibility
2020-01-10 09:44:38 +00:00
b81106f837 TUT: enable purgeWrite in driftFluxFoam tuts to avoid numerous write-outs 2020-01-10 09:44:38 +00:00
8504c813d0 TUT: remove redundant white-spaces in interFoam/motorBike 2020-01-10 09:44:38 +00:00
152890d288 TUT: change residuals FO remnants to solverInfo FO (#1290) 2020-01-10 09:44:38 +00:00
bda695d97a TUT: simplify basic/overLaplacianDyMFoam/heatTransfer
BAKW: ensure bitwise backward compatibility
2020-01-10 09:44:33 +00:00
c399a4b3fb TUT: simplify basic/laplacianFoam/flange
BAKW: ensure bitwise backward compatibility
2020-01-09 17:19:36 +00:00
45a0f70a28 ENH: shortestPathSet: snappyHexMesh leak detection. Improved walking. 2020-01-09 11:37:40 +00:00
c186c884b2 ENH: collated: pass through label/scalar size. Fixes #1545. 2020-01-09 10:23:26 +00:00
8bbf26f197 Merge remote-tracking branch 'origin/master' into develop 2020-01-08 09:50:39 +00:00
8e78a27822 BUG: pressure FO - resolved hydrostatic contribution for incompressible cases. See #1544 2020-01-07 16:17:25 +00:00
0fc4b79dde ENH: checkMesh: write minPyrVol. Fixes #1543. 2020-01-06 13:59:16 +00:00
28eb349a30 BUG: checkMesh: handling of unsorted points. Fixes #920. 2020-01-06 11:22:34 +00:00
1270024273 ENH: SemiImplicitSource - simplified handling of enums 2020-01-03 17:06:05 +00:00
be38f5fb11 Merge remote-tracking branch 'origin/master' into develop 2020-01-03 15:09:00 +00:00
1b07bb6505 Merge branch 'misc-kbc-v2f' into 'develop'
DEFEATURE: deprecate v2f model in favour of kEpsilonPhitF

See merge request Development/openfoam!319
2020-01-03 09:41:18 +00:00
e34a6e7df0 TUT: change output tag 'hill' to more consistent 'bump' 2020-01-03 09:40:58 +00:00
ab0dd1f1a8 DEFEATURE: deprecate v2f model in favour of kEpsilonPhitF
- kEpsilonPhitF is a kEpsilon-based model which originated
    from (Durbin, 1995)’s v2-f methodology. However, the majority of
    v2-f model variants proved to be numerically stiff for segregated
    solution algorithms due to the coupled formulations of v2 and f fields,
    particularly on wall boundaries.

    The v2-f variant (i.e. OpenFOAM’s v2f model) due to
    (Lien and Kalitzin, 2001) reformulated the original v2-f model to enable
    segregated computations; however, a number of shortcomings regarding
    the model fidelity were reported in the literature.

    To overcome the shortcomings of the v2-f methodology, the v2-f approach
    was re-evaluated by (Laurence et al., 2005) by transforming v2 scale into
    its equivalent non-dimensional form, i.e. phit, to reduce the numerical
    stiffness.
    This variant, i.e. kEpsilonPhitF, is believed to provide numerical
    robustness, and insensitivity to grid anomalies while retaining the
    theoretical model fidelity of the original v2-f model.

    Accordingly the v2f RANS model is deprecated in favour of the variant
    kEpsilonPhitF model.
2020-01-03 09:40:58 +00:00
0bbf94fb9b Merge branch 'bug-updateMethod-restart' into 'master'
BUG: continuation of updateMethods with empty activeDesignVariables (#1540)

See merge request Development/openfoam!322
2020-01-03 09:38:41 +00:00
254d38d772 BUG: continuation of updateMethods with empty activeDesignVariables
When activeDesignVariables are not set explicitly, all design variables
are treated as active. These were allocated properly when starting from
0 but not when starting from an intermediate optimisation cycle
(e.g. running 5 optimisation cycles, stopping and restarting).

TUT: added a new tutorial including the restart of an optimisation run
to help identify future regression
2020-01-03 09:38:11 +00:00
60efde8c09 Merge branch 'bug-writeMorpherCPs-IO' into 'master'
BUG: writeMorpherCPs expects a controlBoxes entry (#1538)

See merge request Development/openfoam!321
2020-01-03 09:37:16 +00:00
c413ec5009 BUG: writeMorpherCPs expects a controlBoxes entry
The controlBoxes wordList was removed from NURBS3DVolume in the
pre-release phase but writeMorpherCPs was not updated accordingly.

TUT: added the invocation of writeMorpherCPs in one of the tutotials to
help identify future regression
2020-01-03 09:36:51 +00:00
227a0f5d43 Merge branch 'bug-wrong-FatalIOError-message' into 'master'
BUG: Wrong FatalIOError message in displacementMethod and optMeshMovement (#1537)

See merge request Development/openfoam!320
2020-01-03 09:36:06 +00:00
fed6a9efd4 BUG: Wrong FatalIOError message in displacementMethod and optMeshMovement
- The core of the FatalIOError message was not printed due to exiting
  with FatalError instead of FatalIOError
- Changed the TypeName in all derived classes of displacementMethod so
  that the toc printed by the FatalIOError corresponds to what the user
  should add in dynamicMeshDict
2020-01-03 09:35:14 +00:00
122e496590 BUG: Fix issue 1535 in turbulentTemperatureRadCoupledMixed.
When a contact resistance is used the T field on each coupled
    patch is different due to the thermal resistance. Thus, instead
    of solving for a unique Tw at the wall, we solve for Tw1 at one side
    then, the Tnbr internal becomes Tw2, which is the T of the nbr
    patch.
2020-01-02 12:43:38 -08:00
0ff953411b BUG: Fix issue 1535 in turbulentTemperatureRadCoupledMixed.
When a contact resistance is used the T field on each coupled
patch is different due to the thermal resistance. Thus, instead
of solving for a unique Tw at the wall, we solve for Tw1 at one side
then, the Tnbr internal becomes Tw2, which is the T of the nbr patch.
2020-01-02 12:34:45 -08:00
bbb4b01910 CONFIG: reset version to com 2019-12-23 14:51:27 +00:00
f3950763fe REL: Updated bashrc|cshrc version to v1912 2019-12-23 09:49:24 +00:00
ae2ab06312 REL: Release preparations 2019-12-23 09:49:23 +00:00
8b77946c67 BUG: Patch interaction models - correct container type introduced by c1b07cd103 2019-12-23 09:48:38 +00:00
22693fa2be Update Build.md 2019-12-20 23:23:21 +00:00
a51bf0bed6 BUG: Updated production term regression introduced in b7aa89e177 2019-12-20 16:28:21 +00:00
630f7f7ff6 BUG: Fixing debug flag and write L in Bromley 2019-12-20 07:33:30 -08:00
4107eeefcd ENH: added foamCalc (applications/tools)
Many possibilities:
- use as a simple calculator with vectors, tensors etc.
- test validity of expression syntax

As a calculator:

    foamCalc  '(vector(1,2,3) ^ vector(4,5,6)) * sqrt(34)'

The same, but with debugging:

    foamCalc -debug-switch fieldExpr=6 \
        'mag((vector(1,2,3) ^ vector(4,5,6))) * sqrt(34)'
2019-12-19 22:18:10 +01:00
dd465052fe CONFIG: report compiler path and version from top-level build
- previously just reported gcc/clang versions, but these are not
  necessarily the ones actually being used (eg, clang-9 vs clang).
  Now use the path from `wmake -show-path-cxx` to improve the accuracy,
  and also support other compiler types.
2019-12-19 22:17:53 +01:00
1d931f9aaf Merge branch 'integration-interTrackFoam' into 'develop'
Integration inter track foam

See merge request Development/openfoam!310
2019-12-19 15:34:01 +00:00
df5a056fd3 GIT: interfaceTracking: relocate library 2019-12-19 15:32:34 +00:00
e5ede7e8c5 TUT: interTrack tutorials in incompressible pimpleFoam 2019-12-19 15:32:34 +00:00
79588b9b53 ENH: Adding interTrack code
1) New skewCorrectedSnGrad for non-orthogonal and skewness corrector
2) New freeSurfacePressure and freeSurfacePressure working with
   interfaceTrackingFvMesh
3) New interfaceTrackingFvMesh
2019-12-19 15:32:34 +00:00
3a5bcde5ab ENH: waveMaker boundary condition - updated for backwards compatibility 2019-12-19 13:17:04 +00:00
7757a9b897 STYLE: extrudeModel: missing space 2019-12-19 13:01:06 +00:00
74b12c6afd ENH: improved separation of scanner/parser debug selection
- now use debug 2 for scanner and debug 4 for parser.
  Provided better feedback about what is being parsed (debug mode)

- relocate debug application to applications/tools/foamExprParserInfo
2019-12-19 13:16:26 +01:00
9ab75c5c3b STYLE: weightedFlux: adapt for word input 2019-12-19 09:21:32 +00:00
d092f42928 Merge branch 'feature-vof-turbulence-correction' into 'develop'
New VOF multiphaseStabilizedTurbulence fvOption

See merge request Development/openfoam!316
2019-12-19 08:46:50 +00:00
b7aa89e177 ENH: Turbulence models - ensure unlimited nut used in production terms 2019-12-19 08:45:54 +00:00
ea4130707e ENH: Added new multiphaseStabilizedTurbulence fvOption
See GL #1433

Applies corrections to turbulence kinetic energy equation and turbulence
viscosity field for incompressible multiphase flow cases.

Turbulence kinetic energy is over-predicted in VOF solvers at the phase
interface and throughout the water column in nearly-potential flow regions
beneath surface waves.

This fvOption applies corrections based on the references:

    Buoyancy source term in turbulence kinetic energy equation:

        Devolder, B., Rauwoens, P., and Troch, P. (2017).
        Application of a buoyancy-modified k-w SST turbulence model to
        simulate wave run-up around a monopile subjected to regular waves
        using OpenFOAM.
        Coastal Engineering, 125, 81-94.

    Correction to turbulence viscosity field:

        Larsen, B.E. and Fuhrman, D.R. (2018).
        On the over-production of turbulence beneath surface waves in
        Reynolds-averaged Navier-Stokes models
        J. Fluid Mech, 853, 419-460

Example usage:

    multiphaseStabilizedTurbulence1
    {
        type            multiphaseStabilizedTurbulence;
        active          yes;

        multiphaseStabilizedTurbulenceCoeffs
        {
            // Optional coefficients
            lambda2         0.1;   // A value of 0 sets the nut correction to 0
            Cmu             0.09;  // from k-epsilon model
            C               1.51;  // model coefficient from k-omega model
            alpha           1.36;  // 1/Prt
        }
    }

Thanks go to the Turbulence Technical Committee, and the useful discussions
with and code testing by Bjarke Eltard-Larsen and David Fuhrman (Technical
University of Denmark).
2019-12-19 08:45:54 +00:00
88f357fc39 ENH: fvOptions - added 'log' helper for verbose output 2019-12-19 08:45:54 +00:00
7d89b72e26 TUT: Using rPolynomial Eq of State for water 2019-12-18 12:08:22 -08:00
58009f652e COMP: Resolved some clang compiler warnings 2019-12-18 17:48:11 +00:00
4dd5adacba Merge branch 'misc-kbc-dec' into 'develop'
MISC: RANS model, TUT, BUG, DOC changes

See merge request Development/openfoam!315
2019-12-18 16:16:11 +00:00
ea94834022 DOC: fix turbulentInlet BC header (#1100)
STYLE: add getOrDefault(), missing doc dashes
2019-12-18 15:47:19 +00:00
7d252fa900 TUT: update velocityDampingConstraint header (#942)
STYLE: add getOrDefault(); const specifiers to velocityDampingConstraint
2019-12-18 15:47:19 +00:00
a3b5299b09 BUG: fix no-U/P iteration issue in TUT/simpleFoam/turbineSiting (#1114) 2019-12-18 15:47:19 +00:00
ba6ba1ea0f ENH: add grid-line option into foamMonitor (#1197)
foamMonitor -g
    foamMonitor -grid
2019-12-18 15:47:19 +00:00
e6238a5c62 TUT: add kEpsilonPhitF RAS model example to bump2D
- STYLE: remove redundant whitespaces
2019-12-18 15:47:19 +00:00
e38e5d6717 ENH: new RAS model: kEpsilonPhitF
ENH: modify fWallFunction for kEpsilonPhitF model

    The k-epsilon-phit-f turbulence closure model for incompressible and
    compressible flows.

    The model is a three-transport-equation linear-eddy-viscosity turbulence
    closure model alongside an elliptic relaxation equation:
      - Turbulent kinetic energy, \c k,
      - Turbulent kinetic energy dissipation rate, \c epsilon,
      - Normalised wall-normal fluctuating velocity scale, \c phit,
      - Elliptic relaxation factor, \c f.

    Reference:
    \verbatim
        Standard model (Tag:LUU):
            Laurence, D. R., Uribe, J. C., & Utyuzhnikov, S. V. (2005).
            A robust formulation of the v2−f model.
            Flow, Turbulence and Combustion, 73(3-4), 169–185.
            DOI:10.1007/s10494-005-1974-8
    \endverbatim

    The default model coefficients are (LUU:Eqs. 19-20):
    \verbatim
        kEpsilonPhitFCoeffs
        {
            Cmu         0.22,    // Turbulent viscosity constant
            Ceps1a      1.4,     // Model constant for epsilon
            Ceps1b      1.0,     // Model constant for epsilon
            Ceps1c      0.05,    // Model constant for epsilon
            Ceps2       1.9,     // Model constant for epsilon
            Cf1         1.4,     // Model constant for f
            Cf2         0.3,     // Model constant for f
            CL          0.25,    // Model constant for L
            Ceta        110.0,   // Model constant for L
            CT          6.0,     // Model constant for T
            sigmaK      1.0,     // Turbulent Prandtl number for k
            sigmaEps    1.3,     // Turbulent Prandtl number for epsilon
            sigmaPhit   1.0,     // Turbulent Prandtl number for phit = sigmaK
        }
    \endverbatim

Note
    The name of the original variable replacing 'v2' is 'phi' (LUU:Eq. 14).
    However, the name 'phi' preexisted in OpenFOAM; therefore, this name was
    replaced by 'phit'
2019-12-18 15:47:19 +00:00
427f92215c BUG: foamFormatConvert: missing 'faces' file. Fixes #1529. 2019-12-18 15:00:50 +00:00
4dc9c9dca2 Merge branch 'feature-ihc-wavemodels' into 'develop'
Feature ihc wavemodels

See merge request Development/openfoam!317
2019-12-18 13:59:41 +00:00
634e5329d8 INT: Added tutorial cases showcasing new multi-paddle wave maker extensions 2019-12-18 13:57:41 +00:00
2f07d4c1bc INT: Consistency updates for updated waveMaker condition 2019-12-18 13:57:41 +00:00
d0c5662172 INT: Initial IHCantabria update for waveMaker BC
Adds support for paddles to generate 3-D waves
2019-12-18 13:57:29 +00:00
4818af3bef TUT: Changing combustion models for fireFoam tutorial cases.
Changing to Eddy Dissipation Model the combustion casese
for fireFoam
2019-12-17 16:02:24 -08:00
553fd1e26d Merge branch 'integration-foundation' into 'develop'
INT: openfoam.org code integration

See merge request Development/openfoam!312
2019-12-17 22:25:42 +00:00
6e8f0dbe76 INT: org integration
1) rPolynomial Eq of State
2) externalForce and softWall in rigidBodyDynamics

INT: Several minor bug fixes plus
2019-12-17 22:23:00 +00:00
5c74b709b1 BUG: setting to zero qem and qin in radiativeIntensityRay.
qem and qin were not set to zero for the wideBand model BC.
qin was used in the grey model BC to calculate Ir(the total
incoming heat flux). As it is now set to zero, the grey model
loops over the incoming rays to calculate Ir instead of relaying
on qin stored in radiativeIntensityRay.
2019-12-17 12:37:56 -08:00
ea1b531ab3 Merge branch 'adjointOptimisation-fixes' into 'develop'
ENH: Adjoint optimisation fixes

See merge request Development/openfoam!314
2019-12-17 19:57:29 +00:00
e591cf130c ENH: objectiveDict is appended with objective name
to allow for continuation with averaging, line search and multiple
objectives
2019-12-17 19:56:14 +00:00
d496d6536d BUG: meritFunction file was not written in SQP 2019-12-17 19:56:14 +00:00
78bc63ffa4 ENH: added function in NURBS3DVolume
returning number of design variables per direction when symmetry is
applied
2019-12-17 19:56:14 +00:00
22ac759d12 ENH: NURBS3DVolumeCylindrical: added an origin vector
to parameterize regions not centered in (0,0,0)
2019-12-17 19:56:14 +00:00
c9aec64fb9 BUG: NURBS3DVolume was getting a wrong set of points
findPointsInBox was receiving points in the Cartesian system,
not local coordinate system
2019-12-17 19:56:14 +00:00
4e4c681c14 BUG: add missing fvMesh::solve(sphericalTensor) forward (closes #1526)
- got lost with overset changes
2019-12-17 15:17:24 +01:00
7c70125b92 COMP: remove masked OTstream::write(token&&) method (#1525) 2019-12-17 15:17:14 +01:00
bc0b02c651 CONFIG: permit an empty value for WM_COMPILE_OPTION, WM_COMPILER_TYPE
- an empty WM_COMPILE_OPTION is treated internally (in make rules)
  like "Opt"

- an empty WM_COMPILER_TYPE is treated like "system" (system compiler)
2019-12-17 15:17:14 +01:00
e0d555ccdb Merge branch 'feature-PDRsetFields' into 'develop'
ENH: add PDRsetFields utility

See merge request Development/openfoam!265
2019-12-17 10:07:41 +00:00
1cf795a40f ENH: use exprString expansions for #eval
- follows the principle of least surprise if the expansion behaviour
  for #eval and expressions (eg, exprFixedValue) are the same.  This
  is possible now that we harness the regular stringOps::expand()
  within exprString::expand()
2019-12-17 09:47:51 +01:00
c1b07cd103 BUG: post-processing of parcels on patch interaction models
Adding check for p.active at the end of KinematicParcel::move.
    p.hitFace() is called only for active parcels.

    Setting to zero the initialization for stored lists of stick and
escape parcels
    in LocalInteraction and StandardWallInteraction models

    NOTE: KinematicParcel::hitPatch counts overall system escaped
    parcels and mass based on polyPatch type and not on type of
    patchInteractionModel. Thus, if a patch is a Wall for fluid
    but escape for parcel the overall report will be wrong but
    the local report for each patch is correct
2019-12-16 14:57:28 -08:00
f45c7fb7bd Merge branch 'feature-appyBoundaryLayer-writeTurbulenceFields' into 'develop'
ENH: applyBoundaryLayer - optionally write turbulence fields

See merge request Development/openfoam!313
2019-12-16 22:18:38 +00:00
9d63a1e7c4 TUT: examples for PDRsetFields 2019-12-16 21:50:58 +01:00
a60fe9c7b0 ENH: PDRsetFields utility (#1216)
- the PDRsetFields utility processes a set of geometrical obstructions
  to determine the equivalent blockage effects.

  These fields are necessary inputs for PDRFoam calculations.

  After setting up the geometries, the -dry-run option can be used to
  generate a VTK file for diagnosis and post-processing purposes.

- this is an initial release, with improvements slated for the future.

NOTE
  - the field results may be less than fully reliable when run in
    single-precision. This howver does not represent a realistic
    restriction since the prepared fields target a combustion
    application which will invariably be double-precision.
2019-12-16 21:50:47 +01:00
1a3b50f635 GIT: stray line 2019-12-16 16:26:17 +01:00
eaa138443a STYLE: library functions using std::string 2019-12-16 16:16:53 +01:00
83e0501a77 Merge branch 'develop' of https://develop.openfoam.com/Development/openfoam into develop 2019-12-16 13:40:35 +00:00
193b7dba22 CONFIG: relocate WM_PROJECT definition in bashrc, cshrc
- locate where the user is less tempted to change it (#1515).
  It really should be considered an invariant environment variable.

STYLE: wmake -help information to stdout, die errors to stderr
2019-12-16 14:34:36 +01:00
da06067213 ENH: surfaceDistance: FO to calc distance-to-surface field. Fixes #1523. 2019-12-16 12:18:34 +00:00
9edaf8bfa5 CONFIG: default compilation is 'Opt' in Makefiles
- only include compiler-family rules for C++ once

STYLE: minor cleanup of wmake/src Makefile
2019-12-16 11:22:16 +01:00
1a16207e0d COMP: compilation of Test-QRMatrix (clang, int64)
- remove unused local functions from volumeExprDriver
2019-12-16 11:22:15 +01:00
c614388ddb BUG: Tensor2D derives from VectorSpace, not MatrixSpace 2019-12-15 19:02:18 +01:00
3176b3a5de ENH: add wmake -show-path-{c,cxx} | -help-full
- The wmake -show-path-{c,cxx} options return the fully qualified
  paths to the respective compilers. This can be useful when verifying
  that the correct compiler is indeed configured.

- The -help-full to display the "advanced" options, but in the normal
  case just show the basic options.
2019-12-15 17:19:05 +01:00
3b514140dc COMP: constructor used assignment operator 2019-12-15 13:37:37 +01:00
624591b886 COMP: ignore unused-const-variable in generated scanner code 2019-12-15 13:28:24 +01:00
77a5e574af COMP: fully qualify IListStream parameter (fixes #1521)
- stops clang-9 error of List being constrained by private inheritance
2019-12-15 12:53:28 +01:00
b601d7bfb9 Merge branch 'integration-feature-numerics' into 'develop'
Integration feature numerics

See merge request Development/openfoam!308
2019-12-14 15:34:14 +00:00
75ba4a07ef STYLE: consistent quoting for 'cd' 2019-12-14 13:34:48 +01:00
84095ef631 ENH: Adding solarBeamWithTrees tutorial 2019-12-13 16:40:32 -08:00
33e0c4ba88 ENH: improve expression string expansions
- reuse more of stringOps expansions to reduce code and improve the
  syntax flexiblity.

  We can now embed "pre-calculated" values into an expression.
  For example,

       angle       35;
       valueExpr   "vector(${{cos(degToRad($angle))}}, 2, 3)";

  and the ${{..}} will be evaluated with the regular string evaluation
  and used to build the entire expression for boundary condition
  evaluation.

  Could also use for fairly wild indirect referencing:

       axis1   (1 0 0);
       axis2   (0 1 0);
       axis3   (0 0 1);
       index   100;
       expr   "$[(vector) axis${{ ($index % 3) +1 }}] / ${{max(1,$index)}}";
2019-12-14 00:11:28 +01:00
b63721f8bc Merge branch 'feature-proudmann-fo' into 'develop'
ENH: Added new function object to compute the Proudman acoustic power

See merge request Development/openfoam!303
2019-12-13 20:04:26 +00:00
ad82e9c429 Merge branch 'feature-limitFields-FO' into 'develop'
ENH: Added new limitFields function object

See merge request Development/openfoam!304
2019-12-13 20:04:05 +00:00
69a8369541 COMP: add note about gcc-9 and deprecated-copy 2019-12-13 20:54:28 +01:00
b87ea76fc1 ENH: relocate findMinData/findMaxData to FieldOps namespace 2019-12-13 17:04:20 +01:00
6ce3e0bd67 BUG: expression BCs missing their variables on output 2019-12-13 15:49:25 +01:00
db8a840459 COMP: BFGS and SR1 failed to compile with SP
- Failed due to double*Matrix<float> multiplication.

Style changes

- use SquareMatrix with Identity on construction

- use Zero in constructors

- remove trailing space and semi-colons
2019-12-12 11:40:01 -05:00
8ece5f7aae BUG: string expand swallowing '$(..)' construct
- this regression caused dynamic code with includes to fail since they
  often have -I$(LIB_SRC)/...  content
2019-12-13 14:17:32 +01:00
7aa2bf832f STYLE: header format 2019-12-13 12:33:23 +01:00
17d9969ae5 ENH: stringOps::findTrim helper
- finds beg/end indices of string trimmed of leading/trailing whitespace
2019-12-13 12:10:53 +01:00
b61d4ab488 STYLE: adjust deprecations for OSspecific
- skip processing OSspecific/MSwindows since this can cause duplicate
  doxygen entries

STYLE: adjust formatting in code templates

STYLE: use std::string methods without extra qualifications
2019-12-13 11:08:12 +01:00
370c8a39af ENH: additional feedback about controlled mesh motion update type
- ensure that the updateControl is "non-sticky" on re-read,
  even if we do not support runtime-modifiable here

STYLE: add syntax example (wingMotion), but with updateInterval 1
2019-12-13 10:53:56 +01:00
49ed79d537 ENH: improve some timeControl handling
- synchronize the scalar interval value with the integer version.
  This ensures that the interval() method returns the correct
  representative value.

- added clear() method to reset to 'always' (pass-through)
2019-12-13 10:53:56 +01:00
b502086a29 Revert "string trim"
This reverts commit 677e314279.
2019-12-13 10:53:40 +01:00
677e314279 string trim 2019-12-13 10:05:28 +01:00
373ad6df0e ENH: additional feedback about controlled mesh motion update type
- ensure that the updateControl is "non-sticky" on re-read,
  even if we do not support runtime-modifiable here

STYLE: add syntax example (wingMotion), but with updateInterval 1
2019-12-13 10:02:57 +01:00
e90de78cac ENH: add timeControl clear() method to reset to 'always' (pass-through) 2019-12-13 10:02:41 +01:00
042c529f9f Merge branch 'feature-adjoint-shapeOptimisation' into 'develop'
ENH: New adjont shape optimisation functionality

See merge request Development/openfoam!307
2019-12-12 14:18:20 +00:00
b863254308 ENH: New adjont shape optimisation functionality
The adjoint library is enhanced with new functionality enabling
automated shape optimisation loops.  A parameterisation scheme based on
volumetric B-Splines is introduced, the control points of which act as
the design variables in the optimisation loop [1, 2].  The control
points of the volumetric B-Splines boxes can be defined in either
Cartesian or cylindrical coordinates.

The entire loop (solution of the flow and adjoint equations, computation
of sensitivity derivatives, update of the design variables and mesh) is
run within adjointOptimisationFoam. A number of methods to update the
design variables are implemented, including popular Quasi-Newton methods
like BFGS and methods capable of handling constraints like loop using
the SQP or constraint projection.

The software was developed by PCOpt/NTUA and FOSS GP, with contributions from

Dr. Evangelos Papoutsis-Kiachagias,
Konstantinos Gkaragounis,
Professor Kyriakos Giannakoglou,
Andy Heather

[1] E.M. Papoutsis-Kiachagias, N. Magoulas, J. Mueller, C. Othmer,
K.C.  Giannakoglou: 'Noise Reduction in Car Aerodynamics using a
Surrogate Objective Function and the Continuous  Adjoint Method with
Wall Functions', Computers & Fluids, 122:223-232, 2015

[2] E. M. Papoutsis-Kiachagias, V. G. Asouti, K. C. Giannakoglou,
K.  Gkagkas, S. Shimokawa, E. Itakura: ‘Multi-point aerodynamic shape
optimization of cars based on continuous adjoint’, Structural and
Multidisciplinary Optimization, 59(2):675–694, 2019
2019-12-12 14:17:29 +00:00
a8ab9b8796 CONFIG: prefer use of ParaView_MESA_DIR in runTimePostProcessing
- when using VTK from ParaView sources it can better to tag them as
  such, but simultaneously not mask the ParaView with hardware
  rendering.

  The additional ParaView_MESA_DIR variable allows this.
  The balance of library and path setup is unaffected by this.

DOC: update doc/BuildIssues
2019-12-12 14:29:59 +01:00
455c619edc STYLE: typo in doc 2019-12-12 14:07:17 +01:00
ff995c5d53 COMP: Resolved compiler warning in evalEntry 2019-12-12 12:39:47 +00:00
58b02969c0 Merge branch 'misc-kbc' into 'develop'
ENH|BUG: Misc

See merge request Development/openfoam!305
2019-12-12 11:30:35 +00:00
8225733399 BUG: fix kkLOmega model - omegaWallFunction inconsistency (#1484)
- `Pkt` was directed to `GName` to allow wall functions
     are usable by kkLOmega model
  - `Pkt` was changed to a non-const object, so that omegaWallFunc
    can modify `Pkt` at the wall, if need be.
  - Elementwise backward compatibility was checked by
    pimpleFoam/RAS/ellipsekkLOmega
  - New implementation was checked by changing omega:hole boundary
    in pimpleFoam/RAS/ellipsekkLOmega to omegaWallFunction
2019-12-12 11:24:47 +00:00
af0e454ccf BUG: fix QRMatrix (#1261, #1240)
QRMatrix (i.e. QR decomposition, QR factorisation or orthogonal-triangular
    decomposition) decomposes a scalar/complex matrix \c A into the following
    matrix product:

    \verbatim
        A = Q*R,
    \endverbatim

    where
     \c Q is a unitary similarity matrix,
     \c R is an upper triangular matrix.

Usage
    Input types:
     - \c A can be a \c SquareMatrix<Type> or \c RectangularMatrix<Type>

    Output types:
     - \c Q is always of the type of the matrix \c A
     - \c R is always of the type of the matrix \c A

    Options for the output forms of \c QRMatrix (for an (m-by-n) input matrix
    \c A with k = min(m, n)):
     - outputTypes::FULL_R:     computes only \c R                   (m-by-n)
     - outputTypes::FULL_QR:    computes both \c R and \c Q          (m-by-m)
     - outputTypes::REDUCED_R:  computes only reduced \c R           (k-by-n)

    Options where to store \c R:
     - storeMethods::IN_PLACE:        replaces input matrix content with \c R
     - storeMethods::OUT_OF_PLACE:    creates new object of \c R

    Options for the computation of column pivoting:
     - colPivoting::FALSE:            switches off column pivoting
     - colPivoting::TRUE:             switches on column pivoting

    Direct solution of linear systems A x = b is possible by solve() alongside
    the following limitations:
     - \c A         = a scalar square matrix
     - output type  = outputTypes::FULL_QR
     - store method = storeMethods::IN_PLACE

Notes
    - QR decomposition is not unique if \c R is not positive diagonal \c R.
    - The option combination:
      - outputTypes::REDUCED_R
      - storeMethods::IN_PLACE
      will not modify the rows of input matrix \c A after its nth row.
    - Both FULL_R and REDUCED_R QR decompositions execute the same number of
      operations. Yet REDUCED_R QR decomposition returns only the first n rows
      of \c R if m > n for an input m-by-n matrix \c A.
    - For m <= n, FULL_R and REDUCED_R will produce the same matrices
2019-12-12 11:22:14 +00:00
3afc352757 ENH: add threshold for the number of warnings in MatrixTools::equal() 2019-12-12 11:22:14 +00:00
3a5ad7eed7 ENH: add identity matrix constructor to RectangularMatrix 2019-12-12 11:22:14 +00:00
64614cfce8 ENH: add new funcs into SquareMatrix
- query func `symmetric()`
    - query func `tridiagonal()`
    - `resize()`
    - `labelpair` identity constructor

    STYLE: add `#if(0 | RUNALL)` to improve test control in Test-Matrix
2019-12-12 11:22:13 +00:00
f9e5392171 BUG: fix tut regression for potentialFoam (#1518) 2019-12-12 11:22:13 +00:00
64242fc096 TUT: generalise planarPoiseuille for all laminar models (#1509) 2019-12-12 11:22:13 +00:00
be235787cf DOC: add missing tags into Stokes.H (#1509)
STYLE: add missing comment dashes, DOI
  DOC: add DOI into WatersKing.C
2019-12-12 11:22:13 +00:00
55c880b7dc Merge branch 'feature-mesh-update-controls' into 'develop'
Feature mesh update controls

See merge request Development/openfoam!306
2019-12-12 11:03:02 +00:00
280be6312c ENH: update handling of "writeTime" in timeControl class
- handle zero or negative values as being identical to 1.
  As per timeStep control and what the comments suggested.

- drop old outputTime enumeration, since this is covered by the
  writeTime enumeration and a corresponding Enum name.

- support construction of a "pass-through" control object that always
  executes and add some method to test for these conditions and be able
  to output some meaning full information.
  Eg,

     if (ctrl.execute())
     {
         if (!ctrl.always())
         {
             Info<< "Sampling executed based on " << ctrl.type() << nl;
         }
         ...
     }

     To produce "Sampling executed based on runTime"
2019-12-12 09:09:50 +01:00
30fe28ee8e ENH: Added new function object to compute the Proudman acoustic power
Calculates the acoustic power due to the volume of isotropic turbulence
using Proudman's formula

The acoustic power \f$ P_A \f$ [W/m3] in terms of turbulence \f$ k \f$
and \f$ \epsilon \f$ is given as:

    \f[
        P_A = alpha_\epsilon \rho \epsilon M_t^5
    \f]

where \f$ alpha_\epsilon \f$ is a constant (0.1) and

    \f[
        M_t = \frac{\sqrt{2 k}}{a_0}
    \f]

with \f$ a_0 \f$ the speed of sound.  The acoustic power is also output in
dB using:

    \f[
        L_P = 10 \log \frac{P_A}{P_ref}
    \f]

where \f$ P_ref \f$ is a constant (1e-12 W/m3)

Usage
    Example of function object specification to calculate the Proudman acoustic
    power

    proudmanAcousticPower1
    {
        type        proudmanAcousticPower;
        libs        ("libfieldFunctionObjects.so");
        ...

        // Required additional entries for incompressible calculations
        rhoInf      1.225;
        aRef        340;
    }

    Where the entries comprise:
        Property     | Description                 | Required   | Default value
        type         | type name: proudmanAcousticPower         | yes        |
        rhoInf       | Freestream density for incompressible cases  | no |
        aRef         | Reference spped of sound for incompressible cases | no |
        alphaEps     | Model coefficient           | no         | 0.1

Note
- The freestream density and reference speed of sound are only necessary
  when a thermodynamics package is unavailable, typically for incompressible
  cases.
2019-12-11 21:37:39 +00:00
87bba9ae14 ENH: add selectable update control/interval to pimpleFoam, rhoPimpleFoam
- Allows user-defined control of when the mesh motion occurs,
  which can be especially useful in situations where the mesh motion
  is much slower than any of the fluid physics.

  For example, in constant/dynamicMeshDict:

      updateControl   runTime;
      updateInterval  0.5;

  to have mesh motion triggered every 1/2 second.

  Note that the _exact_ time that the mesh motion actually occurs may
  be slightly differently since the "runTime" triggering is fuzzy in
  nature. It will trigger when the threshold has been crossed, which
  will depend on the current time-step size.
2019-12-11 20:25:18 +00:00
fa57b4e45e ENH: adjust dynamicFvMesh to support controllable mesh motion updates 2019-12-11 20:12:49 +00:00
89fb73d2a3 COMP: disable some compiler warnings
- The -Wno-deprecated-copy flag for gcc-9.2.0

  In the future we may indeed wish to explicitly request default
  generated constructors and assignment operators, but at the moment
  these are still acceptable.

- The -Wno-alloc-size-larger-than flag for mingw compilations

  Related to differences in PTRDIFF_MAX vs SIZE_MAX on the target.
  Several issues related to this can be found in the gcc bug reports
  and on stackoverflow etc.
2019-12-11 20:42:11 +01:00
eb4fec371a ENH: unified some common parser static methods
COMP: delay evaluation of fieldToken enumeration types

- lazy evaluation at runTime instead of compile-time to make the code
  independent of initialization order.
  Otherwise triggers problems on gcc-4.8.5 on some systems where
  glibc is the same age, or older.
2019-12-11 13:32:36 +01:00
622808c7d0 ENH: add empty() member for Enum 2019-12-11 13:18:01 +01:00
e247e06381 ENH: ITstream single token append method
- remove/fully deprecated newElmt in next release
2019-12-11 10:21:22 +01:00
1847bd16be TUT: use fast topological search for channel395DFSEM blockMesh
- same result, but approx 4x faster for this case
2019-12-11 09:45:54 +01:00
d1d567a90f STYLE: flush newline in blockMesh feedback 2019-12-11 09:43:47 +01:00
bc51349d75 CONFIG: bump API to 1912 (pre-release)
- update repository links
2019-12-11 09:19:32 +01:00
ef59289405 Merge branch 'feature-bcs-scaledFixedValue' into 'develop'
ENH: Added new scaledFixedValue boundary condition

See merge request Development/openfoam!302
2019-12-11 10:45:30 +00:00
0c5ff2efe8 Merge remote-tracking branch 'origin/master' into develop 2019-12-11 00:13:46 +01:00
71bc3510d6 Merge branch 'feature-particle-patch-postpro-filtering' into 'develop'
Feature particle patch postpro filtering

### Summary

Adds options to write particle-patch interactions to file, and to select particle fields to post-process for the `patchPostProcessing` cloud function object


### Resolved bugs (If applicable)

none


### Details of new models (If applicable)

Cloud patch interaction models:
Optionally write patch interaction statistics, e.g. number and mass of particles that stick, escape etc. to file using the optional `writeToFile` entry, e.g.

```
    localInteractionCoeffs
    {
        patches
        (
            "(walls|cyc.*)"
            {
                type        rebound;
            }

            "inlet|outlet"
            {
                type escape;
            }
        );

        // New optional entry
        writeToFile     yes;
    }
```

Cloud function objects:
New `fields` optional entry can be used to select which particle fields to post-process; if empty or the entry is not given all fields are written (to provide backwards compatibility)

```
    patchPostProcessing1
    {
        type            patchPostProcessing;

        // Optional new entry
        fields          (position "U.*" d T nParticle);

        maxStoredParcels 20;
        patches
        (
            cycLeft_half0
            cycLeft_half1
        );
    }
```

See the `$FOAM_TUTORIALS/lagrangian/reactingParcelFilm/filter` tutorial for an example


### Risks

Low risk

See merge request Development/openfoam!301
2019-12-10 15:53:13 +00:00
1b17784a1f Merge branch 'feature-expressions' into 'develop'
Feature expressions

### Summary

This branch represents an implementation of what is considered to be the most useful aspects of swak4Foam ([Swiss-Army-Knife for FOAM](https://openfoamwiki.net/index.php/Contrib/swak4Foam)) from Bernhard Gschaider, namely the ability to use text-based expressions instead of coding in C++ for the following cases:
- expression-based boundary conditions (also known as _groovy_ boundary conditions)
- expression-based setFields (also known as _funky_ set fields)

The idea of what we currently term *expressions* was pioneered by
(Bernhard Gschaider) and is now firmly established in `swak4Foam`.
Among other things, expressions attempt to bridge the gap between
using standard, predefined boundary conditions and writing dedicated,
special-purpose ones. Although part of this gap is now covered within
OpenFOAM by using dynamically compiled user coding (eg, coded boundary
conditions), there remains substantial areas where it can be
significantly more convenient to have a series of predefined functions
and expression sytax with some access to base OpenFOAM field
functionality that enables rapid deployment of boundary conditions, or
custom-defined `setFields` without writing code.
A significant portion of `swak4Foam` expressions has been adapted for
direct integration into OpenFOAM. During the integration and rewrite,
we have tried to pare things down to a smaller subset with the aim of
covering 90% or more of the common cases. The remaining cases are left
to be reassessed for extending the *expressions* functionality in the
future, but they also may be better served with other approaches (eg,
with coded conditions) that were not available when `swak4Foam` was
originally conceived.

To the greatest extent possible, the integrated *expressions* have
been designed to avoid name clashes with `swak` so it should remain
possible to use the most recent versions of `swak` without problem.


### Risks

- New functionality, so low chance of regression.
- The scope of the functionality will be revised in the future

### Naming (for `swak4Foam` users)

The following are the *expressions* correspondences to `swak`:

- The `exprFixedValue` and `exprGradient` boundary conditions are
  roughly equivalent to the _groovy_ boundary conditions.

- The utilities `setExprFields` and `setExprBoundaryFields` are
  roughly equivalent to the _funky_ utilities of similar name.

The naming of the boundary conditions and utilities not only reflects
the slightly different input requirements, but simultaneously seeks to
avoid any potential name-clash with `swak4Foam` in a mixed
environment.

The names for the boundary condition dictionary entries tend be
shorter and slightly different (eg, `valueExpr` vs `valueExpression`)
to serve as a small reminder that the *expressions* syntax is slightly
different than the *groovy* equivalents. It also allows the user to
fashion dictionary entries that are sufficient for **both** boundary
condition variants and quickly toggle between them simply by changing
the boundary condition `type`.

See merge request Development/openfoam!300
2019-12-10 12:10:26 +00:00
44304e07d6 TUT: simple tutorial with expression boundary conditions and setExprFields 2019-12-10 13:09:22 +01:00
2923daab65 ENH: setExprFields and setExprBoundaryFields
- these are the expressions equivalent of funkySetFields and
  funkySetBoundaryFields
2019-12-10 13:09:22 +01:00
749f4b5d11 ENH: boundary conditions with expressions 2019-12-10 13:09:22 +01:00
20589430f4 ENH: driver/parser/scanner for volume expressions 2019-12-10 13:09:21 +01:00
82a1e32526 ENH: driver/parser/scanner for patch expressions 2019-12-10 13:09:21 +01:00
019fe7deff ENH: base fvMesh driver for expressions 2019-12-10 13:09:21 +01:00
6709f3ef6f ENH: Added new limitFields function object
Limits fields to user-specified min and max bounds

Usage
Example of function object specification:

    limitFields1
    {
        type        limitFields;
        libs        ("libfieldFunctionObjects.so");
        ...
        fields      (U);
        limit       max;
        max         100;
    }

Where the entries comprise:
    Property     | Description                 | Required | Default
    type         | type name: limitFields      | yes |
    fields       | list of fields to process   | yes |
    limit        | bound to limit - see below  | yes |
    min          | min limit value             | partly |
    max          | max limit value             | partly |

The "limit" entry can take the value:
- min : specify a minimum value
- max : specify a maximum value
- both : specify a minimum value and a maximum value
2019-12-10 11:04:20 +00:00
7e275838ad ENH: more flexible naming for ensightPartCells, ensightPartFaces
- make ensightParts parallel-aware when handling zones and patches

STYLE: use of serial/parallel more evident in write templates
2019-12-10 10:46:14 +01:00
98b79faddb STYLE: avoid potential deadlock when resizing from zero-sized list
- not yet triggered by any code, but avoid anyhow
2019-12-10 09:54:53 +01:00
e1a7c0ed1d ENH: Particle PatchPostProcessing - enable users to filter particle property output
The optional 'fields' entry can be used to limit which particle fields are
written to file.  If empty/not specified, all properties are written to
maintain backwards compatibility.

    patchPostProcessing1
    {
        type            patchPostProcessing;
        maxStoredParcels 20;
        fields          (position "U.*" d T nParticle);
        patches
        (
            cycLeft_half0
            cycLeft_half1
        );
    }
2019-12-09 23:31:01 +00:00
6748f10d5d ENH: Lagrangian - added particle output to stream functions 2019-12-09 23:21:53 +00:00
deeb27896c ENH: Added option to write particle patch interactions to file
File writing is off by default; to activate, add to the patch interaction model
coeff dictionary

    writeToFile yes;
2019-12-09 22:31:09 +00:00
c2123452b1 ENH: generalize string expression evaluation
- replace stringOps::toScalar with a more generic stringOps::evaluate
  method that handles scalars, vectors etc.

- improve #eval to handle various mathematical operations.
  Previously only handled scalars. Now produce vectors, tensors etc
  for the entries. These tokens are streamed directly into the entry.
2019-12-09 19:44:23 +01:00
f84ebb9ad3 ENH: driver/parser/scanner for plain field expressions 2019-12-09 19:44:22 +01:00
17f5560cb9 ENH: base driver for expressions 2019-12-09 19:44:21 +01:00
3e76ef7b5b DOC: update repository links 2019-12-09 14:54:25 +01:00
b576f9dcc7 ENH: subModelBase - added localPath() helper function for file writing 2019-12-06 22:05:02 +00:00
07ff2a2828 ENH: Added new scalarFixedValue boundary condition
This condition applies a scalar multiplier to the value of another
boundary condition.

Usage
    Property     | Description             | Required    | Default value
    scale        | Time varing scale       | yes         |
    patch        | patchField providing the raw patch value | yes |

Example of the boundary condition specification to scale a reference
velocity of (15 0 0)  supplied as a fixedValue by a table of values
that ramps the scale from 0 to 1 over 1 second:

    <patchName>
    {
        type            scaledFixedValue;

        scale table
        (
            (    0   0)
            (  1.0 1.0)
            (100.0 1.0)
        );

        patch
        {
            type            fixedValue;
            value           uniform (15 0 0);
        }
    }
2019-12-06 21:15:56 +00:00
f8577a3423 ENH: applyBoundaryLayer - optionally write turbulence fields
- The previous option 'write-nut' controlled the writing of turbulence
  nut, but other turbulence fields were always written.
  These have been shown to be a source of instability for many cases.

  This commit replaces the 'write-nut' option by a 'writeTurbulenceFields'
  option that controls the writing of all turbulence fields.
  If not set, only the velocity field is written.

  For compatibility, the old 'write-nut' option is still recognized
  but is redirected to 'writeTurbulenceFields'.
2019-12-06 20:43:43 +00:00
5d7d24df94 GIT: Housekeeping 2019-12-06 17:43:08 +00:00
ae3a595b60 ENH: consistent and less ambiguous naming for fileStat 2019-12-06 17:43:04 +00:00
3a816006dc COMP: support m4 include directories for wrap-lemon
Set the m4 -I include accordingly to have the folllowing:
  - the directory of the parser.
  - include/ in the top-level source tree of the current target
    (eg, src/finiteVolume/include-m4/ when compiling libfiniteVolume)
  - include/ from OpenFOAM

Additional -dry-run option for makeParser, wrap-lemon for expanding m4
only.

Extend m4 wrapping support to include bison as well.
2019-12-06 16:15:07 +01:00
4030ed4543 ENH: strip C/C++ comments from expressions by default 2019-12-06 16:15:07 +01:00
ec2c014980 ENH: improve space handling for removeComments
- include the trailing newline for the "// comment" form, but also add
  in leading space removal. This ensure that we do not introduce odd
  indentation, while also eliminating lines that are solely C++
  comments.
2019-12-06 16:15:07 +01:00
7e8fb96d33 STYLE: output consistency for exprResult entry 2019-12-06 16:15:07 +01:00
68de05285a ENH: suppress keyword indentation when keyword is empty (List, Field)
- output the "uniform", "nonuniform" Field entry tags as words instead
  of raw character strings, which can help for direct tokenization or
  when sending/receiving via Pstreams.
2019-12-06 16:15:07 +01:00
dac0dd137e ENH: relocate/rename expression-related ops to exprOps 2019-12-06 16:15:07 +01:00
9a7adf3606 Merge branch 'master' into develop-v1906 2019-12-06 12:05:32 +00:00
d7aac83971 ENH: add general m4 lemon macros for expressions
- include some specialization for zip/unzip fields
2019-12-03 12:34:29 +01:00
38089b7ffb BUG: incorrect template parameter for FieldOps 2019-12-09 10:07:00 +01:00
1786974705 ENH: improve exprResult handling
- some support for "uniform" bool fields. Calculating an averaged
  value for a boolField does not work very well, but we simply define
  that the field average is 'true' when more than 1/2 of its values
  are true. Not exactly true, but allows templated definitions to work
  smoothly.

- additional output method writeValue().
  This outputs the single (uniform) value or the first value of the
  field.
2019-12-06 14:02:35 +01:00
9fd696e1ae ENH: add ITstream append and seek methods.
- ITstream append() would previously have used the append from the
  underlying tokenList, which leaves the tokenIndex untouched and
  renders the freshly appended tokens effectively invisible if
  interspersed with primitiveEntry::read() that itself uses tokenIndex
  when building the list.

  The new append() method makes this hidden ITstream bi-directionality
  easier to manage. For efficiency, we only append lists
  (not individual tokens) and support a 'lazy' resizing that allows
  the final resizing to occur later when all tokens have been appended.

- The new ITstream seek() method provides a conveniently means to move
  to the end of the list or reposition to the middle.
  Using rewind() and using seek(0) are identical.

ENH: added OTstream to output directly to a list of tokens

---

BUG: List::newElem resized incorrectly

- had a simple doubling of the List size without checking that this
  would indeed be sufficient for the requested index.

  Bug was not triggered since primitiveEntry was the only class using
  this call, and it added the tokens sequentially.
2019-12-06 17:23:59 +01:00
6b5da70602 ENH: add scalarOps with divide-by-zero protection
- add functor versions of floor/ceil/round for scalar
2019-12-07 16:55:18 +01:00
cc16bc9338 STYLE: comments, spelling in token.H 2019-12-07 16:46:49 +01:00
b7c54bc00c ENH: snappyHexMesh: proximity check
This adds automatic deletion of cells inside small gaps. This is
generally used to avoid having excessive numbers of cells in irrelevant
areas of a geometry. It is nearly the opposite of automatic gap refinement
 - that refines cells to resolve the gap; this functionality removes cells
to not mesh the gap.

The proximity handling will remove those cells which are inside 'thin' gaps
where 'thin' is defined as a distance of 2*'blockLevel'
It will
- detect surfaces which have the new 'blockLevel' specification
- convert this to a minimum gap distance
- detect cells which are inside this gap
- remove these cells and add exposed faces to the nearest 'real' patch
2019-12-09 14:29:21 +00:00
a956926c37 GIT: update submodule references 2019-12-06 20:36:30 +01:00
c684b51152 Merge remote-tracking branch 'main-1906/master' into develop 2019-12-06 19:33:52 +01:00
ae1b77ee36 STYLE: force bool context for xorOp 2019-12-03 07:45:21 +01:00
f654b7fac6 BACKPORT: accept argList::get() methods as per 1912 2019-12-02 13:51:38 +01:00
1b017938c3 ENH: be more forgiving when reading ensight surface files (#1511)
- The case files may contain #... comment lines
- The geometry file may contain an optional "extents" entry
- Properly handle element id specifications (off|assign|ignore|given).

- Partially handle node id specifications (off|assign|ignore|given).
  Treat "given" like "ignore", since results in the lightest amount of
  coding and in many cases the "given" node ids are in fact 1-based
  contiguous values and thus no different than "ignore" for our
  purposes.
2019-12-02 09:42:52 +01:00
76de104daa ENH: fileModificationSkew: add polling. Fixes #1472. 2019-11-27 14:13:01 +00:00
1310e85225 ENH: support 'get()' for retrieving argList options
- previously only had 'opt<..>()' for options, but 'get<..>()'
  provides more similarity with dictionary methods.
  The 'opt<..>()' method is retained.
2019-11-26 21:07:11 +01:00
29ccc00c7d COMP: incorrect specialization namespace 2019-11-26 07:39:52 +01:00
925b9af20d CONFIG: csh syntax 2019-11-26 07:26:12 +01:00
f30b0895e8 CONFIG: prevent bash completions from examining the description notes 2019-11-25 18:38:39 +01:00
6dd3cd0e51 ENH: add clear/append method to Enum and std::ostream output
- allows use of Enum in more situations where a tiny Map/HashTable
  replacement is desirable. The new methods can be combined with
  null constructed for to have a simple low-weight caching system
  for words/integers instead of fitting in a HashTable.
2019-11-25 18:15:31 +01:00
29faf6da89 BUG: ensightReadFile ignores binary string limits (#1511)
ENH: downgrade error on type-mismatch to a warning

- Ensight data files generated by OpenFOAM will start with the name of
  the data type (Eg, "scalar", "vector" etc), but this convention may
  fail for data files that have been generated elsewhere.
2019-11-25 15:37:00 +01:00
efebc5db3f BUG: arrarySet: incorrect index->location. Fixes #1506 2019-11-20 13:57:57 +00:00
daac96f165 ENH: addition of expressions::exprResult
- polymorphic field/result
2019-11-18 11:29:53 +01:00
241dee29b2 ENH: add transformPoints -time option (issue #1510) 2019-11-25 10:55:05 +01:00
2e57f329f2 ENH: extend topoSetSource::sourceType to support bitmasks
- improves usability in other contexts

ENH: expose topoSet::findIOobject as public
2019-11-22 19:37:51 +01:00
492705b0cf COMP: provide dummy methods and operations for pointPatchField
- since pointPatchField is not derived from Field, methods such as
  negate() or a unary min(), max() are missing.

  These have apparently not been needed thus far, but are used
  indirectly via GeometricField.
2019-11-22 19:20:09 +01:00
7c3ec88bca ENH: additional GeometricField::New static constructors
STYLE: split off into separate file
2019-11-22 11:31:22 +01:00
73425eb119 ENH: add FieldOps with conditionals (assignment, ternary) 2019-11-20 20:35:55 +01:00
fae91edd85 ENH: basics for expression string handling 2019-11-20 16:32:32 +01:00
42a9a6ae5a ENH: add generator class for uniform/gaussian random numbers
- can be used in combination with std::generate, or as a substitute
  unary operator to supply random numbers for std::transform.
2019-11-21 09:40:00 +01:00
cc138b0d82 COMP: make Random constructor explicit 2019-11-21 12:01:23 +01:00
cd366b60cc ENH: add explicit flipBoolOp, tighten access on pass-through (noOp) version
- the noOp now returns const reference, noexcept
2019-11-20 19:48:09 +01:00
2d7bad2d2e COMP: add value_type to pointPatchField 2019-11-20 20:35:44 +01:00
f964bb301c ENH: isoSurfaceTopo: ignore ACMI polyPatch. Fixes #1508. 2019-11-21 09:37:56 +00:00
06361f3f05 STYLE: additional notes for IOobject, regIOobject 2019-11-20 11:55:47 +01:00
83d6aa424a ENH: add move reset and move assignment for tmp, tmpNrc
- improves similarity to autoPtr. Simplifies coding.

  Example,

    tmp<volScalarField> tfield;

    // sometime later...

    tfield.reset
    (
        volScalarField::New("myfield", mesh, dimensionedScalar(Zero))
    );

- as per tmp, disallow tmpNrc assignment from literal nullptr

- as per autoPtr, allow explicit test as bool (same as valid).
2019-11-19 20:21:42 +01:00
a3d399a550 DOC: adjust wording and version information 2019-11-19 16:15:01 +01:00
9e6683f7bc ENH: add conditionals to #eval (string to scalar)
Example,

     ($radius > 10) ? sin(degToRad(45)) : cos(degToRad(30))

- protect division and modulo against zero-divide.

- add scanner/parser debugging switches in the namespace,
  selectable as "stringToScalar". For example,

    debug parser:  foamDictionary -debug-switch stringToScalar=2
    debug scanner: foamDictionary -debug-switch stringToScalar=4
    debug both:    foamDictionary -debug-switch stringToScalar=6
2019-11-19 14:22:03 +01:00
a5a222f7cf ENH: support scalar tokens when testing #if, #ifeq
- this allows use of #eval results in the tests
2019-11-19 09:00:00 +01:00
0838d121c6 ENH: allow env variables when expanding for the #eval function
- this makes it behave more like other dictionary components.
2019-11-19 08:57:19 +01:00
0597172940 ENH: Allow explicit construct Switch from float/double
- can be useful when a scalarField has been used to store booleans and
  we need to recover a bool directly and deal with potential rounding
  issues.

ENH: support "any" as a Switch counterpart to "none"
2019-11-19 08:26:43 +01:00
cf917b4103 STYLE: consistent declarations for oneField, zeroField etc 2019-11-19 09:38:52 +01:00
2d080ff331 Feature single precision solve type 2019-11-19 11:10:07 +00:00
f2eb3e1cee BUG: incorrect test for triangulate/filtering in sampledIsoSurfaceTopo 2019-11-19 07:20:13 +01:00
7c2ad98834 ENH: improve missing entry message for Function1 or PatchFunction1
- now indicate that the dictionary entry is missing, not that it is
  an unknown function type.

STYLE: adjust PatchFunction1New.C to have logic structure look similar
2019-11-18 15:34:52 +01:00
bc8343f702 STYLE: align foamUpdateCaseFileHeader with Foam::IOobject::writeBanner()
- handle quoted format statement (m4)
2019-11-18 12:37:01 +01:00
53a617b829 TUT: use foamDictionary without runApplication wrapper
- avoids generating a log file, which is missing an "End" tag that
  allows the test loop to identify the completion status
2019-11-18 12:18:43 +01:00
4d18fea8e1 ENH: add value_type to dimensioned type. Add Switch::name(bool) 2019-11-18 09:13:58 +01:00
3003356898 BUG: RASModelVariables::SpalartAllmaras cannot be combined with an fvMotionSolver diffusivity which depends on wall distances (fixes #1501) 2019-11-15 19:43:25 +02:00
4ae61e621f BUG: adjointSolverName not set correctly in adjointWallVelocityLowRe (fixes #1502) 2019-11-15 20:17:56 +02:00
27956330ac COMP: declare template specialisation (gcc 4.8.5) 2019-11-19 06:58:38 +01:00
b40d1d8e4f BUG: decomposePar fails with csv table in binary (fixes #1498) 2019-11-18 16:59:51 +01:00
311f29947d CONFIG: update scotch and compiler versions 2019-11-15 17:49:12 +01:00
2a8669b3f8 ENH: add zip/unzip for GeometricField 2019-11-15 17:29:50 +01:00
a3d0a7d049 STYLE: add documentation to GeometricField::New
- also use tmp::New forwarding internally
2019-11-15 15:54:37 +01:00
cf2b84ef32 ENH: add zip/unzip for FieldField 2019-11-15 13:32:27 +01:00
6882ed35a4 ENH: add zip/unzip for vector and tensor fields
- the full tensor also supports zip/unzip rows/cols
  and unzipRow, unzipCol, unzipDiag
2019-11-15 12:56:23 +01:00
39a1191bd5 ENH: add zip/unzip functions for complexField and vector2DField 2019-11-15 11:26:45 +01:00
a23e8bf540 STYLE: remove unused vector 'zip' function and unused .C files 2019-11-15 10:41:00 +01:00
a400bfae21 ENH: add rows/cols setters to Tensor, Tensor2D
- also support transposed construction when given a set of vectors
2019-11-15 09:18:52 +01:00
0d71607bab STYLE: remove extraneous descriptions from misc IOList.C files 2019-11-13 19:18:02 +01:00
6798c61047 ENH: add boolIOField to allow registering 2019-11-13 18:54:10 +01:00
98467036b3 STYLE: regularize quoting and exit on failed 'cd' 2019-11-13 13:19:16 +01:00
297adc8764 CONFIG: add build-info to archives
- save in META-INFO/build-info for later re-compilation without git.
  This improves tracking beyond simply referring to the the patch level.

  The information is tagged with an underscore to distinguish from
  "real" build information when git is available.

STYLE: improved shell syntax, pushd/popd guards etc.
2019-11-13 10:23:30 +01:00
f41b2db8c8 BUG: correct delta:turbulentDFSEMInlet from 2 to 1 (#1459) 2019-11-14 14:06:44 +00:00
80681eeb2b TUT: reorganise the scripts and dicts in turbulentInflow 2019-11-14 10:09:36 +00:00
87250cb770 ENH: ensure consistent default mapping in turbulentDFSEMInlet
- Previously, the default mapping method was `planarInterpolation` which was
    silently suppressed by the default 'interpolate{R,U,L}=false'.

  STYLE: changes:
            `0` to `Zero`,
            `lookupOrDefault` to `getOrDefault`
         improves header documentation
2019-11-13 11:50:17 +00:00
69640bd3d8 BUG: fix decomposition issue | turbulentDFSEMInlet | mapFields (#1108) 2019-11-13 11:48:53 +00:00
61d2408e1e BUG: polyMesh: update instead of delete. Fixes #1490. 2019-11-11 15:36:02 +00:00
47e1d13655 CONFIG: allow configurable package, version separator (foamPackRelease) 2019-11-12 17:15:38 +01:00
7e9a417fca STYLE: adjust member ordering to improve packing (of bools) 2019-11-12 16:57:45 +01:00
cb53ce3678 COMP: improvements to selection table helper classes
-  make constructors explicit, delete unused constructors
2019-11-12 14:29:53 +01:00
3238a63a10 DOC: add description text for AMIWeights, fieldsExpression 2019-11-12 14:26:41 +01:00
3b0d532614 STYLE: restore referenced source file name removed by ea5401c7 2019-11-11 20:29:28 +01:00
7c1190f0b1 ENH: rationalize some string methods.
- silently deprecate 'startsWith', 'endsWith' methods
  (added in 2016: 2b14360662), in favour of
  'starts_with', 'ends_with' methods, corresponding to C++20 and
  allowing us to cull then in a few years.

- handle single character versions of starts_with, ends_with.

- add single character version of removeEnd and silently deprecate
  removeTrailing which did the same thing.

- drop the const versions of removeRepeated, removeTrailing.
  Unused and with potential confusion.

STYLE: use shrink_to_fit(), erase()
2019-11-11 18:50:00 +01:00
ea214727a5 ENH: 'set' instead of 'insert' std::initializer_list to HashTable
- Duplicate entries are handled by overwriting, which corresponds more
  closely to the notion of assignment
2019-11-11 17:07:30 +01:00
148317ab68 CONFIG: bump patch level 2019-11-11 09:08:27 +01:00
3768773eb8 COMP: add version information to wmake
- wmake -version, --version option (alias for -show-api)
  for consistency with standard system tools
2019-11-10 11:24:07 +01:00
1c94105574 BUG: surfaceFieldValue interpolate on sampled surface fails (fixes #1488) 2019-11-11 08:54:05 +01:00
b63a6edb24 STYLE: Corrected option description 2019-11-01 11:27:48 +00:00
e9219558d7 GIT: Header file updates 2019-10-31 14:48:44 +00:00
b47f4b1737 CONFIG: bump patch level 2019-11-03 10:55:13 +01:00
528ceff836 BUG: genericPointPatchField removed "value" entry (fixes #1474) 2019-11-03 10:47:44 +01:00
186b0350f9 ENH: Pressure function object - added optional inclusion of hydrostatic pressure
Example - create p-rgh from p:

    pressure-p-rgh
    {
        type            pressure;
        libs            (fieldFunctionObjects);
        writeControl    writeTime;
        mode            static;
        rho             rhoInf;
        rhoInf          1;
        hydrostaticMode subtract;
        g               (0 -9.81 0);
        hRef            0;
    }

- the hydrostaticMode entry is optional - setting is shown during construction
- g and/or hRef values are retrieved from the database if not specified
2019-10-22 15:54:13 +01:00
671519d2d9 ENH: Function objects - runTimePostProcessing - updated and exposed culling options 2019-11-01 11:03:30 +00:00
9bf48db7fd STYLE: spurious #warning emitted in JobInfo 2019-11-11 14:32:44 +01:00
713595f0c0 COMP: adjust common paraview library name to vtkPVFoamCommon
- similar prefixing as the dependent readers, making it easier to
  identify

- add FOAM_API information as server module version
2019-11-11 11:21:45 +01:00
8495e8e92c COMP: provide separate get_pvplugin_api function 2019-11-11 11:16:54 +01:00
bab110350b CONFIG: adjust adios and paraview versions 2019-11-11 10:37:06 +01:00
3a964c04f3 COMP: report locations of build tools (such as flex, m4 etc)
- can assist diagnosing when things have gone wrong
2019-11-10 11:24:07 +01:00
17d159d76d COMP: add version information to wmake
- wmake -version, --version option (alias for -show-api)
  for consistency with standard system tools
2019-11-10 11:24:07 +01:00
52d2643994 BUG: surfaceFieldValue interpolate on sampled surface fails (fixes #1488) 2019-11-11 08:54:05 +01:00
71de630722 ENH: tune efficiency of stringOps::trim
- move left/right positions prior to substr
2019-11-10 10:50:49 +01:00
60155bd90d TUT: add (disabled) surfaceFieldValue interpolate (#1488) 2019-11-09 16:51:31 +01:00
e230e9c5e6 TUT: add missing relax entry in reactingTwoPhaseEulerFoam/RAS/wallBoiling 2019-11-09 16:51:31 +01:00
060a14394f STYLE: use dictionary findEntry instead of csearch
- fix typo
2019-11-09 16:41:42 +01:00
5e50800e2f ENH: improve missing entry message for Function1 or PatchFunction1
- now indicate that the dictionary entry is missing, not that it is
  an unknown function type.
2019-11-09 16:39:15 +01:00
aaa27eaeec CONFIG: openfoam session must use /bin/bash, not /bin/sh (fixes #1461) 2019-10-17 09:29:42 +02:00
d7c0676f62 STYLE: mention scalar/label size in README 2019-10-16 14:40:00 +01:00
3b6ba059c3 TUT: verificationAndValidation for weightedFlux scheme (#1388) 2019-10-10 12:59:39 +02:00
d04de0d481 ENH: modified laplacianFoam to use dimScalar or volScalar for DT (#1388) 2019-10-07 12:59:39 -07:00
0968408736 STYLE: correct executable permissions and shebang on tutorial files
- triggers rpmlint warnings
2019-10-01 15:47:29 +02:00
940a5a2bc3 ENH: overset: check non-local donors to see if 'better'. See #1183 2019-10-18 17:11:37 +01:00
adb83ad6d2 ENH: patchSet: wrong logic to compress points. See #1453. 2019-10-03 11:44:24 +01:00
386cafd8a7 ENH: patchSet: merge collocated points. Fixes #1453. 2019-10-03 10:51:29 +01:00
a563db323f CONFIG: bump patch level 2019-10-01 14:01:58 +02:00
b0cc93ecc8 BACKPORT: openfoam shell wrapper (interactive or 'one-shot' use) 2019-09-25 17:36:10 +02:00
58f6258d7a BUG: Correcting delta in fa consistent with fv.
Solve issue 1431 Gitlab. delta() calculation on the patch is consistent
with not applying non-orthogonality on the patch.
2019-09-27 15:16:00 -07:00
92f288ca36 BUG: Correcting issue 1441. Reading cAlphas entry for multiphase 2019-09-27 14:24:05 -07:00
01b4519f27 ENH: added weightedFlux interpolation scheme (#1388)
- This scheme is useful to calculate the face interpolation values for
  the Gauss gradient when the diffussion coefficient is discontinuous
  across a face. This sheme is used for Gauss grad.
2019-09-24 10:52:01 +02:00
a1fa05f1ed BUG: Fixing psib at the boundary
Fix gitlab #1423
2019-09-18 13:03:04 -07:00
e1fb615f87 BUG: Fixing psib to use products mixture.
Fix Gitlab issue #1423
2019-09-18 09:22:35 -07:00
4265fc2459 BUG: overset: use correct normalisation. Fixes #1437. 2019-09-12 13:42:38 +01:00
e753125669 ENH: writeFile - refactoring and added constructor 2019-09-09 09:21:56 +01:00
31aad2159f STYLE: writeFile - renamed writeTime to writeCurrentTime to avoid conflicts 2019-09-09 09:19:38 +01:00
a3f3ec81f8 BUG: randomDecomp: added non-mesh decomposition. Fixes #1428. 2019-09-05 14:25:15 +01:00
76c156a667 CONFIG: bump patch level 2019-08-28 17:23:46 +02:00
b6eeaf5155 BUG: missing foamExec causes foamJob failure (#1309, #1411)
- foamExec was removed as part of commit 6c68c34e1a but
  overlooked the fact that it is partly still needed by foamJob.
  When running in parallel, it is used to source the etc/bashrc env.

  Reinstated a stripped down form, which has been relocated to
  bin/tools directory (it should not be directly called by the user).

  The previous version switching functionality has nonetheless be
  dropped since it only worked only when a rigid naming convention for
  OpenFOAM installations was followed.

ENH: add foamJob log=, -log-app, -no-log options, improved coding quality
2019-08-28 17:19:11 +02:00
87330972d8 ENH: interpolationTable improvements
- reduce code duplication, support returning multiple interpolations
  as a Field
2019-08-23 15:57:22 +02:00
784d3ad5d4 BUG: sourced incorrect LogFunctions location
- cleanup the run script syntax
2019-11-08 13:14:14 +01:00
cc5fac8299 STYLE: snappyHexMesh: excess declarations 2019-11-07 13:25:33 +00:00
979a12e521 TUT: fix Allrun script for bump2D
- use sed instead of foamDictionary and avoid log file

- ensure consistent behaviour with plot script

GIT: added missing 0/k field : inlet values still need adjustment
2019-11-07 09:35:10 +01:00
46d7db79aa TUT: consistent calling of m4 2019-11-06 11:50:42 +01:00
e6dfb39c66 STYLE: remove unnecessary stdout, stderr /dev/null redirects
- no stderr redirect needed:
    * 'command -v'

- no stdout/stderr redirect needed:
    * 'rm -f'

STYLE: consistent spacing after redirects
2019-11-06 10:44:36 +01:00
ec7e3c88e4 ENH: test for WM_PROJECT_DIR being set/unset in scripts 2019-11-06 09:18:51 +01:00
e5916fd9ba ENH: use findMinMax instead of findMin, findMax separately 2019-11-05 13:10:23 +01:00
e8fa46230a ENH: add min/max compare/reduction operators for Tuple2 first()
- min/max ops that only compare the first element
2019-11-05 13:08:21 +01:00
b0c88dff58 ENH: treat self-assignment as no-op instead of a Fatal (#1473)
- this can help if using std algorithms that return a const reference
  such as std::min() does.
2019-11-05 11:10:49 +01:00
883752cfb9 COMP: restructure paraview reader files, add paraview-5.7 guards
- building plugins with paraview-5.7 is quite different
2019-11-05 09:14:37 +01:00
675dbc4333 ENH: use wordHashSet instead of hashedWordList in PV readers
- we don't need the GUI sort order of the values.
2019-11-04 18:29:29 +01:00
a6c442bf3f COMP: support install for paraview-versioned cmake 2019-11-05 09:06:33 +01:00
e3b9bbab11 STYLE: mark facePointPatch::patch() as virtual, remove unused functions 2019-11-04 18:05:53 +01:00
7aa83ea939 ENH: postProcess - updated app to update on mesh change instead of full clear out 2019-11-12 15:38:52 +00:00
fdf8d10ab4 Merge commit 'e9219558d7' into develop-v1906 2019-12-05 11:47:19 +00:00
ee7bb0459b ENH: dimensionSet::clear() - reset exponents to be dimensionless 2019-11-04 16:37:57 +01:00
96d260713e CONFIG: openfoam session must use /bin/bash, not /bin/sh (fixes #1461) 2019-10-17 09:29:42 +02:00
5d8b18d452 STYLE: mention scalar/label size in README 2019-10-16 14:40:00 +01:00
ad5be0586b TUT: define slip boundaries in building motion tutorial
- define nut conditions explicitly, without fallback definition
2019-11-02 19:46:12 +01:00
f084309b37 ENH: add refCast variant with an index to convey the context
- can be helpful, for example, when the refCast has been used on a
  boundary patch. Knowing which patch index triggered the problem
  helps with isolating the issue.
2019-11-02 19:46:12 +01:00
5577606997 ENH: generalise bump2D Allrun and plot scripts
STYLE: renamed periodicHill createPlots -> plot for consistency

TUT: use nutLowReWallFunction for bump2D

- required for the new nutWallFuncs hierarchy
2019-11-01 16:08:24 +00:00
d13df0e4da CONFIG: ensure cleanCase removes postProcessing-dry-run (#1475) 2019-11-01 17:43:01 +00:00
a753f0ac0b STYLE: alignment and capitalization of website address 2019-11-01 19:28:57 +01:00
177f4b79fe ENH: use direct scanning mode when lexing #eval expressions 2019-11-01 19:13:50 +01:00
42308ea1f3 CONFIG: improve robustness of paraview lib detection 2019-11-01 17:55:50 +01:00
5ac91a713e ENH: provision for listing debug/info/optimisation switches individually 2019-10-30 14:21:28 +01:00
b9e0ca1d1b ENH: add Enum single-parameter operator() to resemble a unary function 2019-10-30 12:54:52 +01:00
c5ed28d0e3 STYLE: extraneous space in template parameter 2019-10-30 12:54:06 +01:00
fd4ffc8a27 ENH: use PrecisionAdaptor in kahipDecomp 2019-10-29 11:42:55 +01:00
328513fcaa ENH: use List instead of UList for internal decomposition implementation
- enables future use of precision adaptors
2019-10-29 10:46:33 +01:00
4e706c2625 COMP: add createCode helper scripts 2019-10-29 10:46:15 +01:00
56d5ba9982 STYLE: fix typo 2019-10-29 10:45:59 +01:00
97c2a62536 COMP: silence gcc 8.2 memcpy warnings
- we know they have already protected by an is_contiguous check,
  so the class-memaccess warning/error can be suppressed.
2019-10-28 16:57:47 +01:00
4de1215b44 STYLE: use default for constructors/destructors 2019-10-28 16:13:42 +01:00
80daea6017 CONFIG: update lemon code to version from 2019-09-11 2019-10-28 14:30:05 +01:00
07ac8aa916 CONFIG: update kahip=2.12 scotch=6.0.8
- adjust known gcc/clang compiler versions
2019-10-28 12:55:15 +01:00
da33222970 ENH: add flexible command options for setting Debug and Info switches #1467
For example,

   $ someSolver -info-switch writeOptionalEntries

- note that values changed via the command-line are changed after the
  etc/controlDict entries, but *before* any case-local
  system/controlDict entries.

  However, in many testing cases the command-line options eliminate
  the need for such local file modifications.

ENH: cleanup handling of local debug switches in Time

- add as methods directly on simpleObjectRegistry to avoid code
  duplication

STYLE: adjust internal naming of ITstream parameters
2019-10-25 15:03:11 +02:00
b0a999ca59 ENH: improve reporting for optional dictionary entries (#1468)
- now reports the dictionary, entry, default. For example,

  Dictionary: <case>/0/nut.boundaryField.wall Entry: Cmu Default: 0.09
  Dictionary: <case>/0/nut.boundaryField.wall Entry: kappa Default: 0.41
  Dictionary: <case>/0/nut.boundaryField.wall Entry: E Default: 9.8

- suppress reporting for debug, optimisation switches since this
  generates extremely noisy output
2019-10-25 11:03:25 +02:00
e3d4d79300 ENH: add InfoErr stream. Same as Info, but with stderr instead of stdout 2019-10-25 10:45:07 +02:00
5213a4aa9d ENH: replace DictionaryBase toc with sortedToc version (#1467)
- cannot rely on the entries having a keyword method

STYLE: apply consistent hash table sizing for debug objects
2019-10-24 17:54:45 +02:00
9f11d892f5 ENH: Update of alphaBoiling BC, Bromley and tutorial 2019-10-28 12:30:53 -07:00
9449d92fb9 STYLE: shm: improved debug messages 2019-11-07 11:03:47 +00:00
fb7698f6a1 ENH: streamLine: add bidirectional tracking. Fixes #1466. 2019-10-23 16:52:27 +01:00
88ebf110ff STYLE: snappyHexMesh: added comment 2019-10-23 16:44:54 +01:00
848a63572a BUG: nearWallFields: incorrect sampling location. Fixes #1464.
It was tracking to find the wanted sampling location. This tracking
was using the offsetted seed point instead of the offsetted wanted
sampling point.
2019-10-23 16:26:22 +01:00
c9c3912e8d CONFIG: support pkg-config for PETSc detection 2019-10-23 15:10:12 +02:00
371e861d29 STYLE: remove erroneous and unused setcompression IO manipulator
- cannot change stream compression after construction.
2019-10-23 10:24:20 +02:00
9bfc06ed99 COMP: remove const type qualifier from static_cast<char> - gcc 8.3 2019-10-22 19:17:21 +02:00
4260b8bf0b STYLE: mixed BC should mention refGradient instead of refGrad 2019-10-22 12:57:35 +02:00
1f49dfe088 STYLE: meshToMesh: typo, cached version. 2019-10-18 17:19:40 +01:00
64ceecc4c9 ENH: postProcess - update function objects on mesh change rather than clear 2019-10-10 20:56:36 +01:00
eb5b6fd7e4 ENH: mapPolyMesh - added construct from mesh 2019-10-10 20:55:35 +01:00
36af9f615a ENH: Added utility functions to polyBoundaryMesh 2019-10-10 20:54:37 +01:00
f64125c6d9 ENH: redistributePar: handle -overwrite. Fixes #1450. 2019-10-17 13:27:55 +01:00
1ddcdb083e ENH: add support for m4 filtering of lemon grammars 2019-10-11 09:24:04 +02:00
28a9cde028 ENH: add boolField specializations: negate(), component()
ENH: added scalarField hypot() function
2019-10-10 13:13:20 +02:00
b465592ee2 ENH: added access to get/set a Tensor diagonal 2019-10-10 10:44:29 +02:00
7b42931a7b TUT: use nutkWallFunction 2019-10-10 07:35:16 +02:00
6b5492e3bd ENH: code simplification, improvements for reading dictionary variables
- Now accept '/' when reading variables without requiring
  a surrounding '{}'

- fix some degenerate parsing cases when the first character is
  already bad.

  Eg, $"abc" would have previously parsed as a <$"> variable, even
  although a double quote is not a valid variable character.

  Now emits a warning and parses as a '$' token and a string token.
2019-10-08 18:43:38 +02:00
f164292e89 STYLE: adjust parser entry point
- avoid the name eval(), since this collides with the identical
  macro name if m4 is used sometime in the future
2019-10-09 09:58:46 +02:00
f2c4d7b81b CONFIG: report parser stats with wmake/scripts/makeParser 2019-10-08 18:58:32 +02:00
e81fda7924 STYLE: make local buffer sizes constexpr 2019-10-08 18:44:15 +02:00
fa95e30176 STYLE: remove ununsed include 2019-10-08 18:43:38 +02:00
6b0e77ce00 STYLE: adjust doxygen for token, add DOLLAR as punctuation char 2019-10-08 18:43:38 +02:00
92c0ab4ed8 STYLE: use std::string for parameters in ISstream internal members 2019-10-08 13:03:45 +02:00
46225279c0 ENH: improvements to stringOps::expand operations
- add toScalar evaluation, embedded as "${{EXPR}}".

  For example,

    "repeat ${{5 * 7}} times or ${{ pow(3, 10) }}"

- use direct string concatenation if primitive entry is only a string
  type. This prevents spurious quotes from appearing in the expansion.

     radius  "(2+4)";
     angle   "3*15";
     #eval   "$radius*sin(degToRad($angle))";

     We want to have
         '(2+4)*sin(degToRad(3*15))'
     and not
         '"(2+4)"*sin(degToRad("3*15"))'

ENH: code refactoring

- refactored expansion code with low-level service routines now
  belonging to file-scope. All expansion routines use a common
  multi-parameter backend to handle with/without dictionary etc.
  This removes a large amount of code duplication.
2019-10-07 08:27:19 +02:00
d9d29e5a8f STYLE: split off Test-string2 2019-10-04 17:52:08 +02:00
bd35981feb ENH: stringOps::toScalar improvements
- add floor/ceil/round methods
- support evaluation of sub-strings

STYLE: add blockMeshDict1.calc, blockMeshDict1.eval test dictionaries

- useful for testing and simple demonstration of equivalence
2019-10-04 17:50:55 +02:00
61e95b8471 ENH: improvements to SubList and SubField
- SubField and SubList assign from zero
- SubField +=, -=, *=, /= operators

- SubList construct from UList (as per SubField)

  Note: constructing an anonymous SubField or SubList with a single
  parameter should use '{} instead of '()' to avoid compiler
  ambiguities.
2019-10-04 14:21:18 +02:00
f75e01c8c2 CONFIG: adjustments for CMake files
- drop plugin support for Qt4 (old paraview)

- handle upcoming changes in VTK version naming in CMake files
  * VTK_MAJOR_VERSION becomes VTK_VERSION_MAJOR etc.
2019-10-04 11:48:03 +02:00
c816ab7e03 CONFIG: update 3rd party versions (adios2=2.5.0 scotch=6.0.7) 2019-10-02 16:58:42 +02:00
2c2034f9ba COMP: add placeholder header files 2019-10-02 10:15:31 +02:00
5cbfe44d6b TUT: add Allclean script into bump2D 2019-10-02 18:32:13 +01:00
458738f095 ENH: Subtle renovations in wall function documentation and input
- Improves header file documentations
  - Adds const specifier to various objects
  - Allows various model constants to be user-defined
  - Changes from lookupOrDefault() to getOrDefault()
  - Consistent namespace usage:
    - If the WF belongs to only Foam:: namespace, use Foam:: explicitly
    - If the WF belongs to more than one namespaces, put the WF in namespace
      parentheses
  - Adds the missing dashes in comments required by Doxygen
  - Corrects capitalisation in comments
  - The terminology 'viscous sublayer' was preferred over 'laminar sublayer'
    due to the fact that the sublayer is not laminar.
  - The order of initialisation of fields is changed to be the same across all.
2019-10-02 12:58:20 +01:00
ce9ea1ca08 ENH: Integrated OpenFOAM.org developments for wall functions
OpenFOAM.org commits for
  src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions
were reviewed.

The parts of the commits made by OpenFOAM.org removing various code
duplications across wall functions were picked up by keeping the remaining
functionalities the same.

The duplications were mainly due to:
  - wall function model coefficients
  - yPlusLam(), checkPatch(), write() methods

The duplications were united under the base nutWallFunction.
2019-10-02 11:39:55 +01:00
6532f27547 ENH: add support for alpha field in temperatureCoupledBase 2019-10-01 19:16:43 +02:00
9b1b024f02 DEFEATURE: remove explicit regionCoupled methods
- did not perform as well as desired. Slated for replacement with a
  different approach.
2019-09-30 18:35:37 +02:00
cd503cdb98 SUBMODULES: upgrade from deprecated dictionary lookupEntry 2019-10-02 11:48:19 +02:00
f5a5830779 STYLE: update license text in a few files (were still GPL-2) 2019-10-02 10:28:59 +02:00
51099548ed COMP: remove ignored qualifiers 2019-10-02 09:42:29 +02:00
e9f96b25c9 STYLE: mark FixedList data(), first(), last() as noexcept
- since a zero-sized FixedList is disallowed, the accessors to the
  first/last elements are always known.

  This allows Pair second() to be noexcept as well (as per Tuple2)
2019-10-02 09:34:07 +02:00
de11575e1e STYLE: mark containers empty() and size() as noexcept 2019-10-02 09:04:20 +02:00
2c11d875ad CONFIG: bump API to 1909 to reflect #eval directive 2019-10-01 14:27:16 +02:00
e2d3d0125b STYLE: fix merge artifacts 2019-10-01 14:25:35 +02:00
518fb0858d CONFIG: support -prefix for openfoam wrapper 2019-10-01 13:42:58 +02:00
8f1844fff0 TUT: remove cr-nl endings
- use git show --ignore-space-change when examining
2019-10-01 12:39:10 +02:00
93422f1a72 TUT: use simpler syntax for motionSolverLibs entries 2019-10-01 10:58:53 +02:00
e7f380dcd5 TUT: use #eval instead of #calc where possible 2019-10-01 10:14:55 +02:00
02914539f7 TUT: consistent use of scale in blockMeshDict 2019-10-01 09:33:38 +02:00
3625d0ecd1 TUT: remove duplicate ;; in dictionaries 2019-10-01 10:39:40 +02:00
336b9ebd0b STYLE: only report use of #eval in FULLDEBUG mode (less clutter) 2019-10-01 10:43:37 +02:00
7ce2bdfce7 ENH: report the age of blockMesh 'convertToMeters' keyword
- was superseded by 'scale' in OCT-2008
2019-10-01 09:32:18 +02:00
f8539f8b46 ENH: use default zero (opaque) "transmissivity" in radiation lookup
- improves input compatibility with existing setups
2019-10-01 08:54:15 +02:00
836d3a849f ENH: add stringOps::toScalar and dictionary #eval directive
- the #eval directive is similar to the #calc directive, but for evaluating
  string expressions into scalar values. It uses an internal parser for
  the evaluation instead of dynamic code compilation. This can make it
  more suitable for 'quick' evaluations.

  The evaluation supports the following:
    - operations:  - + * /
    - functions:  exp, log, log10, pow, sqrt, cbrt, sqr, mag, magSqr
    - trigonometric:  sin, cos, tan, asin, acos, atan, atan2, hypot
    - hyperbolic:  sinh, cosh, tanh
    - conversions:  degToRad, radToDeg
    - constants:  pi()
    - misc: rand(), rand(seed)
2019-09-30 16:40:32 +02:00
bd9992d0d5 STYLE: reduce some file clutter for zero/one/nullObject
- more consistent location for oneField, oneFieldField inline definitions

- eliminate nullObjectI.H for more transparency
2019-09-30 12:42:22 +02:00
ba8f237b21 STYLE: use default destructor for ldu interfaces 2019-09-30 11:51:57 +02:00
dcff32ea65 STYLE: use move insert in featurePointConformer 2019-09-30 09:40:59 +02:00
a1727f4ba5 BUG: collated ensight writer dropping entries (#1451)
- regression as a result of changed time-handling from #1418.
  Now cache the fields information internally.
2019-09-29 18:06:59 +02:00
4a5569776e ENH: add cmptMagSqr for scalars, VectorSpace, Fields (#1449) 2019-09-29 16:53:42 +02:00
bc9295ee04 ENH: adjust HashTable iterator access
- previously allowed mapped value modification with a const iterator.
  However, this can lead to incorrect access patterns.

  Now tie the constness of the mapped value to that of the iterator.

- Remove deprecated iterator object() method.
  Was only used internally and was superseded by the val() method
  in an earlier version.

ENH: change isPointer to isPointerLike

- can distinguish between real pointers and wrapped pointers
2019-09-25 12:21:54 +02:00
b931e267fe SUBMODULES: updated HashTable iterator pointer derefencing 2019-09-29 18:11:47 +02:00
b6bf9129f6 DEFEATURE: pointer dereferencing for HashTable iterator
- this largely reverts 3f0f218d88 and 4ee65d12c4.

  Consistent addressing with support for wrapped pointer types (eg,
  autoPtr, std::unique_ptr) has proven to be less robust than desired.
  Thus rescind HashTable iterator '->' dereferencing (from APR-2019).
2019-09-27 19:45:54 +02:00
fc461a1cc6 TUT: use writeControl "adjustable" (alias for "adjustableRunTime") 2019-09-27 15:50:06 +02:00
4cc7bf1468 ENH: support writeControl 'none' (#1448)
- for special cases when normal writing is to be completely disabled
  and replaced with alternate means (eg, via a function object).

- support "adjustable" as "adjustableRunTime" alias to reduce typing
  for writeControl or outputControl
2019-09-27 15:46:26 +02:00
0840bfdcb8 STYLE: adjustments to HashSet, HashTable
- use HashTable emplace instead of insert to avoid unneeded argument
  (for HashSet).

- use emplace when generating zero-initialized values for
  HashTable::operator()

- drop unused parameter from Detail::HashTableSingle,
  adjust templates parameter names

- forward HashTable::operator[] to the semantically identical
  HashTable::at() to avoid code duplication
2019-09-27 14:52:52 +02:00
8a75bdb12f ENH: add dictionary method subDictOrAdd (related to #1442) 2019-09-25 17:25:16 +02:00
f1ed0a617b COMP: add lemon parser and skeleton code 2019-09-27 11:09:40 +02:00
4a6cd8f194 COMP: update make rules for lemon, add helper infrastructure for ragel 2019-09-27 11:05:35 +02:00
f7528a2ac5 COMP: fix inconsistent bison make rule
- generated C++ files, but didn't use C++ compiler
2019-09-26 10:41:16 +02:00
fb0057ea72 STYLE: accept lowercase -sp/-dp/-spdp for foamConfigurePaths 2019-09-25 18:20:32 +02:00
043d55e382 ENH: add wrapper for starting OpenFOAM as an interactive bash session
- call also be used non-interactively for simple 'one-shot' use of
  OpenFOAM utilities or solvers

STYLE: use dash instead of brackets for '- see www.OpenFOAM.com'

- less cluttered in combination with API information
2019-09-25 17:36:10 +02:00
fd7fe96e9f SUBMODULES: updated HashTable iterator names 2019-09-25 15:16:19 +02:00
2259fd845c STYLE: add const_cast when deleting pointers in objectRegistry
- makes the intention clearer, allows for future tightening of
  iterator access rules.
2019-09-25 13:30:25 +02:00
a1ee14690b STYLE: add source directory structure for lumpedPointMotion 2019-09-24 14:54:02 +02:00
38b53e5346 STYLE: use default destructor in header definitions 2019-09-24 12:14:36 +02:00
310c5d934e STYLE: spacing and punctuation 2019-09-24 11:04:17 +02:00
60a8f7b634 ENH: allow alternative delimiter for getLine. Default: '\n' 2019-09-24 09:31:28 +02:00
13967565a6 ENH: stringOps removeComments and inplaceRemoveComments
- useful for manual handling of string with comments
2019-09-24 08:25:32 +02:00
603849383d BUG: incorrect dictionary name for subOrEmptyDict (fixes #1442) 2019-09-24 07:36:49 +02:00
5382ce775f ENH: allow alternative delimiter for fileName::concat. Default: '/' 2019-09-24 07:06:03 +02:00
e3b05494f7 COMP: relocate regionProperties to meshTools 2019-09-20 14:06:30 -07:00
5447220e6f BUG: Add writeDivider to foamDictionary (#1444) 2019-09-23 14:14:48 +01:00
79dff5d8fe ENH: add col/row access methods for Tensor2D (#1430) 2019-09-23 14:40:47 +02:00
61dfa9b544 ENH: checkMesh: do not create wallDist unless in fvSchemes. See #71 2019-09-19 14:37:38 +01:00
88c1626b5b ENH: indexedOctree: print max leaf size 2019-09-12 13:54:26 +01:00
356995bf07 TUT: Update radiation tutorials radiation BC's for transmissivity 2019-09-16 10:05:55 -07:00
60fe4f9f0f ENH: Adding collimate beam source to fvDOM and multiBandZoneAbsorption 2019-09-13 10:37:08 -07:00
35d77aaec0 ENH: mapFields FO - mapping now on call to execute 2019-09-12 10:40:19 +01:00
df2db077cf COMP: use cast to avoid clang compiler error 2019-09-05 09:53:15 +01:00
d724e303ac BUG: add a warning in star4ToFoam for .cel files containing only shell entries (#1425) 2019-09-04 14:59:57 +01:00
603badd196 ENH: advectionDiffusion: avoid recursion. See #71.
Does not fix the tolerance issue.
2019-09-03 12:34:43 +01:00
43f938291e ENH: polyMesh: better warning message 2019-09-03 12:32:04 +01:00
1307836caa ENH: checkMesh: write wall distance. See #71 2019-09-02 12:40:22 +01:00
50eb262c51 ENH: improve time-handling for collated ensight surface writer (#1418)
- now maintains a correct list of geometry instances, without assuming
  contiguous file numbering. However, if the numbering is contiguous,
  the more compact case representation will be used.
2019-08-31 21:51:27 +02:00
8037b8d6a8 ENH: allow invariant surfaces for sampling (#1418)
- an advanced feature, for example when sampling on a static patch
  while some motion occurs elsewhere. [use with caution]

- If the sampled surface dictionary is modified during run-time, the
  ensight file indexing for the geometry will become out of sync.
  This is addressed in a subsequent commit.
2019-08-30 15:46:07 +02:00
880d81475b TUT: use simpler syntax for libs entries 2019-08-30 16:45:45 +02:00
6eaa326cec ENH: support additional command-line loading of libraries (#1414)
- this can be useful for preloading of libraries, or for utilities
  that don't use system/controlDict.

  The additional libraries can be specified individually:

      myUtil -lib lib1 -lib lib2 -lib lib3

  When specified like this, the options add up.

  Or as a 'captured' list using OpenFOAM's standard arg list handling:

      myUtil -lib '(' lib1  lib2 lib3 ')'
      myUtil -lib \( lib1  lib2 lib3 \)

  or as single argument list:

      myUtil -lib '("lib1" "lib2" "lib3")'

  When specified as a single argument, would normally take advantage
  of the transparent handling of word vs fileName and omit the string
  quotes:

      myUtil -lib '(lib1 lib2 lib3)'

ENH: dlOpen error messages now propagated into dlLibraryTable

- this makes the context more relevant and also avoids the previous
  annoyance of double warnings (one from the POSIX loader, and one
  from dlLibraryTable)

STYLE: mark -noFunctionObjects and -withFunctionObjects as 'advanced'

- reduces clutter. Still visible with -help-full
2019-08-30 15:33:29 +02:00
7443011217 BUG: Fixing solid specie index in omega function 2019-08-21 11:47:10 -07:00
785241178f BUG: Correct div(u*p) for Teqn in compressibleInterFoam .Gitlab 1400. 2019-08-21 11:34:18 -07:00
8fe96e5dee ENH: Changing tolerance overlap. Taking out filter by small overlap 2019-08-19 13:38:36 -07:00
894645f9e1 CONFIG: update wmake rules for parsers
- include ragel and lemon

- rename pre-generated files to ".cc" so that they are more
  recognizable as being different from regular file content.
2019-08-16 10:06:08 +02:00
9bb48cc37a ENH: also accept reading fileName as wordToken
- should have been part of commit 9d36d3c08a
  which allows us to upcast a word to a fileName.
2019-08-30 12:50:45 +02:00
07fb19e9d8 ENH: add construct dimensionedType from primitiveEntry
- allows direct reading of a single entry with token checking
2019-08-28 21:16:19 +02:00
3e9562f781 ENH: merging faces: generalise to disallow any constraints. Fixes #1352. 2019-08-29 10:56:06 +01:00
a19a71c0b7 ENH: FDICSmoother: solveScalar support. Fixes #1410. 2019-08-27 10:14:43 +01:00
5201999a38 STYLE: adjust comments in SortableList (#1401) 2019-08-27 14:40:27 +02:00
508277d0f8 COMFIG: update flex make rules to use '-f' for C-code as well
- add additional rule (ending '.ll') for the combination of
  flex for C-code but compiling the result as C++.
  This can be needed for re-entrant parsers.

- update bison rule to handle renaming of skeleton files.
  Use a wrap-bison script to manage this.
2019-08-23 17:34:25 +02:00
54eab4f2e8 CONFIG: link known C/C++ file extensions in wmakeLnInclude 2019-08-27 12:40:01 +02:00
e14713c6be STYLE: remove momentOfInertia postscript and example files 2019-08-27 12:31:17 +02:00
27a0a073e5 ENH: Adding div schemes for div(phi,p) 2019-08-22 09:11:27 -07:00
8d7b8043a4 ENH: add time ramping to surfaceNormalFixedValue (#1407)
- alternatively can use uniformNormalFixedValue with PatchFunction1
  specification and temporal ramping.

TUT: add ramped example for simpleCar
2019-08-22 12:28:30 +02:00
de487f0f0a STYLE: improve some descriptions (#1405) 2019-08-22 12:28:04 +02:00
ccaad99f52 STYLE: initialize debug switches with int instead of bool 2019-08-22 10:20:36 +02:00
a6581d3082 STYLE: group bool members together for better packing 2019-08-22 10:12:49 +02:00
922ef9b879 BUG: Fixing solid specie index in omega function 2019-08-21 11:49:04 -07:00
70b0013cac STYLE: adjust wording in some documentation (#1406) 2019-08-21 15:44:26 +02:00
c8ab912823 ENH: use foamVersion::api instead of OPENFOAM compiler define
- This improves consistency for warnAboutAge and build information
  when the API level changes
2019-08-20 14:32:17 +02:00
c8df98cc2a STYLE: simplify the writeFile constructor 2019-08-21 14:46:02 +02:00
2ca4792734 TUT: add coded example for sampling cellZoneId (#1383) 2019-08-21 12:13:51 +02:00
c0fce5c762 ENH: refactor some function entries to reduce code duplication 2019-08-21 11:19:54 +02:00
3f06722a07 ENH: suppress IOerror newlines if file name is empty
- compacter messages in some cases

STYLE: simplify output handling of line numbers
2019-08-20 21:51:33 +02:00
c9cb4ce34f ENH: minor improvements, cleanup of token class
- relax casting rules
  * down-cast of labelToken to boolToken
  * up-cast of wordToken to stringToken.
    Can use isStringType() test for word or string types

- simplify constructors, move construct etc.

- expose reset() method as public, which resets to UNDEFINED and
  clears allocated storage etc.

DEFEATURE: remove assign from word or string pointer.

- This was deprecated 2017-11 and now removed.
  For this type of content transfer, move assignment should be used
  instead of stealing pointers.
2019-08-20 17:48:31 +02:00
b5342c166c ENH: handle keyType type (literal/regex) as enum instead of bool
- makes its use somewhat clearer and allows more future options
2019-08-20 13:48:05 +02:00
dade6957c8 ENH: checkMesh report num global patches and min-max 2019-08-19 14:11:31 +02:00
9815d37db3 BUG: corrupt extrudeToRegionMesh boundary patches in parallel (fixes #1295)
- new patches were added to the end of existing patches, which placed
  them _after_ the processor patches. This is incorrect.
2019-08-16 01:07:00 +01:00
c072000dca ENH: add edit for ADIOS2 settings in foamConfigurePaths
CONFIG: remove adios1 config files
2019-08-16 09:17:18 +02:00
edbb6a122b STYLE: use foamVersion::api instead of OPENFOAM define for string output 2019-08-14 20:39:14 +02:00
7a75b9c0d4 STYLE: remove legacy OPENFOAM_PLUS and provisional OPENFOAM_COM defines
- OPENFOAM_PLUS was last used in OpenFOAM-v1712 and provided as a
  transition from OpenFOAM-v1806 until OpenFOAM-v1906

- OPENFOAM_COM was never used
2019-08-14 20:27:41 +02:00
ba69505225 ENH: add ITstream::toString() method
- creates a std::string with space-delimited tokens, which can be sent
  to another application or even re-parsed into tokens
2019-08-14 19:29:02 +02:00
771410e546 ENH: Adding tutorial for overset and multi motion solvers 2019-08-16 12:36:18 -07:00
d96ad1cd09 ENH: Add components to allow overset with multiple motion solvers
1) Add softWall rigidBody restrain
2) Add linearSpringDamper sixDoF restrain to work as soft rope
3) dynamicMotionSolverListFvMesh changed to dictionary based input
4) Add Time reference access to sixDof restraints
5) Add drivenLinearMotion to solidBodyMotionFunctions.
2019-08-16 11:27:59 -07:00
31bfd40001 ENH: globalMeshData - added else branch so that in the case of a cyclic baffle
edge it sets the globalEdgeOrientation

See #1367
2019-08-14 12:05:52 +01:00
60517236fd CONFIG: bump API to 1908 to reflect is_contiguous handling 2019-08-13 16:26:30 +02:00
dec8216835 CONFIG: bump patch level 2019-08-13 16:24:03 +02:00
e2269663aa BUG: edge sync fails with cyclic baffles (fixes #1397)
- synchronization, reduction only makes sense on processor-coupled
  patches. Since cyclic baffles are within a single processor domain,
  they are not reduced. So need to skip the sanity test for these.
2019-08-13 16:09:52 +02:00
a49fc7acf2 SUBMODULE: cfmesh update for is_contiguous 2019-08-13 13:10:10 +02:00
9510cdd1be CONFIG: improve build against paraview on headless nodes
- the use of 'paraview --version' can be fail if the build host
  doesn't have the necessary graphics. For this case, try to obtain
  the ParaView API number from the associated include directory.
2019-08-13 10:25:02 +02:00
212174064c CONFIG: robuster paraview detection 2019-08-09 14:22:30 +02:00
1c1b1874ea CONFIG: accept 'system' for foamConfigurePaths -paraview 2019-08-07 18:36:08 +02:00
38f81f1c4d DOC: Added missing endverbatim and minor tidying 2019-08-07 13:03:48 +01:00
b86f9944d7 ENH: handle some miscellaneous mixed input types (#1378) 2019-08-06 16:57:29 +02:00
f2fe35405c CONFIG: bump patch level 2019-08-06 16:02:38 +02:00
65be1b0e29 BUG: incorrect binary read of injectedParticle (fixes #1393)
- the read offset missed the tag_ member entirely and thus the entire
  particle information would be corrupt (incorrectly interpreted) as
  well as potential violation of adjacent (trailing) memory locations.
2019-08-06 10:30:07 +02:00
005abee368 STYLE: clarify comments in etc/colourTables 2019-07-31 12:02:13 +02:00
f95b67b565 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2019-07-30 08:49:57 -07:00
962e6f6318 ENH: Small editing to fvSchemes and alphatWallBoilingWallFunction 2019-07-30 08:49:15 -07:00
39834d8f45 ENH: add readContiguous detail (#1378)
- allows some internal handling for reading dissimilar storage types.
  Eg, scalars written as float (WM_SP), but read as double (WM_DP)

- reading binary parcel coordinates with dissimilar storage types is
  still pending
2019-07-29 12:01:34 +02:00
1d79c0452c ENH: additional contiguous traits (#1378)
- change contiguous from a series of global functions to separate
  templated traits classes:

    - is_contiguous
    - is_contiguous_label
    - is_contiguous_scalar

  The static constexpr 'value' and a constexpr conversion operator
  allow use in template expressions.  The change also makes it much
  easier to define general traits and to inherit from them.

  The is_contiguous_label and is_contiguous_scalar are special traits
  for handling data of homogeneous components of the respective types.
2019-07-29 11:36:30 +02:00
3c07a1bb6f ENH: Foam::name() of memory address
- returns the memory address formatted in hexadecimal, which can be
  useful for detailed information
2019-08-12 10:46:29 +02:00
3870b1d43c ENH: add longer method names for accessing Matrix num rows/cols (#1391)
- in addition to m() and n(), provide Matrix mRows()/nRows(), nCols()
  methods.  These provide unambiguous access names.

  'mRows()' == for internal consistency with MatrixSpace.
  'nRows()' == a commonly used naming.
2019-08-12 09:14:42 +02:00
9a3daeca23 STYLE: provide boolField and labelField typedefs in Field.H
- as per boolList, labelList typedefs in List.H
2019-08-09 17:39:54 +02:00
09e3441440 ENH: renamed attachedToCell to haloToCell and fix parallel consistency
- was added for #1394
2019-08-09 11:01:29 +02:00
188f4bd184 ENH: more flexible topoSetSource addOrDelete 2019-08-09 11:00:47 +02:00
13169cf8e3 ENH: improve syncTools handling of bitSet/PackedList types
- additional support for face sync/swap of boundary values.
  This allows use of bitSet instead of boolList in more places
2019-08-09 10:07:28 +02:00
45d527853d ENH: additional xorOp, bitXorOp, xorEqOp, bitXorEqOp reduction operators 2019-08-09 10:05:14 +02:00
b0eb74c142 SUBMODULE: added adios submodule (ADIOS2) and control files 2019-08-07 16:50:47 +02:00
e95ab402fd DOC: refer string::expand documentation to stringOps::expand 2019-08-07 14:45:06 +02:00
22cefff4a8 ENH: add toopSet attachedToCell (#1394)
- grows or shrinks a cellSet based on its external perimeter.
  Not yet working across coupled boundaries.
2019-08-07 12:33:23 +02:00
1dde76c8dd ENH: add bitSet::begin(pos) to provide alternative start for indexing 2019-08-07 13:49:48 +02:00
d4a0dc631c CONFIG: relax requirement on C compile option
- with 1906, OpenFOAM is purely C++ code and the last toolchain bits C
  code have been avoided. Thus relax the wmake C rule for including
  WM_COMPILE_OPTION. This makes it much easier to add different
  compiler options with fewer files.

  For example, for Broadwell-specific options:

      cd wmake/rules/linux64Gcc
      cp c++Opt c++OptBdw

      edit this file and then use WM_COMPILE_OPTION=OptBdw

- ensure that WM_COMPILE_OPTION is always non-empty
2019-08-07 09:22:09 +02:00
0395fa2122 SUBMODULES: avoid deprecated dictionary methods 2019-08-06 16:11:34 +02:00
b9594c47e1 STYLE: clarify comments in etc/colourTables 2019-07-31 12:02:13 +02:00
094336adab ENH: add mixed reading for lagrangian types (#1378) 2019-08-06 12:26:35 +02:00
ffbb0710fd ENH: add cloud::readObjects(const objectRegistry&)
- this can be use for situations where the cloud data has been
  provided by a non-file transport.
2019-08-02 18:30:12 +02:00
1d8ea9182b ENH: add basic zero-initialized constructors for particle classes
- for the most basic level construction with mesh and position only.
2019-08-02 17:23:00 +02:00
037be8dbb0 STYLE: use default constructors/destructors for base cloud classes
- use cloud::defaultName instead of "defaultCloud" string literal
2019-08-02 17:22:00 +02:00
e90eafcf18 ENH: rationalize cloud method inheritance
- a top-level cloud::nParcels() virtual, which is overloaded by the
  first level of Cloud inheritance. This permits quick determination of
  cloud sizes, even when retrieved from registry with the base level.
  Eg,
      cloud* cldPtr = mesh.cfindObject<cloud>("myCloud");
      label nParcels = (cldPtr ? cldPtr->nParcels() : 0);

- make writeLagrangianPositions on by default unless explicitly
  disabled in the InfoSwitches.

  Flag output errors (where neither coordinates nor positions are
  written) with Fatal.

- additional IOField helper functions in cloud

STYLE: simplify iterator inheritance
2019-08-02 17:20:18 +02:00
0cfd019b92 STYLE: add data/cdata to VectorSpace for consistency with FixedList etc 2019-08-06 12:00:56 +02:00
c28d785a73 STYLE: adjust name, default count for readRawLabel/readRawScalar (#1378) 2019-08-06 11:54:14 +02:00
7b2931272f ENH: potentialFoam - phi output now controlled by the -writephi command line option 2019-08-05 09:49:18 +01:00
492c30c34e ENH: mapFields FO - read schemes and cache mapped fields by default. See #1390 2019-08-05 09:48:25 +01:00
ef9bb4ae16 ENH: add low-level readRawLabels, readRawScalars (#1378)
- these use the additional byte-size checks in IOstream to handle
  native vs non-native sizes
2019-07-29 16:01:34 +02:00
b0ffdbcfb1 STYLE: relocate typeOfRank partial specialization to products.H 2019-07-29 16:00:59 +02:00
4c91d068fa ENH: added Time::New factory method
- creates a dummy time, which is useful when a local object registry
  is needed
2019-08-02 12:44:47 +02:00
e400725675 CONFIG: add sourcing hints for adios2, petsc 2019-08-02 12:17:39 +02:00
89bc42ddcb ENH: support search options on more dictionary methods
- can now specify literal matches for sub-dictionary methods:

    isDict(key, keyType::REGEX)
    optionalSubDict(key, keyType::REGEX)
    subDict(key, keyType::REGEX)
    subOrEmptyDict(key, keyType::REGEX, mandatory)

There is no change in behaviour of the methods, just the search option
is now exposed as an optional parameter.

NOTE: minor breaking change for subOrEmptyDict()

  old: subOrEmptyDict(key, bool=false)
  new: subOrEmptyDict(key, keyType::option=keyType::REGEX, bool=false)

  This affects code that previously explicitly set the bool parameter.
  Within OpenFOAM itself, this only affected a single file:

      KinematicCloud.C
2019-08-01 17:58:07 +02:00
8b3d77badc ENH: make OSstream indentation adjustable
- this is principally for cases where reduced indentation is desired,
  such as when streaming to a memory location. If the indentation size
  is zero or one, only a single space will be used to separate the
  key/value.

  This change does not affect the stream allocation size, since the
  extra data falls within the padding.

ENH: relocate label/scalar sizes from Istream to IOstream.

- could allow future use for output streams as well?

  Due to padding, reorganization has no effect on allocated size
  of output streams.

STYLE: add read/write name qualifier to beginRaw, endRaw

- removes ambiguity for bi-directional streams

STYLE: fix inconsistent 'const' qualifier on std::streamsize

- base Ostream was without const, some derived streams with const
2019-07-31 12:51:54 +02:00
6f8da834a9 ENH: add OListStream::swap(DynamicList<char>&)
- allows full recovery of allocated space, not just addressable range.

  This can be particularly useful for code patterns that repeatedly
  reuse the same buffer space. For example,

      DynamicList<char> buf(1024);

      // some loop
      {
          OListStream os(std::move(buf));
          os << ...

          os.swap(buf);
      }

   Can read back from this buffer as a second operation:

      {
          UIListStream is(buf);
          is >> ...
      }
2019-07-31 11:31:40 +02:00
b0d32ce1b4 STYLE: use 'operator>>' instead of readLabel and readScalar 2019-07-30 14:52:46 +02:00
743311df7d STYLE: consistent access for particle sizeofFields, particle iterators 2019-07-30 14:22:56 +02:00
3d0ed07fff DEFEATURE: remove particle PropertyTypes (revert of #109)
- data types were used for initial adios interface, but this proved
  difficult to manage and maintain.
2019-07-30 11:47:46 +02:00
7420bf2c57 ENH: Updated particle relocate 2019-08-02 10:07:11 +01:00
34c48982a2 ENH: Updated particle relocate 2019-08-02 10:05:54 +01:00
4631d3272f ENH: Adding multiband absorptivity and solar load working with FVDOM 2019-08-07 15:36:22 -07:00
5382c2f590 STYLE: fix namespace documentation for CGAL-related content 2019-07-30 18:15:48 +02:00
1b4b127af5 CONFIG: harmonize adios1, adios2 config files. Add to setup. 2019-07-31 13:21:52 +02:00
59b867b7af ENH: improvements for handling update of build information
- When building OpenFOAM for different platform combinations
  (single/double, int32/int64) the build information that is compiled
  into the OpenFOAM lib can become out of sync.

  This is because the update trigger (wmakeBuildInfo -check) is
  independent of the targetted platform. The added file
  'src/OpenFOAM/Alltouch' provides a direct means of forcing a rebuild
  of the version information. Eg,

      src/OpenFOAM/Alltouch
      wmake src/OpenFOAM

  Also provide an additional 'wmakeBuildInfo -remove' to forcibly
  remove META-INFO/build-info, if that is desired.
2019-07-30 09:54:02 +02:00
d4454ab6b4 TUT: binary output for windAroundBuildings 2019-07-30 11:42:00 +02:00
c41843e4f9 TUT: New AMI tutorial case for pimpleFoam - rotatingFanInRoom 2019-08-01 08:29:45 +01:00
80fb4da9ca STYLE: inconsistent use of readBeginList()
- use readBegin() when the only delimiters are '()' and not '({})'
2019-07-29 11:22:57 +02:00
bdc1c9bfb6 ENH: support low-level reading of raw binary blocks (#1378)
- symmetric with writeRaw() etc for the output stream. These are
  methods that are not required by normal users, but which provide
  a finer granularity for reading.

- additional information about the current stream position when
  endList fails. This may help when tracing errors.

STYLE: change return type of beginRaw()/endRaw() to bool

- was of type Ostream& for output, but return value was unused.
  Having bool may be better for encapsulating logic

STYLE: remove unused Istream::readEndBegin() function
2019-07-29 10:52:30 +02:00
8dd3c7f2bc CONFIG: add postProcessing/fields/lambVector template (fixes #1386) 2019-07-29 10:06:26 +02:00
78ce269a52 ENH: add field operations for complex (#1365) 2019-07-28 21:19:43 +02:00
53392d5a05 ENH: improve wmake handling of directory when given a source file 2019-07-28 21:09:11 +02:00
6a7954fda1 COMP: make mass transfer rates mutable
- in InterfaceCompositionPhaseChangePhaseSystem, the mass transfer
  rates are updated as a side-effect of the massTransfer() method,
  which makes these fields non-const.
2019-07-26 15:10:38 +02:00
1ccddd04ef ENH: more stringent check before adding 'lib' prefix (OSspecific)
- only prefix 'lib' for names without a path

STYLE: add more OSspecific debug output for library loading
2019-07-26 14:50:00 +02:00
b2f6e60a11 CONFIG: bump patch level 2019-07-24 09:52:18 +01:00
5767a77732 TUT: remove trailing space
- use git show --ignore-space-change when examining
2019-07-24 09:52:18 +01:00
b0a1a3fd0b BUG: quaternion - corrected construction from rotation tensor. Fixes #1348 2019-07-24 09:37:38 +01:00
6789e7477b BUG: adjointSolverManager - corrected indexing. Fixes #1381 2019-07-23 12:26:06 +01:00
09b91bbd97 ENH: Small editing to alphatWallBoilingWallFunction 2019-07-30 08:51:06 -07:00
c07ab24556 BUG: EP:1070. Adding check for coupled patches in faceReflecting 2019-07-22 15:14:46 -07:00
186edcfd8c COMP: resolve Int64 ambiguity 2019-07-19 18:14:39 +02:00
9e7ad6e511 ENH: improvements for isoSurfaceTopo erosion (#1374)
- adapted openfoam.org code.  Original commit message:

  Instead of adapting tet base points cell-by-cell, the dangling
  points are pre-computed and then the adaptations to the base points
  are made face-by-face. This correctly adapts faces which have
  different dangling points relative to the owner and neighbour cells.
2019-07-19 13:33:26 +02:00
2689202a3d ENH: support isoSurfaceTopo with cell subsets (#1374)
- treat the faces that would be exposed on a subset as boundary faces
  for the erosion algorithm

STYLE: adjust code for consistency between isoSurfaceCell and isoSurfaceTopo
2019-07-19 12:26:31 +02:00
3eb966d0ed ENH: consistent handling of isoSurface regularise/filtering (#1374)
- previously only had "regularise" as a bool value, now support
  enumerations too
2019-07-19 11:00:57 +02:00
6e17bf616e ENH: add global identity cartesian and cylindrical systems (#863) 2019-07-19 08:33:04 +02:00
55b1c57275 ENH: adjust displacementLayered framework
- add patch-point tracking to structured walk

- provision for cylindrical interpolation scheme

STYLE: more efficient use of bitSet
2019-07-18 15:54:55 +02:00
18984f6c27 COMP: remove constexpr from NullObject members 2019-07-18 10:39:05 +02:00
c0fad3be09 BUG: fix suspicious ordering in polyTopoChange::getCellOrder (#1376) 2019-07-18 10:28:40 +02:00
2f983f3f6f ENH: imbue input streams with label/scalar sizes (#1378) 2019-07-18 10:22:12 +02:00
d25b19f6aa ENH: add Barycentric2D outside() test 2019-07-18 09:59:58 +02:00
f94be1bebb ENH: use FatalIOErrorInLookup instead of FatalErrorInLookup 2019-07-16 10:26:51 +02:00
5d0f1788e1 ENH: minor improvements to printTable(List<wordList>, ..)
- return Ostream&
- make header separation optional
2019-07-15 19:25:22 +02:00
0ccc005fe6 ENH: add no-op methods to Nullobject
- empty(), size(), toc(), sortedToc()
2019-07-15 19:25:22 +02:00
fb09f56aba ENH: use FatalErrorInLookup macros (#1362) 2019-07-12 18:00:00 +02:00
1d86fc4f6b ENH: add single-parameter sortedOrder() function 2019-07-17 11:08:40 +02:00
5788fe056c STYLE: missing -postProcess option on basic solvers (#1375) 2019-07-16 12:09:00 +02:00
615565ad40 STYLE: relocate bashrc,cshrc projectDir detection as (advanced / legacy)
- makes the standard config variables more visible
2019-07-15 10:58:55 +02:00
4862cb4603 GIT: add forgotten file (commit 4ee65d12c4) 2019-07-15 08:36:05 +02:00
481661dabe CONFIG: bump API to 1907 to register any changes in keywords 2019-07-14 19:25:30 +02:00
bb35d784a2 BUG: distanceSurface has gaps in mesh (#1374)
- need to be more generous when prefiltering the cell selection
2019-07-12 16:38:04 +02:00
658d660333 BUG: incorrect blocked face synchronisation crashes regionSplit (#1370)
- now catch these and emit a warning.
  Still need to investigate the root cause in the caller(s) or regionSplit.
2019-07-12 13:29:20 +02:00
d2db25ad81 CONFIG: Updated pressure FO config wrappers. See #1356 2019-07-10 13:22:19 +01:00
e03c0977f5 ENH: support Foam::mv overwrite of existing files on windows (#1238)
- the behaviour of std::rename with overwriting an existing file is
  implementation dependent:
    - POSIX: it overwrites.
    - Windows: it does not overwrite.

- for Windows need to use the ::MoveFileEx() routine for overwriting.

  More investigation is needed for proper handling of very long names.
2019-07-09 18:52:06 +02:00
eda4cbd55c CONFIG: always allow spaces in fileName for Windows (#1238)
- this cannot be left as a configurable value (on windows), since it
  needs to be enabled even prior to reading the etc/controlDict file,
  in case the OpenFOAM installation path itself contains spaces.
2019-07-09 18:04:23 +02:00
7805fb45cf ENH: support different iso-algorithms (#1374)
- add an 'isoAlgorithm' keyword to distance surface and cutting plane
  to advance further testing of the isoSurfaceTopo algorithm.

  Does not yet handle the full spectrum of bound boxes, cellZones etc.
2019-07-09 12:46:40 +02:00
ba3f0734c0 ENH: added FatalErrorInLookup, FatalIOErrorInLookup macros (#1362)
- to simplify/unify error handling

STYLE: use NotImplemented instead of longer notImplemented(...)
2019-07-12 18:00:00 +02:00
bbc2d4a8b0 ENH: HashTable and HashSet improvements
- unfriend HashSet, HashTable IO operators

- global min(), max(), minMax() functions taking a labelHashSet and an
  optional limit. For example,

      labelHashSet set = ...;

      Info<< "min is " << min(set) << nl;
      Info<< "max (non-negative) " << max(set, 0) << nl;

- make HashTable iterator '->' dereferencing more consistent by also
  supporting non-pointer types as well.

- read HashTable values in-situ to avoid copying
2019-07-12 18:00:00 +02:00
ca5e7a5224 ENH: properly trap incorrect enumerations (#1372)
- the Enum::readEntry() method was previously as bit sloppy with
  respect to the enumeration that it accepted. If the input was
  non-mandatory, typos would go unnoticed. Now tighten things so that
  if an enumeration is found, it must also be valid.

STYLE: remove unused/deprecated Enum::lookupOrFailsafe() method

- this was only used in a few places internally in 1712 and 1806 but
  has since then been superseded by getOrDefault() with an optional
  'failsafe' flag.
2019-07-12 18:00:00 +02:00
1fb9e68d63 DEFEATURE: remove the now unused Xfer class
- previously deprecated and slated for removal in 2018-03
2019-07-12 18:00:00 +02:00
488f8938b2 ENH: add invert (inverse mappings) for bitSet 2019-07-12 12:00:00 +02:00
f1a48a3c2f ENH: accept bitSet for MeshedSurface::subsetMesh
- add triSurface::subsetMesh single-parameter variant
2019-07-12 08:54:34 +02:00
4380349f45 ENH: add vtk::writeIdentity() and optional repeat value for vtk::write()
- An identity is often useful when generating connectivity and offset
  information.

- The optional repeat value for vtk::write() allows it to also be used
  as a fill method.
2019-07-11 13:42:02 +02:00
4b8fabaa4b STYLE: relocate Allwmake-scan to src/
- reduced clutter. Mostly only need to scan source tree.

- 00-dummy: use wmake/src/Allmake to get native (not cross-compiled)
  wmake toolchain binaries
2019-06-28 09:55:25 +02:00
5bd7c4b5bb BUG: pressure FO - corrected handling of enumeration in calcPressure function. See #1356 2019-07-09 11:44:52 +01:00
1159aaa810 CONFIG: bump patch level 2019-07-08 14:04:49 +02:00
54ef9beab7 COMP: silence spurious GCC -Wstringop-truncation warning in ensightFile 2019-07-08 13:53:06 +02:00
ff3b9501d9 COMP: erroneous double definition for long IO on windows (#1360, #1238)
- mingw uses 32-bit long regardless of -m32 or -m64 setting
2019-07-08 13:34:16 +02:00
eaacf0a20a BUG: questionable findInstance handling of constant (related to #1112)
- when searching for a file that may not actually exist,
  the short-cut optimization could lead to the 'constant' directory
  being ignored.

STYLE: simplify logic in points0MotionSolver::points0IO
2019-07-05 11:04:06 +02:00
79bf4fafb6 CONFIG: do not touch LD_PRELOAD contents at all (#1357) 2019-07-05 10:29:18 +02:00
53947016fa BUG: metis PrecisionAdaptor used ref() instead of constCast() - closes #1354
- the scotch interface still uses non-const pointers when passing in
  values. For the ConstPrecisionAdaptor this means that we need to cheat
  with a constCast(). Using ref() will rightly trigger complaints about
  trying to modify a const object.
2019-07-04 17:07:48 +02:00
7d7a3a78a8 BUG: DimensionedField - register new field if it does not have the same name as the copy - see #1348 2019-07-02 10:22:50 +01:00
10a03ceba2 STYLE: relocate Allwmake-scan to src/
- reduced clutter. Mostly only need to scan source tree.

- 00-dummy: use wmake/src/Allmake to get native (not cross-compiled)
  wmake toolchain binaries
2019-06-28 09:55:25 +02:00
1ffda6facb STYLE: set owner as root/root for manifest.txt in tarfile (for consistency) 2019-07-12 14:19:23 +02:00
b7d3607716 STYLE: remove uncompressed tar file after -tgz output 2019-07-10 20:34:40 +02:00
c54c4c8c62 ENH: improve overwrite behaviour of tutorials/Alltest (#1364)
Modifications to help avoid inadvertent overwriting of tutorialsTest:

- new '-force' option to overwrite existing directory

- generate a 'tutorialsTest/Alltest' script that disallows the
  possibilty of self-recursion
2019-07-09 12:06:41 +02:00
d6d95c33bc ENH: return scalar for surface uniformity (#1363) 2019-07-08 19:21:40 +02:00
b8ccbbdf67 ENH: improved treeDataPoint subset handling (#1359)
- reverse mapping for the original point ids. This can be useful
  when searching a subset of points, but needing to store access to
  the original point index.

- move constructor.

- Allow use/not-use subset as an optional constructor argument for
  more convenient caller logic.
2019-07-08 11:20:44 +02:00
84bc1cc8a8 TUT: use simpleGrading vs simplegrading
- add PDRblockMeshDict example for cavity
2019-06-28 10:30:58 +02:00
e3fa92055a STYLE: use autoPtr get() instead of operator->()
- don't need extra nullptr check for some cases. Less clutter.
2019-06-28 09:06:26 +02:00
1fed2bc2b2 STYLE: can use objectRegistry::checkOut() directly with a pointer 2019-06-27 19:24:54 +02:00
def4e2b7fd STYLE: remove unneeded regIOobject release (#1276)
- changed for 1906 to have a regIOobject always cleanup its
  objectRegistry entry. No need to explicitly 'release' ownership
  for this to now happen.

- doxygen formatting for MeshObject
2019-06-27 19:09:22 +02:00
1b7b9eab35 CONFIG: add compiler config for gcc-9
Caveat: The -Wdeprecated-copy produces many, many compiler warnings
2019-06-27 19:03:32 +02:00
7e935bd191 COMP: avoid ref to synchronization for non-MPI VTK build (fixes #1349) 2019-06-27 14:59:14 +02:00
7b02c0fa19 CONFIG: Reset WM_PROJECT_VERSION 2019-06-27 13:30:14 +01:00
96e7dd8da6 Merge branch 'develop' 2019-06-27 13:27:57 +01:00
ed08f3d006 TUT: tutorial update 2019-06-26 11:54:12 +01:00
43febddda1 BUG: Removed Debug statements 2019-06-26 11:53:41 +01:00
15a763b931 COMP: Resolved some name clashes for #ifdef statements 2019-06-26 11:52:15 +01:00
469c9ff078 COMP: Added some volatile statements for clang
TODO: need to revisit
2019-06-26 11:55:22 +01:00
3800ed8dd7 GIT: Removed unused file 2019-06-25 13:20:44 +01:00
be44dcaf1f RELEASE: Version clean-up for release 2019-06-25 11:51:19 +01:00
c997b16db4 TUT: add '-n' when linking tutorial directory 2019-06-26 13:59:45 +02:00
51bb4e0037 STYLE: remove trailing spaces 2019-06-26 11:36:49 +02:00
a9bfef33bf CONFIG: update completion cache (csh) 2019-06-26 11:29:12 +02:00
f7a707e00e STYLE: allow '=' option separators in some bin/tools scripts 2019-06-26 11:27:53 +02:00
ff81ec8cf3 CONFIG: add -no-patch option for foamPackRelease
- if desired to create a tar-file without a _patch value in its name.
2019-06-26 00:57:49 +02:00
369484869d Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-25 08:51:10 -07:00
d286951008 BUG: Fix thermos templates for Lee model 2019-06-25 08:50:07 -07:00
3a65840993 CONFIG: set umask 0022 when packing tar files for release 2019-06-25 17:24:39 +02:00
1b2708226e TUT: Tutorial updates 2019-06-25 09:59:20 +01:00
be7d7e7dbe SUBMODULES: catalyst with updated keywords/syntax in tutorial 2019-06-25 08:09:22 +02:00
47f375887e CONFIG: adjust bin/tools/foamConfigurePaths
- add a '-SPDP' option

- remove the '-archOption' for forcing a '-m32' build on 64-bit
  architecture, which is now considered too obscure.
  Must edit files manually if this option is really required.
2019-06-25 07:48:33 +02:00
e6270d127b DOC: update build and config information 2019-06-24 18:42:39 +02:00
5dd8b73933 STYLE: use foamEtcFile instead of wmakeBuildInfo when reporting api 2019-06-24 18:19:59 +02:00
016526baee Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-24 08:13:47 -07:00
1bd2ef7c21 ENH: Adding Lee thermos for icoReactingMultiphaseInterFoam 2019-06-24 08:12:58 -07:00
e990c48bee COMP: Resolved a couple of compiler warnings 2019-06-24 13:52:57 +01:00
40401ccbd0 TUT: tutorial script updates 2019-06-24 13:51:15 +01:00
fa8ab2d5b4 STYLE: add Test-copyFile 2019-06-24 14:46:38 +02:00
53cf9e2182 STYLE: pressure FO - provided feedback re: which calculation mode is applied 2019-06-24 12:11:53 +01:00
49864ba7d7 TUT: generalize scripts for turbulentInflow 2019-06-24 12:29:19 +02:00
9b0ff60320 STYLE: simplify return statement 2019-06-24 09:29:56 +02:00
945d80f10a Merge branch 'feature-digitalFilterFvPatchInlet' into 'develop'
Digital-Filter Based Synthetic Turbulence Generation Method for LES/DES Inflow

See merge request Development/OpenFOAM-plus!235
2019-06-21 13:10:49 +01:00
74ec94281e TUT: Tuorial updates 2019-06-21 10:53:13 +01:00
f0a7a30780 ENH: patchSetSet: new sampledSet. Fixes #1346. 2019-06-20 13:44:08 +01:00
5215aab719 ENH: averageCondition - result now 'false' if no fields were processed 2019-06-20 12:10:12 +01:00
8e3df10069 STYLE: overBuoyantPimpleDyMFoam: consistent directory naming 2019-06-20 10:26:24 +01:00
67c8b07021 ENH: derivedFields: fields created without timeName. Fixes #1345.
Please enter the commit message for your changes. Lines starting
2019-06-20 09:35:19 +01:00
14a2a8bf55 TUT: add new tutorial case for turbulent inflow BCs
The following three synthetic turbulence inflow boundary conditions are
examined through single-cell-domain smooth-wall plane channel flow setup:

- turbulentDFSEMInlet
- turbulentDigitalFilterInlet variant=digitalFilter
- turbulentDigitalFilterInlet variant=reducedDigitalFilter

The examinations are performed in terms of the first-/second-order turbulence
statistics provided by (Moser et al., (1999)) doi.org/10.1063/1.869966
from smooth-wall plane channel flow direct numerical simulations at Re=395.

Serial executing:

./Allrun

Parallel (decompositionMethod=scotch) executing:

./Allrunparallel
2019-06-19 19:23:53 +01:00
a78e527a1a ENH: GAMGSolver: less debug info 2019-06-19 15:09:18 +01:00
cd71fe008e Merge branch 'integration-adjoint' into 'develop'
Integration adjoint

See merge request Development/OpenFOAM-plus!269
2019-06-19 22:06:59 +01:00
7354af5dff STYLE: Updated FO output 2019-06-19 20:53:24 +01:00
32bd3800b1 ENH: Improved backwards compatibility for pressure FO 2019-06-19 15:02:58 +01:00
355d6c4c4f ENH: scotch: make repeatable. Fixes #1274. 2019-06-19 08:45:48 +01:00
3f955cac07 STYLE: Updated header documentation 2019-06-19 11:32:53 +01:00
c901f9bc7f ENH: runTimeControl - updated time for maxDuration and minTimeStep conditions 2019-06-19 09:57:11 +01:00
12afb3d34a ENH: Refactored pressure function object 2019-06-19 09:00:14 +01:00
56547863c1 ENH: {simple|pimple}Control - output on construction controlled by a 'verbose' flag 2019-06-18 14:20:55 +01:00
e184e1e72c ENH: Updated function object reading and output messages 2019-06-18 13:55:16 +01:00
ecc1fb5efb CONTRIB: New adjoint optimisation and tools
A set of libraries and executables creating a workflow for performing
gradient-based optimisation loops. The main executable (adjointOptimisationFoam)
solves the flow (primal) equations, followed by the adjoint equations and,
eventually, the computation of sensitivity derivatives.

Current functionality supports the solution of the adjoint equations for
incompressible turbulent flows, including the adjoint to the Spalart-Allmaras
turbulence model and the adjoint to the nutUSpaldingWallFunction, [1], [2].

Sensitivity derivatives are computed with respect to the normal displacement of
boundary wall nodes/faces (the so-called sensitivity maps) following the
Enhanced Surface Integrals (E-SI) formulation, [3].

The software was developed by PCOpt/NTUA and FOSS GP, with contributions from

Dr. Evangelos Papoutsis-Kiachagias,
Konstantinos Gkaragounis,
Professor Kyriakos Giannakoglou,
Andy Heather

and contributions in earlier version from

Dr. Ioannis Kavvadias,
Dr. Alexandros Zymaris,
Dr. Dimitrios Papadimitriou

[1] A.S. Zymaris, D.I. Papadimitriou, K.C. Giannakoglou, and C. Othmer.
Continuous adjoint approach to the Spalart-Allmaras turbulence model for
incompressible flows. Computers & Fluids, 38(8):1528–1538, 2009.

[2] E.M. Papoutsis-Kiachagias and K.C. Giannakoglou. Continuous adjoint methods
for turbulent flows, applied to shape and topology optimization: Industrial
applications. 23(2):255–299, 2016.

[3] I.S. Kavvadias, E.M. Papoutsis-Kiachagias, and K.C. Giannakoglou. On the
proper treatment of grid sensitivities in continuous adjoint methods for shape
optimization. Journal of Computational Physics, 301:1–18, 2015.

Integration into the official OpenFOAM release by OpenCFD
2019-06-17 12:59:11 +01:00
146948ceaf COMP: Added option for clang 8.0.0 2019-06-17 12:35:24 +01:00
1ac4a0fa64 COMP: lduMatrix: fix solveScalar compilation 2019-06-17 17:51:48 +01:00
cd36562d92 ENH: externalLoadSolar: cleanup - avoid multiple registrations 2019-06-17 17:03:23 +01:00
c97b23e253 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-17 07:44:28 -07:00
6bd3cee682 TUT: Adjusting controlDict and fvSolution for SandiaD_LTS tutorial 2019-06-17 07:42:42 -07:00
e7b8b7d6ed ENH: GAMGSolver: specify coarsest level solver. Fixes #1342. 2019-06-17 10:15:24 +01:00
ed10b19a2c COMP: randomDecomp - resolved compiler warnings 2019-06-14 17:01:30 +01:00
3937c8804d COMP: Updated deprecated warning messages 2019-06-14 16:47:09 +01:00
d4314bda69 COMP: Resolved compiler warning 2019-06-14 16:46:42 +01:00
14fba293f9 CONFIG: update completion cache 2019-06-14 15:52:40 +02:00
16784c6b06 CONFIG: reduce reliance on WM_ARCH_OPTION (#517)
- now only needed when specify compiling -m32 on a 64-bit system.

  Internally use the __SIZEOF_LONG__ compiler macro (gcc, icc, llvm)
  to define when long is actually an int32_t.
2019-06-14 14:47:35 +02:00
f0a4f8ee48 COMP: skip reactingEulerFoam compilation on mingw (#1238)
- pending resolution of cyclic dependencies
2019-06-14 13:58:37 +02:00
fd6af75475 CONFIG: disable runtimePostProcessing titleHack by default
- a leftover from much older VTK versions that had poor handling of
  the scalar bar text.
2019-06-14 12:27:59 +02:00
f1394e9ce3 STYLE: use data() instead of begin() when passing metisDecomp raw data 2019-06-14 11:08:31 +02:00
f7f08fce4b ENH: alternative Euler rotation orders for lumpedPointState (#1341) 2019-06-14 10:36:38 +02:00
17de75b073 ENH: waveMaker boundary condition - provide time offset for patch motion
- also enables smooth restart for solitary waves
2019-06-14 13:04:54 +01:00
aa1a0a85fa ENH: Forces function object - updated header documentation 2019-06-14 11:38:06 +01:00
afb9c1d9d9 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-13 13:26:24 -07:00
3c8e99e4f2 TUT: Setting fvSolution for mixerVessel2D 2019-06-13 13:25:51 -07:00
7bf9ca876b Merge branch 'tut-lambvector' into 'develop'
TUT: pimpleFoam/channelDFSEM395 - added example use of Lamb vector

See merge request Development/OpenFOAM-plus!267
2019-06-13 21:21:39 +01:00
01ea3cc790 ENH: metis: use PrecisionAdaptor to support 64 bit indices 2019-06-13 20:52:48 +01:00
da07aa9ac0 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-13 12:13:04 -07:00
50cdddf46a ENH: New solidThermo to ReactingMultiphaseInterFoam 2019-06-13 12:11:09 -07:00
f863925112 STYLE: use uintptr_t instead of long 2019-06-13 19:37:27 +02:00
4e0222f887 DOC: relocated OpenFOAM etc/README.md to doc/Config.md
- relocated BuildIssues.txt -> doc/BuildIssues.md
2019-06-13 18:43:07 +02:00
f05ff81722 CONFIG: bump API to 1906 (pre-release)
- adjust copyright dates for manpages
2019-06-13 18:22:10 +02:00
b01611a126 CONFIG: make default for allowSpaceInFileName platform dependent
- enable by default on Windows, disable by default on non-Windows.
2019-06-13 14:01:08 +02:00
96ed604849 ENH: motorBike: enable residual control. See #1328. 2019-06-13 15:00:22 +01:00
966ba1dba5 Merge branch 'feature-functionObject-forceCoeffExtension' into 'develop'
ENH: functionObject: refactored co-ordinate system usage and new forceCoeffs members

See merge request Development/OpenFOAM-plus!246
2019-06-13 15:47:09 +01:00
e716d1c073 ENH: surfactantFoam: run cleanly. See #1328
- do not write 0/ directory
- clean case in ./Allclean
2019-06-13 14:24:58 +01:00
8b2e61faf0 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-12 10:37:51 -07:00
b1563dc03e ENH: Handling of phaseProperties in temperatureCoupledBase.
Adding poly solid thermo to InterfaceCompositionModel for use
on icoReactingMultiphaseInterFoam
2019-06-12 10:35:49 -07:00
5137c1f420 STYLE: typo 2019-06-12 16:51:57 +01:00
beffb00612 TUT: Mangrive tutorial update 2019-06-13 12:08:16 +01:00
3ef37ce188 BUG: fileMonitor: do not allow used watch also in free watches.
See #1328.
2019-06-12 12:27:28 +01:00
fc58d517f0 STYLE: dictionary: use get() method 2019-06-12 12:27:06 +01:00
dd9bf745fe TUT: pimpleFoam/channelDFSEM395 - added example use of Lamb vector 2019-06-12 11:47:09 +01:00
1fdc886672 COMP: Allwmake: turbulentFluidThermoModels already in compressible turb 2019-06-12 10:23:34 +01:00
3a1178ff12 BUG: Fixing problem with parallel DTRMParticle 2019-06-11 16:12:36 -07:00
1db1815b54 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-11 15:11:33 -07:00
58312bf850 INT: Back-tracking multiphaseSystem 2019-06-11 15:10:55 -07:00
a1f9256829 ENH: extend header documentation for forceCoeffs 2019-06-11 16:19:37 +01:00
dd437aa667 INT: Clean-up and integration of wave BC updates 2019-06-11 15:29:15 +01:00
7d9f3c8a0d INT: waveMaker boundary condition - added dynamic wave paddle of a solitary wave
Based on Goring et al., 1980
2019-06-11 14:55:51 +01:00
65f3faa203 WIP: Refactored forces/Coeffs to always use a co-ord system and simplified inputs [UNCHECKED] 2019-06-11 11:57:22 +01:00
bb9225f3f7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-10 10:17:00 -07:00
fa61775768 ENH: Small changes on overBuoyantPimpleFoam tutorial 2019-06-10 10:16:08 -07:00
533410aab4 COMP: phaseSystemModels: few compilation fixes 2019-06-10 13:59:26 +01:00
09c67d90de BUG: mpi: use system openmpi by default 2019-06-10 13:05:54 +01:00
53b88d99a3 COMP: only compile wmake toolchain for host when cross-compiling
- no use having wmkdepend on the target architecture when it will only
  be needed on the host architecture.
2019-06-09 19:21:27 +02:00
e02ed85637 DOC: fix links 2019-06-09 19:17:34 +02:00
50bbc2bd6b DOC: cross-reference readme/build/requirements 2019-06-07 13:43:27 +02:00
21599f0365 DOC: added Build and Requirements information 2019-06-07 13:30:10 +02:00
b46992f66b COMP: compile wmake toolchain for host when cross-compiling 2019-06-07 10:32:37 +02:00
137130e437 ENH: reduce wmake bootstrap dependencies
- remove make target for wmdep (flex-based scanner), which eliminates
  a bootstrap dependency on flex.

  As of OpenFOAM-v1806, wmdep has been superseded by wmdepend
  (ragel-based scanner).

- replace dirToString binary with shell/awk equivalent for simpler
  maintenance. The utility is very rarely used (auto scanning to
  create Make/files) so there is no performance difference.
2019-06-07 09:51:18 +02:00
2e544489bf Merge branch 'feature-VOF-updateSolvers' into 'develop'
Feature vof update solvers

See merge request Development/OpenFOAM-plus!266
2019-06-07 09:38:35 +01:00
8170f2ad92 INT: Org integration of VOF, Euler phase solvers and models.
Integration of VOF MULES new interfaces. Update of VOF solvers and all instances
of MULES in the code.
Integration of reactingTwoPhaseEuler and reactingMultiphaseEuler solvers and sub-models
Updating reactingEuler tutorials accordingly (most of them tested)

New eRefConst thermo used in tutorials. Some modifications at thermo specie level
affecting mostly eThermo. hThermo mostly unaffected

New chtMultiRegionTwoPhaseEulerFoam solver for quenching and tutorial.

Phases sub-models for reactingTwoPhaseEuler and reactingMultiphaseEuler were moved
to src/phaseSystemModels/reactingEulerFoam in order to be used by BC for
chtMultiRegionTwoPhaseEulerFoam.

Update of interCondensatingEvaporatingFoam solver.
2019-06-07 09:38:35 +01:00
0628bfb017 CONFIG: remove legacy tools, update foamPackRelease/foamUpdateCaseFileHeader 2019-06-06 16:45:57 +02:00
88e042afd9 COMP: resolved compiler warning 2019-06-06 14:23:12 +01:00
c7e5f4a9e7 BUG: surfaceWriter pointData merging fails on single processor
- if surface is only on a single processor, no point merging occurs
  and the pointsMap is empty.
2019-06-06 14:36:53 +02:00
0d8601f273 TUT: rhoSimpleFoam/squareBend - added example use of isentropic pressure 2019-06-06 12:18:10 +01:00
bf9d74ba8b ENH: increase robustness of PrecisionAdaptor
- overload the ref() method to allow modification of the referenced
  (non-const) field directly. Same as constCast(), but less typing
  and less prone to error.

- construct ConstPrecisionAdaptor from tmp for improved efficiency.
2019-06-06 09:46:31 +02:00
255e47356c BUG: surface writer for surfaceNoise was not Time-aware
- the updated surface writers must be explicitly tagged as being
  Time-aware (useTimeDir) to have them splice Time (in this case freq)
  into the output path.

  The older writers worked in the opposite way. They extracted a time
  value from the naming of the output directory (which was fragile).
2019-06-05 16:17:33 +02:00
a2906d4302 ENH: improve handling of font sizes for scalarBar 2019-06-05 15:31:49 +02:00
4c25755202 Merge branch 'feature-single-precision' into 'develop'
Feature single precision

See merge request Development/OpenFOAM-plus!234
2019-06-05 14:55:59 +01:00
24371a1d84 BUG: set the oriented flag - see #1324 2019-06-05 14:12:51 +01:00
289a7acf76 ENH: p field for potentialFoam now registsered 2019-06-05 14:11:50 +01:00
a31d0c834e ENH: overset: add value field. Fixes #1334. 2019-06-05 11:38:06 +01:00
1de2f30545 COMP: fixes for label=64, scalar=32 2019-06-05 09:13:08 +02:00
5c58b07f5a ENH: Adding overBuoyantPimpleFoam and tutorial 2019-06-04 12:18:13 -07:00
aaf5d7be6d Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-04 11:06:35 -07:00
c8cf4b21c4 STYLE: suppress output of solveScalar when identical to scalar size 2019-06-04 15:16:46 +02:00
ca724b2e1a TUT: cleanup postProcessing in planeTransport finiteArea tutorial 2019-06-04 15:11:05 +02:00
298cb46572 BUG: fix spurious time indexing in collated ensight output (#1333)
- need additional tolerance when comparing time values to those
  stored in the fieldDict (both less and equal operators)
2019-06-04 15:04:09 +02:00
b65a6d32f5 Merge branch 'fix-GL1276' into 'develop'
ENH: improved handling of regIOobject deletion (#1276)

See merge request Development/OpenFOAM-plus!263
2019-06-04 14:32:30 +01:00
0329a9044e Merge branch 'feature-functionObjects-lambVector' into 'develop'
ENH: FO: Lamb vector and its divergence

See merge request Development/OpenFOAM-plus!245
2019-06-04 12:44:59 +01:00
6cb7e80d7d ENH: FO: Lamb vector
- If applied:
      This commit allows the user to compute:
        - the Lamb vector (https://en.wikipedia.org/wiki/Lamb_vector),
        - on-the-fly or via postProcess utility
        - for a given volVectorField (one per functionObject entry)

  - Why:
      The motivation is the literature-reported quantitative connection
      between the Lamb vector (divergence) and the spatially localised
      instantaneous fluid motions, e.g. high- and low-momentum fluid
      parcels, which possess considerable level of capacity to affect
      the rate of change of momentum, and to generate forces such as drag.

  - Verification:
      - Smooth-wall plane channel flow case (Moser et al. 1999) by
          # Curtis et al. (2008) On the Lamb vector divergence
            in Navier–Stokes flows, doi:10.1017/S0022112008002760

  - What's next:
      - The verification-show case
      - Extended code guide entry titled "Lamb vector"
2019-06-04 12:42:06 +01:00
e120df0923 ENH: improved handling of regIOobject deletion (#1276)
- remove registration and ownership before deleting a regIOobject
  from within objectRegistry to avoid possible recursion.

- regIOobject destructor now removes any registered object from
  registry regardless if ownedByRegistry or not. It also removes
  always removes the ownership flag to avoid possible recursion.

- the regIOobject::checkOut() now unconditionally clears file watches.
  These will only be there if the object is registered (a no-op for an
  unregistered object), but this additional safety is needed to manage
  case where the registration has been modified elsewhere (eg, by the
  objectRegistry).
2019-06-04 12:29:55 +02:00
073e0a7f5d Merge branch 'feature-complex-cleanup' into 'develop'
Feature complex cleanup

See merge request Development/OpenFOAM-plus!264
2019-06-04 11:25:26 +01:00
52df9a2fee TUT: use mpiexec instead of mpirun for msmpi in RunFunctions (#1238) 2019-06-04 11:22:21 +02:00
e42cc287de BUG: incorrect scalar/complex division (#1331)
ENH: define addition/subtraction operations for scalar and complex

- required since construct complex from scalar is explicit
- additional tests in Test-complex
2019-06-04 09:08:42 +01:00
663b422587 ENH: optional parameter on regIOobject::release (#1276)
- can additionally relinquish the registered state as well as
  ownedByRegistry state
2019-06-03 15:11:10 +02:00
ef88919ef5 STYLE: incorrectly documented wmake option 2019-06-04 09:11:37 +02:00
9d593adc98 ENH: relax the (zeroGradient, ddt2) replacement token requirement (#1330)
- when a single (non-regex) source field is specified, it is now
  possible to specify the result name without any '@@' substitution
  tokens
2019-06-04 08:45:46 +02:00
2ce1ca48a8 BUG: objectRegistry: two-pass deletion. See #1276. 2019-06-03 13:58:51 +01:00
5dd6a04ff8 BUG: attach/detach: correctly change modified faces. Fixes #1329. 2019-06-03 11:07:05 +01:00
fc11c40841 ENH: add wmake -debug option
- forces c++DBUG='-DFULLDEBUG -g -O0' for the compilation, to allow
  localized debugging during development without file editing and
  while retaining the WM_COMPILE_OPTION (eg, Opt)

  Note that switching between 'wmake' and 'wmake -debug' will not
  cause existing targets to be rebuilt. As before, these are driven by
  the dependencies. An intermediate wclean may thus be required.
2019-06-03 10:16:31 +02:00
e1bd3400ef ENH: allow selective disabling of parallel VTK rendering
- in case an individual geometry element has render issues in parallel

- additional debug information
2019-06-03 09:46:49 +02:00
be35426f85 SUBMODULES: cfmesh with updated argList methods 2019-05-31 18:57:29 +02:00
d28267520f ENH: nutWallFunctions - provided option to specify alternative velocity field 2019-05-31 15:56:46 +01:00
9988e549e0 STYLE: writeDictionary - updated output messages 2019-05-31 15:04:15 +01:00
b991188329 BUG: scalarBar range ignored in runTimePostProcessing
- was missing range setting for the colour lookup table
2019-05-30 12:02:56 +02:00
76d1fb0118 GIT: Updated bug issue template 2019-06-14 10:11:17 +01:00
911d029bb1 CONFIG: bump patch level 2019-05-31 16:08:24 +02:00
0581a9d884 ENH: new forceCoeffs functionObject output
- additional coefficients:
    - Side force coefficient: direction in curl(lift,drag),
    - Yaw moment coefficient: rotation axis in dir(lift)
    - Roll moment coefficient: rotation axis in dir(drag)

Order of output
    - forces(drag,side,lift)
    - moments(roll,pitch,yaw)

Note
   - For force coeffs, front and rear axles' contributions are computed
2019-05-26 21:38:00 +01:00
1523160c16 ENH: Added new hydrostatic pressure function object
Calculates and outputs the pressure fields p_rgh and ph_rgh based on the
option that was previously hard-coded in the fireFoam solver

Usage
    Example of function object specification to calculate hydrostatic pressure:
    \verbatim
    hydrostaticPressure1
    {
        type        hydrostaticPressure;
        libs        ("libinitialisationFunctionObjects.so");
        ...
    }
    \endverbatim

    Where the entries comprise:
    \table
        Property     | Description             | Required    | Default value
        log          | Log to standard output  | no          | yes
        p_rgh        | Name of p_rgh field     | no          | p_rgh
        ph_rgh       | Name of ph_rgh field    | no          | ph_rgh
        pRef         | Name of pressure ref field | no       | pRef
        rho          | Name of density field   | no          | rho
        U            | Name of velocity field  | no          | U
        gh           | Name of gravity*height volume field  | no | gh
        ghf          | Name of gravity*height surface field | no | ghf
        nCorrectors  | Number of correctors when solving ph_rgh | no | 5
    \endtable

Note
    Calculates the hydrostatic pressure on construction/re-initialisation;
    the execute and write functions are not used.
2019-05-23 16:08:06 +01:00
db0678bf0e TUT: incorrect regex escaping in fvSchemes
- error trapped by C++11 regex
2019-05-30 14:26:15 +02:00
be3efed44b BUG: scalarBar range ignored in runTimePostProcessing
- was missing range setting for the colour lookup table
2019-05-30 12:02:56 +02:00
4f93bc3b5e ENH: support LLTMatrix, QRMatrix solve of indirect lists (#1220) 2019-05-29 11:49:08 +02:00
96d0a8f2af ENH: harmonize matrix constructors (#1220)
- generalize identity matrix constructors for non-scalar types

- add constructors using labelPair for the row/column sizing information.
  For a SquareMatrix, this provides an unambiguous parameter resolution.

- reuse assignment operators

STYLE: adjust matrix comments
2019-05-29 09:50:46 +02:00
2bdcd5b80d STYLE: prefix indexing, loop spacing in Matrix types 2019-05-23 12:47:54 +01:00
745624c024 ENH: partial overhaul of Matrix type (#1220)
- additional operators:
  + compound assignment
  + inner product: operator&
  + outer product: operator^

- additional functions:
   - MatrixBlock methods: subColumn, subRow, subMatrix
   - L2 norms for matrix or column
   - trace, diag, round, transpose

- MatrixBlock methods: col(), block() are deprecated since their
  access patterns with (size, offset) are unnatural/unwieldy.

- verifications by test/Matrix/Test-Matrix
2019-05-23 11:32:45 +01:00
3de7cd5207 STYLE: use dictionary checking methods in runTimePostProcessing
- make parallelProjection default (was previously mandatory)
2019-05-31 15:28:57 +02:00
7e29e165d7 STYLE: remove duplicate entries in annotated runTimePostProcessingDict 2019-05-31 12:02:56 +02:00
2413d4d898 STYLE: consistent brackets for Enum construction 2019-05-31 10:44:23 +02:00
2793cc652b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-05-13 13:13:55 -07:00
d44a72a1dd ENH: Moving reactingHeterogenousParcelFoam tut 2019-05-13 13:13:18 -07:00
4bbd0294bb ENH: add -excludePatches option for surfaceMeshExtract (#1315)
- simplify faceZone selection in surfaceMeshExtract
2019-05-10 17:11:47 +02:00
d63b031264 TUT: add "libfvMotionSolvers.so" to lumpedPointMotion tutorial
- uniformFixedValue was relocated from lib OpenFOAM
2019-05-10 13:12:33 +02:00
6c8f6a2f50 ENH: support all 12 Euler rotation orders (#1292)
- adjust naming of quaternion 'rotationSequence' to be 'eulerOrder'
  to reflect its purpose.

- provide rotation matrices directly for these rotation orders in
  coordinateRotations::euler for case in which the rotation tensor
  is required but not a quaternion.
2019-05-10 11:20:21 +02:00
2eeaa326d6 Revert "COMP: combine twoPhaseProperties library into interfaceProperties"
Modified revert of commit 6c6f777bd5.

- The "alphaContactAngleFvPatchScalarField" occurs in several
  places in the code base:

    - as abstract class for two-phase properties
    - in various multiphase solvers

  To resolve potential linking conflicts, renamed the abstract class
  as "alphaContactAngleTwoPhaseFvPatchScalarField" instead.

  This permits potential linking of two-phase and multi-phase
  libraries without symbol conflicts and has no effect on concrete
  uses of two-phase alphaContactAngle boudary conditions.
2019-05-08 18:48:52 +02:00
6630fb2b69 STYLE: adjust wording in compilation notes 2019-05-08 16:51:14 +02:00
e91ec2573c Merge branch 'feature-porting-mingw' into 'develop'
Feature porting mingw

See merge request Development/OpenFOAM-plus!258
2019-05-08 14:37:23 +01:00
0f1fcb97b5 ENH: additional MinMax span() and zero_one() methods 2019-05-08 12:12:00 +02:00
ac317699d8 ENH: additional HashTable emplace/insert/set methods (#1286)
- support move insert/set and emplace insertion.

  These adjustments can be used for improved memory efficiency, and
  allow hash tables of non-copyable objects (eg, std::unique_ptr).

- extend special HashTable output treatment to include pointer-like
  objects such as autoPtr and unique_ptr.

ENH: HashTable::at() method with checking. Fatal if entry does not exist.
2019-05-06 08:34:39 +02:00
e30dc962b3 STYLE: unnecessary read-check in ccm::writer 2019-05-07 20:39:20 +02:00
4b39c9f19b Merge branch 'feature-dynamicCode' into 'develop'
Feature dynamic code

See merge request Development/OpenFOAM-plus!255
2019-05-07 17:33:32 +01:00
23e5d43e4e ENH: add colour for x3d surface writer (#1057)
- can be used for outputing sampled surfaces in x3d format for direct
  import in other rendering tools.
2019-05-06 17:13:22 +02:00
3089a11647 STYLE: comments and parameter names for coordinateRotations::euler 2019-05-03 13:31:00 +02:00
675aa8053a ENH: support pointer cast from autoPtr 2019-05-03 09:59:53 +02:00
8b6f4a4bcf STYLE: use iterator for mutable access in masterUncollatedFileOperation 2019-05-03 11:27:23 +02:00
1dbe897930 Merge branch 'feature-MUSCS-SurfaceReact' into 'develop'
Reacting heterogeneous cloud

See merge request Development/OpenFOAM-plus!242
2019-05-02 19:40:26 +01:00
912009c458 ENH: overset: insert remote interpolation into lduMatrix
All remote contributions to interpolation stencils now
get added as 'processor' type lduInterfaces. This guarantees
a consistent matrix, e.g. initial residual is normalised to 1.

Second change is the normalisation of the interpolation discretisation
which uses the diagonal from the unmodified equation. This helps
GAMG.
2019-05-02 16:49:48 +01:00
c924a3639c ENH: GAMG: enable debug printing 2019-05-02 13:28:01 +01:00
d2462d4d37 ENH: use areaAverage instead of average for -func patchAverage (#1303)
- this corresponds more closely to the expected behaviour of a
  patch-average value being independent of the local face
  discretization
2019-05-02 13:15:49 +02:00
5507d11bdd Merge branch 'feature-reflectiveSolarLoad' into 'develop'
Feature reflective solar load

See merge request Development/OpenFOAM-plus!243
2019-05-02 10:45:45 +01:00
af9334631f INT: Updates for radiation modelling for integration into the develop branch 2019-05-02 10:40:16 +01:00
6f17d46b71 BUG: avoid memory leak caused by IOobjectList::filterObjects (#1286) 2019-05-01 17:22:52 +02:00
a85c55bbb5 ENH: ensure that content changes in coded objects are noticed (#1293)
- for codedFunctionObject and CodedSource the main code snippets
  were not included in the SHA1 calculation, which meant that many
  changes would not be noticed and no new library would be compiled.

  As a workaround, a dummy 'code' entry could be used solely for the
  purposes of generating a SHA1, but this is easily forgotten.

  We now allow tracking of the dynamicCodeContext for the coded
  objects and append to the SHA1 hasher with specific entries.
  This should solve the previous misbehaviour.

  We additionally add information about the ordering of the code
  sections. Suppose we have a coded function object (all code
  segments are optional) with the following:

      codeExecute "";
      codeWrite   #{ Info<< "Called\n"; #};

  which we subsequently change to this:

      codeExecute #{ Info<< "Called\n"; #};
      codeWrite   "";

  If the code strings are simply concatenated together, the SHA1 hashes
  will be identical. We thus 'salt' with their semantic locations,
  choosing tags that are unlikely to occur within the code strings
  themselves.

- simplify the coded templates with constexpr for the SHA1sum
  information.

- Correct the CodedSource to use 'codeConstrain' instead of
  'codeSetValue' for consistency with the underlying functions.
2019-05-01 14:00:54 +02:00
36112db110 ENH: modernize SHA1 classes (#1301)
- localize some functionality, std::array for digest internals.
  Additional append sub-string methods, pass-through write of digest
  etc.
2019-05-01 12:14:09 +02:00
83d26d19b5 ENH: replace processorFvPatchField specialization with 'if...' (#1304)
- only apply component-wise transformCoupleField for non-scalar types
2019-05-01 14:20:08 +02:00
c96a84e653 STYLE: use std::is_arithmetic in contiguous and ListPolicy 2019-05-01 11:25:34 +02:00
1d5e0a4e0e ENH: unify dlSym handling
- amalgamate dlSym() and dlSymFound() into a single dlSymFind() backend
  with optional 'required' argument. This makes it possible to
  query and assign at once.
2019-04-30 14:27:12 +02:00
26a391b1e9 ENH: no string quotes when using OSHA1stream (#1301)
- previously would have different SHA1 depending on whether the
  string was a C-string, a C++-string or if the SHA1 was calculated
  directly or via the OSHA1stream.

    - SHA1("string")
    - OSHA1stream << "string";
    - OSHA1stream << string("string");

  By avoiding string quoting on output, they now all deliver the same
  result. This also means that the following will no longer change the SHA1
  content, since it does not add anything:

    osha<< string() << string() << string() << string();

  This would have previously add a pair of double quotes each time!
2019-04-30 12:43:59 +02:00
e7a046858e COMP: avoid some implicit linkage (#1238) 2019-04-30 11:28:23 +02:00
06b2aa6849 COMP: skip CGAL rules when -DNO_CGAL is defined for surfaceBooleanFeatures 2019-04-30 10:33:01 +02:00
4a51239820 STYLE: restrict posix and ieee754 random tests (non-portable) to linux 2019-04-30 10:05:53 +02:00
d8e8306bbc BUG: interIsoFoam nAlphaSubCycles, nOuterCorrectors issue (fixes #1300)
- failed when nAlphaSubCycles > 1 and nOuterCorrectors > 1.
  Fixed thanks to Henning Scheufler (DLR Bremen).
2019-04-30 10:59:32 +02:00
ed6b26ba45 BUG: had clang++ instead of armclang++ 2019-04-29 21:10:14 +02:00
1ff33d0f9b GIT: adjust commits for modules 2019-04-29 19:47:39 +02:00
25e0182fca COMP: label64: fixes #1297. 2019-04-29 14:23:05 +01:00
897528da1a ENH: streamline handling of static/dynamic libs in detection scripts 2019-04-29 10:04:44 +02:00
beefee48d4 COMP: adjust compilation order with updated interdependencies
- Eg, with surface writers now in surfMesh, there are fewer libraries
  depending on conversion and sampling.

COMP: regularize linkage ordering and avoid some implicit linkage (#1238)
2019-04-28 14:44:33 +02:00
a54aff9d26 COMP: add wmake rules for mingw (#1238) 2019-04-28 13:36:50 +02:00
4941213880 COMP: combine twoPhaseProperties library into interfaceProperties
- avoids unnecessary cyclic dependency
2019-04-26 20:55:46 +02:00
59da4cf56d STYLE: use uintptr_t cast instead of long when reporting addresses 2019-04-29 08:15:48 +02:00
4a1208ed30 ENH: add handling of exe file extensions in wmake/src/Makefile (#1238)
- change internal naming from 'EXE_EXT' to 'EXT_EXE' for symmetry with
  'EXT_SO'
2019-04-26 14:20:01 +02:00
ffcff46f18 ENH: support trapping of IOerror exceptions in parallel (#1296)
- continuation of commit 0e7954c22b

ENH: downgrade abort() to exit() in some places (#1238)
2019-04-26 13:55:37 +02:00
849dffedb8 COMP: define processorFvPatchField<scalar> with scoping 2019-04-26 14:35:55 +02:00
6146667284 Merge branch 'feature-indirect-lists' into 'develop'
Feature indirect lists

See merge request Development/OpenFOAM-plus!253
2019-04-29 10:48:17 +01:00
ca2b94d1ac ENH: add simple profiling of MPI communications
See merge request Development/OpenFOAM-plus!254
2019-04-29 10:08:30 +01:00
5e01152779 ENH: Pstream: use commsType to decide whether reduce or all-to-all 2019-04-29 09:23:43 +01:00
70b12e0bd0 ENH: handle cellSet/cellZone updates in fvMeshSubsetProxy (#1294)
- now also track if the cellSet or cellZone has changed on point
  motion.
2019-04-26 13:34:00 +02:00
180a284814 ENH: add '==' and '!=' operators for PackedList/bitSet
- also available as equal() member function
2019-04-26 13:01:39 +02:00
e1609d16d1 STYLE: use degToRad() instead of pi/180 2019-04-26 11:48:27 +02:00
5f40a738d3 STYLE: adjust comments in quaternion
- make I/O operators global (non-member)
2019-04-26 10:27:53 +02:00
661d1f53df ENH: additional rotation tests (#1292) 2019-04-25 20:22:06 +02:00
bc53e50c90 CONTRIBUTION: gmshToFoam: support version 4 mesh format. Fixes #1155.
Patch contributed by Gavin Ridley.
2019-04-25 16:33:17 +01:00
d80198ec09 STYLE: use modern iterator access (proximity check) 2019-04-25 17:44:52 +02:00
828f8e8504 ENH: add simple profiling of MPI communications 2019-04-25 15:33:51 +02:00
53be19989b CONTRIBUTION: overset: handling patch interactions. See #1288.
- in case of cell overlapping a patch : set cell to hole always
- in case of cell changing from hole to calculated: set to hole
  and continue. Do so before 'flood filling' holes.
Patch supplied by Nicolas Edh.
2019-04-25 11:00:32 +01:00
bf30779b64 ENH: add partial sorting to SortableList 2019-04-24 19:03:00 +02:00
3a1a353483 STYLE: remove UList operator[] taking std::initializer_list
- unnecessary. Can deduce labelRange from the pair of labels.
  These are all the same:

      list[labelRange(18,3)] = 100;
      list[labelRange{18,3}] = 100;
      list[{18,3}] = 100;

  Removing the run-time handling of std::initializer_list in favour of
  compile-time deduction allows the future use of sliceRange as well.
  Eg,

     list[sliceRange{18,3,2}] = 100;
     list[{18,3,2}] = 100;
2019-04-24 18:26:57 +02:00
cad37cf603 BUG: magneticFoam: add orientation information. Fixes #1291. 2019-04-24 15:40:52 +01:00
2c72724393 STYLE: add sub-directories in OSspecific/POSIX 2019-04-24 13:15:54 +02:00
88cf93c4e7 BUG: missing guard for empty list (see b2bc1d6546) 2019-04-24 12:28:40 +02:00
391afe7854 STYLE: report read/write options as integers (see fb5940131e) 2019-04-24 12:28:40 +02:00
4d215d8e0d ENH: simplify access and caching logic for gradScheme (#1276) 2019-04-24 12:02:23 +02:00
ef0d15546a ENH: support checkIn/checkOut with pointers (#1276) 2019-04-24 10:26:41 +02:00
887236a155 CONTRIBUTION: Parallel: optimisation of exchange. See #1268.
- Enhancements provided by Y. Inoue at RIST (http://www.hpci-office.jp)
- Use allToAll to only swap local data (excludes master processor; saves memory)
- Memory saving is noticeable >= 4000 cores
2019-04-18 15:43:40 +01:00
606ef0dbde BUG: MeshObject: revert 17fe55a7c9.
This fixed the MeshObject on Time but produced problems for the
non-regIOobject MeshObjects.
2019-04-17 14:17:28 +01:00
f3eaf29ed1 COMP: resolved build error due to change in commit 02598d0e36 - need to revisit 2019-04-17 11:32:25 +01:00
9d6a4931c2 COMP: resolved compiler warning 2019-04-17 11:31:17 +01:00
159ee1d95f ENH: solverInfo - separated execute and write functionality 2019-04-17 09:24:54 +01:00
a6acce45b6 ENH: Added debug info 2019-04-17 09:18:18 +01:00
0f00ac2d8c ENH: mesh Vsc() calc - not using sub-cycle volume for steady cases 2019-04-17 09:14:58 +01:00
8b81dacfc4 ENH: Only store previous time name if it is not at the current head 2019-04-17 09:13:44 +01:00
e6ddde737a ENH: solutionControl - made dict() function virtual 2019-04-17 09:11:39 +01:00
29f40170de BUG: Sf field ignored for sumDirection operation (fixes #1287) 2019-04-16 18:32:07 +02:00
922c3c57d5 BUG: Sf field ignored for sumDirection operation (fixes #1287) 2019-04-16 18:32:07 +02:00
b3fa961991 ENH: add Ostream output for std::vector
- convenient when using data structures from other codes
2019-04-16 18:00:20 +02:00
2d7c266d37 STYLE: formatting in makefiles, config files
- fix typo in makefiles/info that affected wmake -show-compile-c

- additional safeguard in src/OpenFOAM/Make/options against self-linking.
  This is not normally required unless PROJECT_LIBS has been added into
  the link stage.
2019-04-16 12:39:25 +02:00
d14f181529 ENH: add tracking of label/scalar size when reading IOobject header
- extracts values from the arch "LSB;label=32;scalar=64" header entry
  to provision for managing dissimilar primitive sizes.

  Compensate for the additional IOobject members by narrowing the types
  for the (objectState, readOption, writeOption) enumerations
2019-04-16 12:23:01 +02:00
c2c00b121e ENH: add backslashes handling, UNC descriptors in fileName (#1008, #1238) 2019-04-16 12:18:20 +02:00
f0a68bfa58 BUG: MeshObject: do not release in destructor. Leave to regIOobject. Fixes #1276. 2019-04-15 15:06:57 +01:00
cd7748f8e4 BUG: bad '#line' directives for dynamicCode (fixes #1282)
- now suppress any '#line' if the input number number is invalid
  (ie, an empty set of tokens)
2019-04-15 12:42:29 +02:00
53d01c8a0a ENH: construct axisAngleRotation from x/y/z axis enumeration (#863)
- can be helpful for handling rotations within global planes
2019-04-15 09:55:43 +02:00
b6161f413f ENH: residuals: change FO name. See #1203 2019-04-15 10:01:35 +01:00
501662ebaa BUG: dry-run-write: avoid overwriting mesh 2019-04-15 09:43:14 +01:00
8928ac54bd COMP: use standard compiler macros when distinguishing the OS
- replace (darwin) with (__APPLE__)
- replace (solarisGcc) with (__sun__ && __GNUC__)
- instead of 'darwin' -> '__APPLE'

- cease with passing a -D$(WM_ARCH) define since this adds no useful
  additional information and isn't used anywhere.

Reference
http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system

--

COMP: Extend size disambiguation on long (#1238)
2019-04-12 18:42:30 +02:00
8d827f99a9 DEFEATURE: remove old IRIX code for floating-point-exceptions 2019-04-12 18:35:18 +02:00
32fe94063e CONFIG: eliminate compiler/linker enviroment variables (#517)
- with the changes added in #1256 and corresponding updates to
  ThirdParty we can stop exporting these variables:

  WM_CC WM_CFLAGS WM_CXX WM_CXXFLAGS WM_LDFLAGS
2019-04-12 15:48:06 +02:00
c320892aa2 COMP: use '-n' instead of '-np' for runParallel (#1238)
- options '-n' and '-np' are synonymous, but some mpiexec versions may
  only recognize '-n' and not '-np'
2019-06-04 17:51:20 +02:00
03de501310 STYLE: fix file permissions, inconsistent Test files 2019-06-04 17:50:18 +02:00
ee4300b0a1 CONFIG: wmake -show-xyz in more places (issue #1256) 2019-04-12 11:02:30 +02:00
787325a916 COMP: manage cpu architecture with cARCH, c++ARCH internal make variables
- allows better separation from compiler settings

- use -fPIC instead of legacy -KPIC for intel compiler
2019-04-12 12:59:11 +02:00
09cf9d9963 CONFIG: adjust settings for solaris and darwin
solaris:
  - rename WM_ARCH from SunOS to solaris64 for consistency with wmake/rules
  - drop non-64 solaris from wmake/rules
  - remove automatic selection of FJMPI. This should be done in the bashrc
    or prefs.sh file instead.
  - remove old (likely inaccurate) exported flags, rely on wmake -show-xyz
    or user config instead

darwin:
  - remove '-Ddarwin' from the exported WM_CFLAGS, WM_CXXFLAGS.
    Not used elsewhere (ThirdParty)
2019-04-12 11:06:45 +02:00
78e72563e3 BUG: inconsistent emissivity for externalWallHeatFlux (fixes #1280)
- the emissivity was ignored for 'hpTa' when there is no solid resistance

STYLE: adjust debug statement in externalWallHeatFlux
2019-04-12 10:24:38 +02:00
0a23ad3944 COMP: add safePrintStack in dummyPrintStack 2019-04-11 20:51:10 +02:00
0fab8abc76 COMP: adjust compilation order. Can compile OSspecific before Pstream
STYLE: report MPI flavour (WM_MPLIB) when making mpi-related libraries
2019-04-11 18:22:33 +02:00
40e4f8a293 STYLE: use labelUList instead of labelList for ListOps::identity 2019-04-11 16:20:53 +02:00
cf91655422 STYLE: remove unneeded, rarely used construct/assign List from BiIndirectList
- the only code location using BiIndirectList are debug sections
  within polyTopoChange.

  No need to construct/assign directly from a BiIndirectList since
  the '()' method provides a simple alternative.
2019-04-11 16:20:53 +02:00
3e1ee52c31 ENH: overset: overlap communications 2019-04-11 18:01:55 +01:00
765493b69f ENH: generalize indirect lists and support new types
- use an IndirectListBase class for various indirect list types.

- new SortList type

  In some places the SortList can be used as a lightweight alternative
  to SortableList to have the convenience of bundling data and sort
  indices together, but while operating on existing data lists.
  In other situations, it can be useful as an alternative to
  sortedOrder.  For example,

        pointField points = ...;

        labelList order;
        sortedOrder(points, order);

        forAll(order, i)
        {
            points[order[i]] = ...;
        }

   Can be replaced with the following (with the same memory overhead)

        pointField points = ...;

        SortList<point> sortedPoints(points);

        for (point& pt : sortedPoints)
        {
            pt = ...;
        }

- new SliceList type (#1220), which can be used for stride-based
  addressing into existing lists
2019-04-11 15:24:33 +02:00
64ed81b78f BUG: gmsh: skip empty lines. See #1155.
Fix provided by Gavin Ridley.
2019-04-11 11:07:28 +01:00
7cc9961ff2 BUG: gmsh: skip empty lines. See #1155.
Fix provided by Gavin Ridley.
2019-04-11 11:07:28 +01:00
f76733711b ENH: reorganize cpuTime into C++ and POSIX versions (#1238) 2019-04-11 11:00:28 +02:00
b56fbc4377 ENH: replace OSspecific clockValue with std::chrono version (#1278)
- aids with portability and maintenance (#1238)
2019-04-11 10:07:54 +02:00
51aae5f34d CONFIG: bump API to 1904 for changes in interaction with external MPI 2019-04-10 18:00:04 +02:00
eb6ccdf7b1 CONFIG: adjust adios config paths 2019-04-10 16:08:21 +02:00
e79cdf9f8f Merge branch 'feature-pstream-initialize' into 'develop'
better cooperation with external MPI initialize / finalize

See merge request Development/OpenFOAM-plus!252
2019-04-10 14:42:11 +01:00
29f9a3db27 ENH: make gravity mesh object unmovable and properly registered (#1276)
- change from UpdateableMeshObject to TopologicalMeshObject

- change inheritance order to have MeshObject be registered first
  and mark the IOobject descriptor as unregistered
2019-04-10 12:54:32 +02:00
b4f1092b3a BUG: snappyHexMesh: attraction distance mapping. Fixes #941. 2019-04-10 10:34:50 +01:00
805cc59543 ENH: force clearing of Time objectRegistry on destruction (#1276)
- the objectRegistry destructor seems to be called too late.
  Explicitly clear the objectRegistry within the Time destructor to
  ensure that it always happens.
2019-04-10 11:30:31 +02:00
eea4eb89c9 ENH: cellVolumeWeight: removed printing. 2019-04-10 11:05:25 +01:00
139222604f BUG: snappyHexMesh: attraction distance mapping. Fixes #941. 2019-04-10 10:34:50 +01:00
cbc3953f26 Revert "BUG: snappyHexMesh: attraction distance mapping. Fixes #941."
This reverts commit 708e650990.
2019-04-10 10:32:18 +01:00
181e0b75d3 GIT: restore submodule indices accidentally changed by 708e650990 2019-04-09 09:08:54 +02:00
bff4962dc5 ENH: add PDRblock::null() member - reference to NullObject 2019-04-09 09:05:38 +02:00
0db59d392e Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2019-04-08 09:09:46 -07:00
72bf9a3558 ENH: Reducing tolerance for the cellVolumeWeight search 2019-04-08 09:08:07 -07:00
d8d95a6c95 BUG: ensight writer using incorrect first mesh time (fixes #1273)
- used fallback of 0 instead of the results time.
  This discrepancy caused the case file to have two timesets that
  only differed by the first (incorrect) entry.
2019-04-08 16:58:47 +02:00
f79f79421c BUG: ensight writer using incorrect first mesh time (fixes #1273)
- used fallback of 0 instead of the results time.
  This discrepancy caused the case file to have two timesets that
  only differed by the first (incorrect) entry.
2019-04-08 16:58:47 +02:00
7cd40afa3a BUG: snappyHexMesh: attraction distance mapping. Fixes #941. 2019-04-08 13:19:41 +01:00
eb0c35dc6a STYLE: drop use of objToVTK conversion in viewFactors 2019-04-08 12:20:56 +02:00
f0f4af16d2 Merge remote-tracking branch 'origin/master' into develop 2019-04-08 12:05:24 +02:00
8ab09daad0 BUG: foamToVTK writes to undecomposed case (closes #1271)
- when running in serial but within a processor directory,
  argList::globalPath() is to be used instead of Time.globalPath()
  For other cases there is no difference.
2019-04-08 11:53:50 +02:00
45e716f790 COMP: class/struct consistency between forward declaration and definition
- silence clang warnings
2019-04-06 16:15:29 +02:00
39c91d8440 ENH: support HashTable iterator pointer dereference 2019-04-06 16:00:21 +02:00
d4eb17a9ff ENH: new sliceRange class
- this is somewhat like labelRange, but with a stride.
  Can be used to define slices (of lists, fields, ..) or as a range specifier
  for a for-loop. For example,

      for (label i : sliceRange(0, 10, 3))
      {
          ...
      }
2019-04-06 15:07:53 +02:00
06e709c26f ENH: added labelRange += and -= operators
- removed unused decrement() and increment() methods, which provided
  identical functionality as the ++, +=, --, -= operators.
2019-04-06 15:07:53 +02:00
a9747b90b1 ENH: Correcting order of the compressibleContErr.H in comp solvers.
Adding pMin,Pmax pressure control to buoyantPimple and
chtMultiReagion
2019-04-05 14:15:17 -07:00
e05b85fa4e ENH: adding total isentropic pressure option 2019-04-05 09:43:28 -07:00
312c97b47f Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-04-05 09:23:04 -07:00
a57574a8b2 ENH: Reducing tolerance used in the search for cellVolumeWeight 2019-04-05 09:21:05 -07:00
968b95d0cf ENH: Bounding htc for qDot close to zero 2019-04-05 09:20:09 -07:00
63a1826211 ENH: provide 'sanitized' values for wmake -show compiler information (#1256)
- with the wmake rules we may have some compiler options bound to the
  internal compiler variable. For example,

     CC  = g++ -std=c++11 -m64

     c++FLAGS = ...

  So shift any flags from CC to CXXFLAGS for the output of
  'wmake -show-cxx', 'wmake -show-cxxflags', etc.

  This makes it much easier to handle the values correctly elsewhere.
  Eg,

      CXX="$(wmake -show-cxx)" CXXFLAGS="$(wmake -show-cxxflags)" \
         ./configure
2019-04-05 15:30:30 +02:00
cd91a252ac ENH: improve handling of pt-scotch headers/libraries
- provide dedicated detection 'have_ptscotch' function that can be
  used after the 'have_scotch' function.

  It sets the PTSCOTCH_ARCH_PATH, PTSCOTCH_INC_DIR, PTSCOTCH_LIB_DIR
  and helps when the serial and parallel versions are located with
  different logic.
2019-04-05 13:10:53 +02:00
693afb5408 BUG: surfaceWriter::expire() should not affect the expected nFields() count
- the writer nFields() is a separate type of accounting (currently
  only needed by VTK legacy) and is independent of the geometry.
2019-04-05 12:03:41 +02:00
a2bd63869d CONFIG: incorrect location for site appbin, libbin (fixes #1270)
- still had old WM_PROJECT_VERSION settings instead of FOAM_API
  for FOAM_SITE_APPBIN and FOAM_SITE_LIBBIN locations.
2019-04-03 23:55:49 +02:00
49ba6a8e94 ENH: Updating overRhoSimpleFoam and overSimpleFoam to use
oversetInterpolationSuppressed dict.
2019-04-03 12:55:33 -07:00
07ec741e2a ENH: add OSspecific/MSwindows (#1238) 2019-04-03 19:00:06 +02:00
ae94509f42 ENH: wrap internal POSIX directory reading as an iterator class 2019-04-03 17:34:56 +02:00
273da720cd CONFIG: bump patch level 2019-04-03 16:44:32 +02:00
af0dc60fa1 STYLE: reduce indentation in mkDir, minor logic simplication 2019-04-02 16:56:00 +02:00
c24fbfd7e3 ENH: improve code isolation for signal-handling
- file-local static for saving the old action, which moves system
  dependencies out of the header files.

- set/reset of signals as file-local functions

STYLE: use csignal header instead of signal.h
2019-04-02 11:38:09 +02:00
36fae9fd98 ENH: open standard file streams with ios_base::binary
- this improves overall consistency and is independent of higher level
  tagging as ASCII or BINARY for IFstream, OFstream etc.
2019-04-02 22:05:13 +02:00
567fced30b ENH: add pTraits<complex> (#1247) 2019-04-04 19:00:29 +02:00
fe71bbd013 STYLE: use constexpr for pTraits rank 2019-04-04 17:40:06 +02:00
1c4e32fb6a ENH: add iterators to VectorSpace (#1265)
- this adds support for various STL operations including

    * sorting, filling, find min/max element etc.
    * for-range iteration

STYLE: use constexpr for VectorSpace rank
2019-04-04 17:14:27 +02:00
f3670521cd STYLE: use std:: qualifier on ::abort, ::exit
- consistent with use of <cstdlib> and makes for a stronger distinct
  from Foam::abort etc.
2019-04-03 20:24:30 +02:00
dd9b7d3d7e STYLE: make some OSspecific constructors explicit 2019-04-02 15:36:16 +02:00
332cf3345a ENH: emit "constant" for uniform constant field (#1269)
- this improves overall consistency and makes re-reading as a generic
  patch field behave properly when the underlying patch has zero size.
2019-04-04 16:23:41 +02:00
c53459d4a2 STYLE: simplify if nesting in generic patch fields (#1269)
- use git show/diff -w when viewing
2019-04-04 12:41:09 +02:00
939144233c STYLE: adjusted wording and messages for wmake
- add an additional test for wmake pre-processing
2019-04-03 08:57:01 +02:00
baaf8d6bc9 ENH: add fileName::concat static method
- similar to the global '/' operator, but taking raw strings and not
  performing any stripping.

  Was previously a local function within POSIX.C, but it is useful enough
  to be in fileName itself.
2019-04-05 09:42:25 +02:00
d5c01f1aa4 ENH: support external MPI initialize / finalize (#1266) 2019-04-01 18:44:23 +02:00
cb250f59f3 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-04-01 08:30:41 -07:00
1a13cd273b ENH: Adding new Gaussian power profile for laser 2019-04-01 08:29:56 -07:00
89245fa796 ENH: allow space char in fileName is now configurable (#1008)
- having whitespace in fileName can be somewhat fragile since it means
  that the fileName components do not necessarily correspond to a
  'Foam::word'. But in many cases it will work provided that spaces
  are not present in the final portion of the simulation directory
  itself.

    InfoSwitches
    {
        // Allow space character in fileName (use with caution)
        allowSpaceInFileName    0;
    }

- now use doClean=true as default for fileName::validate(). Was false.

  Unlike fileName::clean() this requires no internal string rewrite
  since the characters are being copied.  Also handle any path
  separator transformations (ie, backslash => forward slash) at the
  same time. This makes it resemble the std::filesystem a bit more.
2019-04-01 16:40:22 +02:00
54c10e651d STYLE: gravity: whitespace 2019-04-04 14:52:04 +01:00
9cd72b2bb8 BUG: uniformFixedValue: fix tutorials. See #1046. 2019-04-04 09:24:42 +01:00
a01b05b8c4 ENH: renumberMesh: renumber refinement data. Fixes #1241. 2019-04-01 09:48:23 +01:00
51bf7af8ae ENH: support wmake -show options for compiler information (#1256)
- can be useful for retrieving the compilation flags for use with other
  make systems (eg, cmake)

  * wmake -show-compile   (C++ not C)
  * wmake -show-cxx
  * wmake -show-cxxflags
2019-04-01 09:03:48 +02:00
4f052ac95f STYLE: missing inline specifier (#1263) 2019-04-01 07:51:54 +02:00
baddaee77b STYLE: missing inline specifier (#1263) 2019-04-01 07:51:54 +02:00
23c8bbe0c5 TUT: include samples instead of cuttingPlane (closes #1254) 2019-03-29 12:32:21 +01:00
ba8e5c0ffc TUT: include samples instead of cuttingPlane (closes #1254) 2019-03-29 12:32:21 +01:00
37819905c2 ENH: add some function support for complexField (#1247)
- operators are still incomplete, as are dimensioned fields,
  field-fields etc.

- split complexFields into separate complexField, complexVectorField files
2019-03-29 11:57:02 +01:00
fcba64913a ENH: conversion and function improvements for complex (#1247)
- add construction from and conversion to std::complex, which allows
  easier wrapping of functions

- add Foam:: functions for complex versions of sin, cos, ...
2019-03-29 11:03:48 +01:00
9be923fc56 BUG: PBiCGStab: check minIter. Fixes #1052. 2019-03-27 16:29:52 +00:00
9cf085a68c ENH: add min/max method to PDRblock::location (#1216)
- grid(i,j,k) method for returning the grid point at an i-j-k location
2019-03-27 14:43:44 +01:00
5ab1021211 ENH: overset: move to oversetInterpolationSuppressed. Part of #1041. 2019-03-28 15:17:13 +00:00
06a4d424eb BUG: PBiCGStab: check minIter. Fixes #1052. 2019-03-27 16:29:52 +00:00
83e321d3e4 ENH: snappyHexMesh: allow cross-patch merging of patch faces. Fixes #1255. 2019-03-27 15:04:48 +00:00
bc487d1c81 STYLE: remove deprecated bitSet::used() method
- The 'used()' method was for transitional compatibility with the now
  defunct PackedBoolList.

  The canonical method name for returning a labelList of 'on' bits is
  toc().
2019-03-27 09:04:13 +01:00
56b7145a2f STYLE: move bitSet '~' member operator to be a global operator instead 2019-03-27 08:46:10 +01:00
1788bce0a2 ENH: changed definition of complex::one (#1247)
- was historically defined as (1 1), but it is more consistent with
  the concept of one to have a real component only.

  Now defined as (1 0):  1+0i

STYLE: remove obscure '!' operator for complex conjugate

- either use the member function or the '~' operator
2019-03-27 08:24:03 +01:00
f513f8bec6 ENH: extrudeMesh: -dict. See #1253 2019-03-27 10:39:35 +00:00
33894bf893 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-03-26 10:58:14 -07:00
c787edc846 ENH: Delete unused Qin_ variable on laserDTRM.H 2019-03-26 10:57:45 -07:00
44d7dc8545 BUG: dereference invalid autoPtr in XiEngineFoam (fixes #1250) 2019-03-26 09:42:27 +01:00
b319e058e2 ENH: Adding Function1 functionality to rpm in swirlFanVelocityFvPatch 2019-03-25 10:13:00 -07:00
409072ce59 Merge branch 'snappyHexMesh-proximityCheck' into 'develop'
Snappy hex mesh proximity check

See merge request Development/OpenFOAM-plus!249
2019-03-25 16:49:50 +00:00
6c3f2f4df1 Snappy hex mesh proximity check 2019-03-25 16:49:50 +00:00
1561a46927 ENH: limitedSnGrad: added debug writing 2019-03-25 15:42:29 +00:00
a1999bc92c ENH: additional construct/assignment methods for complex (#1247)
- construct/assign from Zero
2019-03-25 15:17:58 +01:00
a33f1787b7 ENH: globalIndex: helper function to get remote values 2019-03-21 17:55:05 +00:00
ae719b87b5 ENH: exact: use parallel decomposition method 2019-03-20 15:29:47 +00:00
d0f1198b73 TUT: add reconstructPar for interIsoFoam/iobasin (issue #1244) 2019-03-22 17:42:36 +00:00
6301866a9c STYLE: use 'statusDone' keyword for coupling (#1243) 2019-03-22 08:00:01 +01:00
ac646d48b7 ENH: make external file coupling status= configurable (#1243) 2019-03-21 17:26:16 +01:00
a48dc227d4 STYLE: fix comment 2019-03-21 09:49:56 +01:00
f679ab4300 STYLE: adjust some internal variables names in hierarchGeomDecomp 2019-03-20 12:02:42 +01:00
4bb2b8a06a STYLE: docs for activePressureForceBaffleVelocity 2019-03-19 13:36:16 +01:00
5a10b1e2d2 ENH: support VTK multi-piece output for surfaces 2019-03-19 10:03:14 +01:00
123087bb32 ENH: support VTK output of uniform field 2019-03-19 09:45:52 +01:00
0a03ed43bb ENH: add transfer for simple MeshedSurface components 2019-03-18 18:17:22 +01:00
a828af280d GIT: update completion_cache 2019-03-15 17:38:57 +01:00
4995fc5997 ENH: add findCell for PDRblockMesh 2019-03-14 16:24:20 +01:00
ace1491df3 STYLE: narrow represention for boundBox bits enums
- add boundBox::directionBit enum which contains the same values as the
  treeBoundBox::octantBit enum, but without the attached meaning
2019-03-15 16:23:10 +01:00
cdb36e08e9 COMP: provision for non-existence of bessel functions
- These are not defined in the C++ standard for cmath, so allow for
  compilation without them. Will need to provide replacements in the
  future or rework.
2019-03-15 11:19:15 +01:00
5f0714fe5b COMP: use intptr_t instead of long for hashing pointers 2019-03-15 10:03:12 +01:00
a9096858f6 COMP: update endian macros. More universal syntax, less clutter. 2019-03-15 09:10:21 +01:00
487877377d ENH: reorganize regular expressions and add C++11 regex support
- new regExpCxx wrapper for C++11 regex support with drop-in
  compatibility with existing code.

- regExpPosix (was regExp), for future phase out in favour of regExpCxx.

- The regExp header will continue to be used for defining an
  appropriate typedef corresponding to the preferred implementation.
2019-03-14 13:24:23 +01:00
e0e0414726 STYLE: relocate endian from OSspecific to OpenFOAM/primitives
- this information is more related to processor, not OS
2019-03-14 12:12:16 +01:00
931bd1d6d1 STYLE: consistent handling of fileName concatenation (POSIX) 2019-03-14 11:48:53 +01:00
d2eb50832c ENH: add handling of lib/exe file extensions in makefile (#1238)
- relocates some logic from makefiles/general into platform-specific
  overrides
2019-03-14 10:42:57 +01:00
5f527c28aa ENH: rhoPimpleAdiabaticFoam: unused code 2019-03-14 12:45:02 +00:00
7d077626d3 ENH: moveDynamicMesh: add -overwrite option. Fixes #1233. 2019-03-13 15:43:38 +00:00
98e8b7ffed STYLE: correct documentation for fanFvPatchField (#1229)
- for more clarity, make read/write of rpm and mean-diameter contingent
  on nonDimensional == true
2019-03-14 08:19:15 +01:00
8bd6568d05 ENH: added areaWrite function object (#1237)
- write finiteArea meshes and fields to standard surface output
  formats (Ensight, VTK, etc).
2019-03-13 19:44:51 +01:00
9e57e2120b STYLE: make some sampledSurfaces methods protected
- less used bookkeeping/convenience methods that may be phased out
  in the future
2019-03-13 17:27:33 +01:00
ef1df59fcf STYLE: checkIndex for bitSet, PackedList only on FULLDEBUG (#1235) 2019-03-13 14:40:38 +01:00
1a35a3ef0f ENH: surface writers now track their own write status
- instead of deciding beforehand if a surface format requires a separate
  geometry file (or if a geometry file should be written if no fields were
  written) now determine afterwards if something was written.

  This improves the overall reliability (consistency) and is more
  convenient for the caller as well.
2019-03-13 14:13:04 +01:00
47b0de6d68 STYLE: fix doxygen comment for vtkWrite 2019-03-13 12:54:44 +01:00
9149b3579a ENH: PtrList and PtrListOps improvements
- PtrDynList support for move append list:
  can be used to concatenate pointer lists into a single one

- include resize in PtrDynList squeezeNull as being a natural
  combination

- support sorting operations for pointer lists (PtrListOps)
2019-03-13 10:53:28 +01:00
c2f59af036 ENH: minor improvements for plane
- comparison operator, for sorting based on the position of the origin.

- allow modification of the origin.

- zero-initialise for null constructor: base components are vectors
  and cheap to initialise.

- 'unfriend' the output operator: it uses public access methods
2019-03-13 08:00:39 +01:00
a2fb1d0bdd COMP: add wmake rules for Pgi compiler (#1234) 2019-03-11 15:56:40 +01:00
8b63d63444 COMP: rename variable to avoid confusion with 'restrict' keyword
- considered an error by the PGI compiler
2019-03-11 17:52:02 +01:00
46a853bc80 ENH: add bar/Pa conversions 2019-03-11 18:37:18 +01:00
0983eae192 COMP: OSspecific dependency on pthread no longer exists (#614) 2019-03-11 15:56:40 +01:00
e46b241378 CONFIG: bump API version number to 1902 to register changes in surface writers 2019-03-11 15:28:55 +01:00
bbd8b15437 BUG: incorrect return type for T() method. Regression from 3019f30b12 2019-03-11 15:27:36 +01:00
773ec00d4b ENH: improved consistency of surface writers (#1232)
- remove writeGeometry() in favour of write() and make it pure virtual
  so that all writers must explicitly deal with it.

- establish proxy extension at construction time and treated as an
  invariant thereafter. This avoids potentially surprising changes in
  behaviour when writing.
2019-03-11 15:09:03 +01:00
7a5e72978a COMP: runTimePostProcessing build with VTP+MPI fails (#1231)
- incorrectly uses paraview include dirs instead of the more universal
  vtk include dirs for the MPI test.
2019-03-11 11:04:18 +01:00
5d445f4ed6 ENH: suppress cell/patch/proc ids for foamToVTK (#1230)
- reduces output size, consistent with vtkWrite function object

STYLE: mark some foamToVTK options as advanced (ie, visible with -help-full)
2019-03-11 11:02:58 +01:00
aafbca93b2 ENH: old-time field: avoid reading in postprocessing mode. Fixes #1228. 2019-03-06 11:35:16 +00:00
aacb7b0c35 BUG: faMesh: support for multi-region moving meshes. See #1170. 2019-03-04 11:00:52 +00:00
ebb6a0272e BUG: faMesh: support for multi-region moving meshes. See #1170. 2019-03-04 11:00:52 +00:00
ce947eeb09 STYLE: relocate -mcpu into compiler instead of compiler-flags (#1225) 2019-03-01 18:34:05 +01:00
ec93384c1d COMP: adjust ARM compilation flags (#1225)
- with -mcpu=native for automatic detection and -armpl for linking in
  the performance libraries

STYLE: relocate -mcpu into compiler instead of compiler-flags (#1225)
2019-03-01 18:20:41 +01:00
f01849ffd4 COMP: adjust ARM compilation flags (#1225)
- with -mcpu=native for automatic detection and -armpl for linking in
  the performance libraries
2019-03-01 18:20:41 +01:00
12adfe13fa ENH: update empty sampled surfaces storage (#1217)
- also store empty sampled surfaces, otherwise we miss geometry updates.
2019-03-01 14:50:54 +01:00
97be0673dc ENH: additional constructors for IjkField 2019-02-27 08:01:19 +01:00
8a459cdba6 ENH: use 0.0-value instead of -value for inv(dimensionSet)
- the automatic rounding avoids generation of negative zero values.
  For other exponent values it has no effect.
2019-02-26 22:43:56 +01:00
d50c5ce86f ENH: DEShybrid - added robustness for case that nuEff goes negative (typically from negative denisty in compressible cals). See #1224 2019-03-01 11:30:20 +00:00
f330921c74 GIT: remove backup file 2019-03-01 08:05:13 +01:00
f37942b388 ENH: potentialFoam: add region functionality. Fixes #1223.
Also implements combination of -region and -dry-run
2019-02-28 17:04:46 +00:00
a3c239af84 BUG: snappyHexMesh: deal with non-compact regions. Fixes #1221. 2019-02-28 15:09:32 +00:00
71e6e10458 ENH: use cellPoint interpolation directly for surfaceFieldValue (#1212)
- prior to sampledSurface supporting different interpolation schemes a
  workaround means was used to simulate cellPoint -> face
  interpolation, with averaging of vertex interpolation.

  We instead now use cellPoint interpolation directly for the face
  values when 'interpolate=true'.
2019-02-25 18:40:35 +01:00
8a7d8e74fe BUG: dereference invalid autoPtr in XiEngineFoam (fixes #1250) 2019-03-26 09:42:27 +01:00
f200fc1363 ENH: improve findInstance handling of negative times (#1112)
- normally findInstance will 'bottom out' with the constant directory
  while doing its reverse time search. This mechanism however fails
  when searching for negative start values (if there are none in the
  list). Add additional logic for this so that constant will also be
  used in these situations.

Note: to have decomposePar work for all times, may need the -constant option
to trigger the proper time list.
2019-03-26 09:16:57 +01:00
a1fe76e749 STYLE: add 'coeffs' to annotated decomposeParDict 2019-03-26 08:27:33 +01:00
c4a13897a1 STYLE: minor adjustments for fan tables (#1229) 2019-03-26 08:17:53 +01:00
c0e5f77e4f STYLE: avoid nullptr when writing fan RPM 2019-03-26 07:59:44 +01:00
b1bbd50fe4 ENH: additional constructor and methods for PDRblock (#1216)
- construct from positions

- reset positions, minEdgeLen, find grid index

ENH: add accessor for obtaining the size of a single i-j-k dimension

- eg, obtain the 'i' dimension with any of these methods:

      ijkAddr.size(vector::X)
      ijkAddr.sizes().x()
      ijkAddr.sizes()[0]
2019-03-25 12:53:45 +01:00
b675d13490 STYLE: consistent polyMesh owner/neighbour note
- had different spacing depending if defined from faces or shapes

- reinstates commit f7413b27b7 from history repository
2019-02-25 13:11:33 +01:00
c9549ba6a4 GIT: added PDRblockMesh to Allwmake 2019-02-25 07:46:21 +01:00
4d499d3c20 ENH: basic i-j-k Field container (#1216)
- this is a simple container for fields with i-j-k addressing.

  It does not support field operations directly, but is primarily
  intended to be used when assembling field information with i-j-k
  logic. After assembly, the field can be transferred to a regular
  field for normal operations.  Eg,

      IjkField<scalar> assemble({15, 16, 200});

      // .. fill in i-j-k fields

      Field<scalar> final(std::move(assemble));
      assemble.clear();   // be pedantic
      ...
2019-02-24 18:16:17 +01:00
e9323ecbbb STYLE: use finiteVolume in Make/options placeholder 2019-02-24 17:32:13 +01:00
84270ed667 ENH: new PDRblockMesh mesh generation utility (issue #1216)
- While a rectilinear mesh can be created with blockMesh, not every mesh
  created with blockMesh will satisfy the requirements for being a
  rectilinear mesh.

  This alternative to blockMesh uses a single block that is aligned
  with the xy-z directions and specifications of the control points,
  mesh divisions and expansion ratios. For example,

    x
    {
        points  ( -13.28 -0.10 6.0 19.19 );
        nCells  (  10  12 10 );
        ratios  ( 0.2   1  5 );
    }

    y { ... }
    z { ... }

  With only one block, the boundary patch definition is simple and the
  canonical face number is used directly. For example,

    inlet
    {
        type    patch;
        faces   ( 0 );
    }
    outlet
    {
        type    patch;
        faces   ( 1 );
    }

    sides
    {
        type    patch;
        faces   ( 2 3 );
    }

    ...

- After a mesh is defined, it is trivial to retrieve mesh-related
  information such as cell-volume, cell-centres for any i-j-k location
  without an actual polyMesh.

STYLE: remove -noFunctionObjects from blockMesh

- no time loop, so function objects cannot be triggered anyhow.
2019-02-23 15:45:32 +01:00
94a3d0249b STYLE: mention -doc-source option under -help-full instead of under -help 2019-02-24 11:40:09 +01:00
33edea3ea4 ENH: add directory support for foamCleanTutorials 2019-02-23 19:59:04 +01:00
5de5ae35ba ENH: add labelVector2D definition
- can be useful for 2D mesh dimensioning or possibly for matrices
2019-02-22 18:11:00 +01:00
bdf57fb44e ENH: support addPatches with PtrList 2019-02-22 18:11:00 +01:00
7795adfcb4 ENH: additional PtrList constructor and memory management method
- PtrList::release() method.

  Similar to autoPtr and unique_ptr and clearer in purpose than
  using set(i,nullptr)

- Construct from List of pointers, taking ownership.

  Useful when upgrading code. Eg,

     List<polyPatch*> oldList = ...;
     PtrList<polyPatch> newList(oldList);
     ...

BUG: incorrect resizing method names (PtrDynList) in previously unused code
2019-02-22 15:55:17 +01:00
683817bcab BUG: incorrect increment introduced by c508da8f37 2019-02-22 13:36:39 +01:00
57d2eabc6f DEFEATURE: remove surfMesh samplers - superseded by sampledSurfaces
- this functionality was originally added to allow sampling of volume
  fields onto a surface in order to perform calculations on them.

  However, the sampling framework essentially mirrored the
  sampledSurface, but was less complete.

  It is now possible to store sampled surfaces on a registry and
  do calculation with their fields. This is the preferred method,
  and thus removing the surfMeshSample duplicate code.
2019-02-22 13:06:34 +01:00
647a86b7d1 ENH: avoid updating sampled surfaces unless necessary 2019-02-22 12:51:23 +01:00
e2228aab8a ENH: avoid references to temporaries in surfaceWriter
- previously wrapped raw points/faces with a meshedSurfRef on input,
  but now handle the raw -> meshedSurf logic directly within
  surfaceWriter to avoid holding references to temporaries

  Since the updated meshedSurfRef is now modifiable, it can be used
  directly as a redirection mechanism within surfaceWriter.

- add explicit close() in destructor
2019-02-22 11:40:58 +01:00
0ca95ac0cf ENH: additional constructors and methods for meshedSurfRef
- construct null, clear() and reset() methods
2019-02-22 11:10:53 +01:00
e322894476 STYLE: pass points, faces instead of meshedSurfRef in surfaceFieldValue
- removes a layer of opacity and may help with future restructuring
2019-02-22 11:08:07 +01:00
680ca78897 BUG: new surface writer loses serial/parallel preference (fixes #1214) 2019-02-22 10:21:01 +01:00
dcdc9e68f8 STYLE: improved layout and bool vs Switch for some CloudFunctionObjects
- add output verbosity in debug mode
2019-02-22 09:29:08 +01:00
8760f6c9a9 ENH: minor improvements to fvMeshDistribute (#1211)
- sorted field names for consistency, remove some local variables
2019-02-20 15:02:59 +01:00
7da0b5bee1 ENH: trap negative blockMesh expansions and treat as their inverse
- A negative expansion ratio is geometrically invalid and will
  normally cause issues (FatalError).
  However, we can trap this type of input and interpret it as the
  inverse expansion ratio - ie, the expansion ratio in the opposite
  direction. This can be especially convenient when generating a blockMesh
  with a symmetrical expansion. It permits using the same expansion
  ratio (with a sign change) instead of providing the reciprocal values
  manually.

COMP: revert demand-driven point creation in blockMesh (db9b35b50d)

- appears to have caused a dangling reference on some systems

ENH: add a lightweight ijkAddressing class

- it can be used for an i-j-k to linear lookup of meshes or fields,
  where applicable.
2019-02-21 19:04:22 +01:00
1dc9e7c4f4 BUG: Fixing entry consistency in PhaseMixtureEThermo.C
and reading dpdt in one basicThermo constructor
2019-02-20 16:45:12 -08:00
4b1eea0cf1 Merge branch 'feature-postpro' into 'develop'
Feature postpro

See merge request Development/OpenFOAM-plus!236
2019-02-20 19:43:43 +00:00
58471a332b ENH: Forces function object - more feedback at run-time for user field selections 2019-02-20 12:37:17 +00:00
17260280a4 ENH: Forces function object - user can now select bin limits 2019-02-20 12:36:37 +00:00
c83f3eda02 ENH: hydrostaticPressure FO - updated handling of pRef 2019-06-14 09:53:49 +01:00
7322f73a31 Merge branch 'feature-isoAdvectorWithMorphingMeshes' into 'develop'
Introduced changes required to make isoAdvector and interIsoFoam work with...

See merge request Development/OpenFOAM-plus!257
2019-06-13 21:35:20 +01:00
61c87b5552 Introduced changes required to make isoAdvector and interIsoFoam work with morphing meshes: 1) In the alphaEqn.H U is made relative to mesh motion before the interface advection step, 2) in isoAdvection::advect() alpha must be multiplied by Vsc0()/Vsc(). Implementation tested and verified with 1) a spherical interface in a cubic domain with no flow, where the domain walls are squeezed together and 2) a spherical interfacee inside the sloshingCylinder, again with no flow, so the sphere should stay spherical, which it does. 2019-04-30 16:07:48 +02:00
33ef139ac1 ENH: Digital-Filter Based Synthetic Turbulence Generation Method for LES/DES Inflows
Velocity boundary condition generating synthetic turbulence-alike
    time-series for LES and DES turbulent flow computations.

    To this end, two synthetic turbulence generators can be chosen:
    - Digital-filter method-based generator (DFM)

    \verbatim
    Klein, M., Sadiki, A., and Janicka, J.
        A digital filter based generation of inflow data for spatially
        developing direct numerical or large eddy simulations,
        Journal of Computational Physics (2003) 186(2):652-665.
        doi:10.1016/S0021-9991(03)00090-1
    \endverbatim

    - Forward-stepwise method-based generator (FSM)

    \verbatim
    Xie, Z.-T., and Castro, I.
        Efficient generation of inflow conditions for large eddy simulation of
        street-scale flows, Flow, Turbulence and Combustion (2008) 81(3):449-470
        doi:10.1007/s10494-008-9151-5
    \endverbatim

    In DFM or FSM, a random number set (mostly white noise), and a group
    of target statistics (mostly mean flow, Reynolds stress tensor profiles and
    length-scale sets) are fused into a new number set (stochastic time-series,
    yet consisting of the statistics) by a chain of mathematical operations
    whose characteristics are designated by the target statistics, so that the
    realised statistics of the new sets could match the target.

    Random number sets ---->-|
                             |
                         DFM or FSM ---> New stochastic time-series consisting
                             |           turbulence statistics
    Turbulence statistics ->-|

    The main difference between DFM and FSM is that the latter replaces the
    streamwise convolution summation in DFM by a simpler and a quantitatively
    justified equivalent procedure in order to reduce computational costs.
    Accordingly, the latter potentially brings resource advantages for
    computations involving relatively large length-scale sets and small
    time-steps.
2019-02-18 20:12:48 +00:00
350fe1a2d8 ENH: add query function isAdjustTimeStep() 2019-06-14 16:48:28 +01:00
ca0bdb6ff2 COMP: Updated for 64 bit labels 2019-02-18 11:20:40 +00:00
8a576b27ae COMP: Added randomProcesses-based function objects to build 2019-02-18 11:20:18 +00:00
c04963c41e CONFIG: missing semicolon in config file (fixes #1246) 2019-03-22 09:08:35 +01:00
77b2c8482d BUG: faMesh: processors without faMesh. See #1090.
pointNormals calculation gets triggered through processorfvPatches
so on processors that don't have these bypass this. This leads
to the global reduction hanging.
2019-03-04 10:56:41 +00:00
48e3590bc8 ENH: minor blockMesh improvements
- avoid potential ambiguities in naming of mesh faces/edges
  vs. block faces/edges

- additional methods characterizing the number of faces
  (internal, boundary, total) associated with a blockDescriptor

- cellLabel() accessor and checkIndex() methods

- restore demand-driven behaviour of block, cache the calculated cells
  and refactor generation of block boundary faces to improve potential
  reuse.
2019-02-17 19:29:22 +01:00
fe445ac516 ENH: support VTK output of point ids
- can be useful for diagnosing mesh internals and the locations of
  decomposed cells.
2019-02-17 15:09:36 +01:00
9cb6338c58 STYLE: declare edge::operator[]
- already available from the FixedList inheritance, but provide
  explicitly in edge to allow future adjustment of the inheritance
  (#1205)
2019-02-16 16:21:59 +01:00
041be829fc ENH: improvements to label/scalar ranges
- construct from MinMax, optional start index for identity factory
  method to match Foam::identity()

- use GREAT instead of VGREAT in inverted scalarRange.
  Consistent with boundBox - to reduce the potential of overflow
  if calculating the span.

- add min()/max() methods to labelRange
2019-02-16 16:08:43 +01:00
17a579bf92 ENH: exact: new patchDistMethod 2019-02-18 15:31:42 +00:00
48055b2dea ENH: distributedTriSurfaceMesh: auto-decomposition; inside/outside support 2019-02-18 13:29:01 +00:00
d4a97ecd01 COMP: Removed unused variable 2019-02-18 12:42:38 +00:00
27973d7ab5 COMP: Updated for 64 bit labels 2019-02-18 11:20:40 +00:00
c4242efde4 COMP: Added randomProcesses-based function objects to build 2019-02-18 11:20:18 +00:00
9144b122cb GIT: turn off fvsPatchField debug
- seems to have slipped into an earlier commit
2019-02-15 16:36:46 +01:00
471e39bdbe GIT: missing tutorial file 2019-02-15 16:17:47 +01:00
ef0fcfdd07 ENH: added foamGetDict utility (#1074)
- adapted from the 'foamGet' utility authored by Chris Greenshields
2019-02-15 14:47:46 +01:00
7d4d26bea4 SUBMODULES: catalyst updated to use vtk::Tools::Vertices 2019-02-15 12:20:00 +01:00
42fbf6d38c ENH: extended runTimePostProcessing (#1206)
- Extended runTimePostProcessing to include access to "live"
  simulation objects such a geometry patches and sampled surfaces
  stored on the "functionObjectObjects" registry.

- Add 'live' runTimePostProcessing of cloud data.
  Extracts position and fields from the cloud via its objectRegistry writer

- For the "live" simulation objects, there are two new volume filters
  that work directly with the OpenFOAM volume fields:
      * iso-surface
      * cutting planes
  Both use the VTK algorithms directly and support multiple values.
  Eg, can make multiple iso-levels or multiple planes parallel to each
  other.

- When VTK has been compiled with MPI-support, parallel rendering will
  be used.

- Additional title text properties (shadow, italic etc)

- Simplified handling of scalar-bar and visibility switches

- Support multiple text positions. Eg, for adding watermark text.
2019-02-13 11:22:46 +01:00
03e6aa1a6d ENH: replace surfMesh/fields support with polySurface/fields support (#1206)
- fits better into the general sampling framework, improves flexibilty
  and allows code reduction.

ENH: include surface fields on sampledSurfaces that support it
2019-02-12 13:54:02 +01:00
d7a8a2056d STYLE: Updated bug report template 2019-02-12 09:09:32 +00:00
5615d1f256 BUG: Corrected debug output for solarLoad. Fixes #1195 2019-02-11 12:19:39 +00:00
262faabd7c ENH: mixed precision solver infrastructure (#1086)
- lduSolver: solveScalar for coarse-level solve; normFactor etc

- lduMatrix: have smoother natively use solveScalarField
2019-02-10 14:53:13 +00:00
1ed1b4d5b6 ENH: use magType for sumMag() functions
- use outerProduct for sumSqr() for consistency with sqr()
2019-06-04 20:32:13 +02:00
dc32b20a5c ENH: add magType to pTraits and arithmetic primitives 2019-06-04 19:30:35 +02:00
375fd3d9d3 STYLE: remove unused overset lduInterfaces code (commit 33db2dd3e2) 2019-05-30 17:22:24 +02:00
181c974b11 ENH: improved sample surfaces and surface writers (#1206)
- The writers have changed from being a generic state-less set of
  routines to more properly conforming to the normal notion of a writer.
  These changes allow us to combine output fields (eg, in a single
  VTK/vtp file for each timestep).

  Parallel data reduction and any associated bookkeeping is now part
  of the surface writers.
  This improves their re-usability and avoids unnecessary
  and premature data reduction at the sampling stage.

  It is now possible to have different output formats on a per-surface
  basis.

- A new feature of the surface sampling is the ability to "store" the
  sampled surfaces and fields onto a registry for reuse by other
  function objects.

  Additionally, the "store" can be triggered at the execution phase
  as well
2019-02-07 18:11:34 +01:00
ba26175198 BUG: foamCreateModuleInclude ignores -output option (fixes #1190)
ENH: add -prefs option to pass in a preferences configuration file
2019-02-04 14:48:03 +01:00
46bc808261 ENH: add primitives support for mixed precision (#1086)
- add vsmall pTraits for scalars
- report the solve scalar in buildArch information
2019-02-03 16:54:25 +00:00
f88708797f STYLE: provide labelPair typedef (a common type) within Pair.H itself 2019-05-28 14:49:53 +02:00
26a6533053 ENH: FieldFunctions reduce on returnType, not input type (#1327)
- for most functions the input type and return type are identical,
  but MinMax, sumMag are not.
2019-05-28 14:48:18 +02:00
7945ca739c ENH: correct sumProd return type (#1086)
- previously returned scalar, but now return pTraits cmptType
  which is the same as scalarProduct / outerProduct type.
2019-02-10 14:31:35 +00:00
aab644a3fc STYLE: eliminate complex constants that are duplications of pTraits
- eg pTraits<complex>::zero, pTraits<complex>::one instead.
  This is consistent with other primitives such as scalar, label etc.
2019-05-27 18:09:43 +02:00
46dcba1b44 STYLE: rename dense matrix multiply methods
- make names consistent with lduMatrix
    A*x  => Matrix::Amul
    AT*x => Matrix::Tmul  (same as x*A)
2019-05-27 17:13:05 +02:00
8e5e4180d3 ENH: foamGetDict avoids overwrite of existing files (-force to override) 2019-05-27 11:39:00 +02:00
5d8e8610c8 STYLE: relocated darwin, mingw information to wiki content 2019-05-27 11:13:06 +02:00
baf0cc2a78 STYLE: relocate deprecation scripts and coding guide to wiki content
- reduces installation clutter, allows easier cross-referencing

- remove older deprecated scripts (foamDebugSwitches, foamGraph*)
2019-05-27 10:33:08 +02:00
66a100997f COMP: force dlOpen for windows application binaries (#1238)
- when windows portable executables (.exe or .dll) files are loaded,
  their dependent libraries not fully loaded. For OpenFOAM this means
  that the static constructors which are responsible for populating
  run-time selection tables are not triggered, and most of the run-time
  selectable models will simply not be available.

Possible Solution
=================

  Avoid this problem by defining an additional library symbol such as
  the following:

      extern "C" void libName_Load() {}

  in the respective library, and tag this symbol as 'unresolved' for
  the linker so that it will attempt to resolve it at run-time by
  loading the known libraries until it finds it. The link line would
  resemble the following:

      -L/some/path -llibName -ulibName_Load

  Pros:
    - Allows precise control of forced library loading

  Cons:
    - Moderately verbose adjustment of some source files (even with macro
      wrapping for the declaration).
    - Adjustment of numerous Make/options files and somewhat ad hoc
      in nature.
    - Requires additional care when implementing future libraries and/or
      applications.

  - This is the solution taken by the symscape patches (Richard Smith)

Possible Solution
=================

  Avoid this problem by simply force loading all linked libraries.
  This is done by "scraping" the information out of the respective
  Make/options file (after pre-processing) and using that to define
  the library list that will be passed to Foam::dlOpen() at run-time.

  Pros:
    - One-time (very) minimal adjustment of the sources and wmake toolchain
    - Automatically applies to future applications

  Cons:
    - Possibly larger memory footprint of application (since all dependent
      libraries are loaded).
    - Possible impact on startup time (while loading libraries)
    - More sensitive to build failures. Since the options files are
      read and modified based on the existence of the dependent
      libraries as a preprocessor step, if the libraries are initially
      unavailable for the first attempt at building the application,
      the dependencies will be inaccurate for later (successful) builds.

  - This is solution taken by the bluecape patches (Bruno Santos)

Adopted Solution
================

  The approach taken by Bruno was adopted in a modified form since
  this appears to be the most easily maintained.

Additional Notes
================

  It is always possible to solve this problem by defining a corresponding
  'libs (...)' entry in the case system/controlDict, which forces a dlOpen
  of the listed libraries. This is obviously less than ideal for large-scale
  changes, but can work to resolve an individual problem.

  The peldd utility (https://github.com/gsauthof/pe-util), which is
  also packaged as part of MXE could provide yet another alternative.
  Like ldd it can be used to determine the library dependencies of
  binaries or libraries. This information could be used to define an
  additional load layer for Windows.
2019-05-25 19:10:14 +02:00
882d7310d1 ENH: silently add "lib" prefix and ".so" suffix for dlOpen'ed libraries
- reduces some dictionary clutter and probably looks less confusing
  than having an ending that may not correspond to the current OS.

  Eg, "fvOptions" instead of "libfvOptions.so", "libfvOptions.dylib" ...

- convenience dlOpen method for multiple files
2019-05-23 17:30:54 +01:00
d9cefeff99 STYLE: writeDictionary - updated output format 2019-05-23 12:55:32 +01:00
b521e4223b ENH: overset: change tag for communication 2019-05-23 11:28:08 +01:00
b8dc024444 BUG: incorrect IOobject instance for absolute windows path (#1238)
STYLE: remove unused local variables in edgeMeshFormat
2019-05-23 10:27:06 +01:00
1da01af305 COMP: place libz linkage at the end (#1238) 2019-05-22 15:31:10 +01:00
b5d775a691 STYLE: avoid deprecated lookup methods 2019-05-22 15:06:12 +01:00
0ae939e8f8 ENH: add matrix-vector, vector-matrix multiplication (#1220)
- the vector-matrix multiplication is treated as a row vector
2019-05-20 15:58:32 +01:00
061eb53fb5 ENH: improvements, modernization of matrix containers (#1220)
- add iterators, begin/end, empty() methods for STL behaviour.
  Use standard algorithms where possible
     * std::fill, std::copy
     * std::min_element, std::max_element

- access methods consistent with other OpenFOAM containers:
     * data(), cdata(), uniform()

- Use ListPolicy to impose output line breaks

- Can recover matrix storage for re-use elsewhere.
  For example, to populate values with 2D i-j addressing and later
  release it as flat linear storage.

- construct/assign moveable

- added minMax() function for Matrix

- additional inplace +=, -=, *=, /= operations

- add named methods at() and rowData() to Matrix.
  Allows a better distinction between linear and row-based addressing

- low-level matrix solve on List/UList instead of Field
2019-05-22 12:18:31 +01:00
f8a70115fd ENH: add sign(), csign() methods for complex
- use std::hypot for complex mag() instead of long-hand version

- Detail::conj() function for complex or non-complex
2019-05-21 11:18:12 +01:00
1544db3116 ENH: surfaceFieldValue - update selection on mesh changes 2019-05-22 08:15:19 +01:00
be84f4542b ENH: Removed misleading PSD13 output 2019-05-20 13:37:11 +01:00
5653e2b174 ENH: Compatibility updates for finiteArea 2019-05-15 08:35:07 +01:00
b886000eb3 Merge branch 'feature-dictionary-checking' into 'develop'
Feature dictionary checking

See merge request Development/OpenFOAM-plus!259
2019-05-22 10:29:41 +01:00
32916fa845 ENH: dictionary checking methods with predicates on the input values
- can be used to check the validity of input values.

Example:

    dict.getCheck<label>("nIters", greaterOp1<label>(0));
    dict.getCheck<scalar>("relax", scalarMinMax::zero_one());

- use 'get' prefix for more regular dictionary methods.
  Eg, getOrDefault() as alternative to lookupOrDefault()

- additional ops for convenient construction of predicates

ENH: make dictionary writeOptionalEntries integer

- allow triggering of Fatal if default values are used

ENH: additional scalarRange static methods: ge0, gt0, zero_one

- use GREAT instead of VGREAT for internal placeholders

- additional MinMax static methods: gt, le
2019-05-21 19:10:14 +01:00
515027b7ab ENH: uniformFixedValue: add library 2019-05-21 13:36:36 +01:00
80d2894219 ENH: overset: GAMG normalisation of hole cells 2019-05-21 13:21:27 +01:00
9cd9d879e7 ENH: GAMG: supress debug msg 2019-05-21 09:42:34 +01:00
4e58e355b8 BUG: off-by-one in Windows env and cwd sizing (#1238) 2019-05-20 17:41:27 +01:00
8345452484 STYLE: additional constructor for randomDecomp 2019-05-20 08:58:35 +01:00
d88b95697d STYLE: adjust fluxSummary documentation 2019-05-17 11:46:51 +01:00
722ebdb151 STYLE: update of 'mode' to 'type' keyword for radiation properties 2019-05-17 09:53:25 +01:00
b043be3063 STYLE: add notices for deprecated dictionary methods 2019-05-17 09:02:51 +01:00
3a00dd9b9a CONFIG: use C++11 regex instead of POSIX for newer compilers
BUG: The ok_ flag was not being updated in the regExpCxx::set() method
2019-05-21 12:29:52 +01:00
29e6c81af8 STYLE: add namespace qualifiers to interpolationWeights 2019-05-16 14:06:40 +01:00
e6a2083281 ENH: overset: allow use in non-dynamicMesh applications
This is to avoid overset interpolation in the calculation of the stencil
itself since this triggers a loop.
2019-05-16 10:30:55 +01:00
0adcd1ec47 ENH: timeInfo function object (#1320)
- records execution and wallclock times to postProcessing/
  which can be more convenient than parsing a log file.
2019-05-15 09:21:45 +01:00
0e5c9356a0 BUG: overset: out-of-range indexing. Fixes #1321 2019-05-15 11:43:34 +01:00
5f9b6d7a74 STYLE: parProfiling: no tabs 2019-05-15 10:01:54 +01:00
c46fe63b97 ENH: parProfiling: do not print on exit. Fixes #1298. 2019-05-15 08:30:06 +01:00
51f501b668 ENH: decomposition: added 'random' method for testing.
This will use a random-number generator to select for
each cell the processor. Useful for testing parallel/non-parallel
consistent behaviour.
2019-05-08 12:27:24 +01:00
9b8ac57e98 BUG: foamToEnsightParts reports the time value twice in log output 2019-01-30 15:41:06 +01:00
f7729d6f8c GIT: Added gitlab templates 2019-01-29 16:52:35 +00:00
473e000bed ENH: enable MPI library variants (#1153)
- in addition to managing different vendors and versions, it may also
  be necessary or desirable to have a particular variant
  (eg, profiling, release, etc).

  Devise a new meaningful name for the variant and create a
  corresponding wmake rule.

  Eg, SYSTEMOPENMPI-profiling with a corresponding
      "wmake/rules/linux64Gcc/mplibSYSTEMOPENMPI-profiling" file
  that has suitable content for your system.

CONFIG: intel-mpi use intel64/ paths only for config and wmake rules (#1153)

- previously adjusted the config files, but missed the changes
  required for the wmake rules too.

  Now simply migrate to using  "intel64/{include,bin,lib}"
  instead of the older naming  "{include,bin,lib}64"

  These changes work since at least intel-mpi 2015 (5.x), but possibly
  earlier as well
2019-01-28 19:19:09 +01:00
16bc63864e ENH: added polySurface storage with fields (#1206)
- This simple container provides a means of storing faces/points
  (ie, surfaces) with registered dimensioned fields.

  The main registry is used to hold face-based data, a secondary
  sub-registry is used to hold point-based data. This allows the same
  name for CellData and PointData fields without name collisions.
2019-01-24 00:03:26 +01:00
5b2300a8a1 BUG: thermalBaffleModel::New from thermalBafflePropertiesDict fails
- retrieved value for the modelType was masked by a local variable
2019-01-23 21:57:20 +01:00
aa4f81ff1b CONFIG: bump patch level 2019-01-23 21:14:02 +01:00
97ac486b58 BUG: registerCopy may fail for copy construct of regIOobject
- checkIn() was incorrectly conditional on the register state of the
  source object.

Partial patch from .org commit 6dc48b62d948
2019-01-23 13:25:18 +01:00
51bac480e1 BUG: missing return value for PtrDynList::set 2019-01-23 09:16:59 +01:00
659526101a ENH: Adding reflection capability to solar load radiation model
ENH: Several modifycations to avoid erroneuos rays to be shot
from wrong faces.

ENH: Updating tutorials and avoiding registration of the
coarse singleCellFvMesh

Adding solarLoad tutorial case simpleCarSolarPanel

ENH: Changes needed for the merge
2019-01-21 16:29:58 -08:00
efb4c6e7a6 CONFIG: drop config support for deprecated ensight reader library 2019-01-17 10:53:44 +01:00
63d8e7e576 ENH: make use of FOAM_API for environment as well (issue #1158)
- was WM_PROJECT_API in the environment and FOAM_API in dictionaries.

  Make these both consistently FOAM_API.
  This is a non-breaking change, since the value of WM_PROJECT_API
  (added in 1812) and/or FOAM_API is purely informative.
  For the current correct values, always use

    * foamEtcFile -show-api
    * wmakeBuildInfo -show-api
2019-01-10 12:21:19 +01:00
bae92919e5 ENH: provide config setup for mesa with llvm (issue #1164)
- If using a non-clang compiler suite (gcc, intel, etc) the additional
  lbraries required for mesa with llvm pipelines may not be found.

  Provide a mesa_llvm configuration with in the 'vtk' config file.
  Can use the usual types of settings

     * mesa_llvm=llvm-4.0.1
     * mesa_llvm=none
     * mesa_llvm=system
2019-01-10 11:50:09 +01:00
a8f08b31c1 BUG: snappyHexMesh: extrude non-local baffle. Fixes #1175. 2019-01-21 15:27:51 +00:00
29315f4644 DEP: Deprecated the ensightFoamReader 2019-01-17 09:35:04 +00:00
956b41ae28 BUG: vtk::internalWriter::writeProcIDs could block in parallel
- could be triggered if running in parallel, but requesting procIDs
  to be written with a non-parallel version of the writer.
2019-01-14 16:43:30 +01:00
cf8d500f8c ENH: export FOAM_API in dictionary (issue #1158)
- uses the value of foamVersion::api, which should be reliable.
2019-01-07 19:04:50 +01:00
62a7582d6d SUBMODULES: align git information with the respective master branches 2019-01-07 13:45:21 +01:00
0748a11fd6 COMP: no vtkDataArray::Fill() method prior to VTK-8 (fixes #1156) 2019-01-07 11:58:33 +01:00
170041aaf5 ENH: for-range, forAllIters() ... in applications/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
20da89f8f6 ENH: for-range, forAllIters() ... in genericPatchFields/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
534920b67f ENH: for-range, forAllIters() ... in lagrangian/molecularDynamics/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
f487333b57 ENH: for-range, forAllIters() ... in lagrangian/intermediate/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
4da4f40ded ENH: for-range, forAllIters() ... in lagrangian/ basic
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
6cbe89720d ENH: for-range, forAllIters() ... in thermophysicalModels/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
5f42b5df9f ENH: for-range, forAllIters() ... in OpenFOAM/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
a43eb01b7e ENH: for-range, forAllIters() ... in finiteVolume/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
bd78da22e7 ENH: for-range, forAllIters() ... in mesh/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
a766d38643 ENH: for-range, forAllIters() ... in sampling/, surfMesh/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
fd8379fdbe CONFIG: update MPICH and MVAPICH versions/rules
- Note: mpich now builds libmpi.so instead of libmpich.so

- define both -DMPICH_SKIP_MPICXX and -DOMPI_SKIP_MPICXX regardless of
  using openmpi or mpich. This simplifies the files and does not harm.
2019-02-14 18:09:37 +01:00
6b9fe33275 STYLE: remove static from functions in vtk::Tools namespace
- a leftover from the change from class to namespace
2019-02-14 16:58:28 +01:00
ec36e7a4b5 ENH: additional vtk::Tools methods for cloud-related meshes
- the Tools::Vertices() method for creating a vtkPolyData with the
  given points and a corresponding Verts for the points.
2019-02-14 14:42:56 +01:00
e143a5eaa5 ENH: HashSet::test() for method name compatibility with bitSet, boolList 2019-02-14 13:15:10 +01:00
95a33c2f68 ENH: wordRes::uniq() removes all duplicates
- previously just removed duplicate literals, but now remove any
  duplicates.

- Replace previous wordHashSet implementation with a linear search
  instead. The lists are normally fairly small and mostly just have
  unique entries anyhow. This reduces the overall overhead.
2019-02-14 11:03:04 +01:00
60c314150c ENH: ensure self-assignment and self-swapping are a no-op for string types
- simplifies their use when reordering lists etc.
  (word, fileName, keyType, wordRe)

- "unfriend" IO operators for string types. They require no internal access

- add compile/uncompile methods to keyType for symmetry with wordRe

- when outputting keyType/wordRe, be more explicit about them using
  writeQuoted()
2019-02-14 09:06:43 +01:00
df35627e69 ENH: controlDict: added entry for clarity. 2019-02-14 12:41:26 +00:00
482a1b08a7 ENH: scotchDecomp: check validity of processorWeights. Fixes #1207. 2019-02-14 12:40:25 +00:00
2833521576 ENH: for-range, forAllIters() ... in meshTools/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
24861f5158 ENH: for-range, forAllIters() ... in functionObjects/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
60234ab007 STYLE: reduced nesting on return branching 2019-02-13 08:06:36 +01:00
4bc3b2b9cb STYLE: minor adjustments for code formatting and comments 2019-02-12 20:18:06 +01:00
d1bc0d6e56 ENH: lazy evaluation of subRegion in regionFunctionObject (#1202)
- delay dereferencing of optional subRegion entries until an
  objectRegistry is required.

  This improves usabilty when reference objects do not yet exist
  at the time of construction.
2019-02-12 13:54:02 +01:00
4e7ba1800a ENH: delay evaluation of surfaces for fluxSummary (issue #1202)
- complete any pending initialisation on write().
  Allows lazier evaluation until when surfaces are actually available.
2019-02-12 12:39:49 +01:00
bfb0693bbe ENH: delay evaluation of surfaces for surfaceFieldValue (issue #1202)
- complete any pending initialisation on write().
  Allows lazier evaluation until when the surfaces are actually needed.
2019-02-12 12:39:49 +01:00
52101db781 SUBMODULES: catalyst updated to use vtk::vtuAdaptor 2019-02-12 17:56:11 +01:00
ff54ef8299 ENH: additional vtk::Tools methods for handling faces, points etc.
- includes initial relocation of low-level vtu handling.
  Extracted, refactored from the Catalyst function object.
2019-02-03 17:24:26 +01:00
966fc4c503 TUT: add missing fields 2019-02-12 16:46:40 +01:00
5c6b0989a4 ENH: for-range, forAllIters() ... in sampling/, surfMesh/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
655f7d1997 ENH: for-range, forAllIters() ... in parallel/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
45590671ac ENH: for-range, forAllIters() ... in dynamicMesh/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
f5163e50ff ENH: for-range, forAllIters() ... in genericPatchFields/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
8d5894174f ENH: for-range, forAllIters() ... in conversion/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
e3e0d7c8b9 ENH: add possibility to change const reference in tmp.
- previously it was only possible to reset a pointer, but not to
  change a const-reference directly (needed a swap() to do this).
2019-02-11 18:23:06 +01:00
de673f3bcf STYLE: consolidate 'clear' when initialising surfaceFieldValue 2019-02-11 15:59:14 +01:00
e6937f60de ENH: add Ensight output support for a labelField (treat like scalarField) 2019-02-11 16:03:10 +01:00
c137d3f823 ENH: derivedFields functionObject to create some predefined, calculated fields
- currently supports pTotal, rhoU.
2019-02-08 17:47:45 +01:00
e2754962cc ENH: add remove objects handling in timeFunctionObject and regionFunctionObject
- makes it easier to implement functionObject or field object removal
2019-02-08 17:47:45 +01:00
8f92fa016f ENH: write/clear on all components (issue #1199)
- use registry checkOut for removeRegisteredObject function object
2019-02-11 10:12:17 +01:00
f6d462a246 STYLE: make objectRegistry::cfindIOobject() protected instead of public 2019-02-11 10:58:18 +01:00
4e7ac82060 STYLE: derive surface sampling from fvMeshFunctionObject 2019-02-11 09:47:13 +01:00
75a691ecfa ENH: generic: add genericFvsPatchField 2019-02-11 17:02:14 +00:00
f2d735264f COMP: polyMeshTetDecomposition: vGreat vs VGREAT 2019-02-11 12:11:59 +00:00
12d9a159dc ENH: Function1: better error message. Fixes #1200. 2019-02-11 12:10:47 +00:00
9580a0e243 isoSurface: Fix for isoSurface 'eroding' surfaces down to nothing
The occurrence is from cells with vertices that are shared between two faces
only (these vertices can originate from hex refinement). Decomposing both faces
can occasionally produce triangles with identical vertices and this results in a
non-manifold edge which triggers the erosion procedure.

Avoided by detecting cells with these special vertices and making sure the tet-decomposition
never uses the same points on the faces using them.

Patch contributed by Mattijs Janssens
2019-02-08 14:45:54 +00:00
bb73eb63a3 STYLE: DFSEM inlet - updated messages when checking validity of the stress tensors 2019-02-11 10:23:45 +00:00
96b0bce80a ENH: forces function object - made user selection clearer when running 2019-02-11 09:22:26 +00:00
5610da9f95 STYLE: missing space in warning message 2019-02-08 18:53:27 +01:00
1e607ac62e TUT: use coarser grid for gasMixing tutorial and run in parallel 2019-02-08 18:43:08 +01:00
e5b3af9c05 ENH: add failsafe version of Enum::get() 2019-02-08 16:51:54 +01:00
27c58dde4c STYLE: provide boolList, boolUList typedefs directly in container
- move declaration of emptyLabelList (now deprecated) out of List.H
2019-02-08 16:35:53 +01:00
7904e4a73f COMP: resolved compiler warnings 2019-02-08 09:32:53 +00:00
e929a20921 STYLE: Header clean-up 2019-02-08 09:30:46 +00:00
9cb57f7fa8 ENH: restart: save/restore cumulative continuity error. See #1172. 2019-02-07 14:28:30 +00:00
e3008553e8 ENH: uniformFixedValue: adapt point bc. See #1046. 2019-02-07 14:08:03 +00:00
078e34746e ENH: code adjustments for updated NullObject
- can now safely use labelList::null() instead of emptyLabelList for
  return values. No special treatment required for lists.

  Possible replacements:

      if (notNull(list) && list.size())  ->  if (list.size())
      if (isNull(list) || list.empty())  ->  if (list.empty())

  The receiver may still wish to handle differently to distinguish
  between a null list and an empty list, but no additional special
  protection is required when obtaining sizes, traversing, outputting
  etc.
2019-02-07 13:04:24 +01:00
0800e021ad ENH: improved handling of zone allocation in surfMesh
- relocate zone IO from Detail::MeshedSurfaceIOAllocator into surfMesh
  directly to allow re-purposing of MeshedSurfaceIOAllocator

- provide meshedSurf::emptySurface zero-sized placeholder implementation

- add concrete implementation of meshedSurf::zoneIds() to simplify
  overloading
2019-01-22 09:44:18 +01:00
eaa3da72c5 ENH: extend size of NullObject for safer reinterpret cast
- previously had a single pointer/value zeros (8 bytes), this meant
  that the reinterpret cast to a List would yield a reference that
  could be unsafe under certain conditions.

  Eg,
     const labelList& myList = labelList::null();

     Info<< myList.size() << nl; // OK since size is the first parameter

     SubList<label>(myList, 0);  // Unsafe

  The SubList usage is unsafe since it passes in pointer and size into
  the underlying UList. However, the pointer from the labelList::null()
  will be whatever happens to be around in memory immediately after the
  NullObject singleton. This is mostly not a problem if the List size
  is always checked, but does mean that the data pointer is rather
  dubious.

- Increase the size of the nullObject singleton to 32 bytes of zeros
  to ensure that most reinterpret casting will not result in objects
  that reference arbitrary memory.

  The 32-byte data size is rather arbitrary, but covers most basic
  containers.
2019-02-07 11:13:13 +01:00
2016f88eba ENH: use vtk::surfaceWriter in shortestPathSet debugging 2019-02-07 09:45:13 +01:00
3a6e596a09 STYLE: indentation 2019-02-05 09:06:24 +01:00
7d023d035c ENH: PatchFunction1: work with points. See 1046. 2019-02-07 10:33:46 +00:00
ce7e921f21 ENH: restart: save/restore cumulative continuity error. See #1172. 2019-02-07 10:27:03 +00:00
c59d5c6213 Merge branch 'feature-object-registry-search' into 'develop'
Feature object registry search

See merge request Development/OpenFOAM-plus!232
2019-02-07 08:59:07 +00:00
154029ddd0 BOT: Cleaned up header files 2019-02-06 12:28:23 +00:00
4d82589841 ENH: exact restart. Fixes #1172. 2019-02-06 12:13:52 +00:00
6922deb9fb STYLE: relax working about patch level 2019-02-06 12:48:13 +01:00
97994734d2 CONFIG: bump API version number to 1901 to register recent changes
- objectRegistry search, erase methods
  - clip, minMax
  - function object triggering
  ...
2019-02-06 12:01:29 +01:00
6d6f43d72e ENH: refactored regIOobject searching in object registry
- The findObject() methods are template-typed and used to locate a
  particular Type/name combination.

  Eg,

      volScalarField* ptr = obr.findObject<volScalarField>("xyz");

- The findIOobject() methods are un-typed and use the name only.

  Eg,

      regIOobject* ptr = obr.findIOobject("xyz");

The typed versions will be most commonly used, but the un-typed lookup
can be useful in a templating.

- Simplified findObject* methods to use findIOobject* as the backend.
2019-02-06 12:01:29 +01:00
1b9576df0a ENH: support objectRegistry::checkOut(const word& name)
- similar to what erase() does, but as a mutable operation (#1180)

- replace basicThermo lookupAndCheckout (commit 880c98757d) with
  the new objectRegistry::checkOut() method.
2019-02-06 12:01:29 +01:00
8f572a5e71 ENH: improve volRegion handling of moving meshes (#1194)
- implemented as lazy evaluation with an additional update() method.
  This avoids unnecessary changes until the values are actually
  required.

- apply mesh motion changes for momentum, volFieldValue,
  specieReactionRates function objects
2019-02-06 10:25:47 +01:00
fb561daf7a ENH: avoid potential leaks with objectRegistry::erase (#1180)
- forwards to the underlying HashTable erase, but frees things owned
  by the registry as well (ie, performs a checkOut)
2019-02-06 09:09:31 +01:00
d0d83b0784 COMP: basicThermo: object instead of class name. See #1180. 2019-02-06 09:28:36 +00:00
cd8e32f603 TUT: consistent headers/formatting for chokedNozzle
- also removed some editing cruft from controlDict that should not
  have been there
2019-02-06 07:54:05 +01:00
6384896523 TUT: Corrected function object entry 2019-02-05 14:08:39 +00:00
b6c5fc0ada ENH: Added checks for input Reynolds stresses based on Lund coefficient constraints. Fixes #1124 2019-02-05 14:07:59 +00:00
edfd27f9e4 BUG: Corrected re-reading of time control function objects. Fixes #1192 2019-02-05 11:28:31 +00:00
427acc84b0 COMP: foamVtkTools: template specialization bug in gcc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480
2019-02-04 16:39:01 +00:00
cc039d1356 GIT: tutorials: cleanup generated files 2019-02-04 12:29:26 +00:00
4db5c3657b COMP: Allwmake: also resolve link order: -lblockMesh needed when linking overset 2019-02-04 12:03:53 +00:00
cab94a5d0a Merge remote-tracking branch 'origin/master' into develop 2019-02-04 10:55:34 +00:00
d329087473 ENH: Added fieldMinMax function object default config 2019-02-04 10:50:28 +00:00
b3c9bd480b ENH: Updating interCondensatingEvaporatingFoam tutorial case 2019-02-01 15:12:08 -08:00
b3b9dd9b18 ENH: Changing energy Eq in interCondensatingEvaporatingFoam
from e to T. T proved to be more generic solution.
2019-02-01 15:10:16 -08:00
4435819a7a Merge branch 'feature-fieldLimits' into 'develop'
Add minMax and clip field functions

See merge request Development/OpenFOAM-plus!230
2019-02-01 16:54:36 +00:00
932666c408 ENH: add vtk::Tools::Patch faceCentres() method 2019-02-01 10:37:15 +01:00
8473fd0b2a COMP: template specialization in incorrect namespace
STYLE: avoid local variable name masking
2019-02-01 10:20:29 +01:00
b7fb6116c3 ENH: restructuring of ensight output files
- changed ensightOutput from a class solely comprising static methods to
  a namespace and added in sub-namespaces Detail and Serial.

  This makes it easier to "mix-in" functions at different levels.
  Refactored and combined some serial/parallel code where possible.

  The general ensightOutput namespace has now shifted to be in the
  fileFormats lib, while leaving volField outputs in the conversion lib
  and cloud outputs in the lagrangian-intermediate lib.

  The ensightCloud namespace is now simply folded into the new
  ensightOutput namespace.

  These changes clean up some code, reduce fragmentation and
  duplication and removes the previous libconversion dependency for
  sampling.

- use int for ensight nTypes constexpr

Note: issue #1176 is unaffected except for the change in file name:

   ensightOutputTemplates.C -> ensightOutputVolFieldTemplates.C
2019-01-29 15:18:17 +01:00
1982f1df89 Merge branch 'feature-solver-info' into 'develop'
Function object updates

See merge request Development/OpenFOAM-plus!231
2019-01-31 17:00:01 +00:00
14e6b198cc ENH: checkMesh: write correct faceWeights. Fixes #1099. 2019-01-31 15:28:01 +00:00
1370060da2 SUBMODULES: catalyst updated to use vtk::Tools as namespace 2019-01-31 13:45:11 +01:00
fe21c9c327 ENH: change vtk::Tools from a class to a namespace
- allows localized extension of functionality
2019-01-31 13:43:18 +01:00
acc66c217b ENH: add bitwise and/or ops 2019-01-31 12:35:34 +01:00
5ffd2e4fe1 CONFIG: add config hooks for gcc 6.5.0, gcc 7.4.0 2019-01-31 12:19:22 +01:00
70f7b7f632 COMP: Allwmake: build order 2019-01-31 10:13:15 +00:00
d685727469 GIT: fix previous dirty commit 2019-01-30 17:44:44 +01:00
70845a8838 ENH: code cleanup and improvement of ensight parts
- improved the selection mechanism to include using a bitSet
  cell selection (more efficient and convenient).

  Use templated implementation internally to remove the previous
  reliance on a NullObject.
2019-01-30 08:06:01 +01:00
8d12e080f6 ENH: new continuityError function object
Example usage:

    continuityError1
    {
        type        continuityError;
        libs        ("libfieldFunctionObjects.so");
        ...
        writeToFile yes;
        log         yes;
        phi         phi;
    }
2019-01-29 13:53:56 +00:00
94070f5ee7 STYLE: Renamed residuals FO -> solverInfo to reflect capabilities 2019-01-29 13:52:37 +00:00
216616638f BUG: fieldSelection - corrected selectionNames() 2019-01-29 14:38:36 +00:00
96bb43ae00 DOC: Updated cloudName -> cloud 2019-01-29 09:53:58 +00:00
86d462c0f5 ENH: add initial support for compile-time project paths (#1050)
Eg,
    #define FOAM_CONFIGURED_PROJECT_ETC "/usr/share/openfoam/etc"

This provides some easy to file patching locations, but is not yet
integrated in the build system at all.
2019-01-29 00:52:22 +01:00
a3f960e36f ENH: add 'default' as possible Switch state, but not as input/output
- in some circumstances we need to pass a bool value upwards to the
  caller and know if the true/false value was set based on real input
  or is a default value.

  Eg, in the object::read() we might normally have

     enabled_(dict.readIfPresent(key, true));

  but would lose information about why the value is true/false.

  We can change that by using

     enabled_(dict.readIfPresent<Switch>(key, Switch::DEFAULT_ON));

  After which we can use this information is testing.

      if
      (
          child.enabled().nonDefault()
        ? child.enabled()
        : parent.enabled()
      )
      { ... }

   And thus enable output if the parent requested it explicitly or by
   default and it has not been explicitly disabled in the child.

  No difference when testing as a bool and the text representation
  of DEFAULT_ON / DEFAULT_OFF will simply be "true" / "false".

ENH: add construction of Switch from dictionary (similar to Enum)
2019-01-28 23:18:21 +01:00
f34acb5679 COMP: add debug flag for repeating runTimePostProcessing rebuilds
- avoids removal of files and the dummy fallback
2019-01-28 19:06:07 +01:00
e05a62d329 COMP: Allwmake: work with -q 2019-01-28 11:56:57 +00:00
ea9fbafa92 GIT: chockedNozzle: rename to chokedNozzle 2019-01-28 11:56:24 +00:00
da29c4f0d0 Merge branch 'feature-snappyHexMesh-check' into 'develop'
Feature snappy hex mesh check

See merge request Development/OpenFOAM-plus!229
2019-01-28 08:57:46 +00:00
3b91160027 STYLE: centralize example dictionaries under etc/ (issue #1074)
- as well as being more convenient to find, this is necessary when the
  OpenFOAM installation is without sources or tutorials
2019-01-26 17:46:08 +01:00
dd23155d81 ENH: foamPackRelease tool for creating tar-files with submodule contents 2019-01-26 16:40:33 +01:00
b0fafd18fe STYLE: reorganize some legacy and less frequently used components
- older emacs tools into legacy
- old process tools

* Less frequently used scripts into bin/tools/

  - findEmptyMake
  - foamAllHC
  - foamUpdateCaseFileHeader

* Infrastructure file (only used by foamNewApp)

  - wmake/wmakeFilesAndOptions -> wmake/scripts/wmakeFilesAndOptions

* Merge wmakeRoot convenience as 'wmake -pwd'
* Remove obsolete wmakePrintBuild (superseded by wmakeBuildInfo)
* Remove unused mergeHistory file
2019-01-26 11:30:50 +01:00
a39ed60625 STYLE: limit foamCreateManpage to documented options
Previously silently accepted '-o' as being equivalent to '-output',
but the former could be misinterpreted meaning an output file (which
it is not) instead of an output directory.
2019-01-26 11:24:52 +01:00
ef6c2ef590 CONFIG: combine wmake rules for KNL architecture as a compile option
- instead of

      WM_COMPILER=GccKNL WM_COMPILE_OPTION=Opt

      -> linux64GccKNLDPInt32Opt

  now specify

      WM_COMPILER=Gcc  WM_COMPILE_OPTION=OptKNL

      -> linux64GccDPInt32OptKNL

This makes it easier (and more obvious) for adding different tweaks
without needing to generate too many files.
Eg,

    cd wmake/rules/linux64Gcc

    cp cOpt   cOptBdw
    cp c++Opt c++OptBdw

    edit these two files and then use WM_COMPILE_OPTION=OptBdw

CONFIG: provide some default c/c++ flags in General compiler rules

- can make is easier when deriving new compile options, and ensures
  that '-02' is enabled as an initial default.
2019-01-25 17:39:05 +01:00
3d98c3d593 ENH: add -root option for wmakeLnInclude (convenience)
- finds the correct root directory location before creating
  the lnInclude directory

  Eg,

  from within something like src/finiteVolume/fields/fvPatchFields/..

      wmakeLnInclude -update -root

  it backtracks to find the top-level directory with Make/
  and makes the lnInclude directory there:

    Using /home/mark/openfoam/OpenFOAM-plus/src/finiteVolume
        ln: /home/mark/openfoam/OpenFOAM-plus/src/finiteVolume/lnInclude
2019-01-25 16:20:58 +01:00
d4b495131f COMP: avoid autoPtr automatic cast conversion in more places
- Can result in inadvertent conversions where the user should really
  know or check if the pointer is valid prior to using.

- Still have several places to fix that are using the deprecated copy
  construct and copy assignment
2019-01-25 12:45:22 +01:00
fe6abf0f61 STYLE: remove NoConstructFromTmp conditional
- workaround for some old compilers many years ago, but no longer relevant
2019-01-25 12:22:38 +01:00
c45fad8362 ENH: add support for an output object registry for function objects 2019-01-25 12:15:46 +01:00
c4aebc3c8e ENH: avoid double write triggering in writeObjects functionObject
- in the previous version, a specification such as (U "U.*")
  would have selected the field name twice for writing
2019-01-25 12:04:23 +01:00
87523acad3 ENH: add ListOps find/found accepting a unary predicate (#1182)
- can also be used for other purposes.
  Eg,

      if (ListOps::found(list, matcher))
      {
         ...
      }

  vs.

      if (!findStrings(matcher, list).empty())
      {
         ...
      }
2019-01-25 11:45:03 +01:00
5ec44cd51f ENH: add range check on findIndices (#1182)
- add compile-time detection of deprecated findIndex() function

- replace occurrences of findIndex() with the equivalent container
  method
2019-01-25 10:47:34 +01:00
ad7f29466a ENH: added timeFunctionObject virtual class in inheritance hierarchy
- simply a functionObject with an additional Time reference, which is
  a combination frequently used by concrete functionObjects
2019-01-25 08:56:21 +01:00
8433ddee0e ENH: simplify coding in functionObjectList
- use for-range when iterating
- dictionary access/search methods
- autoPtr for memory management
2019-01-24 17:00:12 +01:00
f9eb16db2a STYLE: remove shadow variable name 2019-01-25 01:09:45 +01:00
c2debedd08 ENH: changeDictionary: allow removal of patches (!). Fixes #1179. 2019-01-24 12:40:46 +00:00
a0fe04976e STYLE: remove unused code from tutorials/Alltest 2019-01-24 11:36:59 +01:00
1910ebc0ad STYLE: used guarded read in runTimeControl 2019-01-24 10:03:33 +01:00
1c85c64984 STYLE: clarify input requirements for extrusion models (#1181)
- changed the sectorCoeffs keyword to 'point' from 'axisPt'
  for more similarity with other dictionaries.
  Continue to accept 'axisPt' for compatibility.
2019-01-24 09:40:12 +01:00
8b3a00efcc STYLE: fixup very old-style case headers 2019-01-24 08:44:41 +01:00
b2ae359c99 GIT: relocate ensight parts (from conversion -> fileFormats) 2019-01-24 00:53:29 +01:00
b967f2511e GIT: relocate surfMesh fields directory 2019-01-24 00:53:29 +01:00
3316055267 ENH: minor adjustments to Switch
- assignment operators return a value, for consistency with bool.

- partial revert of DEFAULT_TRUE, DEFAULT_FALSE, to reduce complexity.
2019-01-29 09:38:09 +01:00
73705d8290 BUG: decomposePar: incorrect indexing. Fixes #1189. 2019-01-30 11:48:35 +00:00
bfb72353eb ENH: nutUWallFunction: user defined tolerance on N-R. See #1172 2019-01-30 10:12:41 +00:00
e3b6195050 COMP: Allwmake: order 2019-01-30 08:42:17 +00:00
53e03b33df COMP: relocate vtk::surfaceWriter from meshTools -> fileFormats
- allows use in surfMesh library, which does not depend on meshTools
2019-01-24 00:19:22 +01:00
722ce91ae0 STYLE: combine if (log) ... Log statements 2019-01-23 22:55:50 +01:00
c5fd858c14 STYLE: avoid floating point comparison with uint8_t in DSMCCloud 2019-01-23 22:52:35 +01:00
5bdb6ddf9f STYLE: missing break 2019-01-23 22:48:46 +01:00
f9134a51a1 BUG: TRIReader point reading not order-independent 2019-01-23 22:47:14 +01:00
567ae55e8e STYLE: improve input check on gmshToFoam 2019-01-23 22:45:00 +01:00
856f45a910 Merge remote-tracking branch 'origin/master' into develop 2019-01-23 21:27:03 +01:00
812fa22dff Merge remote-tracking branch 'origin/develop' into develop 2019-01-23 21:22:10 +01:00
34ca554f15 Merge branch 'feature-run-time-control-triggers' into 'develop'
Feature run time control triggers

See merge request Development/OpenFOAM-plus!228
2019-01-23 14:59:18 +00:00
5878b6edc5 BUG: clearing objectRegistry can leak memory (#1180)
- now free anything owned by the registry when doing a clear.

- the myriad of other ways to remove items (and potentially leaking)
  have not yet been addressed:
  * set, erase, retain, filterKeys, filterValues, filterEntries
2019-01-23 15:52:43 +01:00
47d29b1cdd ENH: snappyHexMesh: user size limit. See #972. 2019-01-23 12:25:54 +00:00
f33061cc2a ENH: user-specified ref temperature for externalCoupled mixed T BC (#1072)
- Uses the user-specified value for the HTC calculation

  {
      type  externalCoupledTemperature;

      outputTemperture    fluid;  // or wall;
      htcRefTemperature   user;   // or cell (default)

      Tref    293.15;
  }
2019-01-23 13:24:01 +01:00
fafe1e564b BUG: nearWallFields: particles located outside mesh. See #947. 2019-01-23 12:11:30 +00:00
65e94fde66 DEFEATURE: remove wmakeScheduler (issue #1178)
- was for parallel compilation across multiple hosts, but less useful
  with modern CPUs with higher number of cores and/or hyperthreading.

  Fragile use and dependent on a 'lockfile' utility that is not often
  installed.
2019-01-23 12:43:41 +01:00
e6217dafd6 ENH: overset: various improvements to trackingInverseDistance. See #736. 2019-01-23 09:50:37 +00:00
1cda77e83d STYLE: duplicate assignment 2019-01-23 09:42:17 +01:00
a5cc0ffcad STYLE: use const reference for caught exceptions 2019-01-23 09:03:06 +01:00
a50c446853 STYLE: update notes about patch level on development branches
- previously stated that the patch level would be 0, but this would
  necessitate many revert commits after merging in the master branch.
  It is better to leave the meaning open.
2019-01-23 08:50:57 +01:00
4256da3291 GIT: fix merge/rebase artifact 2019-01-22 19:25:53 +01:00
8f8a4dc682 ENH: add foamDictionary -precision option (issue #1177)
- since foamDictionary doesn't use system/controlDict it will use the
  standard default precision. The '-precision' option allows adjusting
  that value.
2019-01-22 15:11:28 +01:00
789c5d00b0 ENH: use average value for ensight faceZone on proc boundary (#1176) 2019-01-22 12:49:50 +01:00
6b8f56efea ENH: support dictionary or list entry for sampled surfaces
- support for optional 'enabled' keyword to selectively disable a
  single sampled surface.

ENH: add sampledSurface::withSurfaceFields() method

- can be used to distinguish which samplers support surface fields.
  Currently this is only sampledPatch
2019-01-22 07:59:57 +01:00
c604adc0d1 ENH: runTimeControl - deactivate for -postProcess operation 2019-01-21 13:52:34 +00:00
27e3b1f9e6 STYLE: relocating files 2019-01-22 12:52:27 +00:00
452a281a00 ENH: fieldSelection - added checks for when fields are not found 2019-01-21 12:16:13 +00:00
9e202d141d TUT: Added example of field component specification 2019-01-21 12:01:11 +00:00
89438778aa STYLE: make meshedSurfRef copyable 2019-01-17 04:40:29 +01:00
03bd58ee3a CONFIG: update openmpi-1.10 minor 2019-01-21 13:40:06 +01:00
73e89f9332 ENH: add UPtrList method to squeeze out (remove) null pointers
- moves any nullptr to the end of the list where they can be
  eliminated in a second step with resize()
2019-01-21 09:51:02 +01:00
8e0bd4bf43 ENH: surfMesh constructor without AUTO_WRITE, as per polyMesh (#1147) 2019-01-18 18:36:09 +01:00
7724d5ccba GIT: relocate surZone files 2019-01-18 18:56:00 +01:00
ed94a2714d STYLE: use HashTable iterator 'val()' method instead of 'object()' 2019-01-18 16:26:50 +01:00
53efb24a8d STYLE: use ListOps::uniqueEqOp instead of local definition 2019-01-18 15:34:28 +01:00
1dd7362aed ENH: wmakeRoot for locating the root directory 2019-01-18 10:58:07 +01:00
3c81aec0e2 STYLE: fix doxygen-related typos 2019-01-18 09:32:36 +01:00
c0b11a5298 ENH: additional constructor for vtk::outputOptions 2019-01-18 09:03:07 +01:00
a8fa75246b COMP: Resolved compiler warning 2019-01-21 13:24:15 +00:00
6ccdc77468 BUG: trackingInverseDistance: fix trackingInverseDistance. Fixes #736. 2019-01-17 18:21:38 +00:00
56406493f6 ENH: pointToPoint: better checking. 2019-01-17 11:45:34 +00:00
268d6d9037 ENH: turbulence: better restart behaviour. Fixes #1172. 2019-01-17 11:42:15 +00:00
0abae185b7 STYLE: Updated output message 2019-01-15 15:05:56 +00:00
bc12ce2ac9 ENH: Updated fieldSelection dependent code 2019-01-21 11:56:53 +00:00
d11a5091a4 ENH: Extended equationInitialResidualCondition to use field components 2019-01-21 11:42:49 +00:00
2a386064e2 ENH: Extended fieldSelection to include field components 2019-01-21 11:35:36 +00:00
8fed88a2bf BUG: fvMesh: support for multi-region moving meshes. Fixes #1170. 2019-01-14 16:55:30 +00:00
7b64894853 CONFIG: drop config support for deprecated ensight reader library 2019-01-17 10:53:44 +01:00
361257d9f4 STYLE: enumerate Nastran PLOADs in NASCore 2019-01-17 03:10:31 +01:00
c44814c100 ENH: use globalIndex gather in patch merging 2019-01-17 00:38:18 +01:00
f498d09dbf ENH: add simplified gather methods for globalIndex with default communicator
- when combining lists in processor order this simplifies code and
  reduces memory overhead.

  Write this:
    ----
    labelList collected;

    const globalIndex sizing(input.size());
    sizing.gather(input, collected);
    ----

  OR

    ----
    labelList collected;
    globalIndex::gatherOp(input, collected);
    ----

  Instead of this:

    ----
    labelList collected;

    List<labelList> scratch(Pstream::nProcs());
    scratch[Pstream::myProcNo()] = input;
    Pstream::gatherList(scratch);

    if (Pstream::master())
    {
        collected = ListListOps::combine<labelList>
        (
            scratch,
            accessOp<labelList>()
        );
    }
    scratch.clear();
    ----
2019-01-16 21:33:06 +01:00
f19150cd32 STYLE: relocate identity() declaration to List.H (was in ListOps.H)
- remove unused and deprecated emptyList() casting function.

  This function is disllowed by many modern compilers and is no longer
  used within OpenFOAM - was deprecated 2018-07.
2019-01-16 21:00:22 +01:00
dfc838585c STYLE: expose List uniform() method as public 2019-01-16 10:15:30 +01:00
ac7a88034e STYLE: modernize code for concrete Fields (#1160)
- use forwarding tmp factory methods, auto types
2019-01-10 17:06:04 +01:00
7e48f2c6b3 STYLE: modernize code for GeometricFieldFunctions (#1160)
- use forwarding tmp factory methods, auto types
2019-01-10 17:06:04 +01:00
b002a232d6 STYLE: modernize code for FieldFieldFunctions (#1160)
- use forwarding tmp factory methods, auto types
2019-01-10 17:06:04 +01:00
6365560956 STYLE: modernize code for DimensionedFieldFunctions (#1160)
- use forwarding tmp factory methods, auto types
2019-01-10 17:06:04 +01:00
3019f30b12 STYLE: modernize code for FieldFunctions (#1160)
- use forwarding tmp factory methods, auto types
2019-01-10 17:06:04 +01:00
35fc2d1be2 STYLE: modernize code for tmp reuse functions (#1160)
- use forwarding tmp factory methods
2019-01-10 17:06:04 +01:00
fcf4c5fb22 ENH: wmake have_* script changes
- use local 'prefix' variable for easier override and more consistency
2019-01-10 20:14:46 +01:00
abf6d57ae8 ENH: include the selection volume in momentum output 2019-01-15 16:58:27 +01:00
52c337a667 ENH: add updateMesh(), movePoints() to volRegion 2019-01-15 18:32:35 +01:00
c6c30a0692 ENH: return const pointer instead of bool from PtrList::set(label)
- can still test as a bool or use to 'peek' at the content.
2019-01-15 16:37:15 +01:00
1ce8440cec ENH: downgrade error to warning in Alltest
- make adjustment of the DebugSwitches optional.
  Enable (the old behaviour) with -debug.
2019-01-15 10:37:50 +01:00
02ea8b1ce8 ENH: improve handling of etc/controlDict for Alltest
- only backup/modify controlDict if it contains a DebugSwitches entry

- add -no-debug option to suppress modification entirely
2019-01-15 09:36:15 +01:00
2a1d0f36ec ENH: new foamToVTK output option -processor-fields
- write values of processor boundaries only, for diagnostic purposes.

- parallel only, and non-legacy format only
2019-01-14 17:32:07 +01:00
9ccae1d37f ENH: support procIDs output for vtk::patchWriter 2019-01-14 16:56:55 +01:00
8a391b79b5 ENH: MinMax class for handling value ranges 2019-01-14 10:00:32 +01:00
a174f13f4b ENH: define accessOp<T> and emptyOp<T> in UList.H
- The dummy accessOp can be useful outside of ListListOps.
- New emptyOp for using as a filter predicate (for example).
2019-01-14 09:47:52 +01:00
57cfe2b5ef BUG: incorrect return type for (GeometricFields) unary reduction 2019-01-11 00:14:50 +01:00
34386291cb ENH: make List uniform() method consistent with Field
- this protected method was previously used directly for the list
  output and had the check for 2 or more elements in it. Now simply
  test the List content and handle the output preference separately.
2019-01-11 12:49:08 +01:00
6c419174e1 STYLE: writeEntry instead of writeKeyword + END 2019-01-11 11:03:36 +01:00
dcb6969361 BUG: missing space separator in chemkinToFoam file output
- generates dictionary-like content, but without a separator between
  keyword and list content.
2019-01-11 11:03:36 +01:00
cb5617e070 STYLE: fix some doxygen markup
- missing verbatim/endverbatim markers, missing "Foam::" prefix, typos
2019-01-11 08:22:02 +01:00
030877f8af ENH: add '-help-notes' as an advanced option
- emits the notes description only
2019-01-10 15:21:24 +01:00
00cbf5564b STYLE: add deprecated message to NamedEnum constructor
- this class really should not be used at all anymore.
  Add a message so people recognize can find any occurrences.
2019-01-10 14:49:18 +01:00
8071020518 ENH: make List output compile-time configurable (#1160)
- introduced a ListPolicy details to make the transition between
  a short list (space separated) and a long list (newline separated)
  more configurable.

  We suppress line breaks for commonly used types that often have
  short content: (word, wordRes, keyType).
2019-01-10 14:24:11 +01:00
bef508dedc ENH: make use of FOAM_API for environment as well (issue #1158)
- was WM_PROJECT_API in the environment and FOAM_API in dictionaries.

  Make these both consistently FOAM_API.
  This is a non-breaking change, since the value of WM_PROJECT_API
  (added in 1812) and/or FOAM_API is purely informative.
  For the current correct values, always use

    * foamEtcFile -show-api
    * wmakeBuildInfo -show-api
2019-01-10 12:21:19 +01:00
b6d87f56cd STYLE: foamDictionary does not need to set FOAM_API
- already done in argList
2019-01-10 12:00:11 +01:00
8609a0bb93 Merge remote-tracking branch 'origin/develop' into develop 2019-01-10 11:59:03 +01:00
7e3202f438 ENH: provide config setup for mesa with llvm (issue #1164)
- If using a non-clang compiler suite (gcc, intel, etc) the additional
  lbraries required for mesa with llvm pipelines may not be found.

  Provide a mesa_llvm configuration with in the 'vtk' config file.
  Can use the usual types of settings

     * mesa_llvm=llvm-4.0.1
     * mesa_llvm=none
     * mesa_llvm=system
2019-01-10 11:50:09 +01:00
3d6d6df566 BUG: incorrect dimensions for surfaceTensionForce
- accidentally introduced by 27c62303ad

STYLE: trial use of brace-initialized dimensionSet

- instead of writing

      dimensionedScalar(dimensionSet(1, -2, -2, 0, 0, 0), Zero);

  we can use C++11 brace-initialization to bundle the parameters
  for the dimensionSet construction and simply write

      dimensionedScalar({1, -2, -2, 0, 0, 0}, Zero);

  Note the following is incorrect syntax (extra brackets):

      dimensionedScalar(({1, -2, -2, 0, 0, 0}), Zero);
2019-01-10 10:17:36 +01:00
5c226864a8 ENH: add clip() method to GeometricField 2019-01-10 09:56:12 +01:00
9a7029004c ENH: minMax, minMaxMag as functions and field functions
- Global functions are unary or combining binary functions, which are
  defined in MinMax.H (MinMaxOps.H).

  There are also global reduction functions (gMinMax, gMinMaxMag)
  as well as supporting 'Op' classes:

  - minMaxOp, minMaxEqOp, minMaxMagOp, minMaxMagEqOp

  Since the result of the functions represents a content reduction
  into a single MinMax<T> value (a min/max pair), field operations
  returning a field simply do not make sense.

- Implemented for lists, fields, field-fields, DimensionedField,
  GeometricField (parallel reducing, with boundaries).

- Since the minMax evaluates during its operation, this makes it more
  efficient for cases where both min/max values are required since it
  avoids looping twice through the data.

  * Changed GeometricField writeMinMax accordingly.

ENH: clip as field function

- clipping provides a more efficient, single-pass operation to apply
  lower/upper limits on single or multiple values.

  Examples,

    scalarMinMax limiter(0, 1);

    limiter.clip(value)

       -> returns a const-ref to the value if within the range, or else
          returns the appropriate lower/upper limit

    limiter.inplaceClip(value)

       -> Modifies the value if necessary to be within lower/upper limit

  Function calls

    clip(value, limiter)

       -> returns a copy after applying lower/upper limit

    clip(values, limiter)

       -> returns a tmp<Field> of clipped values
2019-01-10 09:43:23 +01:00
000f704e08 ENH: FixedList empty(), size(), max_size() now constexpr static (#1160)
- this allows their use as templates parameters
2019-01-10 09:35:41 +01:00
c52d70cce3 STYLE: consistent ordering of is_same parameters 2019-01-10 07:55:53 +01:00
7720b59066 ENH: add dimensionSet provisioning for a dimensioned clip() method
- use file-local function to reduce some code clutter
2019-01-09 23:44:17 +01:00
d0bb3670a7 BUG: incorrect return type for dimensioned unary reduction 2019-01-09 21:01:09 +01:00
b3b404b206 BUG: snappyHexMesh: clear out old data. Fixes #1165. 2019-01-09 14:26:59 +00:00
888b70aaeb Merge branch 'feature-merge_foundation' into 'develop'
Feature merge OpenFOAM.org

See merge request Development/OpenFOAM-plus!226
2019-01-10 10:10:06 +00:00
e6f8dfecec Feature merge OpenFOAM.org 2019-01-10 10:10:06 +00:00
0027ba3226 STYLE: remove unused GeometricField method declarations 2019-01-09 13:43:19 +01:00
27c62303ad ENH: for-range, forAllIters() ... in applications/solvers
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
07a6e9d83d STYLE: use cbrt() instead of pow(..,1.0/3.0) in a few more places 2019-01-09 12:22:07 +01:00
95d7586b48 SUBMODULES: cfmesh updated to use areaNormal/unitNormal 2019-01-09 12:17:46 +01:00
c350a127cd STYLE: add compile-time deprecated message for face/triangle normal()
- in 1812 propagated through the distinction between areaNormal and
  unitNormal (issue #885).

  In older versions, the normal() always meant the area-normal for
  certain of these primitive.

  However, the .org version changed this to now return the unit-normal
  instead, but with the same method name. Thus add the deprecated
  message to avoid future inadvertent uses of normal() without being
  certain which one is being meant.
2019-01-09 10:32:25 +01:00
2067014079 ENH: minor consistency improvements for bounding box
- a valid() method (same as !empty() call) for consistency with other
  containers and data types

- a centre() method (same as midpoint() method) for consistency with
  other OpenFOAM geometric entities
2019-01-09 09:32:23 +01:00
a0a7da2edd ENH: Pair, Tuple2 improvements (#1160)
- move constructors, construct from std::pair
- input/output of std::pair

Makes it easier when using data structures for other codes.
2019-01-08 22:16:41 +01:00
08dc8d0e39 BUG: Tuple2 construct null with uninitialized value
Had this:

    Tuple2() {}

Instead of:

    Tuple2() : f_(), s_() {}

which is the same as

    Tuple2() = default;

This meant that Tuple2<scalar, scalar>() was not being zero-initialized
2019-01-08 21:58:08 +01:00
26d0d48fb5 STYLE: doxygen comments for min/max functions 2019-01-09 09:08:20 +01:00
907dd6d49f STYLE: consistent indentation and template parameters for FixedList 2019-01-08 21:50:12 +01:00
14a404170b ENH: for-range, forAllIters() ... in applications/utilities
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
1458b4f689 ENH: remove uniform compact output for FixedList (#1160)
- a FixedList is generally small so there is little advantage
  in a compact output form for uniform content.  Eg, "2{-1}"

  By avoiding this compact form we obtain output that is also
  consistent with Tuple2, for example.

- make FixedList construct from Istream explicit
2019-01-08 13:03:24 +01:00
8eefc7b347 ENH: partial reorganization of HashTable internals (#1160)
- relocate the pair_entry (HashTable) and unary_entry (HashSet) into
  the Detail namespace and add output handling.

  The output handling at this level removes the reliance on zero::null
  output (HashSet) and allows direct support of pointers.
  This means that the following now works

      HashTable<T*> tbl;
      os << tbl;

  It also means that we don't need to overload operator<< for
  HashPtrTable anymore.

- avoid delete/new when calling HashSet::set(). If the entry already
  exists there is no reason to remove it and add another one with the
  same content.

STYLE: HashTable iterators now have a val() method

- identical to the object() iterator method, but shorter to type.
2019-01-08 12:25:30 +01:00
9c74abb7d2 ENH: zero::null::dummy, when dereferencing and dummy assignment are needed 2019-01-08 10:51:24 +01:00
72eb55033a BUG: had readOpt() instead of writeOpt() in polyTopoChange.C (#1147) 2019-01-08 09:28:54 +01:00
000239a42e SUBMODULES: update for change in polyMesh constructor 2019-01-07 23:26:51 +01:00
74d9dc3f50 BUG: polyMesh constructor AUTO_WRITE flag, ignored readOpt (#1147)
- fixed some more places with an explicit AUTO_WRITE.

BUG: revert handling of the readOption. It should not be NO_READ.

  In cases where the user a IOobject without specifying read/write, it
  defaults to NO_READ anyhow. However, the move constructor can also
  be called with empty lists and a read option. This has the same
  signature, but obviously will not work with NO_READ.
2019-01-07 22:23:19 +01:00
620f5274d0 Merge remote-tracking branch 'origin/develop' into develop 2019-01-07 19:13:18 +01:00
c7350f3dd7 Merge remote-tracking branch 'origin/master' into develop 2019-01-07 19:13:11 +01:00
22b659d7c0 ENH: export FOAM_API in dictionary (issue #1158)
- uses the value of foamVersion::api, which should be reliable.
2019-01-07 19:04:50 +01:00
7339d6427e ENH: setToFaceZone: improved messages 2019-01-07 17:53:26 +00:00
a6a46d23b8 BUG: polyMesh: set AUTO_WRITE flag. See #1147. 2019-01-07 17:51:47 +00:00
e7fde1dbe0 STYLE: use std::initializer_list instead of const char*[] 2019-01-07 12:49:37 +01:00
3a374bf315 ENH: polyMesh: do not switch on auto-write. Fixes #1147. 2019-01-07 11:08:58 +00:00
573a313f46 STYLE: deprecate hashedWordList contains() method
- identical to found(), which should be used for more consistency.
  The contains() is a remnant from when hashedWordList was generalized
  from a speciesTable (OCT 2010)
2019-01-07 09:51:45 +01:00
0fa923d3d5 CONFIG: adjust intel-mpi paths (issue #1153)
- and support setting cmake_version within the paraview config files
2019-01-06 15:16:10 +01:00
d76dd0e1fe CONFIG: remove bash dependency from wmakeBuildInfo (fixes #1152)
- looks slightly messier without associative arrays, but improves
  portability. Should now also work with dash.

STYLE: support wmakeBuildInfo -cmp and -check options as equivalent
2019-01-06 10:50:37 +01:00
25575df60e ENH: new ReactingHeterogeneousCloud
- number of particles per parcel info to kinematic cloud

- added turbulent dispersion to basicHeterogeneousReactingParcel

- corrected dhsTrans in MUCSheterogeneousRate::calculate

- added cloud macro system to reactingParcelFoam and fixed calculation
  of average particles per parcel

- added progress variable dimension to reacting model (nF)

- added ReactingHeterogeneous tutorial
2019-01-04 17:08:53 -08:00
86e1933057 ENH: iterator method good() as a synonym for testing validity
- applies to HashTable and Linked-Lists

- deprecate the Linked-List iterator found() method, since this makes
  less sense (linguistically)
2019-01-04 14:07:01 +01:00
0dbd05daa4 STYLE: minor adjustment of test case 2019-01-03 19:16:13 +01:00
e596377179 STYLE: avoid flush when dictionary {} closing (issue #1145)
- a holdover from introducing the endBlock() method
2019-01-03 19:12:12 +01:00
c143c3a32c STYLE: columnFvMesh: typo 2019-01-03 14:37:37 +00:00
6a448016aa ENH: additional read guards for dimensionedType. input consistency (#762, #1148)
- provide a lookupOrDefault constructor form, since this is a fairly
  commonly used requirement and simplifies the calling sequence.

  Before

      dimensionedScalar rhoMax
      (
          dimensionedScalar::lookupOrDefault
          (
              "rhoMax",
              pimple.dict(),
              dimDensity,
              GREAT
          )
     );

  After

      dimensionedScalar rhoMax("rhoMax", dimDensity, GREAT, pimple.dict());

- read, readIfPresent methods with alternative lookup names.

- Mark the Istream related constructors with compile-time deprecated
  warnings.

BUG: read, readIfPresent methods not handling optional dimensions (#1148)
2019-01-03 13:34:11 +01:00
af310075a0 ENH: handle dimensions in dimensioned<Type>::lookupOrAddToDict (#1116) 2019-01-03 01:30:27 +01:00
488150cfb2 ENH: add FOAM_DEPRECATED macros 2019-01-03 00:36:30 +01:00
505b4b9c1c ENH: add guarded lookup for dimensionedSet
STYLE: use standard dimensionedSets
2019-01-02 16:53:41 +01:00
2ce944a748 STYLE: documentation/comment typo 2019-01-02 16:16:45 +01:00
e2bc0b55b9 COMP: use std::move() explicitly to avoid copying 2019-01-02 15:56:54 +01:00
f67f36c63a COMP: avoid some static analysis warnings 2019-01-02 13:49:39 +01:00
7bf25dbda1 ENH: add 'Scan' WM_COMPILE_OPTION (clang only)
- backend settings for scan-build
2019-01-02 11:49:49 +01:00
4ecdb2512d CONFIG: add llvm-7.0.1
STYLE: generalize rule for obtaining compiler stem
2019-01-02 11:08:21 +01:00
c13199d3ce STYLE: make chemistryReader private inheritance (issue #1144)
- The chemistryReader is only used during construction of reactingMixture
  and thus does not require public visibility.
2019-01-02 14:44:21 +01:00
10da897275 ENH: snappyHexMesh: limit printing in dry-run. See #972. 2018-12-24 08:55:42 +00:00
7f9ba23be1 STYLE: stage various foamPack* script as 'legacy' (#914)
- this scripts are largely pre-git era and not used much anymore.
  Relocate to a legacy/ sub-directory while we see if there are
  actually any still being used.
2018-12-21 18:52:17 +01:00
855faae858 STYLE: surfaceMeshTriangulate renamed to surfaceMeshExtract
- the utility had automatic triangulation removed some time ago, but
  never changed its name.

- catch old uses with a surfaceMeshTriangulate deprecated script
2018-12-21 18:37:39 +01:00
2c70dfc51d ENH: add pdf option to foamCreateManpage 2018-12-21 16:06:19 +01:00
603dd28fc8 GIT: update submodule refs after tagging and re-merging 2018-12-21 16:04:17 +01:00
3560884abe ENH: allow direct testing of HashTable iterator as a bool
- can be used as a more natural test on the iterator.
  For example, with

     HashTable<..> table;
     auto iter = table.find(...);

  Following are now all equivalent:

    1.  if (iter != table.end()) ...
    2.  if (iter.found()) ...
    3.  if (iter) ...
2018-12-20 18:03:16 +01:00
08335beb6f ENH: add get() accessor to tmp classes
- similar to autoPtr and unique_ptr. Returns the pointer value without
  any checks. This provides a simple way for use to use either
  an autoPtr or a tmp for local memory management without accidentally
  stealing the pointer.

  Eg,

     volVectorField* ptr;
     tmp<volVectorField> tempField;

     if (someField.valid())
     {
         ptr = someField.get();
     }
     else
     {
         tempField.reset(new volVectorField(....));
         ptr = tmpField.get();
     }

     const volVectorField& withField = *ptr;

STYLE: make more tmp methods noexcept
2018-12-20 17:29:51 +01:00
17419209a7 STYLE: return a pointer instead of bool for isA<>
- in some cases this means you could avoid an isA<> followed by
  second dynamicCast<>
2018-12-20 18:02:16 +01:00
2444e0f964 Merge branch 'release-v1812' 2018-12-20 16:12:59 +00:00
9231534efa STYLE: Updating version to v1812 2018-12-19 18:07:52 +00:00
756e00ac56 GIT: Removed file 2018-12-20 16:10:42 +00:00
7882f952f3 TUT: Added missing files 2018-12-20 15:15:30 +00:00
df58bb96a8 BUG: swirlFanVelocity: preserve pressure name. Fixes #1138. 2018-12-20 14:33:49 +00:00
e22606756b BUG: meanVelictyForce: missing correctBoundaryConditions. Fixes #1136. 2018-12-20 09:23:10 +00:00
c03c6bdea2 TUT: Corrections 2018-12-20 09:05:02 +00:00
9f97084605 STYLE: fvSolution: include unused file 2018-12-19 16:31:13 +00:00
b476b56afb BUG: meanVelictyForce: missing correctBoundaryConditions 2018-12-19 16:29:10 +00:00
4910dbc995 STYLE: particle: improved warning message 2018-12-19 11:31:44 +00:00
7ee1ec92ec STYLE: add usage information for subsetMesh argument 2018-12-19 15:15:28 +01:00
e8f25b1385 BUG: foamToVTK, vtkWrite stopped by processorCyclic (closes #1135)
- they had an isType<> instead of isA<>() check
2018-12-19 13:56:20 +01:00
cb152896b0 BUG: snappyHexMeshDict: illegal slip patch type 2018-12-19 09:56:33 +00:00
97fc516563 ENH: Added new periodicHill test case 2018-12-19 09:46:26 +00:00
79f9c3bb7d TUT: Added new bump2D case 2018-12-18 19:08:03 +00:00
485523eab5 ENH: Added new columnAverage function object
Averages columns of cells for layered meshes.

    For each patch face, calculates the average value of all cells attached in
    the patch face normal direction, and then pushes the average value back
    to all cells in the column.

    Useful for channel-like cases where we want to average fields in the
    spanwise direction.

    Example of function object specification:
    columnAverage1
    {
        type        columnAverage;
        libs        ("libfieldFunctionObjects.so");
        ...
        patches     (front side);
        fields      (U p);
    }

    Where the entries comprise:
    \table
        Property     | Description               | Required    | Default value
        type         | type name: fieldMinMax    | yes         |
        patches      | list of patches to collapse onto | yes  |
        fields       | list of fields to process | yes         |
    \endtable
2018-12-18 10:35:34 +00:00
e145034a6d STYLE: Code clean-up 2018-12-17 12:02:55 +00:00
4c14bc66ef STYLE: foamVersion alias should not change directory (closes #1131) 2018-12-19 07:54:35 +01:00
b0eeea8365 STYLE: fix doc for patchTo.. topo sources 2018-12-18 16:28:27 +01:00
7ee9c3b8c0 TUT: add vtkWrite to movingCone 2018-12-17 18:16:40 +01:00
a85fb097ef ENH: Allowing negative pressure drop in fan BC (EP 815) 2018-12-17 08:34:10 -08:00
1687a45419 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-12-17 08:21:04 -08:00
66ca352f5a ENH: Improvements to boatAndPropeller case 2018-12-17 08:20:31 -08:00
3f4289c238 COMP: scalarRanges construct null for gcc-48 2018-12-17 13:36:50 +01:00
919fa3a541 STYLE: ensure help for -dict matches its intended usage 2018-12-17 10:39:59 +01:00
146bfe2b56 STYLE: add comment about INTELMPI env variables 2018-12-17 10:11:12 +01:00
54ac451bf5 ENH: add -dict option for mirrorMesh 2018-12-17 09:51:29 +01:00
c4ec41218b ENH: allow "none" as time range specification (issue #1128)
- this corresponds to 'never match', which may be useful in combination
  with -constant selection.

  Eg,

      surfaceMeshTriangulate -constant -time none

  selects only the constant entry and suppresses any automatic time loop

STYLE: adjust help for the standard -times option

- indicate that times can be comma or space separated, since this is
  otherwise not apparent. Don't mention semicolon separators in the help
  since that just adds even more clutter.
2018-12-17 01:25:07 +01:00
c594d0ae91 STYLE: carp() method is const 2018-12-16 22:07:56 +01:00
f028c98025 TUT: renamed elipsekkLOmega to ellipsekkLOmega 2018-12-16 21:57:01 +01:00
7c556ec275 ENH: support text shadow, italic, opacity in runTimePostProcessing 2018-12-16 21:50:27 +01:00
c3507f74f2 ENH: improve file reader support for runTimePostProcessing (#1091)
- support .vtp format for geometry, surface, line, cloud.

- use native reader for handling vtk, vtp, obj, stl surface files.
  For other formats, use the MeshedSurface (the surfMesh lib) to
  handle reading and Foam::vtk::Tools::Patch to handle the
  conversion to vtkPolyData. This combination is more memory efficient.

- update tutorial case to include vtp surface geometry
2018-12-16 19:14:22 +01:00
b6983e6af5 STYLE: adjust comments and adjust surfaceMeshTriangulate code
- note that it does not actually triangulate unless necessary, should
  probably receive a new name.

- use newer constructs for handling processor/non-processor patch
  selection etc.
2018-12-16 16:16:00 +01:00
24c8f5a597 ENH: arbitrary face types for vtk::Tools::Patch::faces()
- the patch could use face or triFace (labelledTriFace)

- avoid trigger patch faceNormals unnecessarily
2018-12-16 13:52:16 +01:00
dc8179f5e0 ENH: add some storage queries to PrimitivePatch
- for quantities such as face area/normals etc, it can be useful to
  calculate directly and avoid the overhead of caching all the values.

STYLE: comments, use HashTable lookup() method in whichPoint()
2018-12-16 14:21:45 +01:00
d1caaa0529 ENH: build dummy runTimePostProcessing if VTK/ParaView are not available
- this allows more use of the runTimePostProcessing functionObject
  that will fail more gracefully if the proper version could not be
  built.

  The dummy functionObject simply emits a message that it is not available.
2018-12-15 18:08:51 +01:00
dd2c7c4894 ENH: add wmakeVersioned with tracking of ThirdParty dependencies
- primarily for handling cmake replacement libraries
2018-12-15 15:49:48 +01:00
9076f5b21b ENH: provide argList::envGlobalPath() static method
- this is identical to either of these solutions:

     * getEnv("FOAM_CASE")
     * stringOps::expand("<case>")

  but with a closer resemblance to argList or Time globalPath(),
  which makes the intent clearer.
  Avoids using raw strings in the caller, which improves compile-time checks.

  Used in situations where a class has no derivation path or other
  access to a time registry or command args.
2018-12-15 14:39:12 +01:00
455c8ef540 ENH: simplify use of case-relative paths
- provide relativePath() for argList and for Time.
  These are relative to the case globalPath().
  Eg,

     Info<< "output: " << runTime.relativePath(outputFile) << nl;
2018-12-15 13:26:55 +01:00
ce6cd338a8 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-12-14 16:41:07 -08:00
68e6cd79d7 ENH: Setting up boatPropeller tutorial 2018-12-14 16:39:40 -08:00
10132305e4 TUT: provisional runTimePostProcessing test with cutting planes (#1091) 2018-12-14 15:25:52 +01:00
2f9c511be5 ENH: make "file" property in functionObjects a relative path (issue #1125)
- partial solution for issue #1091

  This generates file properties that are case-relative,
  Eg,

      plane0
      {
          p
          {
              file "<case>/postProcessing/plane0/1/p_plane0.vtk";
          }
          U
          {
              file "<case>/postProcessing/plane0/1/U_plane0.vtk";
          }
      }

   This allows the case to be moved elsewhere and still find its files.

   This functionality was previously added for vtkCloud, but now also
   applies to streamLine, sampledSets and sampledSurfaces
2018-12-14 18:03:12 +01:00
2617c326d8 ENH: extend fileName::relative() method
- optionally replace stripped parent directory with the \<case\> shortcut

    "/this/path/and/subdirs/name"

    relative("/this/path")        -> "and/subdirs/name"
    relative("/this/path", true)  -> "\<case\>/and/subdirs/name"
2018-12-14 17:44:07 +01:00
db8ba80ae4 TUT: update old keywords 2018-12-14 11:20:31 +01:00
4696a96fec STYLE: option consistency for acousticDampingSource
- accept origin or centre, as per other geometric entities
2018-12-14 11:42:00 +01:00
e761570986 ENH: reduce number of warnings emitted by hierarchGeomDecomp
- it is sufficient to provide the total number of times that findBinary()
  failed instead of flooding the screen with messages

  Full verbose warnings still emitted when debugging is on.
2018-12-13 18:26:30 +01:00
d64a738d0f CONFIG: bump API version number to 1812 to register recent changes 2018-12-13 16:28:57 +00:00
e17f6073b9 CONFIG: bump API version number to 1812 to register recent changes 2018-12-13 15:23:04 +00:00
1d85fecf4d ENH: use Zero when zero-initializing types
- makes the intent clearer and avoids the need for additional
  constructor casting. Eg,

      labelList(10, Zero)    vs.  labelList(10, 0)
      scalarField(10, Zero)  vs.  scalarField(10, scalar(0))
      vectorField(10, Zero)  vs.  vectorField(10, vector::zero)
2018-12-11 23:50:15 +01:00
6e8cf684d1 STYLE: reduce else/if levels for return 2018-12-21 09:38:16 +01:00
a9f5f181c6 STYLE: remove extra '(' in usage information, doubled ';;' 2018-12-21 09:22:06 +01:00
a403e72277 TUT: tidying of periodicHill 2018-12-20 10:26:18 +01:00
2a51537d78 STYLE: reset WM_PROJECT_VERSION for the develop branch 2018-12-20 18:06:41 +00:00
69f257adc7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-12-11 13:55:14 -08:00
aaa041b3c7 Fixing reconstruction of lagragian fields for hopper 2018-12-11 13:53:54 -08:00
08b70bb222 STYLE: remove unused variable (vtm writer) 2018-12-11 16:40:14 +01:00
98158f5409 TUT: add End marker for tutorials 2018-12-11 16:25:28 +01:00
a1cc72f8ac SUBMODULES: update for -help usage 2018-12-11 16:26:45 +01:00
68ec561df8 STYLE: add usage notes to more utilities and solvers 2018-12-11 15:25:27 +01:00
ee5199cc65 STYLE: adjust manpage layouts 2018-12-10 22:40:53 +01:00
e7400ef271 TUT: split off an Allrun.pre for windAroundBuildings 2018-12-10 21:05:27 +01:00
27a705bb3f Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-12-10 12:04:31 -08:00
51fae75b8e STY: Deleting unused variable 2018-12-10 12:04:00 -08:00
199c857d65 ENH: check if MPI buffer really was attached before deattaching
- can occur if MPI has be initialized for communication but OpenFOAM
  itself is operating in serial mode and thus did not attach any
  MPI buffers.
2018-12-10 17:39:20 +01:00
f0fc2a2671 BUG: paraview target was tagged with ParaVIEW_MAJOR instead of PARAVIEW_API
- regression was introduced by 628b2445fc
2018-12-10 16:43:32 +01:00
fc13c20cc8 ENH: sampledPatch: access to patchIDs. 2018-12-10 15:21:48 +00:00
9103b199b9 TUT: remove unused default decomposition coeffs settings 2018-12-13 14:04:50 +01:00
2db0db3006 BUG: stringOps etc expansion fails for directories (issue #1121)
- now use findEtcEntry() instead to handle file or directory.

  Added findEtcEntries(), which provides provides a common code basis
  for findEtcDirs(), findEtcFiles() ...
2018-12-13 12:48:31 +01:00
3d95f56589 ENH: add optional checkGzip parameter to fileName::type(..) method
- this simplifies use of a unified test for directory or file.

      fileName::Type what = myfile.type(true, true);
      if (what == FILE) ...
      if (what == DIRECTORY) ...

- Use distinct bit values for fileName::Type, for possible use in
  the future.

- related to issue #1121, since we need a more flexible way of
  expanding file or directory.

  An alternative would be to add checkGzip to Foam::exists() and
  Foam::type() functions, but that would make the code there more
  confusing and in the fileHandler classes.
2018-12-13 09:40:54 +01:00
38de85cdf8 TUT: minor tutorial adjustments 2018-12-13 08:41:39 +01:00
78fd05051b STYLE: juggle some advanced/non-advanced options (foamToVTK, foamToEnsight) 2018-12-13 02:39:41 +01:00
5d9e278e92 ENH: consolidate handling of mandatory/optional command arguments
- for some special cases we wish to mark command-line arguments as
  being optional, in order to do our own treatment. For example,
  when an arbitrary number of arguments should be allowed.

  Now tag this situation with argList::noMandatoryArgs().
  The argList::argsMandatory() query can then be used in any further
  logic, including the standard default argument checking.

- with the new default check, can consolidate the special-purpose

      "setRootCaseNonMandatoryArgs.H"

  into the regular

      "setRootCase.H"

- revert to a simple "setRootCase.H" and move all the listing related
  bits to a "setRootCaseLists.H" file. This leaves the information
  available for solvers, or whoever else wishes, without being
  introduced everywhere.

- add include guards and scoping to the listing files and rename to
  something less generic.

     listOptions.H -> setRootCaseListOptions.H
     listOutput.H  -> setRootCaseListOutput.H
2018-12-13 01:45:09 +01:00
00ec58a141 ENH: extend flexibility of abort function object (#1119)
- Now also responds to the contents of the trigger file,
  processing action= contents similar to used with external coupling.

  Previously it only handled an action that was defined in the
  dictionary. With this update, the user can chose a diferent action
  simply by echoing the appropriate action string into the trigger
  file.
2018-12-12 15:39:49 +01:00
781246c26f TUT: consistent controlDict application value (#1120) 2018-12-12 14:26:02 +01:00
172c36c29a ENH: support search modes for etcFiles()
- similar to the foamEtcFile script -mode=... option, the specific
  search location (user/group/other) can now also specified for
  string expansions and as a numerical value for etcFile()

  For example, if searching for group or other (project) controlDict,
  but not wishing to see the user controlDict:

    1.  foamEtcFile -mode=go controlDict

    2.  fileName dictFile("<etc:go>/controlDict");
        dictFile.expand();

    3.  etcFile(controlDict, false, 0077);

  The default behaviour for searching all contexts is unchanged.

    1.  foamEtcFile controlDict

    2.  fileName dictFile("<etc>/controlDict");
        dictFile.expand();

    3.  etcFile(controlDict);
2018-12-12 13:45:32 +01:00
67140f6b07 STYLE: update documentation about central controlDict 2018-12-12 13:38:14 +01:00
29a5793b5b STYLE: argList::opt method instead of the longer argList::lookupOrDefault
- also replaced a few instances of readIfPresent with opt<> for
  constant values.
2018-12-12 12:10:39 +01:00
f38190213c ENH: support usage descriptions for command arguments 2018-12-12 11:58:56 +01:00
c3b6c787a7 BUG: sampledSurface::originalIds not virtual 2018-12-12 10:52:11 +01:00
a66e9c7468 ENH: adjust completion parser
- restrict to text between "^[Oo]ptions:" and "-help-full" to avoid
  potential issues when more text is introduced in the usage output.
2018-12-12 03:07:14 +01:00
d29388f1c5 STYLE: use foamVersion::api instead of OPENFOAM define
- for referencing the etc locations, or reporting the current API
  value.
2018-12-12 03:02:49 +01:00
99b85e3b3d COMP: disambiguate for 64-bit label 2018-12-11 19:36:23 +01:00
a93a1abec7 COMP: define Scotch and Zoltan include dirs before mpi directories
- the local third-party headers are to be searched before any MPI
  include directories. This stops the situation where an mpi-specific
  version of ptscotch.h is installed into the MPI directories.

  This "system" version may well have a different SCOTCH_Num size
  (32 bit vs 64 bit) from the third-party library etc.
2018-12-11 18:50:19 +01:00
170baf4d3b STYLE: use '&&', '||' instead of '-a' and '-o' for some shell commands 2018-12-10 15:13:15 +01:00
51a3f4e6e4 ENH: make foamToVTK faceZone writing explicit (closes #1117)
- change previous default (convert all faceZones unless -noFaceZones
  specified) with the default behaviour to only convert face zones on
  request.

- uses the '-faceZones' option as per foamToEnsight
2018-12-10 14:35:44 +01:00
5415991e79 ENH: argList::getList with optional parameter
- this allows it to work like readListIfPresent() but with a list as
  the return value, which can be useful for a const context.
2018-12-10 14:09:53 +01:00
a38b459ab0 CONFIG: use project api instead of version when finding config files 2018-12-10 14:04:01 +01:00
ba7b032687 STYLE: adjust comments in config setup 2018-12-10 13:15:31 +01:00
9f45518378 ENH: Added invertAlpha option to the setAlphaField utility. Fixes #1113 2018-12-10 11:33:57 +00:00
ef6eb77712 ENH: use vtp output for AMIWeights function object
- allows inclusion of the cyclicACMIPolyPatch mask in the same file
2018-12-10 11:26:11 +01:00
b6cb62a53f ENH: handle odd c-shell sourcing patterns
- the result of lsof, which is used in the etc/cshrc to locate the
  installation, may contain trailing information about host and mount
  point.

  There is also a moderate concern with people sourcing the
  file indirectly with their own version in the same directory.
  For example, a 'etc/cshrc-site' that actually sources 'etc/cshrc'.
  This leads to multiple matches in the lsof output, so we only take
  the first one, stop there and hope they didn't do something even
  trickier.
2018-12-10 10:34:11 +01:00
38c56c5c6b BUG: command-args overload ignored for etc/config.csh/paraview
- now needs local 'set' instead of 'setenv'

- fixed inconsistency in edit of ParaView_VERSION for csh version
2018-12-10 09:50:46 +01:00
69006ef0a7 ENH: adjust wmakeBuildInfo to work with older git versions as well 2018-12-10 09:49:45 +01:00
a44e59502f STYLE: additional information at end of top-level Allwmake
- report api, patch as well as the number of entries in the
  FOAM_APPBIN, FOAM_LIBBIN for a quick visual sanity check
2018-12-09 23:27:47 +01:00
438cdb083e Merge branch 'feature-AMIWeights-FO' into 'develop'
ENH: Added new AMIWeights function object

See merge request Development/OpenFOAM-plus!225
2018-12-10 09:55:03 +00:00
689db16064 ENH: add explicit doubleVector, doubleTensor typedefs
- the counterpart to floatVector, doubleTensor, which can be useful
  for connecting to programs that always expect double precision for
  the arguments, when using single-precision for OpenFOAM itself.

  Eg,
     doubleVector pos = ...;
     vtkcamera->SetPosition(pos.v_);
2018-12-09 17:44:12 +01:00
0a056fdbbf STYLE: use fallthrough for 'use' action in selections (#926)
- applyToSet() automatically handles NEW like ADD, so no need to do
  so explicitly
2018-12-09 11:51:13 +01:00
08bcee7a3f ENH: support 'use' action for selections in vtkWrite, ensightWrite (#926)
- have 'use' as the action appears more intuitive as the first entry
  instead of 'add'. Was previously also added to vtkCloud.
2018-12-08 22:16:58 +01:00
0e4ccd7cef ENH: improve build naming without git
- now defaults to the project-version when absolutely nothing else is
  known

STYLE: simplify internal calling in wmakeBuildInfo
2018-12-08 18:18:17 +01:00
c45ff8cefc BUG: WM_THIRD_PARTY_DIR not set in csh (bug noted in merge !222)
- local csh variable in foreach was masking the setenv
2018-12-08 18:01:44 +01:00
5e4d7386ec ENH: use foamVersion::api internally in etcFiles searching (#1010)
- prefer this to using the OPENFOAM define since this improves the
  internal consistency with the build information.

  The API information could change between builds without the
  etcFiles.C being recompiled whereas the value of
  Foam::foamVersion::api is force updated during the build (triggers
  recompilation of globals.Cver)
2018-12-08 17:42:31 +01:00
a4dc9966ed ENH: Added new AMIWeights function object
Reports the min|max|average AMI weights to text file and optionally
writes VTK surfaces of the sum of the weights, and mask field for
ACMI patches.

Example usage:

    AMIWeights
    {
        type            AMIWeights;
        libs            ("libfieldFunctionObjects.so");
        writeControl    writeTime;
        writeFields     yes;
    }
2018-12-07 17:24:13 +00:00
afc373d683 BUG: dimensioned<Type> - corrected handling of lookupOrDefault. Closes #1116 2018-12-07 11:45:47 +00:00
31642a7d88 ENH: residuals FO - extended writing to include solver name, initial
and final residuals, nIterations. See #1115.
2018-12-07 11:17:23 +00:00
f9116e9e40 TUT: Added interIsoFoam cases 2018-12-07 09:49:39 +00:00
0b5f681fb9 DOC: Updated header documentation 2018-12-06 23:09:10 +00:00
a16fd1fa9e TUT: Added new decay of isotropic turbulence case based on CBC data
Reference:
Comte-Bellot, G., and Corrsin, S., "Simple Eulerian Time Correlation of
Full- and Narrow-Band Velocity Signals in Grid-Generated, 'Isotropic'
Turbulence," Journal of Fluid Mechanics, Vol. 48, No. 2, 1971,
pp. 273–337.
2018-12-06 22:56:32 +00:00
a1558b88f5 ENH: Added new utility to create a box of isotropic turbulence 2018-12-06 22:28:43 +00:00
546de48ffe Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-12-06 09:06:31 -08:00
ff74469087 BUG: Correct division by zero when initial U = 0 in fvOption
source directionalPressureGradientExplicitSource
2018-12-06 09:04:08 -08:00
65475a7e40 Merge branch 'feature-isoSurfaceTopo' into 'develop'
ENH: isoSurfaceTopo: replacement for isoSurfaceCell.

See merge request Development/OpenFOAM-plus!224
2018-12-06 15:56:26 +00:00
7943603bf0 ENH: isoSurfaceTopo: replacement for isoSurfaceCell. 2018-12-06 15:56:26 +00:00
069dd14413 Merge branch 'feature-config' into 'develop'
ENH: update handling of versioning and make control (issue #1010)

See merge request Development/OpenFOAM-plus!222
2018-12-06 08:37:48 +00:00
6e32d05848 SUBMODULE: adjust for catalyst 2018-12-05 23:13:59 +01:00
a199fef957 STYLE: use globalPath() instead of path()/".." for parallel 2018-12-05 22:54:50 +01:00
d3a2544bfa STYLE: remove unused extractEulerianParticles::dictBaseFileDir() method 2018-12-05 22:25:44 +01:00
fc2f2e74d2 BUG: checkMesh, moveDynamicMesh checks not in postProcessing/ (fixes #1104)
- now placed under postProcessing/checkMesh and postProcessing/checkAMI,
  respectively.

  Output files are now also tagged with the id of the patch, in case
  there are multiple AMI patches in use.
2018-12-05 22:03:28 +01:00
e3e0e0557f BUG: unguarded use of globalIndex in vtk writers (fixes #1110)
- the problem occurred when running the writers in a parallel solver
  or utility but requesting output on the master only.

  Adjusted the logic to avoid globalIndex for these cases.
  Previously the if (parallel_) checks were happening later, after the
  globalIndex had already been created.
2018-12-05 21:27:29 +01:00
8d124355dc CONFIG: update config for VTK from 9.0.0 to 8.2.0
- the previous 9.0.0 was a premature change from ParaView 5.5 and
  still will not be reached for a while
2018-12-05 18:07:28 +01:00
1f9543802d ENH: code cleanup for vtk transcription
- use cellCentres() instead of volField equivalent for vtk conversion

- make looping variables more consistent

- centralize the transcription of OpenFOAM -> vtk tuples
2018-12-05 11:19:08 +01:00
2469f698e9 CONFIG: update completion_cache (for csh users)
- now consider options '-hostRoots', '-roots' to be advanced options
  that don't need to be in the cache
2018-12-05 08:50:38 +01:00
bff16a0ddc STYLE: additional comments in Test-decomposePar 2018-12-05 08:42:55 +01:00
274bb501bc STYLE: incorrect option name handling for foamCreateModuleInclude
- The usage claimed '-output=', but was using '--output=' for the
  output file.  Rectify to use single dash as documented.
2018-12-04 17:19:25 +01:00
93b5559c87 ENH: runTimeControl - execute function objects on end 2018-12-04 14:39:40 +00:00
124eb1c922 TUT: Added example of runTimeControl with triggers 2019-01-21 11:05:59 +00:00
088e46f2dd Merge branch 'functionObject-momentum' into 'develop'
ENH: momentum field function (issue #1105)

See merge request Development/OpenFOAM-plus!223
2018-12-04 14:26:43 +00:00
077910628e ENH: momentum field function (issue #1105)
Calculates linear/angular momentum, reporting integral values
    and optionally writing the fields.

Example
    momentum1
    {
        type        momentum;
        libs        ("libfieldFunctionObjects.so");
        ...
        writeMomentum   yes;
        writeVelocity   no;

        cylindrical     true;
        origin  (0 0 0);
        e1      (1 0 0);
        e3      (0 0 1);
    }
2018-12-04 15:16:03 +01:00
d842118994 ENH: add cellSet support for volRegion (#1106) 2018-12-04 13:22:59 +01:00
cacbcd98d9 SUBMODULE: minor catalyst and cfmesh updates 2018-12-04 01:40:54 +01:00
5252c70b46 STYLE: add OpenFOAM/include directory in CMakeLists
- eg for foamVersion.H
2018-12-04 01:38:46 +01:00
942a7f8565 STY:
Reducing running time in controlDict
2018-12-03 16:06:20 -08:00
9893e62386 ENH:
Adding reflecting fluxes to Solar load radiation model.
Adding functionality to the boundary radiation models and new
place holder for basic wall types such as transparent, opaqueDiffusive,
opaqueReflective,etc.
Changing radiation wall models to run time selectable.
Adding multi-band capabilities to VF model and improving the set up
for using solar loads in VF and fvDOM radiation models.
2018-12-03 13:51:40 -08:00
f3488c1220 ENH: writeFile - add option to (not)use user time. Fixes #1078 2018-12-03 16:58:40 +00:00
a8ff5b10e8 COMP: Resolved compiler warnings 2018-12-03 16:46:24 +00:00
798ede77ec ENH: Extended atmospheric BCs to use PatchFunction1s 2018-12-03 15:34:22 +00:00
8dc295bf01 ADMIN: Updated COPYING file 2018-12-03 15:33:45 +00:00
31a439dc99 ENH: freestream BC: allow inlet value to be specified by another patch
The freestreamFvPatchField previously employed a fixed value when supplying
the inlet values.  This commit extends the BC so that users can use another
patch to supply the values via the new freestreamBC entry, e.g. to set the
velocity to an atmospheric boundary layer profile:

    inlet
    {
        type            freestream;
        freestreamBC
        {
            type            atmBoundaryLayerInletVelocity;
            flowDir         (1 0 0);
            zDir            (0 0 1);
            Uref            20;
            Zref            20;
            z0              uniform 0.1;
            zGround         uniform 935;
        }
    }

The earlier specification is also maintained for backwards compatibility, e.g.

    inlet
    {
        type            freestream;
        freestreamValue uniform (300 0 0);
    }
2018-12-03 15:27:42 +00:00
b8c257d6ad CONFIG: adjustments to environment
- provide default WM_DIR if not already set, to improve robustness if a
  reduced environment is used

- add etc/ to WM_PROJECT_SITE search. This makes the site directory
  structure consistent with the OpenFOAM structure.
  Eg,

      WM_PROJECT_SITE/etc/..
      WM_PROJECT_SITE/bin/..
      WM_PROJECT_SITE/platforms/..

- Don't set/export WM_OSTYPE.  The default is POSIX and is properly
  defaulted throughout, including in CMakeLists-OpenFOAM.txt (also for
  Catalyst)
2018-12-03 09:50:48 +01:00
e917586574 ENH: triSurfaceMesh: improved error message. 2018-12-03 10:33:00 +00:00
6c68c34e1a ENH: update handling of versioning and make control (issue #1010)
- Use the OPENFOAM define (eg, 1806, 1812), which normally corresponds
  to a major release, to define an API level. This remains consistent
  within a release cycle and means that it is possible to manage
  several sub-versions and continue to have a consistent lookup.

  The current API value is updated automatically during the build
  and cached as meta data for later use, even when the wmake/ directory
  is missing or OpenFOAM has not yet be initialized.

  The version information reported on program start or with -help
  usage adjusted to reflect this. The build tag from git now also
  carries the date as being more meaningful to trace than a hash
  value.

- Update etc/bashrc and etc/cshrc to obtain the project directory
  directly instead of via its prefix directory. The value obtained
  corresponds to an absolute path, from which the prefix directory
  can be obtained.

  The combination of these changes removes the reliance on any
  particular directory naming convention.
  For example,

     With an 1812 version (API level):

     WM_PROJECT_VERSION=myVersion

     installed as /some/path/somewhere/openfoam-mySandbox

  This makes the -prefix, -foamInstall, -projectVersion, -version
  values of foamEtcFiles, and similar entries for foamConfigurePaths
  superfluous.

  WM_PROJECT_INST_DIR is no longer required or used

ENH: improve handling and discovery of ThirdParty

- improve the flexibility and reusability of ThirdParty packs to cover
  various standard use cases:

    1. Unpacking initial release tar files with two parallel directories
       - OpenFOAM-v1812/
       - ThirdParty-v1812/

    2. With an adjusted OpenFOAM directory name, for whatever reason
       - OpenFOAM-v1812-myCustom/
       - openfoam-1812-other-info/

    3. Operating with/without ThirdParty directory

  To handle these use cases, the following discovery is used.

  Note PROJECT = the OpenFOAM directory `$WM_PROJECT_DIR`
       PREFIX = the parent directory
       VERSION = `$WM_PROJECT_VERSION`
       API = `$WM_PROJECT_API`, as per `foamEtcFiles -show-api`

   0. PROJECT/ThirdParty
      - for single-directory installations

   1. PREFIX/ThirdParty-VERSION
      - this corresponds to the traditional approach

   2. PREFIX/ThirdParty-vAPI
      - allows for an updated value of VERSION (eg, v1812-myCustom)
        without requiring a renamed ThirdParty. The API value
        would still be '1812' and the original ThirdParty-v1812/
        would be found.

   3. PREFIX/ThirdParty-API
      - this is the same as the previous example, but using an unadorned
        API value. This also makes sense if the chosen version name also
        uses the unadorned API value in its naming
        (eg, 1812-patch190131, 1812.19W03)

   4. PREFIX/ThirdParty-common
      - permits maximum reuse for various versions, but only for
        experienced user who are aware of potential version
        incompatibilities

   Directory existence is checked as is the presence of an Allwmake file
   or a platforms/ directory. This reduces the potential of false positive
   matches and limits the selection to directories that are either
   with sources (has the Allwmake file), or pre-compiled binaries (has
   the platforms/ directory).

   If none of the explored directories are found to be suitable,
   it reverts to using a PROJECT/ThirdParty dummy location since
   this is within the project source tree and can be trusted to
   have no negative side-effects.

ENH: add csh support to foamConfigurePaths

- this removes the previously experienced inconsistence in config file
  contents.

REMOVED: foamExec

- was previously used when switching versions and before the
  bashrc/cshrc discovery logic was added. It is now obsolete.
2018-12-02 18:25:57 +01:00
7bf4bcf4ba ENH: snappyHexMesh: Size printing, formatting. See #972. 2018-11-29 10:56:38 +00:00
003e7ca06c ENH: leakpath: change format to ensight. 2018-11-29 09:19:40 +00:00
550e47629b ENH: configurable output temperature for externalCoupled mixed T BC (#1072)
- Uses the user-specified value for outputTemperature:

  {
      type  externalCoupledTemperature;
      outputTemperture  fluid;  // or wall;
  }

  Otherwises uses 'wall' as a default (for compatibility) and emits a
  warning.

  The T.out header now reflects the type of output. Eg,

     # Values: area Tfluid qDot htc
2018-12-02 17:35:48 +01:00
1116ba803a TUT: use defaultPatch for naming instead of explicit Default_Boundary_Region
- tutorials based on squareBend used Default_Boundary_Region explicitly
  defined since they predated the defaultPatch renaming (2008).
  The name 'Default_Boundary_Region' was for convenience as the default
  name when converting to PROSTAR or CCM formation, but can now be
  changed to something more generic.

- define wall boundary conditions for squareBend using a general regex
  to allow future splitting of wall types by name.
2018-12-02 11:14:04 +01:00
c5beee63f3 ENH: add isTrue function to RunFunctions
- check if the first argument corresponds to an OpenFOAM value for
  'true' (as per Switch).
  True == 't', 'y', 'true', 'yes', 'on'. Everything else is not true.

- when the first argument is '-dict', it initializes the value
  with a query via foamDictionary.
  Eg,
       isTrue -dict mydict -entry parallel

   ==> value=$(foamDictionary mydict -entry parallel -value)
       isTrue $value

   a missing entry is silently treated as false.

ENH: add getNumberOfPatchFaces function in RunFunctions

- simple extraction of nFaces from boundary file for given patch/region
2018-11-30 19:29:49 +01:00
f2e88645c2 STYLE: documentation typo 2018-12-02 13:39:12 +01:00
01a219119d STYLE: add some shell quoting in settings files 2018-11-29 23:30:11 +01:00
d587e2f03f ENH: append date to build info
- append the commit hash value with the commit date when creating
  the build string information and drop the version prefix.

  This provides an immediate overview of when the code was last
  changed. The prefixed version information can be dropped from
  the build string, since it is readily available in other forms.
2018-11-29 23:03:57 +01:00
4b7e11fc8b COMP: adjust headers for more detailed build info in the future (issue #1010)
- this splits a larger changeset for a gradual implementation
2018-11-29 21:01:01 +01:00
9e094f1f07 ENH: relocate WM_PROJECT_SITE default (issue #1050)
- was PREFIX/site, now PROJECT/site

  This avoids several issues when installing OpenFOAM in clusters
  without an intermediate OpenFOAM-specific installation prefix.

  The 'site' directory may have a reserved meaning in these situations
  and it is undesirable to 'leak' upwards into the parent directory to
  look for configuration files.

  Placing the default within the project directory avoids this.
  Alternative locations can be given via the WM_PROJECT_SITE variable.
2018-11-29 18:04:44 +01:00
be46f96862 STYLE: adjust wording, file-layout
- comments in bashrc, cshrc.
- about controlDict names for allowSystemOperations
2018-11-29 16:53:02 +01:00
3f7ea92efa SUBMODULE: catalyst with so versioning 2018-11-29 12:48:50 +01:00
d45d7ca8c3 STYLE: adjust looping parameter for _foamEval 2018-11-29 12:45:45 +01:00
628b2445fc ENH: improve setup for paraview
- removed reliance on ParaView_INCLUDE_DIR variable for conveying the
  major.minor version information when compiling. This can be somewhat
  fragile and also adds variable that is an unnecessary when running
  (only used when compiling).

  Instead use `have_pvplugin_support` function in paraviewFunctions
  wmake script to determine the maj.min from the PV_PLUGIN_PATH
  since we have already defined the output path there with paraview
  maj.min numbering.

  Can now build with paraview from the operating system,
  provided that it has develop headers available.

      ParaView_VERSION=system

  In the etc/config.sh/paraview setup, the maj.min is taken from
  the corresponding `paraview --version` output and used when
  defining the PV_PLUGIN_PATH.

  During the build, the include path taken from `paraview-config`
  for a system installation, from the guess installation root
  of the paraview binary, or ParaView_DIR otherwise.

NB: using a system ParaView for building runTimePostProcessing is unsupported.

- these types of builds appear to have various library resolution issues
  (eg, libexpat not being loaded). Additionally, the build logic does
  not yet cover this type of use case.
2018-11-29 01:48:00 +01:00
e4b8fedeb1 ENH: do not foamCleanPath on system directories (issue #1102)
- skip /, /bin, /usr/bin ... as potential filters.
2018-11-28 19:19:10 +01:00
f69f9f7ff6 TUT: adjustments in multiRegionHeater tutorials
- missing 'g' file, improve file consistency (fields, dictionaries)
2018-11-28 15:02:41 +01:00
dd0487ac2a STYLE: typo in comments 2018-11-28 12:35:34 +01:00
41a03f3790 ENH: add regular expressions for reconstructPar, mapFieldsPar -fields option
- improved flexibility

- reconstruction of Lagrangian positions/fields now handled as a class
  for better modularity
2018-11-28 08:36:17 +01:00
b81420e524 ENH: additional variants of IOobjectList findObject()
- cfindObject() for const pointer access.

- getObject() for mutable non-const pointer access, similar to the
     objectRegistry::getObjectPtr()

- cfindObject(), findObject(), getObject() with template type access
  to also check the headerClassName.

  For example,

      cfindObject("U")  ->  good
      cfindObject<volVectorField>("U") -> good
      cfindObject<volScalarField>("U") -> nullptr

  This allows inversion of looping logic.

    1) Obtain the names for a particular Type

       for (const word& objName : objs.sortedNames<Type>())
       {
           const IOobject* io = objs[objName];
           ...
       }

    2) Use previously obtained names and apply to a particular Type

       for (const word& objName : someListOfNames)
       {
           const IOobject* io = objs.cfindObject<Type>(objName);
           if (io)
           {
               ...
           }
       }
2018-11-28 11:28:38 +01:00
7477459186 STYLE: const-correctness on IOobject* access
- foamToEnsight, foamToEnsightParts, profiling
2018-11-28 08:00:53 +01:00
29e1d9e982 Merge remote-tracking branch 'origin/develop' into develop 2018-11-27 16:59:08 +01:00
9065346a05 ENH: additional handling of questionable bad FOAM_EXT_LIBBIN values
- if FOAM_EXT_LIBBIN is unset and some scripts set this to /usr/lib*
  as a fallback (eg, to avoid an undefined value) this will cause a
  system library to be found before appropriate *_ARCH_PATH entry.

  This was noticed during a scotch compilation without third-party:
  resulting in the system library (/usr/lib64/libscotch.so) to be found
  instead of the SCOTCH_ARCH_PATH location
  (/usr/lib64/mpi/gcc/openmpi/lib64/).

  Simply changing the search order doesn't work for use, since we wish
  to retain a preference for any dynamic libraries discovered in a
  real FOAM_EXT_LIBBIN.

  Circumvent these issues by only taking libraries from
  FOAM_EXT_LIBBIN if it also points to a location within ThirdParty.
2018-11-27 12:23:11 +01:00
38d3a36c2d TUT: update use of foamToVTK 2018-11-27 11:26:24 +01:00
17b03ba1ea Merge remote-tracking branch 'origin/develop' into develop 2018-11-27 12:58:14 +01:00
8f858af6c8 ENH: chtMultiRegionFoam - updated construction of g field 2018-11-27 11:47:16 +00:00
32c174f349 TUT: Moved g files - see 9abe97bb7b 2018-11-27 11:46:49 +00:00
6bb7cd9e16 TUT: Added files missed during commit cab7820fb3 2018-11-27 11:41:34 +00:00
ad88c551f9 Merge remote-tracking branch 'vtk/feature-vtm' into develop 2018-11-27 11:23:37 +01:00
b5d4d59ff1 TUT: add Alltest for IO/dictionary
- runs in non-verbose mode to avoid spurious detection of FatalError
2018-11-27 11:11:47 +01:00
61c1aa161c CONFIG: remove unused FOAM_EXT_LIBBIN references 2018-11-27 08:45:07 +01:00
46e2e71f28 STYLE: update dictionary documentation for topoSources (#1060) 2018-11-27 08:32:27 +01:00
0dc206be02 ENH: add unique source keyword for shapeToCell (#1060)
- using 'shape', to avoid potential name clash with 'type' (action
  type) when used without an optional sourceInfo sub-dictionary
2018-11-27 07:48:03 +01:00
0498d4e743 COMP: fix for clang compiler bug (?) 2018-11-26 14:17:24 +00:00
820b63e0b2 CONFIG: bump API version number to 1811 to register recent changes 2018-11-26 15:14:01 +01:00
0e5325bff9 ENH: snappyHexMesh: add -dry-run argument. See #972. 2018-11-26 12:23:01 +00:00
f8985566e9 BUG: snappyHexMesh: extrude non-local baffle. Fixes #1175. 2019-01-21 15:27:51 +00:00
3bdb0435f8 DEP: Deprecated the ensightFoamReader 2019-01-17 09:35:04 +00:00
1ee2b53bbf BUG: vtk::internalWriter::writeProcIDs could block in parallel
- could be triggered if running in parallel, but requesting procIDs
  to be written with a non-parallel version of the writer.
2019-01-14 16:43:30 +01:00
1905039d7b ENH: add non-const field access without triggering update counter (#1081)
- can now things like ref(), boundaryFieldRef(), primitiveFieldRef()
  with an optional argument that avoids triggering any update events

  Instead of

      Field<Type>& iF = const_cast<Field<Type>&>(fld.primitiveField());

  can now write

      Field<Type>& iF = fld.primitiveFieldRef(false);

  or simply

      auto& iF = fld.primitiveFieldRef(false);
2018-11-26 12:35:01 +01:00
d62b5251d6 ENH: improved argList output of compatibility options 2018-11-25 15:02:42 +01:00
f78aa8e342 ENH: added Ostream fill() methods and corresponding IOmanip setfill()
- useful when generating formatted output such as tables.
2018-11-25 14:17:55 +01:00
d8a55e46b6 ENH: align foamToEnsightParts internals with foamToEnsight
- add -region option and -fields filtering
2018-11-25 12:12:19 +01:00
b5432011fa ENH: improve option naming consistency in
- foamToVTK, foamToEnsight, foamToEnsightParts
2018-11-25 10:47:00 +01:00
a139543e9c ENH: add boundaryToCell, patchToCell topoSetCellSources (#1060)
- can be used, for example, to visualize all wall cells - for quality
  or other purposes - without requiring an intermediate faceSet for
  the selection. Request arising from pending merge !213.
2018-11-24 13:52:43 +01:00
ff18ab58c2 ENH: add 'use' action for parcel selection
- shortcut for "clear" + "add".

  At the end of the operation, only parcels matching that particular
  selection source will be used.
2018-11-24 13:34:02 +01:00
58dae2de43 ENH: improvements for dataCloud function object (issue #1044)
- now supports a parcel selection mechanism like vtkCloud,
  giving the ability to select a subset of parcels.
  For example, a given stride, or removal of parcels with a small
  diameter.

  Eg,
      dataCloud output Time: 3.2
      Applying parcel filtering to 994 parcels
      - add stride 4
      - subtract field U : (less 0.2)
      After filtering using 214/994 parcels

- add output precision control for dataCloud
2018-11-24 13:14:57 +01:00
05353da5f4 BUG: errors found in feature-vtm merge !213
- vtkWrite with moving mesh was not updated the subsets properly,
  which caused it to crash.

- foamToVTK -overwrite ignored for single region cases,
  was working for multi-region cases

- minor documentation changes
2018-11-23 14:04:07 +01:00
ea3c470a69 Merge branch 'issue-911' into 'master'
Issue 911

Closes #911

See merge request Development/OpenFOAM-plus!212
2018-11-20 14:40:43 +00:00
4a26fb758e ENH: Added new function object to calculate the energy spectrum
Description
    Calculates the energy spectrum for a structured IJK mesh

Usage
    Example of function object specification:
    energySpectrum1
    {
        type        energySpectrum;
        libs        ("libfieldFunctionObjects.so");
    }

    Where the entries comprise:
    \table
        Property     | Description               | Required    | Default value
        type         | type name: energySpectrum | yes         |
        log          | write info to standard output | no      | yes
    \endtable

    Output data is written to the file \<timeDir\>/energySpectrum.dat
2018-11-16 15:22:48 +00:00
925173d040 ENH: writeFile - enable file creation at a specified time. Fixes #1096 2018-11-16 15:20:26 +00:00
cab7820fb3 ENH: Refactored waveMaker BC to support piston and flap motions 2018-11-15 13:27:42 +00:00
6e1e854cbc INT: Initial commit of new wave-maker BCs based on mesh motion
waveMakerFlap: creates waves using a flapping motion
waveMakerPiston: creates waves using a piston motion
2018-11-15 08:29:54 +00:00
9abe97bb7b TUT: Updated location of gravity file. See #1094 2018-11-26 14:31:30 +00:00
d1bc53b77e ENH: Updated construction/retrieval of gravity field. See #1094 2018-11-14 21:49:32 +00:00
1a4fceec20 ENH: Updated general construction of gravity field for applications. See #1094
Note that the field is now registered on time as opposed to the mesh
2018-11-14 21:06:09 +00:00
1a83824c14 ENH: Added mesh object class to manage acceleration due to gravity. See #1094 2018-11-14 21:03:02 +00:00
031cd2ebbd ENH: objectRegistry - added thisDb() helper function 2018-11-14 20:58:38 +00:00
0a89ab81d0 ENH: Time - disambiguate call to name() 2018-11-14 20:57:00 +00:00
a824c7fe96 TUT: Corrected fvSchemes 2018-11-14 11:20:17 +00:00
0f48b89185 ENH: output filtering of vtkCloud by user selection (#1056)
- can filter by stride or field information.
  For example,

      selection
      {
          stride
          {
              // every 10th parcelId
              action  add;
              source  stride;
              stride  10;
          }
          Umin
          {
              // Remove slow parcels
              action  subtract;
              source  field;
              field   U;
              accept  (less 1e-3);
          }
          diam
          {
              // Only particular diameter ranges
              action  subset;
              source  field;
              field   d;
              accept  (greater 1e-3) and (less 1e-3);
          }
      }
2018-11-13 22:57:49 +01:00
aad4c607b5 TUT: Corrected tutorial name 2018-11-09 09:31:14 +00:00
22b265b482 ENH: block - added new constructor 2018-11-09 09:26:45 +00:00
712f8e0583 ENH: cellShape - added new constructor 2018-11-09 09:22:38 +00:00
692bf7f425 STYLE: Corrected error messages 2018-11-09 09:21:37 +00:00
2a3e2b2cfa ENH: fft - use fftw_malloc to create in/out arrays. Fixes #1095 2018-11-09 09:20:50 +00:00
584d6d066a ENH: totalFlowRateAdvectiveDiffusive BC - removed hard-coded LES model lookup. Fixes #1097 2018-11-05 09:14:59 +00:00
0446e73485 BUG: too many quotes on cleaned env variables
- Added quoting to handle spaces in environment values in commit 50852b33
  (#1007, #1008). However, quoting is only needed for eval mode.

  In regular mode, quoting should not be part of the output, instead it
  should be done on the caller side.
2018-11-25 09:21:42 +01:00
6b99ffe0a9 Merge branch 'feature-vtm' into 'develop'
Feature vtm/vtk

See merge request Development/OpenFOAM-plus!213
2018-11-26 10:30:39 +00:00
7964d31d03 STYLE: remove special '.' version handling in foamEtcFile
- this would automatically change openfoam<digits> into maj.min.rel
  values, thus transforming openfoam1806 into a version "1.8.0.6" !
2018-11-24 00:36:31 +01:00
b105f926b1 ENH: improvements to foamConfigurePaths tool (#1010)
- provide edit for adjusting the ThirdParty and fallback site variables.
  This is useful when packaging into a single directory, and possibly
  without any ThirdParty dependencies.

- support '-prefix' (similar to auotconfig) as an alternative to
  '-foamInstall'. Use this prefix to set the prefix directly.
  Bypasses and disables the bash sourcing magic.
2018-11-23 15:30:29 +01:00
57ea2ac3d2 STYLE: restructure argList usage format 2018-11-23 13:49:54 +01:00
1456a8ca1d STYLE: emit warning about using deprecated "~OpenFOAM" expansion
- Within strings it is preferable to use the "<etc>" instead.
  Most use cases for the old "~OpenFOAM" expansion have been obsoleted
  by the #includeEtc directive.
2018-11-23 13:12:33 +01:00
ac03307258 ENH: improve consistency in version handling (issue #1010)
- use std::string instead of c-string for the string constants

- centralize some definitions of resources into foamVersion.H

  Now expose some of the hard-coded values used in foamEtcFiles()
  so that they can be known or even overridden as required.

  Relocate to src/OpenFOAM/include as a constant location.
2018-11-23 11:08:36 +01:00
45d5d7bbc1 COMP: add minimal test application
- uses wmake, without OpenFOAM libraries.

  The application and libray serve as a minimal test case for wmake,
  but can also be used to generate a minimal library/executable pair
  target for testing of packaging etc.
2018-11-23 00:21:10 +01:00
8f4067015d STYLE: remove shebang from LogFunctions
- file is to be sourced, non-executable.

- remove stray .keep file from tutorial case
2018-11-22 17:31:34 +01:00
5277221063 GIT: file permissions 2018-11-22 16:44:17 +01:00
577babc72b ENH: reject bad time values for blockMesh -time (closes #1093) 2018-11-22 15:51:05 +01:00
343a3b958d ENH: guard against non-dictionary entries in changeDictionary (#1092) 2018-11-22 13:59:49 +01:00
85ffe4c648 ENH: improve consistency in version handling for foamEtcFile (issue #1010)
- Prefer the $WM_PROJECT_VERSION from the environment, since this
  is consistent with the foamEtcFile script, and matches better to
  user expectations.
2018-11-22 12:00:50 +01:00
083e9e9665 ENH: isolate version information in foamVersion names instead of globals
- For compatibility, access to the old global names is provided via
  macros
        #define FOAMversion     foamVersion::version
        #define FOAMbuild       foamVersion::build
        #define FOAMbuildArch   foamVersion::buildArch

- this isolation makes it easier to provide additional scoped methods
  for dealing with version related information.  Eg, printBuildInfo()
2018-11-22 11:50:24 +01:00
0cae54b3e1 COMP: juggle content between stdFoam.H and foamVersion.H
- foamVersion.H now includes stdFoam.H for consistent use
  of compatibility compiler defines.

- move forward declaration of Detail, Module namespaces to stdFoam.H

- doxygen documentation of Foam namespace in stdFoam.H
2018-11-22 10:52:56 +01:00
283801208e STYLE: doxygen format for constants 2018-11-22 10:46:37 +01:00
973a940028 COMP: provide Allmake script for wmake tools
- convenient when bootstrapping some systems
2018-11-22 09:35:17 +01:00
775c64c7cd SUBMODULE: updated catalyst (replaced deprecated methods) 2018-11-21 13:50:42 +01:00
e35ac89efb CONFIG: include static libraries in FFTW search (#1087) 2018-11-21 13:49:16 +01:00
5187aa13aa ENH: improve output formatting for usage information
- generalize output text wrapping, use for usage notes

- add -help-man option for generating manpage content for any OpenFOAM
  application or solver.

  bin/tools/foamCreateManpage as helper
2018-11-21 19:55:28 +01:00
6dcc46b187 ENH: improve error handling for foamHelp
- Catch any leading option (the incorrect location).
- Catch initialization error for cleaner result.
2018-11-21 20:18:39 +01:00
98b5914198 CONFIG: adjust MANPATH if an OpenFOAM doc/man1 directory exists 2018-11-21 11:07:40 +01:00
50ccb197dc BUG: fix bad environment parsing in foamCreateModuleInclude
- The changes in foamCleanPath introduced for issues (#1007, #1008)
  include quoted output of the cleaned environment variable.
  When used in foamCreateModuleInclude, the quotes make their way
  into the final environment. Avoid this by using the -sh-env
  eval format instead.

- add environment extraction of MANPATH changes
2018-11-21 11:02:58 +01:00
31c21031ea ENH: reduce intermediate text with generating completion options
- more filtering in the sed stage to remove non-essential text.
  Terminate parsing on first appearance of -help-full option.
2018-11-21 10:51:57 +01:00
481e83f007 STYLE: adjust shell syntax and usage output for paraFoam
- have -help-full as the last entry in the list of options.
  This permits some optimizations when generating shell completions.
2018-11-21 09:44:00 +01:00
253dd183f9 STYLE: include mpirun path information in top-level Allwmake
- provides some feedback about which mpi is being used
2018-11-21 08:39:26 +01:00
4a37e23ffa ENH: floatingBody: excess debug switches 2018-11-22 08:58:56 +00:00
9bfc010e64 ENH: faMesh: decompose zero-sized patches. Fixes #1090. 2018-11-21 16:38:33 +00:00
fa2971c17a BUG: cyclicACMI: ensure transformation tensors are valid. Fixes #1088. 2018-11-21 15:34:13 +00:00
ba86d90ffc ENH: single precision: various small fixes. See #1086. 2018-11-21 11:12:25 +00:00
6c568c61bf STYLE: Renamed source files to reflect solver names (issue #890) 2018-11-20 19:10:06 +01:00
100ec01c82 SUBMODULE: updated to avoid implicit construction of dimensionedType 2018-11-20 18:26:05 +01:00
5a9a2935ad ENH: modernize code in dimensionSet, dimensionSets
- 'unfriend' operators on dimensionSet, since they operate without
  requiring access to non-public members.

- add missing invTransform() function for dimensionSet.

- make inv(const dimensionSet&) available as
  operator~(const dimensionSet&), which can be used instead
  of (dimless/ds).
2018-11-20 18:16:17 +01:00
72c4b3186b ENH: added dimensionedType::writeEntry method
- writing of dictionary entry with the name of the dimensionedType
  suppressed if it is identical to the keyword.
  This corresponds to the input requirements.
2018-11-20 16:26:44 +01:00
dd87c98393 ENH: add read guard for dimensionedType constructors (#762)
- deprecate dimensionedType constructors using an Istream in favour of
  versions accepting a keyword and a dictionary.

  Dictionary entries are almost the exclusive means of read
  constructing a dimensionedType. By construct from the dictionary
  entry instead of doing a lookup() first, we can detect possible
  input errors such as too many tokens as a result of a input syntax
  error.

  Constructing a dimensionedType from a dictionary entry now has
  two forms.

  1.  dimensionedType(key, dims, dict);

      This is the constructor that will normally be used.

      It accepts entries with optional leading names and/or
      dimensions. If the entry contains dimensions, they are
      verified against the expected dimensions and an IOError is
      raised if they do not correspond. On conclusion, checks the
      token stream for any trailing rubbish.

  2.  dimensionedType(key, dict);

      This constructor is used less frequently.

      Similar to the previous description, except that it is initially
      dimensionless. If entry contains dimensions, they are used
      without further verification. The constructor also includes a
      token stream check.

      This constructor is useful when the dimensions are entirely
      defined from the dictionary input, but also when handling
      transition code where the input dimensions are not obvious from
      the source.

      This constructor can also be handy when obtaining values from
      a dictionary without needing to worry about the input dimensions.
      For example,

         Info<< "rho: " << dimensionedScalar("rho", dict).value() << nl;

      This will accept a large range of inputs without hassle.

ENH: consistent handling of dimensionedType for inputs (#1083)

BUG: incorrect Omega dimensions (fixes #2084)
2018-11-20 15:14:10 +01:00
efdbeae27e ENH: use dictionary::get<> instead of pTraits (#762)
- check Istream in readBool in operator>> variant (#1033)
2018-11-20 10:10:39 +01:00
b9b8c523f2 ENH: faceOnlySet: loosened tolerance. Fixes #1079. 2018-11-19 15:58:09 +00:00
04e95b93ec Merge remote-tracking branch 'origin/develop' into develop 2018-11-19 15:45:56 +01:00
698bf3f61d STYLE: usage order in foamConfigurePaths 2018-11-19 15:38:14 +01:00
d8ca517dc3 COMP: linkage, single precision 2018-11-19 12:05:28 +00:00
ad2baed5af ENH update use of bitSet in dynamicRefineFvMesh #1075 2018-11-16 10:30:02 +01:00
b4e26828d5 ENH: bitSet instead of boolList for dynamicMultiMotionSolverFvMesh (#1075) 2018-11-16 09:18:09 +01:00
683ff304ca ENH: update looping and use of bitSet for motionSmootherAlgo (#1075) 2018-11-16 09:18:09 +01:00
de2497461c ENH: dynamicRefineBalance: removed. 2018-11-15 15:03:19 +00:00
cbbafa7457 Mapping injected faces through interpolation
See merge request Development/OpenFOAM-plus!220

Code supplied by Daniel Rettenmaier rettenmaier@gsc.tu-darmstadt.de
2018-11-15 14:58:56 +00:00
8ceec6456a Mapping injected faces through interpolation 2018-11-15 14:58:56 +00:00
edf5cf4588 ENH: MeshObject: objectRegistry lookup only once. Fixes #1071. 2018-11-14 12:41:26 +00:00
a072d18380 ENH: add sync() for faceBitSet, faceBoolSet, pointBitSet (#1060)
- fix range checks
2018-11-14 11:55:38 +01:00
c599810533 ENH: code reduction in MeshObject (#1071)
- use forwarding templates for the factory method

- avoid double use of dynamic_cast.
  Don't need implicit use in isA<>, can use result directly

STYLE: updated iteration over HashTable of mesh objects
2018-11-15 13:06:12 +01:00
f269371dbc ENH: support cylindrical coordinates in fieldCoordinateSystemTransform (#1076) 2018-11-16 15:12:19 +01:00
4a53835f4b BUG: incorrect transform for fieldCoordinateSystemTransform (fixes #1076)
- was using coordinate-system and transform() which is the
  local-to-global mapping, whereas it should be invTransform() which
  is the global-to-local mapping
2018-11-16 12:23:41 +01:00
7996e9af8b ENH: add invTransform for fields (#1076) 2018-11-16 12:22:24 +01:00
f2de61f82c STYLE: add geometric constraint to decomposeParDict example (issue #921) 2018-11-15 11:45:18 +01:00
5c993cf009 STYLE: remove redundant return statement 2018-11-14 12:54:58 +01:00
5029d29ff6 ENH: support -gcc option for foamConfigurePaths
- simplifies things for legacyCompile
2018-11-15 13:55:21 +01:00
4bf4b89af4 ENH: support scalar predicates and lists of scalar predicates (#1056) 2018-11-13 14:12:53 +01:00
1883a872a1 STYLE: adds comments in empty Make/options files
- easier when making modifications

STYLE: spelling in topoSetSource comments
2018-11-13 15:21:13 +01:00
8752120ad5 COMP: use hard-coded values for fieldTypes (issue #1068)
- this seems to be the only reliable means of obtaining the values.

  Using typeName_() yields the wrong value.

  Using the typeName causes initialization issues
  (segfault when executing on some systems).
2018-11-12 16:39:55 +01:00
90dd4b30cd TUT: syntax typo (#1059) 2018-11-12 13:59:38 +01:00
2ac5df6f93 BUG: inconsistent field ordering in PDRMesh (fixes #1069) 2018-11-12 12:59:03 +01:00
b016b1664e COMP: use typeName_() accessors for building fieldTypes
- resolves better on some compilers.
2018-11-12 12:43:33 +01:00
9c993c8ebd Merge branch 'feature-ioobjectlist-registry' into 'develop'
Feature ioobjectlist registry

See merge request Development/OpenFOAM-plus!218
2018-11-12 11:39:01 +00:00
a89fedb2ec Merge branch 'feature-uniformFixedValue' into 'develop'
uniformFixedValue: avoid re-evaluation on reading or mapping

See merge request Development/OpenFOAM-plus!219
2018-11-12 10:49:28 +00:00
e9af742819 BUG: uniformFixedValue: do not evaluate upon reading. Fixes #1058. 2018-11-12 09:15:09 +00:00
9bc61e5f41 ENH: improve IOobjectList name filtering
- support name filtering by class based on <Type> or predicates.
  Eg,

      objects.sortedNames<volScalarField>(namePattern);
  vs  objects.sortedNames(volScalarField::typeName, namePattern);

  These can also be used directly for untyped name matching.
  Eg,
      objects.sortedNames<void>(namePattern);

  Can also use a predicate:

      objects.sortedNames(wordRe("vol.*Field"), namePattern);
      objects.sortedNames
      (
          [](const word& clsName){ return clsName.startsWith("vol"); },
          namePattern
      );
2018-11-12 08:55:45 +01:00
256042158f ENH: IOobjectList improvements
- add IOobjectList::count() methods

- lookupClass<Type>() to use types instead of class variables.

- additional helpers for parallel: allNames(), checkNames()

- provide filterClasses() and filterObjects(), prune_0() method
  forwarding to HashTable methods for easier access.
2018-11-12 01:01:58 +01:00
f94d724a93 ENH: add objectRegistry::count() methods
- can be useful for obtaining information about number of fields.
  Eg,

       nScalar = mesh.count<volScalarField>(wordre);
2018-11-11 19:00:54 +01:00
4965ea4988 ENH: simplify/extend objectRegistry code with templated predicates
- replace explicit use of wordRe, wordRes, wordHashSet as filters
  with a MatchPredicate.

- support filtering by class based on <Type> or predicates
2018-11-10 17:20:32 +01:00
f44e59fb55 ENH: add IOobject::isHeaderClassName() method
- in parameter form, check if it headerClassName() corresponds to the
  specified class name

- in templated form, check if headerClassName() corresponds to the
  Type:typeName value.
  Specialization for <void> always returns true (ie, no checks)
2018-11-10 16:54:19 +01:00
8562e5278f ENH: simplify/extend IOobjectList code with templated predicates
- replace explicit use of word, wordRe, wordRes, wordHashSet as filters
  with a MatchPredicate, since they all satisfy the requirements for
  use a predicate. This change reduces code duplication, allows other
  matcher types (eg, keyType) as well as lambda functions.

- add special treatment for a 'const char*' parameter
  for lookupClass() and the now-deprecated single item lookup() method
  to promote these parameters to 'word'.
2018-11-10 12:12:06 +01:00
faaa93fdb5 ENH: add IOobjectList::findObject() method
- naming similar to objectRegistry, with unambiguous resolution.
  The lookup() methods have different return types depending on the
  calling parameter.

STYLE: use IOobjectListTemplates.C for implementations

- previously included as local definition within IOobjectList.C,
  but will be adding more templated methods soon.

- adjust parameters (eg, matchName instead of matcher) to show their
  function

ENH: handle objectRegistry::names<void>(...)

- this is equivalent to no Type restriction, and can be used when
  filtering names. Eg,

     obr.names<void>(wordRe..);
2018-11-09 21:57:55 +01:00
ffec4c6fa7 STYLE: more consistent formatting for deprecated items
- Start brief descriptions with 'Deprecated(YYYY-MM)' so that it is
  readily visible in the short method description. Consistent date
  format (YYYY-MM), placed immediately after the \deprecated tag.
2018-11-11 17:17:33 +01:00
91cfe4c271 ENH: add wordRes::matching() method
- returns indices of matching entries.
2018-11-09 21:21:15 +01:00
dff2569c7f GIT: commit text missed in squashed merge
commit 3f9c7bf411
    commit 3cf177e759

====

ENH: add geometric decomposition constraint (issue #921)

- geometric decomposition constraints may be used to prevent the
  decomposition of regions of the mesh.

  The geometric constraint is applied according to the face centres,
  which define the connectivity between cells.

  Specified in decomposeParDict

    constraints
    {
        geometric
        {
            type    geometric;

            geometry
            {
                box1
                {
                    type    box;
                    min     (-10 -10 -10);
                    max     (1 1 1);
                }

                ball1
                {
                    type    sphere;
                    origin  (-2 -2 1);
                    radius  1;
                }
            }
        }
    }

ENH: add 'grow' option for geometric decomposition constraint (issue #921)

- the 'grow' option includes an additional check to include cell faces
  for any cell that already has two or more of its faces "unblocked".
  This could indicate a connection over a corner, but does not distinguish
  between connectivity introduced by the constraint and the connectivity
  defined by other constraints.

ENH: geometric decomposition constraint using topoSetFaceSource (issue #921)

- replaced use of searchableSurface with a more general and
  more efficient topoSetFaceSource instead.
  Since searchableSurface is also available as a topoSetFaceSource,
  there is no loss in functionality, but using topoSetFaceSource allow
  directly looping over the faces without creating of an additional
  List of volumeTypes.
2018-11-08 21:55:39 +01:00
3f9c7bf411 Merge branch 'wp09-geometric-constraint' into 'develop'
Work-package-09 geometric constraint

See merge request Development/OpenFOAM-plus!217
2018-11-08 20:50:47 +00:00
3cf177e759 Work-package-09 geometric constraint 2018-11-08 20:50:47 +00:00
69c3a6fb3b COMP: fix conditional for VTK legacy rendering.
- was deprecated for removal with VTK 8.1.0
  definitely removed in VTK 8.2.0
2018-11-08 21:28:26 +01:00
ab11a330e0 ENH: accept movable autoPtr for storage in regIOobject 2018-11-08 17:46:52 +01:00
6d906e52d3 COMP: fieldTypes: add to link line after the static symbols it uses
This fixes the static-initialisation order problem - fieldTypes.C
referes to labelIOField etc. which are after it in Make/files and
hence the link order.
2018-11-08 13:28:46 +00:00
258dd6eeea STYLE: polyMesh: corrected spelling 2018-11-08 10:46:25 +00:00
6f3471d5fb STYLE: protect and comment test of illegal access (#1066) 2018-11-08 14:46:35 +01:00
d7fc5f6f66 ENH: construct cylindrical from origin, axis (issue #863) 2018-11-08 13:12:23 +01:00
f426c510dd CONFIG: update for ParaView-5.6.0 2018-11-08 09:17:02 +01:00
9ebccb2e39 ENH: adjustments for ListOps subset, subsetList
- now takes a const UList<T> as input and returns a List<T>
  instead of trying to use the same ListType for both.

  This avoids previously encountered issues when a UList was passed in.

- add specialized bitSet handling within subset(), where we can benefit
  from faster traversal of sparse selections and have a better estimate
  of the final output size.
2018-11-08 08:47:31 +01:00
2c44ac299d ENH: add bitSet::operator() for predicate use (as per HashSet) 2018-11-08 11:34:02 +01:00
9c84753e02 DOC: Updated header - see #875 2018-10-16 15:26:55 +01:00
57910399e3 DOC: Added reference to header files. Fixes #1038 2018-10-16 15:24:28 +01:00
150b1d22bb ENH: Added warning if using an isotropic assumption with an anisotropic thermal conductivity 2018-10-16 15:04:38 +01:00
0d29257a6d STYLE: use vtk::surfaceWriter instead of sampleSurface version 2018-10-16 14:49:56 +02:00
c73dcc34f0 TUT: update foamToVTK usage 2018-11-12 01:42:20 +01:00
8bf5d2747d TUT: Cleaned some forceCoeffs usages 2018-10-16 08:40:23 +01:00
aafbb6723f BUG: wmkdepend sometimes throws (closes #1036)
- local token shifting was missing when getting the next file chunk
  (while in the middle of parsing that text).

  As well as adding the correct shifting, also tag the local buffer
  with nullptr when it is done. Be extra paranoid and check the
  raw buffer range before passing off to std::string.
2018-10-10 15:33:35 +02:00
2b42076d58 ENH: restructuring of foamToEnsight code
- align with foamToVTK code base
2018-10-09 21:28:53 +02:00
89cca8578c ENH: rewrite of foamToVTK to include parallel output (#926)
- Default format is now XML binary (base64) instead of legacy format.
  The old -xml option is redundant and ignored.
  The new -legacy option can be used to force legacy output instead.

- Polyhedral decomposition is now off by default (old -poly is ignored).
  The option -poly-decomp forces decomposition of polyhedrals into
  primitive shapes.

- reduced memory footprint by reading and converting fields
  successively.

- Creation of symlinks to processor files is no longer required or
  desired. The old -noLinks option is ignored.

- Ignore -useTimeName option. Always number according to timeIndex.
2018-10-09 20:00:55 +02:00
8cff734abc ENH: improvements for ensightWrite function object (issue #926)
- align input parameters and some of the behaviour with vtkWrite

  The output is now postProcessing/<name> for similar reasoning as
  mentioned in #866 - better alignment with other function objects, no
  data collision with foamToEnsight output.

- separate controls for internal and boundary meshes

- can restrict conversion based on zone names, enclosing volumes,
  bounding box.
2018-10-09 18:22:40 +02:00
4f2ec88d24 ENH: improvements to the parallelization of ensightCloud output
- communication mode is now selectable (default is blocking)

- eliminate serial-only version as being redundant
2018-10-10 10:32:14 +02:00
e4fac35d60 ENH: cleanup ensightMesh method names and handling of internal vs boundary
- this removes the old 'magically' means of suppressing the internal
  mesh in favour of specifying it directly.
2018-10-09 17:49:15 +02:00
42bb497084 ENH: improvements for vtkWrite function object (issue #926)
- parallel output.

  The output is now postProcessing/<name> for similar reasoning as
  mentioned in #866 - better alignment with other function objects, no
  collision with foamToVTK output.

- align the input parameters with those of vtkCloud so that we can
  specify the ASCII precision and the padding width for the output
  file names as well.

- emit TimeValue field, support file series generation

- support internal or boundary meshes, combining the result into a vtm
  file.

- can restrict conversion based on zone names, enclosing volumes,
  bounding box
2018-10-09 15:52:52 +02:00
4b7c21bc3c BUG: foamNewSource - corrected Make/options for app mode. Closes #1006 2018-10-09 09:47:54 +01:00
ac886d054f Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2018-10-08 15:40:45 -07:00
4c2af2bb1e BUG: Correct initialization for psi and mu for solidThermo 2018-10-08 15:40:12 -07:00
2fb382bf8a ENH: multiple zone selection for fvMeshSubsetProxy (#973)
- handle tmp fields in interpolate methods

- special method interpolateInternal() for creating a volume field
  with zero-gradient treatment for patches from an internal field.

  This method was previously also called interpolate(), but that
  masked the ability to subset the internal field only.

  Ensight output needs the volume field:
      uses interpolateInternal().

  VTK output has separate handling of internal and patch fields:
      uses interpolate().

ENH: added fvMeshSubset mesh() method for baseMesh or subMesh.

- simplies coding when the fvMeshSubset may or may not be in active use.

ENH: update foamToEnsight to use newer methods in wrapped form

- static interpolate functions with renaming for manual use with
  fvMeshSubset (when fvMeshSubsetProxy may be too limiting in
  functionality)
2018-10-02 17:06:44 +02:00
94951939d8 Merge remote-tracking branch 'origin/develop' into develop 2018-11-07 18:27:37 +01:00
b053c36a7b COMP: missing files 2018-11-07 18:27:13 +01:00
816674e9d6 ENH: More general approach to momentum source direction for
the actuation disk FO
2018-11-07 09:09:17 -08:00
1ea7aa45f5 STYLE: make dictionary error more descriptive (#1065) 2018-11-07 15:16:14 +01:00
5f556ffb4a ENH: make sourceInfo sub-dictionary optional for topoSet (#1060)
- helps reduce clutter in the topoSetDict files.

  Caveats when using this.

  The older specification styles using "name" will conflict with the
  set name. Eg,

    {
        name    f0
        type    faceSet;
        action  add;
        source  patchToFace;
        sourceInfo
        {
            name   inlet;
        }
    }

    would flattened to the following
    {
        name    f0
        type    faceSet;
        action  add;
        source  patchToFace;
        name   inlet;
    }
    which overwrites the "name" used for the faceSet.

    The solution is to use the updated syntax:

    {
        name    f0
        type    faceSet;
        action  add;
        source  patchToFace;
        patch   inlet;
    }
2018-11-07 10:33:36 +01:00
6090faedef ENH: additional topoSources, and consistency changes (#1060)
- faceBitSet, pointBitSet and faceBoolSet (similar to cellBitSet)
  * allows topo sources in a wider variety of places.
  * With copy or move constructors.

- cylinderToPoint, searchableSurfaceToFace, searchableSurfaceToPoint,
  sphereToFace, sphereToPoint sources

- optional innerRadius for sphere and cylinder sources to treat as hollow.

- support "sets" as well as "set" for cellToCell, faceToFace... sources.

  * convenience and avoids writing the set during processing.
2018-11-06 18:25:05 +01:00
644c0f4a86 ENH: make dictionary of topoSet box sources consistent with searchableBox 2018-11-06 13:25:56 +01:00
72ae121558 STYLE: make dictionary error more descriptive (#1065) 2018-11-07 15:16:14 +01:00
537e8bf9e0 ENH: consolidate OpenFOAM field names (#926)
- Standard known field types in Foam::fieldTypes namespace
2018-11-06 16:52:39 +01:00
414d78a32c STYLE: include gcc/clang version in top-level Allwmake 2018-11-06 17:13:49 +01:00
9b7ec7180f ENH: make checkITstream methods public (dictionary, entry)
- permits use of these checks for routines wishing to handle their own
  logic.
2018-11-06 10:06:25 +01:00
a7a346b206 STYLE: indentation for FatalIOErrorInFunction calls 2018-11-06 09:49:22 +01:00
2fc1a1692b CONFIG: adjust handling of PETSc environment (-force option) 2018-11-06 09:01:40 +01:00
f5baa9a583 ENH: extend globalIndex toGlobal methods
- now applicable to labelLists.

Note:
  in some situations it will be more efficient to use
  Foam::identity() directly. Eg,

     globalIndex globalCells(mesh.nCells());
     ...
     labelList cellIds
     (
         identity(globalCells.localSize(), globalCells.localStart())
     );
2018-11-05 16:23:33 +01:00
dfb652bcac ENH: findRefCell: initialise to -1 if not needed. Fixes #988. 2018-11-05 12:12:25 +00:00
c84390ab13 BUG: uniformFixedValue: missing autoMap, rmap. See #1059. 2018-11-05 11:33:16 +00:00
50baac3c45 ENH: construct string types from Istream now explicit (#1033)
- this helps for trapping unguarded dictionary lookups.
2018-11-03 20:24:34 +01:00
552682ec03 SUBMODULE: updated to avoid implicit construction of word/fileName etc 2018-11-03 20:32:39 +01:00
53b9961887 STYLE: remove unused variables 2018-11-03 17:51:02 +01:00
6043c9621d STYLE: accept "solver" or "motionSolver" without complaint
- The change from "solver" to "motionSolver" has not been
  applied consistently for all types of motion solvers.
2018-11-03 17:25:51 +01:00
aa0f2e0d9b STYLE: accept std::string for ISstream::getLine 2018-11-03 17:09:23 +01:00
fd54070c3a BUG: eof errors in the STARCD, VTK file reader (#1059)
- previously simply read files until the input stream went bad and no
  more lines could be read.  With the more stringent checking of
  values read (commit 0ce7e364a4) this approach causes problems.

  Use the underlying tokenizer instead to decide about termination.
2018-11-03 15:46:37 +01:00
1f9533ed5c COMP: avoid ternary mismatch in PatchFunction1
- SubField<vector> vs Field<vector>
2018-11-02 18:36:14 +01:00
b273241984 STYLE: Minor code formatting change 2018-11-02 11:23:04 +00:00
f5af16d968 ENH: extractEulerianParticles - refactoring and robustness improvements 2018-11-02 11:22:17 +00:00
8bf7a522e7 BUG: Corrected setting of cloud name 2018-11-02 11:20:07 +00:00
7cb51f5b98 ENH: limit vtk floatField range (fixes #1055)
- for space-savings the VTK fields are normally written as 'float'
  rather than double. When a double field contains very large values,
  these can result in a overflow when converted to float.

  Now trap these with the appropriate numeric limits.
  No warning when these values are clipped: it should be readily
  apparent from the output.

ENH: handle symmTensor component swapping directly on VTK output.

- use VTK output routines in vtkSurfaceWriter to benefit from the
  above changes
2018-11-01 17:58:36 +00:00
0ce7e364a4 ENH: improve read handling of bad streams #1033
- a failed attempt to read a value (eg, word, label, scalar) from a
  stream now always provokes a FatalIOError.
  This helps avoid some difficult to trace input errors.
2018-11-01 15:59:25 +00:00
3f017a01c0 TUT: syntax typo (#1059) 2018-11-01 14:42:37 +00:00
aa7cce912c STYLE: eliminate unnecessary DIY version of cellPoints(label) 2018-11-01 14:23:21 +00:00
3366a16b35 ENH: pass through format options from sampledSurface to proxy writers
- preliminary work to #1057

- add dictionary selectable format (ascii|binary) to
  VTKsurfaceFormat, VTPsurfaceFormat
2018-11-01 14:09:53 +00:00
30dcac006f COMP: Allwmake: make -q work 2018-11-01 14:12:52 +00:00
097e54a74f BUG: isoSurfaceCell: pre-filtering of cells misses lopping off a corner. Fixes #1062. 2018-11-01 13:06:06 +00:00
bde7d4bb6c Merge branch 'feature-topoSet-improvements' into 'develop'
Feature topo set improvements (issue #1060)

See merge request Development/OpenFOAM-plus!216
2018-11-01 11:12:12 +00:00
8937a808ed STYLE: allow "centre" for sphere without warnings 2018-11-01 09:57:22 +00:00
26f6f4257a STYLE: createBafflesDict: typo in comment 2018-10-31 13:55:06 +00:00
3cb12d2d9c ENH: PatchFunction1: have 'sampled' type.
type sampled is the equivalent of 'mappedField' bc
functionality - it samples a registered field on a
different region/patch/cells.
2018-10-31 13:37:11 +00:00
192e2eeb9d BUG: tutorials: fix tutorials for 1812. See #1059. 2018-10-31 12:08:55 +00:00
8b826a9b51 ENH: new searchableSurfaceToCell source (#1060) 2018-10-31 10:36:22 +00:00
fbd26c4fe0 ENH: new special purpose bitSet-based topoSet (#1060) 2018-10-31 10:36:22 +00:00
b3156b0d0f ENH: allow changing verbosity of topoSetSource (#1060)
- make topoSet set/unset methods virtual to allow overloading
2018-10-31 09:22:58 +00:00
5f91007d4a ENH: twoSimpleRotors: missing value field 2018-10-30 16:48:05 +00:00
0048b05fdf ENH: PatchFunction1: backwards compatibility. See #1046. 2018-10-30 15:13:23 +00:00
7325e3ac7d ENH: topoSetSource::SUBTRACT enum action (#1060)
- old 'DELETE' enum was easily confused with 'REMOVE', which removes
  the set, not the elements from the set.

- provide corresponding subtractSet() method

STYLE: HashSet set/unset instead of insert/erase methods in topoSetSource

- simplifies switching to/from bitSet storage
2018-10-30 15:09:44 +00:00
04a985ccb3 ENH: ConstantField: allow nonuniform. See #1046. 2018-10-30 13:37:54 +00:00
6f2376a649 ENH: ConstantField: allow 'constant' keyword. See #1046. 2018-10-30 13:26:23 +00:00
966eed302e BUG: subsetMesh: mapping topoSets. Fixes #1053. 2018-10-30 12:43:30 +00:00
f87496b35d ENH: mappedPatchBase: short circuit when sampling own mesh. Fixed when doing #1046. 2018-10-30 12:10:28 +00:00
9b638f9a71 ENH: distinguish between cell/face/point topoSetSource (#1060)
- add intermediate classes topoSetCellSource, topoSetFaceSource,
  topoSetPointSource and corresponding New() factories
2018-10-30 12:01:36 +00:00
9a87a043d6 ENH: consistency updates for patchToFace topoSetSource (#1060)
- Support specification with "patches" and "patch" keywords
  (similar to zone selection). Keyword "name" for compatibility.
2018-10-30 12:01:36 +00:00
de1832abdd ENH: consistency update for box topoSetSources (#1060)
- "boxes" has precedence over "box" (similar to treatment of "zones"
  vs "zone")
2018-10-30 12:01:36 +00:00
50fe195374 ENH: use "origin" for searchable sphere etc. (#1060)
- replaces "centre", using the same keyword as other objects
  (eg, plane, rotatedBox, coordinateSystem etc).
2018-10-29 15:51:05 +00:00
f2ef995113 ENH: checkMesh: pass by reference. See #755. 2018-10-29 15:08:52 +00:00
ccafd3cd30 ENH: overset: insert cellDisplacement into suppressed fields. See #1026. 2018-10-29 14:37:13 +00:00
c2e58dca64 ENH: support multiple zones for topo set sources (#1060)
- uses the keywords 'zones' and 'zone' to avoid potential conflicts
  with a named topoSet action, but accepts 'name' for compatibility.
2018-10-29 12:54:30 +00:00
3be48a677c ENH: snappyHexMesh: update main snappyHexMeshDict. See #1031. 2018-10-17 12:04:53 +01:00
e2961e9e41 Merge branch 'feature-patchFunction1' into 'develop'
Feature patch function1

See merge request Development/OpenFOAM-plus!215
2018-10-29 09:44:31 +00:00
c20b12b62f Feature patch function1 2018-10-29 09:44:31 +00:00
f16c417fff CONFIG: mismatch in keyword for singleProcessorFaceSets
- catch some dictionary entries from pre-develop branch
2018-10-19 22:18:06 +02:00
f865fb432f TUT: missing semi-colons 2018-10-19 21:48:31 +02:00
6ba6d7466d ENH: general consistency and documentation update for surface writers 2018-10-19 19:26:05 +02:00
d63b4cd4f4 ENH: minor changes to rationalize sampledSurface
- make hasFaceId a top-level virtual method and remove keepIds
  equivalent from sampledTriSurfaceMesh. This makes the property
  available without casting.

- New sampling type 'none'.
  Can be used to temporarily disable a sampling surface definition,
  or to provide boilerplate for overwriting later.
2018-10-19 16:02:44 +02:00
b76f2421dc STYLE: default construct/assignment for mergedSurf
COMP: fix incorrect reference in meshedSurfRef
2018-10-10 19:08:27 +02:00
07dafe7b0b STYLE: use range-for when looping dictionary entries.
- as part of the cleanup of dictionary access methods (c6520033c9)
  made the dictionary class single inheritance from IDLList<entry>.

  This eliminates any ambiguities for iterators and allows
  for simple use of range-for looping.

  Eg,
      for (const entry& e : topDict))
      {
          Info<< "entry:" << e.keyword() << " is dict:" << e.isDict() << nl;
      }

   vs

      forAllConstIter(dictionary, topDict, iter))
      {
          Info<< "entry:" << iter().keyword()
              << " is dict:" << iter().isDict() << nl;
      }
2018-10-19 13:08:24 +02:00
4e04c1966f ENH: use dictionary::get<word>() instead of lookup() in a few places 2018-10-19 09:11:31 +02:00
4ad73873af STYLE: use dictionary writeEntry for output 2018-10-18 12:57:32 +02:00
3c5fffcd1c STYLE: simplify read/write coding for some thermophysicalModels 2018-10-18 12:57:32 +02:00
3b74512231 ENH: cleanup of Enum class
- more dictionary-like methods, enforce keyType::LITERAL for all
  lookups to avoid any spurious keyword matching.

- new readEntry, readIfPresent methods

- The get() method replaces the now deprecate lookup() method.

- Deprecate lookupOrFailsafe()
  Failsafe behaviour is now an optional parameter for lookupOrDefault,
  which makes it easier to tailor behaviour at runtime.

- output of the names is now always flatted without line-breaks.
  Thus,

     os << flatOutput(someEnumNames.names()) << nl;
     os << someEnumNames << nl;

  both generate the same output.

- Constructor now uses C-string (const char*) directly instead of
  Foam::word in its initializer_list.

- Remove special enum + initializer_list constructor form since
  it can create unbounded lookup indices.

- Removd old hasEnum, hasName forms that were provided during initial
  transition from NamedEnum.

- Added static_assert on Enum contents to restrict to enum or
  integral values.  Should not likely be using this class to enumerate
  other things since it internally uses an 'int' for its values.

  Changed volumeType accordingly to enumerate on its type (enum),
  not the class itself.
2018-10-18 12:57:32 +02:00
f2c78362e7 CONFIG: default to using logical value for cwd()
- this helps for many cases outlined in issue #1007, but can also be
  useful when simply using symlinks for shorter or reorganized
  directory structures.
2018-10-18 08:05:44 +02:00
6e9520d3c1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-10-17 10:29:34 -07:00
5daa38d5b4 ENH:
Update of overRhoPimpleDyMFoam and overInterDyMFoam solvers.
Adding corresponding tutorials with best possible settings
The main effort was put on reducing pressure spikes as the
stencil change with hole cells on the background mesh.
2018-10-17 10:10:06 -07:00
14a39405c2 ENH: simple dataCloud function object (issue #1044)
- writes positions and a single field (eg, diameter) in plain ASCII files,
  suitable for importing in a spreadsheet or manipulation with
  scripting tools.

- code integrated from
  https://develop.openfoam.com/Community/OpenFOAM-addOns
2018-10-17 17:37:23 +02:00
8fabc32539 ENH: simplify objectRegistry access names (issue #322)
New name:  findObject(), cfindObject()
  Old name:  lookupObjectPtr()

      Return a const pointer or nullptr on failure.

  New name:  findObject()
  Old name:  --

      Return a non-const pointer or nullptr on failure.

  New name:  getObjectPtr()
  Old name:  lookupObjectRefPtr()

      Return a non-const pointer or nullptr on failure.
      Can be called on a const object and it will perform a
      const_cast.

- use these updated names and functionality in more places

NB: The older methods names are deprecated, but continue to be defined.
2018-10-17 16:44:10 +02:00
e0255cfff2 ENH: add compareOp for three-way comparison
- similar to the \c <=> operator in C++20.
  Primarily for use when defining cascaded sort function objects.
2018-10-17 09:29:28 +02:00
8b569b16d1 STYLE: logical ops return bool (issue #1043)
- these currently only with bool parameters, but the return value should
  nonetheless always be a bool value:

      andOp(), orOp(), lessOp(), lessEqOp(), greaterOp(), greaterEqOp()

- renamed the unused eqEqOp() to equalOp() for naming consistency with
  the equal() global function.

ENH: equalOp() specialization for scalars

- function object version of the equal() function.
  The default constructor uses the same tolerance (VSMALL),
  but can also supply an alternative tolerance on construction.
2018-10-17 07:59:26 +02:00
0a0fee88a0 STYLE: update fileName docs and minor code cleanup 2018-10-16 23:03:38 +02:00
01737e14e7 BUG: removeFaces: do not remove if inbetween same cells. See #998.
This is the additional fix to make dynamic unrefinement work again.
2018-10-17 09:13:35 +01:00
8d590dd780 STYLE: decompistionConstraint: indentation 2018-10-17 08:55:55 +01:00
03b5870c07 ENH: overset: clean-up interpolation triggering. See #1041. 2018-10-17 08:54:34 +01:00
4cce1d74d2 ENH: overset: do not trigger wall-wall interaction. See #1041. 2018-10-15 14:07:10 +01:00
8e03400635 ENH: snappyHexMesh: force all running; remove excess tutorial. 2018-10-15 11:33:00 +01:00
1eba709319 ENH: Added new fieldExtents function object
Description
    Calculates the spatial minimum and maximum extents of a field

    The extents are derived from the bound box limits after identifying
    the locations where field values exceed the user-supplied threshold
    value.

Usage
    Example of function object specification:

    fieldExtents1
    {
        type        fieldExtents;
        libs        ("libfieldFunctionObjects.so");
        ...
        writeToFile yes;
        log         yes;
        fields      (alpha);
        threshold   0.5;
        patches     ();
    }

    Where the entries comprise:

        Property      | Description              | Required   | Default
        type          | type name: fieldExtents  | yes        |
        writeToFile   | write extents data to file | no       | yes
        log           | write extents data to standard output | no | yes
        internalField | Process the internal field | no       | yes
        threshold     | Field value to identify extents boundary | yes |
        referencePosition | Reference position   | no         | (0 0 0)
        fields        | list of fields to process | yes       |
        patches       | list of patches to process | no       | <all>

    Output data is written to the file \<timeDir\>/fieldExtents.dat

Note
    For non-scalar fields, the magnitude of the field is employed and
    compared to the threshold value.
2018-10-16 13:01:15 +01:00
5d7b2329dd STYLE: use range-for in dictionary internals 2018-10-16 11:36:29 +02:00
77017e58f4 ENH: support token stream checking to entry (issue #762)
- Eg,
    scalar val(-GREAT);

    const entry* eptr = dict.findEntry(k);

    if (eptr)
    {
        val = eptr.get<scalar>();

        // Or
        eptr.readEntry(val);
    }
2018-10-16 11:13:35 +02:00
8a923518a5 STYLE: mark compatibility change in motionSolver keyword
- was "solver" in 1612 and "motionSolver" for later versions
2018-10-16 10:21:33 +02:00
873b2f0a9f STYLE: use explicit dictionary access for dictionaryEntry
- clarifies the meanings of get<T> etc, avoids later ambiguities.

ENH: simplify phaseProperties construction, add input checks
2018-10-16 09:58:49 +02:00
7864672c78 ENH: make cwd() behaviour user-adjustable (issue #1007)
- with the 'cwd' optimization switch it is possible to select the
  preferred behaviour for the cwd() function.

  A value of 0 causes cwd() to return the physical directory,
  which is what getcwd() and `pwd -P` return.
  Until now, this was always the standard behaviour.

  With a value of 1, cwd() instead returns the logical directory,
  which what $PWD contains and `pwd -L` returns.
  If any of the sanity checks fail (eg, PWD points to something other
  than ".", etc), a warning is emitted and the physical cwd() is
  returned instead.

  Apart from the optical difference in the output, this additional
  control helps workaround file systems with whitespace or other
  characters in the directory that normally cause OpenFOAM to balk.
  Using a cleaner symlink elsewhere should skirt this issue.

  Eg,
      cd $HOME
      ln -s "/mounted volume/user/workdir"  workdir
      cd workdir
      # start working with OpenFOAM
2018-10-16 01:30:44 +02:00
50852b3392 CONFIG: improve shell env handling of paths with spaces (#1007, #1008)
- foamCleanPath now only splits the environment variable on ':', which
  allows other directories with spaces or '(..)' etc to pass through
  without major issue.

- The filter arguments are split on whitespace, colons or semi-colons.
2018-10-15 21:37:46 +02:00
5c8a1b746d STYLE: use <case> instead of $FOAM_CASE expansion in more places 2018-10-15 21:19:13 +02:00
c6520033c9 ENH: rationalize dictionary access methods
- use keyType::option enum to consolidate searching options.
  These enumeration names should be more intuitive to use
  and improve code readability.

    Eg,   lookupEntry(key, keyType::REGEX);
    vs    lookupEntry(key, false, true);

  or

    Eg,   lookupEntry(key, keyType::LITERAL_RECURSIVE);
    vs    lookupEntry(key, true, false);

- new findEntry(), findDict(), findScoped() methods with consolidated
  search options for shorter naming and access names more closely
  aligned with other components. Behave simliarly to the
  methods lookupEntryPtr(), subDictPtr(), lookupScopedEntryPtr(),
  respectively. Default search parameters consistent with lookupEntry().

    Eg, const entry* e = dict.findEntry(key);
    vs  const entry* e = dict.lookupEntryPtr(key, false, true);

- added '*' and '->' dereference operators to dictionary searchers.
2018-10-15 16:16:12 +02:00
4f9e45fbab COMP: corrected read* changes from commit 8eddcc072a 2018-10-15 19:20:18 +01:00
19d600472a ENH: auto-detect git in tutorials Alltest 2018-10-12 23:29:16 +02:00
2210134129 COMP: incorrect const (accidental change with 8eddcc072a) 2018-10-12 22:51:48 +02:00
e5c3e7de75 ENH: COMP: handle compiler ambiguities for tmp vs movable references
- seen with gcc-4.9.4, but not with gcc-7

- provide additional constructors from tmp for DimensionedField, FieldField
2018-10-12 18:58:28 +02:00
8eddcc072a ENH: avoid readScalar, readLabel etc from dictionary (#762, #1033)
- use the dictionary 'get' methods instead of readScalar for
  additional checking

     Unchecked:  readScalar(dict.lookup("key"));
     Checked:    dict.get<scalar>("key");

- In templated classes that also inherit from a dictionary, an additional
  'template' keyword will be required. Eg,

     this->coeffsDict().template get<scalar>("key");

  For this common use case, the predefined getXXX shortcuts may be
  useful. Eg,

     this->coeffsDict().getScalar("key");
2018-10-12 08:14:47 +02:00
990d00d40d ENH: additional boolToken token type
- not used by the ISstream parser, but suitable for other parsing
  methods where true/false concept should be distinguishable from
  integer values.

  Only constructed via the token::boolean() static method, not
  directly assignable.
  This avoids any potential ambiguities with label.
2018-10-12 09:09:36 +02:00
fdf19d67a4 Merge branch 'feature-coordinateSystem' into 'develop'
coordinate system improvements

See merge request Development/OpenFOAM-plus!211
2018-10-11 16:32:03 +01:00
9129dbd46f Merge remote-tracking branch 'origin/master' into develop 2018-10-11 11:01:16 +02:00
2dff154862 Merge remote-tracking branch 'origin/develop' into develop 2018-10-11 10:57:49 +02:00
c4542294a8 ENH: more stringent checks for fileName concatenation
- avoids some doubled slashes

STYLE: simplify concatenation of processor directory names
2018-10-11 10:07:11 +02:00
a77ab5d4eb STYLE: relocate distributed flag into ParRunControl
- adjust member order in TimePaths to better packing
2018-10-11 09:12:01 +02:00
f7c85b034b STYLE: clearer handling of argList -case internals (issue #1037) 2018-10-11 08:32:43 +02:00
15747fde6b ENH: overset: on-demand trigger of stencil-update. Fixes #1028. 2018-10-10 17:03:04 +01:00
1933cffffe ENH: support line-breaks in option usage text
- for finer control of the '-help' output text
2018-10-10 14:07:21 +02:00
4645c841ca ENH: coordinateSystem: fix cloning. See #863 2018-10-10 12:40:48 +01:00
c006a10bd8 STYLE: remove unused timeSelector::select static method
- this also removes the '-newTimes' option cruft from appearing
  everywhere. reconstructPar and redistributePar are unaffected by this
  since they define their own -newTimes option independently.
2018-10-09 19:39:02 +02:00
edd93728e2 Partial revert "ENH: add GeometricField constructor for movable internal field"
Compilation problems on older compilers

This reverts commit baf3e931de.
2018-10-09 08:36:28 +02:00
2cd2732fed ENH: avoid change when setting UPtrList twice (issue #1035)
UPtrList::set(const label i, T* ptr);

No-op if the new pointer value is identical to the current content.
This avoid memory management issues.
2018-10-09 08:27:50 +02:00
d2b32fcc84 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-10-08 15:42:19 -07:00
ba40eeec53 BUG: Correct initialization for psi and mu for solid thermo 2018-10-08 15:41:36 -07:00
6eb1f6fefc ENH: searchableSurface: handle multiple surfaces. Fixes #1034 2018-10-08 17:11:37 +01:00
3b77493abc ENH: wordRes matcher method that distinguishes literal vs. regex
- useful for customizing the behaviour of white/black lists depending
  on the type of the match.
2018-10-07 18:30:33 +02:00
8d6f83e666 ENH: isLiteral() method for keyType and wordRe
- same as !isPattern(), but can be more readable.

- add wordRe enum state 'UNKNOWN', which has the identical value as
  'DETECT' but used for a return value.
2018-10-07 17:28:11 +02:00
87cc19de82 STYLE: typo in comment 2018-10-07 17:23:45 +02:00
da10a8e676 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-10-05 08:26:51 -07:00
3eafee43c9 BUG: Correcting compilation error in createFields for
overPimpleDymFoam
2018-10-05 08:24:07 -07:00
efaa9f84be COMP: include fileFormats for paraview plugins 2018-10-05 16:50:23 +02:00
77753021df Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-10-04 09:14:08 -07:00
ba870ef7df ENH: Adding non-interplating fields to createFields for overPimpleDyMFoam 2018-10-04 09:13:22 -07:00
073770ddf2 ENH: dynamicOversetMesh: added debug writing. See #1028. 2018-10-04 14:27:46 +01:00
3e75a3736b STYLE: remove file series handling from foamVtkOutput
- now handled by the vtk::seriesWriter, and with its static methods.
2018-10-02 14:49:11 +02:00
789d261f0e Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-10-01 17:14:39 -07:00
d0c39b0e27 ENH: Changing non-interpolation field in versetFvPatchField
for correct run time reading.
Setting up twoSimpleRotors tutorial for smooth pressure
fluctuations
2018-10-01 17:11:39 -07:00
ebdb227863 ENH: Modifications to overPimpleDyMFoam 2018-10-01 17:05:35 -07:00
496e1cd0d2 STYLE: enforce Cartesian transform (issue #1027)
- searchable surfaces
- pointToPointPlanarInterpolation
- sampled planes
- surfaceMeshConvert, surfaceMeshExport, surfaceMeshImport
2018-10-01 22:55:59 +02:00
b17bcd67b7 ENH: correct suspicious coordinate system conversions (issue #1027)
- arraySet :
     was translate + transform
     now use globalPosition (== transform + translate).

     Explicitly limit to Cartesian coordinate system for clarity.
2018-10-01 17:10:35 +02:00
501326b27a ENH: additional constructor and methods for regionProperties
- can now construct with READ_IF_PRESENT and use count() to determine
  if it was loaded. names() and sortedNames() for a collected overview.
2018-10-01 16:01:02 +02:00
e6a60f2de6 ENH: use intermediate constants for sin/cos in coordinate rotations
- makes an easier overview of the rotation matrix coefficients
  (issue #863).

  Provided as a distinct commit for easier examination of the lines changed.
2018-10-05 00:58:23 +02:00
b9c738dd10 ENH: expose calculation of coordinate rotations as static methods
- improve handling of degenerate cases for the two-axes specification.
2018-10-05 00:49:55 +02:00
95b95d7201 GIT: relocation of coordinate systems/rotation files 2018-10-04 23:46:57 +02:00
baf3e931de ENH: add GeometricField constructor for movable internal field
- the movable type is List&& or Field&&
2018-10-04 11:14:04 +02:00
8548009eee ENH: generalize instant to be templated, movable, etc
- allows reuse for other purposes
2018-10-03 14:05:45 +02:00
6c91048e8b ENH: fileName hasPath(), removePath() methods
- improved move constructors/assignments for fileName, string, etc
2018-10-03 14:05:45 +02:00
6697bb4735 ENH: improve, simplify, rationalize coordinate system handling (issue #863)
Previously the coordinate system functionality was split between
coordinateSystem and coordinateRotation. The coordinateRotation stored
the rotation tensor and handled all tensor transformations.

The functionality has now been revised and consolidated into the
coordinateSystem classes. The sole purpose of coordinateRotation
is now just to provide a selectable mechanism of how to define the
rotation tensor (eg, axis-angle, euler angles, local axes) for user
input, but after providing the appropriate rotation tensor it has
no further influence on the transformations.

--

The coordinateSystem class now contains an origin and a base rotation
tensor directly and various transformation methods.

  - The origin represents the "shift" for a local coordinate system.

  - The base rotation tensor represents the "tilt" or orientation
    of the local coordinate system in general (eg, for mapping
    positions), but may require position-dependent tensors when
    transforming vectors and tensors.

For some coordinate systems (currently the cylindrical coordinate system),
the rotation tensor required for rotating a vector or tensor is
position-dependent.

The new coordinateSystem and its derivates (cartesian, cylindrical,
indirect) now provide a uniform() method to define if the rotation
tensor is position dependent/independent.

The coordinateSystem transform and invTransform methods are now
available in two-parameter forms for obtaining position-dependent
rotation tensors. Eg,

      ... = cs.transform(globalPt, someVector);

In some cases it can be useful to use query uniform() to avoid
storage of redundant values.

      if (cs.uniform())
      {
          vector xx = cs.transform(someVector);
      }
      else
      {
          List<vector> xx = cs.transform(manyPoints, someVector);
      }

Support transform/invTransform for common data types:
   (scalar, vector, sphericalTensor, symmTensor, tensor).

====================
  Breaking Changes
====================

- These changes to coordinate systems and rotations may represent
  a breaking change for existing user coding.

- Relocating the rotation tensor into coordinateSystem itself means
  that the coordinate system 'R()' method now returns the rotation
  directly instead of the coordinateRotation. The method name 'R()'
  was chosen for consistency with other low-level entities (eg,
  quaternion).

  The following changes will be needed in coding:

      Old:  tensor rot = cs.R().R();
      New:  tensor rot = cs.R();

      Old:  cs.R().transform(...);
      New:  cs.transform(...);

  Accessing the runTime selectable coordinateRotation
  has moved to the rotation() method:

      Old:  Info<< "Rotation input: " << cs.R() << nl;
      New:  Info<< "Rotation input: " << cs.rotation() << nl;

- Naming consistency changes may also cause code to break.

      Old:  transformVector()
      New:  transformPrincipal()

  The old method name transformTensor() now simply becomes transform().

====================
  New methods
====================

For operations requiring caching of the coordinate rotations, the
'R()' method can be used with multiple input points:

       tensorField rots(cs.R(somePoints));

   and later

       Foam::transformList(rots, someVectors);

The rotation() method can also be used to change the rotation tensor
via a new coordinateRotation definition (issue #879).

The new methods transformPoint/invTransformPoint provide
transformations with an origin offset using Cartesian for both local
and global points. These can be used to determine the local position
based on the origin/rotation without interpreting it as a r-theta-z
value, for example.

================
  Input format
================

- Streamline dictionary input requirements

  * The default type is cartesian.
  * The default rotation type is the commonly used axes rotation
    specification (with e1/e2/3), which is assumed if the 'rotation'
    sub-dictionary does not exist.

    Example,

    Compact specification:

        coordinateSystem
        {
            origin  (0 0 0);
            e2      (0 1 0);
            e3      (0.5 0 0.866025);
        }

    Full specification (also accepts the longer 'coordinateRotation'
    sub-dictionary name):

        coordinateSystem
        {
            type    cartesian;
            origin  (0 0 0);

            rotation
            {
                type    axes;
                e2      (0 1 0);
                e3      (0.5 0 0.866025);
            }
        }

   This simplifies the input for many cases.

- Additional rotation specification 'none' (an identity rotation):

      coordinateSystem
      {
          origin  (0 0 0);
          rotation { type none; }
      }

- Additional rotation specification 'axisAngle', which is similar
  to the -rotate-angle option for transforming points (issue #660).
  For some cases this can be more intuitive.

  For example,

      rotation
      {
          type    axisAngle;
          axis    (0 1 0);
          angle   30;
      }
  vs.
      rotation
      {
          type    axes;
          e2      (0 1 0);
          e3      (0.5 0 0.866025);
      }

- shorter names (or older longer names) for the coordinate rotation
  specification.

     euler         EulerRotation
     starcd        STARCDRotation
     axes          axesRotation

================
  Coding Style
================
- use Foam::coordSystem namespace for categories of coordinate systems
  (cartesian, cylindrical, indirect). This reduces potential name
  clashes and makes a clearer declaration. Eg,

      coordSystem::cartesian csys_;

  The older names (eg, cartesianCS, etc) remain available via typedefs.

- added coordinateRotations namespace for better organization and
  reduce potential name clashes.
2018-10-01 13:54:10 +02:00
69f6f63810 ENH: add globalPath() to argList and TimePaths
- simply combines (rootPath()/globalCaseName())
2018-09-28 15:24:59 +02:00
911ea1087d meshSearch: Prevent hang in calculation of line-boundary intersections
This fix changes how the intersections loop ignores previously
intersected faces. It now marks them by their index so that subsequent
iterations ignore them.

Before this change, after an intersection was found the start point was
advanced by a small amount to move the past the intersection. The
problem with this was if multiple boundary faces or the end point were
in close proximity to the intersection then the move forward might span
them. This could lead to intersections being missed or counted multiple
times, in some cases indefinitely.

Based on a patch contributed by Mattijs Janssens
Resolves bug report https://bugs.openfoam.org/view.php?id=1147
2018-09-28 12:26:17 +01:00
b937a531bd STYLE: Allrun: use suffix option 2018-10-03 09:39:27 +01:00
c0460d3015 Merge remote-tracking branch 'Customer-VWG/wp3-directional-refinement' into develop 2018-10-04 13:43:33 +01:00
8855fdeb40 Merge branch 'wp3-directional-refinement' of develop.openfoam.com:/Customer-VWG/OpenFOAM-plus into wp3-directional-refinement 2018-10-04 12:07:36 +01:00
8076963c68 ENH: snappyHexMesh: directional smoothing. See #1031 2018-10-04 12:03:53 +01:00
16b7707c31 ENH: snappyHexMesh: directional smoothing. See #1031 2018-10-04 12:03:53 +01:00
6627515838 ENH: fieldMinMax function object - updated for case where there are no cells on a local processor, e.g. CHT 2018-10-03 13:06:31 +01:00
6141575532 BUG: cellCellStencil: use before mesh.update. Fixes #1028. 2018-10-03 09:35:13 +01:00
8e82e7b8e8 ENH: heatTransfer: allow free patch to be moved. See #1026. 2018-10-01 09:51:24 +01:00
d92d77cc84 Merge remote-tracking branch 'origin/master' into develop 2018-09-28 13:20:41 +02:00
4a61042f3f ENH: add column access and other methods for Tensor
- Can now retrieve or set a column/row of a tensor.
  Either compile-time or run-time checks.

  Get
     t.col<1>();   t.col(1);
     t.row<1>();   t.row(1);

  Set
     t.col<1>(vec);   t.col(1,vec);
     t.row<1>(vec);   t.row(1,vec);

  The templated versions are compile-time checked

     t.col<3>();
     t.col<3>(vec);

  The parameter versions are run-time checked

     t.col(3);
     t.col(3,vec);

ENH: provide named access to tensor/tensor inner product as inner()
2018-09-28 11:20:31 +02:00
2d5f77f2dd ENH: add invTransform in transform.H 2018-09-28 09:53:45 +02:00
a6473dca33 STYLE: minor coding/comments cleanup for transform, transformList 2018-09-28 09:29:12 +02:00
dde9ef4712 BUG: bad transform for transformList (fixes #1024) 2018-09-28 08:47:08 +02:00
1135f1572d TUT: Removed unused/misleading entries - see #1020 2018-09-27 16:34:44 +01:00
731ebc9126 ENH: Particle interaction lists - do not include partially open wall faces. See #957 2018-09-27 12:51:13 +01:00
0f4c6572bc ENH: polyPatch - added areaFraction method
Helper function to calculate the current face area vs the area returned
from the current point locations.  Useful for ACMI-type baffles where we
scale the face areas without moving points.
2018-09-27 12:46:48 +01:00
64c3e484bb STYLE: add nBoundaryFaces() method to primitiveMesh
- nBoundaryFaces() is often used and is identical to
  (nFaces() - nInternalFaces()).

- forward the mesh nInternalFaces() and nBoundaryFaces() to
  polyBoundaryMesh as nFaces() and start() respectively,
  for use when operating on a polyBoundaryMesh.

STYLE:

- use identity() function with starting offset when creating boundary maps.

     labelList map
     (
         identity(mesh.nBoundaryFaces(), mesh.nInternalFaces())
     );

  vs.

     labelList map(mesh.nBoundaryFaces());
     forAll(map, i)
     {
         map[i] = mesh.nInternalFaces() + i;
     }
2018-09-27 10:17:30 +02:00
3a641275d3 COMP: Allwmake: pass through targetType 2018-09-26 14:32:32 +01:00
89342b6ff3 COMP: Allwmake: pass through targetType 2018-09-26 14:32:32 +01:00
b23375ab3d Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2018-09-25 12:49:09 -07:00
8794b1955a BUG: Fix ticket 792. pRefCelli is set to -1 for
chtMultiRegionSimpleFoam
2018-09-25 12:48:04 -07:00
e7a6095aaf ENH: avoid duplicate bookkeeping of rotation tensors in rotorDiskSource 2018-09-24 17:55:37 +02:00
dcc1dc1383 ENH: cylindricalCS is now in radians only (issue #863)
- this provides internal consistency and allows direct use of the
  coordinate angle with sin(), cos() functions.
  It eliminates potential issues that could otherwise arise from
  alternative user input.

  Eg, in mixerFvMesh it would have previously been possible to specify
  the coordinate system to use degrees or radians, but these units were
  not checked when determining the tangential sweep positions.

NOTE: this may represent a breaking change if user coding has been
relying on cylindrical coordinate system in degrees.
2018-09-24 11:31:04 +02:00
c4ffd32086 BUG: Corrected viscosity field names. Fixes #1017 2018-09-21 16:00:28 +01:00
923986793f BUG: kEpsilonLopesdaCosta model - loop was using the incorrect index 2018-09-21 13:44:17 +01:00
aa0f8da54b COMP: mapDistribute: do not make explicit 2018-09-20 15:07:04 +01:00
d0da21fe90 ENH: allow new patch names in subsetMesh (issue #1019)
Previously had 3 possibilities for handling exposed internal faces

  1. use default "oldInternalFaces"
  2. specify -patch, to use the specified (existing) patch
  3. specify -patches, to use the geometrically closest patches

Now relaxed the restriction on -patch to allow specification of a new
(not yet existing) patch name. This improves flexibility, but won't
catch typing mistakes.

Harmonize behaviour of -patches and -patch. When -patches is used to
specify a single, non-regex patch name, it now behaves identically to
-patch. Since the getList handling for options already allows special
treatment for single parameter lists, the following will work
identically:

      subsetMesh -patch  patch0
      subsetMesh -patches patch0
      subsetMesh -patches '( patch0 )'

In the future it might be reasonable to fully combine the behaviour of
'-patch' and '-patches' and treat them as aliases for each other.

ENH: support subsetMesh on a cellZone.

- when the '-zone' option is specified, the command argument is treated
  as the name (or names) of cellZones to be selected instead of as the
  name of the cellSet.

  The command argument can be a single word, regex, or list of
  word/regex.
  Eg,

      subsetMesh -zone -patch mypatch  mixer
      subsetMesh -zone -patch mypatch  '(mixer "moving.*" )'

STYLE: simplify set handling and other code cleanup in subsetMesh
2018-09-25 17:18:27 +02:00
54457c68b6 Merge remote-tracking branch 'origin/master' into develop 2018-09-21 16:01:16 +01:00
39c1fbedcd STYLE: consistency update
- handling of cloud coordinates/positions between mapFields, mapFieldsPar
2018-09-19 23:11:31 +02:00
eda13117e4 STYLE: explicitly use degrees in arcEdge coordinate system (#1015)
- safeguard against any change in the default in cylindricalCS
2018-09-19 22:32:29 +02:00
6cd953ff99 STYLE: report API number with the build information
Using: OpenFOAM-plus (see www.OpenFOAM.com)
    Build: plus-7ab57cc5d014 (OPENFOAM=1807)
    Arch:  LSB;label=32;scalar=64

- This can be useful for development versions, or when the version
  at build time uses some other naming scheme (#1010)
2018-09-19 21:51:37 +02:00
7ab57cc5d0 DEFEATURE: remove CloudToVTK function object (issue #985)
- superseded by the vtkCloud function object, which provides
  significantly more functionality and more versatile output
  (using the vtp format).
2018-09-19 21:13:13 +02:00
0c0bc572e4 ENH: mapDistribute: extra constructor. Used in #284. 2018-09-19 17:16:29 +01:00
5cd75ac7dc BUG: surfaceInertia: undo incorrect commit df3a560d 2018-09-19 17:13:42 +01:00
dce9d9e05c STYLE: provide get() method in Enum for consistency with dictionary methods 2018-09-19 16:26:19 +02:00
12c903bba8 ENH: define nameOp<>, typeOp<>, sizeOp<> functors (issue #1013) 2018-09-19 15:32:04 +02:00
47519b2e04 ENH: new sampling type "surfaceCut"
- an alternative to distanceSurface (with distance zero) that uses
  a cell cutting approach instead of an iso-surface.
2018-09-18 08:40:46 +02:00
4aa94bd1d7 ENH: improve distanceSurface handling (issue #1012)
- 'signed' input parameter only mandatory for distance > 0.
  A distance <= 0 is always signed and the input parameter is ignored.

- Use normal distance when distance == 0. This has no effect when
  the surface has no open edges, but improves on rounding issues
  around the zero crossing when the surface has open edges.

  This may still need future revisiting.
2018-09-19 14:18:57 +02:00
201fdf87d1 STYLE: relocate some vtk part handling from conversion to fileFormats
- these parts work with a polyMesh (don't need fvMesh)
2018-09-17 10:12:48 +02:00
03eec4a5db ENH: code improvements for vtkCloud function object (issue #926)
- use parallel list writing, beginDataArray methods.

- use static_assert to restrict conversion of non-label integral types

- cache .vtp.series information by fileName instead of by cloud name.
  This issues if the output directory changes, and simplifies code.

ENH: emit TimeValue in files generated by vtkCloud

- additional information for passing to ParaView

ENH: vtkCloud output to postProcessing/ (issue #866)

- better alignment with other function objects, no collision with
  foamToVTK output.
2018-09-17 09:36:00 +02:00
ed62ed1b19 ENH: parallel and xml output for surface vector fields (issue #926)
-  implemented as vtk::surfaceFieldWriter, which replaces
   the vtk::writeSurfFields function.
2018-09-27 13:38:31 +02:00
6f06ce6e02 ENH: parallel and xml output for vtk::lagrangianWriter (issue #926) 2018-09-17 11:35:17 +02:00
9d8af49c16 ENH: parallel and xml output for surfaces (issue #926) 2018-10-16 13:50:13 +02:00
9973c378b9 ENH: refactor cutting-plane cell selection
- avoid duplicate code by relocating cellZone selection and bounding box
  sub-selection into cuttingPlane and cuttingSurfaceBaseSelection.
  Allows reuse by inherited classes (sampledPlane, surfMeshSamplePlane).
2018-09-14 11:18:44 +02:00
a8ef9e9742 ENH: make cuttingPlane cell walker an algorithm
- takes two general actions:
  1. orient edge in canonical direction (positive gradient) and detect
     any edge intersection.
  2. edge intersection alpha (0-1)

- refactor into a cuttingSurfaceBase intermediate class with the
  actions as templated parameters rather than function pointers. This
  allows the use of lambda functions with captures from the caller.
2018-09-14 09:34:14 +02:00
7cf232ceec STYLE: split up cuttingPlane source files 2018-09-14 09:19:32 +02:00
53b0bb0782 CONFIG: fix odd behaviour in bash completion (issue #1011)
- The test condition

      [ -n "$cur" -a ... ]

  fails if $cur starts with '-le', which bash interprets as a further
  test op. Splitting the test condition solves the problem:

      [ -n "$cur" ] && [ ... ]
2018-09-18 18:25:29 +02:00
df3a560d6d ENH: surfaceInertia: print info for use in RBD. See also #1014. 2018-09-19 14:07:42 +01:00
0b95bb008c ENH: Refactored simpleReactingParcelFoam and added new simpleSprayFoam 2018-09-17 13:40:21 +01:00
c214d30473 ENH: parallel output for vtk::surfaceMeshWriter (#926) 2018-09-13 13:48:14 +02:00
8122a8a70f ENH: orient cut plane faces based on the (oriented) edge gradient
- Since the local edges are oriented according to the gradient,
  they can also be used to determine the correct face orientation.

This generalizes the algorithm for future reuse.
2018-09-12 11:16:30 +02:00
d09b366b3a STYLE: use List, FixedList find(), found() methods in face/triFace 2018-09-13 10:14:52 +02:00
0d5283a6bc ENH: added edge::valid() method
- simple check for unique and non-negative point labels
2018-09-13 09:48:01 +02:00
8d582d0258 BUG: foamLog - corrected for Ubuntu. See #860 2018-09-12 08:42:04 +01:00
32d5030088 BUG: incorrect kahip resolution with absolute paths (closes #1003)
- for installations with central (non-ThirdParty) location for KAHIP
  (eg, spack, EasyBuild)
2018-09-12 08:37:53 +02:00
5f3f101b4e BUG: Doxygen corrections 2018-09-11 12:13:19 +01:00
0e8704defe ENH: solutionControl - control dictionary e.g. PIMPLE now optional. See #1002 2018-09-11 11:25:22 +01:00
ef394e9d99 GIT: missed commit for 9ae4ea6882 2018-09-10 18:34:52 +02:00
1adac97150 ENH: parallel output for vtk::patchWriter (issue #926) 2018-09-10 18:28:55 +02:00
065daa20ae STYLE: incorrect doxygen grouping for vtkCloud function object 2018-09-10 17:22:27 +02:00
9ae4ea6882 STYLE: operator bool conversion for IOstream (issue #1001)
- replaces previous pointer conversion
2018-09-10 15:06:49 +02:00
6f16c6774c STYLE: make volumeType input operator symmetric with output (issue #994)
- uses int, without enclosing brackets.
2018-09-10 14:27:35 +02:00
4ec73897d3 BUG: removeFaces: handle internal faces still using point. Fixes #998. 2018-09-06 17:16:38 +01:00
b00498bac0 ENH: blockMesh: write to specified directory. Fixes #981. 2018-09-05 13:52:23 +01:00
31fbc95f85 BUG: multiSolidBodyMotionSolver: parallel consistent message. Fixes #990. 2018-09-05 13:17:37 +01:00
236684b1b7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-08-30 09:33:05 -07:00
089ca1a632 BUG: Init refCell to -1 instead of 0 for multi regions 2018-08-30 09:26:29 -07:00
e915e46ee1 BUG: tetDecomposer: only faceZonify the triangles of the original face. Fixes #987. 2018-08-30 12:35:59 +01:00
bf43a9d91e ENH: snappyHexMesh: allow medialAxis to shrink 1 or 2 cell thick channel. Fixes #986. 2018-08-30 11:38:38 +01:00
688469d127 BUG: bitSet: extraneous exit. Fixes #984. 2018-08-29 12:50:50 +01:00
76a07d1cd0 ENH: overset: change preference of donor mesh to avoid loops. Fixes #977.
This is not the ultimate fix; it just avoids the loops in cases where
mesh 0 is the background.
2018-08-29 09:22:30 +01:00
d3812b9b69 Merge remote-tracking branch 'origin/master' into develop 2018-08-29 13:51:40 +01:00
98898e7861 BUG: externalWallHeatFluxTemperature - set size of qrPrevious_ before
mapping.  Fixes #983
2018-08-28 15:39:06 +01:00
6c99006fe7 ENH: polyMesh: allow *zones only at faces instance. Fixes #982. 2018-08-27 12:44:37 +01:00
f0cada17e2 ENH: rigidBody: added error checking. 2018-08-27 09:21:38 +01:00
168b246873 ENH: overset: additional debug. See #810. 2018-08-27 09:19:35 +01:00
be96876a18 BUG: mergeMeshes. Use wrong option. See #650. 2018-08-27 09:01:36 +01:00
848f0266eb ENH: timeControl - extended use of time and triggers 2018-08-21 13:09:21 +01:00
74dc8b3ce1 ENH: runTimeControl FO - added action for case that conditions are satisfied 2018-08-21 13:08:58 +01:00
ef615ed17f ENH: runTimeControl valueAverage condition - added start-up iterations option 2018-08-21 12:58:19 +01:00
a3327b3761 STYLE: runTimeControl FO conditions - refactor to use the Log macro 2018-08-21 12:53:29 +01:00
7ffa7bb923 ENH: stateFunctionObject - added helper functions to retrieve object result info 2019-01-21 10:58:39 +00:00
bd79f1d5ab ENH: runTimeControl FO - added new maxDuration condition 2018-08-20 14:04:27 +01:00
e64a87cd8e ENH: runTimeControl FO - added exact window averaging to the averageCondition 2018-08-20 14:03:57 +01:00
8b387961d9 ENH: run-time control clean-up 2018-08-17 16:52:11 +01:00
21d2d7e6c3 ENH: Initial implementation for FO activation by trigger 2018-08-16 12:44:33 +01:00
e7b77c0af6 ENH: parallel output for vtk::internalWriter (issue #926)
- removed vtk::writeField templates. No longer used.
2018-08-13 18:21:45 +02:00
0d2dbaf61b ENH: parallel and xml output for vtk topoSet writers (issue #926)
- introduce lower-level vtk::indirectPatchWriter class
2018-09-17 15:41:58 +02:00
0e47b0717d ENH: vtk::seriesWriter to encapsulate writing file series (issue #926) 2018-10-02 14:06:34 +02:00
42009c168e ENH: vtk::vtmWriter for generating vtkMultiBlockDataSet (.vtm) (issue #926)
- Provides a means of accumulating file entries for generating vtm
  by accumulate blocks, datasets and writing them later.

  Only a single block depth is currently supported and the methods
  are kept fairly simple.
2018-10-02 12:53:01 +02:00
ee0947b693 ENH: vtk::fileWriter base class for geometry/field writers (issue #926)
- Output formats such as vtp, vtu follow a particular internal data
  structure (HEAD, FIELD_DATA, PIECE, CELL_DATA/POINT_DATA) and other
  output conventions. This writer base tracks these expected output
  states internally to help avoid logic errors in the callers.
2018-09-29 13:14:50 +02:00
d837524860 ENH: use some updated vtk output methods 2018-09-17 10:12:48 +02:00
05427217a0 ENH: improvements for foamVtkOutput, foamVtkFormatter (issue #926)
- parallel list output for foamVtkOutput

- simplified '.series' file output

- beginDataArray() method instead of openDataArray() + closeTag()
  since this seems to be the most common use anyhow.
  With an optional argument for leaving the tag open, this works the
  same as openDataArray() which may be deprecated in the future.

- begin/end methods for CellData, PointData, FieldData (commonly used)

- templating parameters for file headers, content version,
  legacy fields. This improves coding robustness and convenience of use.

- use formatter and higher-level methods for legacy output

- attribute quoting character now part of the formatter itself
  instead of as an argument for xmlAttr().
  Toggle with quoting() method.

- pair-wise processing of xml attributes, which also allows them to be
  passed as optional entries when creating an xml tag.

- xmlComment with multiple arguments
2018-09-17 08:59:03 +02:00
19e03f7dd1 ENH: add renumbering support into foamVtuSizing algorithm (issue #926)
- allows cell point labels will use global numbering, but only for
  unmerged points. We'd ideally like to avoid point merging per se,
  and instead use VTK point blanking instead (as required).

  This approach allows parallel collation of the output into a single
  piece directly.
2018-09-17 09:00:51 +02:00
a8e3f06762 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-08-09 15:10:45 -07:00
0be3caec4a ENH: Improving twoRotorTutorial set up 2018-08-09 15:09:56 -07:00
079eb373df ENH: Updating overPimpleDyMFoam solver 2018-08-09 13:33:47 -07:00
4637e4582c ENH: redistributePar: allow nDomains 1 in decomposeParDict. Fixes #924.
Note: this removes the option to reconstruct by setting nDomains to 1.
      You now have to explicitly use -reconstruct to reconstruct.
2018-08-09 15:17:21 +01:00
c1223095c4 COMP: Resolved compiler warnings 2018-08-09 14:40:24 +01:00
9fa4371d9f BUG: overset: newly created interpolated cells are not uptodate. Fixes #968. 2018-08-09 12:51:24 +01:00
68a473106a ENH: overset: read old-time cellTypes to avoid hole->calculated. See #810. 2018-08-09 09:04:38 +01:00
ae36f5f504 ENH: change argList get<> and getList<> from read<>, readList<>
- more consistent with dictionary method naming. The get<> or
  getList<> returns a value, doesn't read into a existing location.
2018-08-09 11:27:36 +02:00
b5162f91fc STYLE: use DynamicList instead of LIFO for managing tags in vtk::formatter 2018-08-09 08:57:48 +02:00
ca5d91239d STYLE: use edgeHashes include
STYLE: use initial hash size 128 instead of 100 in a few places
2018-08-08 23:54:27 +02:00
dd9ecd4988 ENH: add missing Hash function for List/UList (issue #966)
- there were previously no hashing mechanisms for lists so they
  would fall back to the definition for primitives and hash the
  memory location of the allocated List object.

- provide a UList::Hash<> sub-class for inheritance, and also a global
  specialization for UList<T>, List<T> such that the hash value for
  List<List<T>> cascades properly.

- provide similar function in triFace to ensure that it remains
  similar in behaviour to face.

- added SymmHash to Pair, for use when order is unimportant.

STYLE: use string::hash() more consistently

- no particular reason to use Hash<word>() which forwards to
  string::hash() anyhow
2018-08-08 23:54:27 +02:00
82bad81d79 STYLE: use readList mechanism for -funcs option
- allows single or multiple entries
2018-08-08 12:18:35 +02:00
e0f83938ee ENH: ignore -noFunctionObjects option when disabled
- With argList::noFunctionObjects() we use the logic added in
  4b93333292 (issue #352)

  By removing the '-noFunctionObjects' option, we automatically
  suppress the creation of function-objects via Time (with argList
  as a parameter).
  There is generally no need in these cases for an additional

      runTime.functionObjects().off()  statement

  Use the argList::noFunctionObjects() for more direct configuration
  and reduce unnecessary clutter in the -help information.

  In previous versions, the -noFunctionObjects would have been redundant
  anyhow, so we can also just ignore it now instead.
2018-08-08 09:44:28 +02:00
822acaf6ef ENH: make indices for boundBox::add() a templated parameter
- allows use with any container with begin(), end() and where the
  "*iterator" dereference returns a label, which is used for indexing
  into the list of points.
  This container could be labelUList, bitSet, labelHashSet, etc
2018-08-07 22:23:16 +02:00
7bb68b4dea ENH: new cuttingPlane cutting scheme
- takes a direct approach of determining which cells are cut and walks
  the cell faces directly to build the resulting surface.

- better handling of corner cases.
  * Avoids redundant points when the cut passes exactly through a
    mesh point.
  * Supresses generation of duplicates faces when the plane cut
    coincides exactly with a mesh face.

- for severely concave cells where the plane cuts a face multiple times
  there is currently no remedial action taken, except to note the
  failure and unwind the insertion of the corresponding points and
  faces.
2018-08-07 22:23:16 +02:00
544941b961 ENH: support zone and zones for sampled cutting planes, sampledIsoSurface
- rework to use bitSet for more flexibility
2018-08-06 18:45:10 +02:00
cf7bd82c25 STYLE: fix tools/lib-dir -help output 2018-08-07 11:19:10 +02:00
32a332f5f1 ENH: add HashTableOps::values() service function
- extract a list of the HashTable values, optionally sorted.
2018-08-07 20:17:38 +02:00
9160dad6ba COMP: silence compiler warning 2018-08-06 20:44:58 +02:00
881ca2a481 ENH: cyclicACMI: make sure non-overlap is before cyclicACMI 2018-08-06 13:45:02 +01:00
2290b0642e ENH: add list operation findMinMax to return label pair.
- when both min and max are required, this is more efficient than
  traversing the list twice.
2018-08-06 08:46:32 +02:00
bf56b06be2 ENH: add ZoneMesh findIndex with wordRes matcher 2018-08-06 07:00:44 +02:00
1036cf9612 ENH: avoid raw dictionary lookup in functionObjects (issue #762)
Style changes:
    - use lookupObjectRef instead of using const_cast
    - use tmp::New factory
2018-08-04 00:23:18 +02:00
1c354e0906 ENH: avoid raw dictionary lookup in transportModels (issue #762)
Style changes:
    - use lookupObjectRef instead of using const_cast
    - use tmp::New factory
2018-08-04 00:23:18 +02:00
e7c1d46904 ENH: avoid raw dictionary lookup in fvOptions (issue #762)
Style changes:
    - use lookupObjectRef instead of using const_cast
    - use tmp::New factory
2018-08-04 00:23:18 +02:00
de2eed3e7d ENH: additional methods and improvements to plane
- signedDistance() method is like distance() but retains
  the positive/negative sign for the side of the plane.

- the sign() method returns the sign as -1,0,+1 integer for
  classification purposes where it is important to distinguish between
  a zero value and a positive value (eg, for cutting). Optional
  tolerance can be supplied to round for zero.

- refactor and inlined simple and frequently used methods.

- add boundBox faceCentre() method, which can be useful for creating
  clipping planes from a bounding box.
  Relocated treeBoundBox faceNormals to boundBox since they apply
  equally there - the meaning of the faces (x-min, x-max, etc)
  is the same, even if the point addressing for the faces differs.
2018-08-03 23:17:49 +02:00
84e2df4994 ENH: added ZoneMesh indices(), selection() with wordRes matcher
- rationalized code dealing with extraction of name or indices from
  coordinateSystems, polyBoundaryMesh, faBoundaryMesh, fvBoundaryMesh,
  ZoneMesh to use internal implementations that allow direct
  searching/matching without building an intermediate list of names.

- simpler and more efficient handling of patch group matching.
2018-08-03 22:40:19 +02:00
c0c59b9abd ENH: force tetBasePtIs() into existence before isoSurfaceCell cutting loop
- ensures that things stay synchronized when the processor domains
  have unequal looping.
2018-08-03 19:34:26 +02:00
91e2fc4dc7 ENH: add isAOp, isTypeOp functors
- can be used in predicate matching

- getNameOp, getTypeOp for accessing the name() and type() of objects
2018-08-03 15:19:22 +02:00
319e09e32f ENH: avoid blockMesh removal of files for special cases (issue #963)
- do not remove if the dictionary failed to load.
- do not remove if -blockTopology was used.
2018-08-03 14:30:41 +02:00
88e5334a9f ENH: IOobject::selectIO helper method
- centralizes IOobject handling and treatment of alternative locations.
  If an alternative file location is specified, it will be used instead.

- provide decompositionMethod::canonicalName instead of using
  "decomposeParDict" in various places.
2018-08-02 17:39:17 +02:00
f4ae4f7b2c ENH: snappyHexMesh. Added leak-path detection.
Detects connections (during refinement) between
locationsInsideMesh and locationsOutsideMesh and
writes a sampledSet for postprocessing.
2018-08-02 16:39:06 +01:00
0e996431b7 STYLE: relocate STRING_QUOTE macro to macros.H 2018-08-02 16:26:25 +02:00
b056202ecf STYLE: simplify bitSet use in Foam::PatchTools::subsetMap 2018-08-02 09:54:59 +02:00
bafddd77c7 ENH: use binary search for polyBoundaryMesh::whichPatch() (issue #801) 2018-08-02 08:51:49 +02:00
32565b4b39 ENH: make findLower more flexible (issue #960)
- a second template parameter for the comparison value type instead of
  ListType::const_reference allows more generic comparison predicates.
2018-08-02 08:48:27 +02:00
a1345b7e83 ENH: improve syncTools handling of PackedList and bitSet
- create a subset copy for sending on the processor patches instead of
  a List of unsigned ints. Reduces memory overhead and data transfer
  amount.
2018-08-01 21:55:45 +02:00
d8c0167ea8 STYLE: ensure that emptyLabelList is known from List.H
- treat as a List constant without requiring inclusion of ListOps.H

- replace use of emptyList<label>() with emptyLabelList directly.
  The emptyList<T>() casting is disallowed with many modern compilers
  and now marked as deprecated (expect early removal).

- relocate labelList typedef to List.H for more general access.
  Similar reasoning to having labelUList defined in UList.H
2018-08-01 21:27:46 +02:00
edb0d1dd97 ENH: add range method to polyBoundaryMesh
- makes for easier extraction of boundary values since it encapsulates
  start/size directly.

Eg,
    SubList<T>(allValues, patches.range());
or
    bitSet(blocked, patches.range(patchi));
2018-08-01 19:22:06 +02:00
9be9f02a12 ENH: bitSet, PackedList copy construct a subset
Eg,
    processorPolyPatch pp = ...;

    UOPstream toNbr(pp.neighbProcNo(), pBufs);
    toNbr << PackedList<Width>(faceValues, pp.range());
2018-08-01 17:54:53 +02:00
51c32360cd ENH: use bitSet operations in syncTools
- concise and more efficient
2018-08-01 15:22:19 +02:00
49d9589d26 STYLE: update iterator access and looping in syncTools 2018-08-01 14:34:34 +02:00
640aac95bd STYLE: remove dead code from syncTools (unused since 2014 or earlier) 2018-08-01 13:38:37 +02:00
80f4ff87dd ENH: allow use of FixedList<label,N> for bitSet construct/set/unset
- allows direct 'hashing' of fixed lists. Eg, triFace
2018-08-01 13:01:43 +02:00
35facb8208 ENH: add PackedList::unpack() method
- allows for simpler unpacking of a full list, or list range into any
  sufficiently large integral type.

  For example,
    processorPolyPatch pp = ...;

    UOPstream toNbr(pp.neighbProcNo(), pBufs);
    toNbr << faceValues.unpack<char>(pp.range());
2018-08-01 12:48:35 +02:00
8917b94444 ENH: add labelRange labels() method (for a labelList source)
- add range support in globalIndex and SubField, SubDimensionedField
2018-08-01 10:36:05 +02:00
dd67b3386a ENH: add fileName /= operator (similar to std::filesystem::path) 2018-07-27 07:15:08 +02:00
0b70301136 ENH: overset: disallow hole donors. See #810. 2018-08-02 12:22:39 +01:00
70801d7f48 ENH: checkMesh: output mask field. Fixes #958. 2018-08-01 13:02:07 +01:00
51eac273aa STYLE: remove unused variable 2018-07-31 15:38:27 +02:00
cb919a6c41 ENH: tag some options as 'advanced' (only shown with -help-full)
General:
    * -roots, -hostRoots, -fileHandler

Specific:
    * -to <coordinateSystem> -from <coordinateSystem>

- Display -help-compat when compatibility or ignored options are available

STYLE: capitalization of options text
2018-07-31 11:54:15 +02:00
d40103a86f CONFIG: extend wmake detection scripts 2018-07-31 11:25:53 +02:00
f00c7a655c COMP: rename dictionary::read<T> to dictionary::readEntry<T>
- avoids compiler ambiguity when virtual methods such as
  IOdictionary::read() exist.

- the method was introduced in 1806, and was thus not yet widely used
2018-07-30 15:52:40 +02:00
215570915e ENH: explicit convert to bool operator for autoPtr
- behaves the same as the valid() method, but can be queried directly
  like a normal raw pointer and as per std::unique_ptr.
  Eg,

      autoPtr<T> ptr = ...

      if (ptr) ...
2018-07-30 14:33:22 +02:00
ff26b96a80 STYLE: use 'cloudObjects' instead of 'sprayObjects' 2018-07-30 13:15:38 +02:00
dd775c6e68 CONFIG: add trapping-math for darwin 2018-07-30 12:18:40 +02:00
ef52e11d2c COMP: include Constant.H for clang-5 2018-07-30 12:17:08 +02:00
b5f093076b STYLE: add sigFpe test 2018-07-30 12:13:42 +02:00
a5e5ba3179 ENH: add bitSet-type of methods for boolList
- test(), get(), set(), unset() with behaviour as per bitSet,
  to allow easier swapping out of boolList <-> bitSet.
2018-07-27 15:51:19 +02:00
c89e13f82f ENH: allow command-line options to be tagged as "advanced"
- advanced options are not displayed with -help, but only with
  -help-full, which helps retain a better overview of the standard
  options.  Replaces previous ad hoc suppression of -listSwitches,
  -listRegisteredSwitches etc.
2018-07-30 08:58:36 +02:00
14447e4cc6 CONFIG: update compiler version 2018-07-27 16:00:00 +02:00
db9cd2bc85 ENH: add IOobjectList append() method for building larger lists
- supports copy append and move append
2018-07-27 15:38:32 +02:00
fd2b72891c ENH: added HashPtrTable remove(const Key&) method
- already had remove() by iterator, but not by key.
  As per erase() which already worked by iterator or by key.
2018-07-27 15:17:14 +02:00
27bbb516a3 STYLE: return nullptr instead of tmp<...>() for NotImplemented methods
- as per 018124e3bf
2018-07-27 14:20:01 +02:00
8aa7b1353f ENH: refCast: give better error messages. Fixes #953. 2018-07-26 16:55:49 +01:00
b2be9fa3ff STYLE: snappyHexMesh: unused option 2018-07-26 16:55:11 +01:00
d7d4a6e834 Merge remote-tracking branch 'origin/develop' into develop 2018-07-26 17:40:52 +02:00
d2ccea055c STYLE: change foamUpgradeCyclics -test option to -dry-run 2018-07-26 17:35:20 +02:00
f17e486801 ENH: decompositionMethod: check dimensions. See #937.
Changed into warning since e.g. tutorials/combustion/fireFoam/LES/compartmentFire
uses columns of 1D stacks so they've got empty but are still 3D.
2018-07-26 16:21:51 +01:00
329f3a99e4 TUT: remove extraneous '}' from dictionary input 2018-07-26 17:06:10 +02:00
02ad76df4f ENH: allow wordHashSet filter for IOobjectList::names
- simplifies usage.
  Support syncPar check on names() to detect inconsistencies.

- simplify readFields, ReadFields and other routines by using these
  new methods.
2018-07-26 14:56:52 +02:00
9e345c5820 BUG: surfaceIntersection: access out of bounds. Fixes #955 2018-07-26 12:07:54 +01:00
ba64ca8a5b ENH: localPointRegion: improved error message 2018-07-26 11:50:47 +01:00
8adac99d7c ENH: tetDecomposer: decompose selected cells. 2018-07-26 10:11:39 +01:00
a8ef5610d0 STYLE: renamed meshSubsetHelper -> fvMeshSubsetProxy 2018-07-26 01:57:16 +02:00
dbe0db1d9a ENH: fvMeshSubset improvements (issue #951)
- what was previously termed 'setLargeCellSubset()' is now simply
  'setCellSubset()' and supports memory efficient interfaces.

  The new parameter ordering avoids ambiguities caused by default
  parameters.

  Old parameter order:

      setLargeCellSubset
      (
          const labelList& region,
          const label currentRegion,
          const label patchID = -1,
          const bool syncCouples = true
      );

  New parameter order:

      setCellSubset
      (
          const label regioni,
          const labelUList& regions,
          const label patchID = -1,
          const bool syncCouples = true
      );

   And without ambiguity:

      setCellSubset
      (
          const labelUList& selectedCells,
          const label patchID = -1,
          const bool syncCouples = true
      );

- support bitSet directly for specifying the selectedCells for
  memory efficiency and ease of use.

- Additional constructors to perform setCellSubset() immediately,
  which simplifies coding.

  For example,

      meshParts.set
      (
          zonei,
          new fvMeshSubset(mesh, selectedCells)
      );

  Or even

      return autoPtr<fvMeshSubset>::New(mesh, selectedCells);
2018-07-25 18:58:00 +02:00
7446d30fbd ENH: additional labelHashSet -> bitSet conversion
- BitSetOps::create(len, locations, on) that generates a bitSet with
  the specified length. The optional 'on' bool can be used to flip the
  logic.
2018-07-25 17:50:38 +02:00
3218b3dee3 ENH: allow bitSet selector for removeCells (issue #951) 2018-07-25 16:01:43 +02:00
1abacf0d0d ENH: topoSet: check write status. Fixes #952 2018-07-25 13:27:37 +01:00
a6b84927e4 STYLE: use sortedToc() instead of toc() followed by sort() 2018-07-25 10:29:20 +02:00
8610a95ad8 ENH: expose subset name in meshSubsetHelper 2018-07-25 00:14:30 +02:00
e7b82aad9e STYLE: segregate older-style access methods with preprocessor define
- enclosed with a #ifdef Foam_argList_1712 .. #endif pair
  (defined by default).
  In a later release, this can be disabled by default.

ENH: add input length check for -hostRoots option
2018-07-25 07:56:29 +02:00
adb90ef655 STYLE: remove fvMeshSubset::setCellSubset (issue #951)
- unused, does not run in parallel

- avoid enclosing namespace in fvMeshSubset
2018-07-25 00:13:13 +02:00
638b6b2cf1 ENH: add get() dereferencing for PtrList iterators
- gets the pointer within the list.
2018-07-26 00:10:51 +02:00
5e7a766159 BUG: cubicEqn, quadraticEqn: Correction to repeated roots
Also extended the cubic equation test routine and modified the error
methods so that they more accurately generate the round of error of
evaluation.

This resolves bug report https://bugs.openfoam.org/view.php?id=3015
2018-07-24 15:54:32 +01:00
d99707facd COMP: Allwmake: pass through targetType 2018-08-02 10:18:59 +01:00
4396caaa39 BUG: double read when updating ensight fieldsDict 2018-07-30 16:07:49 +02:00
3963cd95d9 STYLE: code cleanup in fileFormats, conversion 2018-07-24 16:12:32 +02:00
4a3bb8a9bc COMP: overPimpleDyMFoam is missing some files or variables 2018-10-05 12:24:22 +02:00
13778f7647 ENH: use dictionary::readEntry for detection of input errors (#762, #1033)
- instead of   dict.lookup(name) >> val;
  can use      dict.readEntry(name, val);

  for checking of input token sizes.
  This helps catch certain types of input errors:

  {

      key1 ;                // <- Missing value
      key2 1234             // <- Missing ';' terminator
      key3 val;
  }

STYLE: readIfPresent() instead of 'if found ...' in a few more places.
2018-10-05 10:15:13 +02:00
7d88075842 ENH: dictionary lookup with detection of zero tokens (#1033)
- the opposite problem from issue #762. Now we also test if the input
  token stream had any tokens at all.

- called by the dictionary get<> and readEntry() methods.
2018-10-05 09:56:17 +02:00
b1996f348c COMP: avoid compiler warnings about phasePairKey friend functions
- improve alignment of various phasePairKey implementations
2018-07-24 10:51:12 +02:00
d25dd342fa STYLE: spurious reading of int instead of label 2018-07-24 09:52:11 +02:00
d58c142404 ENH: use restricted dictionary lookup for utilities (issue #762)
- get<label>, get<scalar> instead of readLabel, readScalar, etc.
2018-07-24 08:08:30 +02:00
d362c2235b COMP/STYLE: change read() -> readIstream() for private methods
- this eliminates a degree of ambiguity when resolving a read() method
  in inherited classes.
2018-07-24 09:23:46 +02:00
94a89d530a COMP: reduce compiler warnings for gcc-7
- ignore implicit-fallthrough for ragel generated code.

- add -Wno-deprecated-declarations for c++LESSWARN.
  These principally associated with older CGAL versions and their use
  of particular mpfr routines.
2018-07-24 09:29:01 +02:00
fe808e24e7 ENH: add rpmToRads() convenience functions
- simplifies conversion of RPM to radians/sec for const variables
2018-07-23 22:20:26 +02:00
ec318a95d1 Merge remote-tracking branch 'origin/master' into develop 2018-07-23 21:18:43 +02:00
9f52213f63 STYLE: avoid unrestricted dictionary lookup in lumpedPointMotion (issue #762)
- improve doxygen for lumpedPointMotion
2018-07-23 21:06:14 +02:00
76dcf39eab BUG: incorrect lookup name for lumpedMotion scaling parameter (fixes #949) 2018-07-23 20:19:07 +02:00
9f0a80a655 STYLE: avoid unrestricted dictionary lookup in randomProcesses, waveModels
- ref issue #762

STYLE: consistency in file vs files for pointNoise and surfaceNoise

- use "files" when available, fallback to "file" otherwise.
2018-07-23 18:13:43 +02:00
18b134319d ENH: handling of open edges distanceSurface at 0 (issue #948)
Some special adjustments are undertaken for distance = 0.

- With the isoSurfaceCell algorithm is used, additional checks for open
  surfaces edges are used to limit the extend of resulting distance
  surface. The resulting surface elements will not, however, contain
  partial cell coverage.

- Always treated as signed (ignoring the input value), since it is
  nearly impossible to generate any surface otherwise.
2018-07-23 15:18:20 +02:00
e190ff8dca BUG: incorrect swirlFan tangential velocity calculation (closes #945)
- missing indexing caused the real radius to be largely ignored
  when useRealRadius = true
2018-07-20 08:14:58 +02:00
40618a3a86 BUG: First occurence of alpha1.prevIter() causes crash (closes #911)
- in interIsoFoam/alphaEqn.H changed to alpha1.prevIter() to
  alpha1.storePrevIter().
2018-07-19 23:36:42 +02:00
a6e735e5ce TUT: samplingDebug was left enabled in tutorial (and missing a file) 2018-07-18 19:41:32 +02:00
f09d985207 BUG: particle: locate can get stuck on cell centre. Fixes #935. 2018-07-12 11:31:27 +01:00
d82deea8e5 COMP: resolve compilation issues for single-precision (closes #932) 2018-07-11 19:24:16 +02:00
b41d5ed523 STYLE: remove deprecated constraints format from tutorials 2018-07-11 17:02:40 +02:00
2b869824f2 STYLE: additional description header for decomposition details 2018-08-09 19:05:11 +02:00
fc63e09f66 GIT: remove editor backup files 2018-08-09 19:04:36 +02:00
a96c2d70a0 BUG: cyclicAMI: stabilise projection in case of 90 degree angles. Fixes #930. 2018-07-11 12:05:05 +01:00
1b76ff6001 BUG: vtkCloud suppresses output for empty clouds (closes #866)
- the original intention was to avoid vtp output when the clouds are
  empty anyhow. However, it is useful for post-processing to have
  clouds with zero parcels (eg, before the start of injection).

  Pruning of empty clouds is now an option in the vtkCloud dictionary
  controls, with the default being false (no pruning). This represents
  a non-breaking change in behaviour since it generates more output
  than previously.

  Example,
  {
      type    vtkCloud;
      //- Suppress writing of empty clouds (default: false)
      prune   true;
  }
2018-07-11 07:53:51 +02:00
678c6304a5 fileOperation: Corrected findInstance. See also #974.
Patch contributed by Mattijs Janssens
2018-07-06 11:32:45 +01:00
3328ec31dd ENH: consistency in handling of ensight timeDir (issue #919) 2018-07-05 13:53:59 +01:00
f72fb23d30 ENH: snappyHexMesh: limit warnings to 100 points. Fixes #941. 2018-07-23 12:54:41 +01:00
c26ef75df4 ENH: snappyHexMesh: limit debug printing. See #941. 2018-07-23 12:42:49 +01:00
423ed38986 COMP: rigidBodyDynamics: add Time& argument to make them compile 2018-07-19 18:03:10 +01:00
baba0069d4 BUG: inconsistent AMI information (issue #860)
- use "min:xxx" format for AMIInterpolation as well
2018-07-04 09:13:11 +02:00
d04100a99e TUT: fix for snappy mesh layers 2018-06-28 15:39:32 +01:00
6e35bcda70 ENH: Updated config for release v1806 2018-06-28 12:56:00 +01:00
2ae4bf73d9 fileHandler: Added flush method
This method waits until all the threads have completed IO operations and
then clears any cached information about the files on disk. This
replaces the deactivation of threading by means of zeroing the buffer
size when writing and reading of a file happen in sequence. It also
allows paraFoam to update the list of available times.

Patch contributed by Mattijs Janssens
Resolves bug report https://bugs.openfoam.org/view.php?id=2962
2018-06-27 11:45:58 +01:00
16a6379183 TUT: Cleaned up headers 2018-06-26 17:37:38 +01:00
ddd176bc1a ENH: Corrected header documentation 2018-06-26 17:33:00 +01:00
34bd032db9 SUBMODULE: updated to use v1806 tagged branches for all modules 2018-06-28 13:09:36 +02:00
069f8c158d Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-27 16:46:24 -07:00
cfc6701f76 TUT: Changing outlet p BC 2018-06-27 16:45:59 -07:00
be07fc9bbe STYLE: some test apps compiling into wrong location (issue #876) 2018-06-27 10:31:35 +02:00
3bc35220b0 GIT: relocate bin/mergedDyM -> bin/deprecated/mergedDyMsolver
- the backend script should not be accessible from the PATH.
  Using deprecated/ adds a level of documentation.
2018-06-27 07:54:28 +02:00
2df51655ca TUT: remove stray catalyst script 2018-06-27 08:22:13 +02:00
d1d47fe5ef SUBMODULE: updates for catalyst 2018-06-26 16:52:18 +02:00
b70b2d8629 TUT: fixup formatting, tabs etc 2018-06-26 16:37:35 +02:00
30b4eda7a4 TUT: update some old keywords found in tutorials
- functionObjectLibs -> libs
- redirectType -> name
- change deprecated writeCompression flags types to Switch.

- cleanup some trailing ';;' from some dictionaries
2018-06-26 14:18:52 +02:00
1c9f93e173 TUT: Added sloshingTank2D case for comparison with the interFoam solver 2018-06-26 14:16:22 +01:00
007c766914 ENH: Script updates 2018-06-26 14:04:00 +01:00
14268bbcd1 COMP: Removed legacy file 2018-06-26 13:27:54 +01:00
cc075b88ea STYLE: Minor header correction - see #831 2018-06-26 13:16:51 +01:00
26a3167843 Merge branch 'feature-normalMethods' into 'develop-pre-release'
STYLE: separate areaNormal/unitNormal method for primitives (issue #885)

See merge request Development/OpenFOAM-plus!208
2018-06-26 12:58:59 +01:00
59b4a77d23 TUT: RunFunctions - added protection for user shell customisations 2018-06-26 11:51:02 +01:00
1e5919f8b0 TUT: Updates - see #856 2018-06-26 11:16:24 +01:00
f5628d72aa BUG: AMI/ACMI - corrected setting of [src|tgt]MagSf for parallel runs. See #856 #906 2018-06-26 11:14:57 +01:00
0b14c637e6 STYLE: minor code formatting 2018-06-25 19:27:21 +01:00
a410f52e6d COMP: handle unset WM_OSTYPE for cmake targets (issue #909)
- regularise referencing of OpenFOAM env variables, sources etc.
2018-06-26 09:48:57 +02:00
df9c675c84 STYLE: remove unnecessary include for cartesianCS 2018-06-26 08:36:05 +02:00
e30ca79924 BUG: Correcting solidThermo constructor 2018-06-25 16:38:54 -07:00
edcb649212 STY: Changing folder name for icoReactingMultiphaseInterFoam 2018-06-25 10:35:53 -07:00
2d7f3d09a8 ENH: regIOobject: improved debug message 2018-06-25 12:55:36 +01:00
3de018af57 BUG: heSolidThermo: initialise mu,psi. See #905. 2018-06-25 12:53:58 +01:00
67f208bd43 BUG: partial/possible regression related to closing stdin (issue #893, #856)
- The problem is not 100% reproducible, but be somewhat conservative
  and now only close(stdin) for pure background (daemon-like) use of
  Foam::system(), where it can be useful.

  Using Foam::system() for launching background processes is currently
  only used for the doc browser.
2018-06-25 11:39:53 +02:00
831a47b81e CONFIG: eliminate most occurances of outdated FOAM_INST_DIR (issue #444)
- since 1612, FOAM_INST_DIR and foamInstDir longer have any
  special meanings when sourcing the bashrc or cshrc files.
  Thus no need for special treatment in any of the dispatch wrappers.

  Retained FOAM_INST_DIR as (unexported) variable in etc/bashrc,
  just in case people are using patched versions of etc/bashrc
  as part of their installation.

ENH: relax prefix restrictions on foamCreateVideo (issue #904)

- shift the implicit '.' to be part of the default prefix. This allows
  things like "-image myimages_00" to work as might be expected.
2018-06-25 09:56:34 +02:00
f4d3c071ff Merge branch 'feature-processorLOD' into 'develop-pre-release'
Feature processor level of detail (LOD)

See merge request Development/OpenFOAM-plus!210
2018-06-25 08:55:20 +01:00
4300f4c02f ENH: improve flexiblity of foamCreateVideo (issue #904)
- respect trailing '-', '.', '_' for the image prefix name.
  For example,

    -image press_   to accept press_*.png

- additional -mask width option (for avconv)
2018-06-24 18:02:00 +02:00
d9568a4b56 SUBMODULE: updates for catalyst
- SIGFPE handling, cmake configuration

CONFIG: adjust for simplified Catalyst channel naming

- no sub-channels, select volField output based in the
  (internal | boundary) dictionary switches instead
2018-06-24 15:50:50 +02:00
3d22c5c265 STYLE: use fileName::expand() instead of stringOps::inplaceExpand
- do not need the stringOps version if there is no dictionary context
2018-06-23 16:40:51 +02:00
eed1e99378 TUT: remove 'functions' dictionary scope from catalyst files
- rename Allrun.parallel to Allrun-parallel (issue #899)
2018-06-23 13:41:20 +02:00
e0db37f043 ENH: support rhoRef for derived surfMesh sampled fields (issue #898) 2018-06-22 16:57:30 +02:00
c3f52a696c ENH: Added time reporting to mapFieldsPar 2018-06-21 16:20:03 +01:00
8cbe11f158 BUG: Corrected arg lookup name 2018-06-21 08:12:55 +01:00
5d2ad9227f STYLE: separate areaNormal/unitNormal method for primitives (issue #885) 2018-06-20 12:17:03 +02:00
1c64911367 ENH: Updated meshToMesh to be able to use the new processorLOD 2018-06-20 07:57:25 +01:00
d5422239f3 ENH: Added new processor level of detail (LOD) to optimise parallel data transfers 2018-06-19 12:00:25 +01:00
02f97872ca ENH: Dry-run - Include creation of sets and zones for dyanmic mesh cases 2018-06-19 13:34:33 +01:00
cf7dbcd0e4 STYLE: Minor clean-up 2018-06-19 11:51:38 +01:00
27dcb69ccc GIT: add forgotten Allrun-parallel script (issue #866) 2018-06-19 13:03:35 +02:00
d637b6eb78 ENH: avoid parse problems caused by #calc directives (fixes #722)
- The additional output generated by #calc directives in the
  controlDict or decomposeParDict causes issues for the RunFunctions
  extraction of 'application' and 'numberOfSubdomains'.

  Avoid by using -disableFunctionEntries, which also has the side-effect
  of disabling '#include'.
2018-06-19 12:38:53 +02:00
0c5f36f40a ENH: Move stabilisation to steady-state part of LES motorBike tutorial. See #856. 2018-06-18 15:00:47 +01:00
48dafdedcf COMP: fix warnings about major()/minor() name conflicts (closes #883)
- major() and minor() are GNU macros in sys/sysmacros.h
  and generates warning on some systems (eg, Ubuntu 18.04)

  use getMajor() and getMinor() as method names instead.
2018-06-18 15:37:24 +02:00
dad09c5e7d BUG: Correction to commit 8540e6f
- corrected the mass based correction and updated the misleading function
  arguments

- moved the option to the optimisation switches, e.g.:

    OptimisationSwitches
    {
        experimentalDdtCorr 1;
    }

- default remains off/no (0)
2018-06-18 14:13:12 +01:00
601ebaa919 BUG: simplefiedFvMesh: debug word referring to other debug. Fixes #882. 2018-06-18 14:10:13 +01:00
70bc72c2df twoPhaseMixtureThermo: Fix for collated file operation
twoPhaseMixtureThermo writes the temperatures during construction only
for them to be read again immediately after by construction of the
individual phases' thermo models. When running with collated file
handling this behaviour is not thread safe. This change deactivates
threading for the duration of this behaviour.

Patch contributed by Mattijs Janssens
2018-06-14 10:55:27 +01:00
6fb5c1f59a mappedFieldFvPatchField: Added base-class autoMap/rmap calls
Patch contributed by Mattijs Janssens
2018-06-19 14:06:57 +01:00
6c22596f3b ENH: snappyHexMesh: input checking. See #972. 2018-08-13 15:55:41 +01:00
4d03e4386d STYLE: update version info in some tutorial files 2018-08-14 11:58:52 +02:00
45f4a8b9c5 ENH: bounding box clipping for ensightWrite function object (issue #973)
- for larger problems with a smaller region of interest, can apply a
  bounding to limit the size of the ensight geometry and fields created.

  Since the implementation uses a fvMeshSubset, there is an additional
  per-process memory overhead.

  A high output frequency should be avoided with moving meshes, since
  this indirectly forces a frequent update of the submesh.
2018-08-14 11:50:53 +02:00
62b83a76a4 ENH: face, triFace sign() method analogous to plane
- a quick test for which side of the face a point is located
2018-08-14 10:08:22 +02:00
3c98b9dd55 STYLE: fix documented stopAt control name for externalFileCoupler 2018-08-14 09:22:22 +02:00
3e941ae49b ENH: additional methods for globalIndex
- const version of offsets().

- empty() method to test for empty offsets, or zero overall size

- reset() methods for reseting the sizes. For example, when the context
  has shifted slightly.

- localStart() methods, similar to localSize() methods

STYLE: make globalIndex single parameter constructors explicit
2018-08-13 23:22:14 +02:00
296bdb6123 TUT: incorrectly activated constraints 2018-08-13 15:11:53 +02:00
4d6f0498d6 ENH: use vector::normalise and VectorSpace::normalised for clarity 2018-08-10 15:18:29 +02:00
c1964d7807 ENH: distinguish between face areaNormal/unitNormal in the code 2018-08-10 15:43:06 +02:00
b81a2f2fa6 STYLE: use edge::unitVec() for improved code clarity 2018-08-10 14:41:32 +02:00
c066dbf989 BUG: missing return value on Vector2D::normalise() 2018-08-10 12:24:31 +02:00
e32c2649ed ENH: consistency improvement for edge/line
- added line::last() for consistency with edge::last()

- adjusted unitVec() to return Zero for small vectors.
  Consistent with VectorSpace normalised() and vector::normalise()
2018-08-10 11:07:52 +02:00
d29d8d6be3 STYLE: replace nil with zero::null for cut ops
- The function of the nil class is now taken by zero::null.
2018-08-10 14:26:38 +02:00
da74e872f4 STYLE: overset: remove unused dictionary entry 2018-08-09 17:39:22 +01:00
4fe6ed3c6a BUG: compressibleInterFoam: Corrected handling of thermal diffusivity with mixture turbulence model
Resolves bug-report https://bugs.openfoam.org/view.php?id=2958
2018-05-25 23:43:41 +01:00
0cdb9d1ca0 BUG: rhoPimpleFoam: Only execute the density predictor if not in simpleRho mode 2018-06-10 22:45:46 +01:00
22e1384522 TUT: Updated headers 2018-06-22 15:36:33 +01:00
598c49fe8a TUT: Added new tutorial cases 2018-06-22 15:25:06 +01:00
abb597359f ENH: Updated the boundaryDataSurfaceWriter to use a plain list for the points file 2018-06-22 15:24:07 +01:00
b68fe2c76d BUG: cleanCase deletes blockMeshDict (fixes #900)
- Don't remove the constant/polyMesh directory if it contains a
  blockMeshDict or blockMeshDict.m4 file. Offer a reminder that
  system/ is the normal place for it.
2018-06-22 14:50:25 +02:00
c8fd217e95 BUG: Foam::system command swallows first argument (fixes #901) 2018-06-22 15:18:41 +02:00
6390c18381 ENH: suppress Info output for some cases (issue #722, #893)
- add additional control via a Foam::infoDetailLevel flag, which is
  supported by a 'DetailLevel' macro.  Eg,

      DetailLevel << "some information" << nl

- When infoDetailLevel is zero, the stdout for all Foam::system() calls
  are also redirected to stderr to prevent child output from
  appearing on the parent.

- close stdin before exec in system call.
2018-06-22 12:26:33 +02:00
83c9d3b287 EHH: add sigFpe::ignore helper class (issue #897)
- convenient way to temporarily suspend the SIGFPE handler.
  Eg,

      // Normal code with SIGFPE enabled ...
      sigFpe::set();

      {
          // Ignore SIGFPE in this scope ...
          sigFpe::ignore noFpeHandling;
          ...
      }
2018-06-22 00:39:53 +02:00
d56744a66a STYLE: Renamed source files to reflect solver names (issue #890) 2018-06-21 16:14:16 +02:00
f7d4f52726 STYLE: update names of known solvers, consistent End value (issue #856) 2018-06-21 16:03:06 +02:00
237f20b0ed TUT: tab removal 2018-06-21 15:43:15 +02:00
73fbed1c2c TUT: consistent use of scale and headers for blockMeshDict 2018-06-21 15:28:25 +02:00
8717f9936e TUT: consistency in Allclean Allrun scripts 2018-06-21 15:19:09 +02:00
736d358782 STYLE: code tidying for icoReactingMultiPhaseInterFoam
- use Enum instead of NamedEnum
- shorter form for dimensionedScalar

- reduce verbosity about missed seeding for DTRM cloud.
  Re-enable old warnings in debug mode.
2018-06-21 13:35:22 +02:00
2f83248827 ENH: Bounding k using kMin in SSG RANS model 2018-06-21 16:12:41 -07:00
f8bf897ca3 STYLE: stabilityBlending: typos; line length. See also #875. 2018-06-21 11:55:10 +01:00
dcde2eed74 TUT: consistent name for runTimePostProcessing dictionary 2018-06-21 11:56:00 +02:00
1f953b807c ENH: use double for VTK legacy output (issue #891)
- some paraview versions (eg, on windows) don't support float, only double.

  This mostly affected the vtkSurfaceWriter.

  The foamToVTK is also affected, but since it also supports the XML
  output formats (vtp, vtu) these can be used instead.
2018-06-21 10:24:04 +02:00
813a0500e2 BUG: incorrect order for VTK symmTensor (fixes #892)
- affected manually generated legacy output (vtkSetWriter, vtkSurfaceWriter)

- the order emitted by vtkSetWriter remains, but needs to revisited again.
2018-06-21 09:38:25 +02:00
f9dc9dbf5f TUT: updates 2018-06-21 08:31:22 +01:00
dd9823def5 STYLE: Minor updates to simplifiedFvMesh code 2018-06-21 08:31:02 +01:00
cbb1ff8680 STYLE: residuals function object - added header documentation 2018-06-20 12:26:49 +01:00
8608834d48 Merge branch 'feature-icoReactingMultiphaseInterFoam-dev' into 'develop-pre-release'
Feature ico reacting multiphase inter foam dev

See merge request Development/OpenFOAM-plus!204
2018-06-21 08:28:48 +01:00
017213deca Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-20 16:44:35 -07:00
649149f9de ENH: Improvements to the log format and fix write function 2018-06-20 16:43:00 -07:00
2790f2da4e ENH: Editing tutorials, and Make/files 2018-06-20 12:27:12 -07:00
c103331a6a INT: integration updates 2018-06-20 16:28:48 +01:00
f15be4d0b0 BUG: bad indexing in regionSizeDistribution function object (closes #888) 2018-06-20 13:51:30 +02:00
3603cf289f BUG: basicThermo: enforcing shared T. Fixes #887. 2018-06-20 12:07:00 +01:00
12e2142db8 COMP: refactoring to resolve compiler warnings - see #886 2018-06-20 10:56:04 +01:00
b6b2f430a3 CONFIG: bump paraview to 5.5.2 2018-06-20 01:57:35 +02:00
ca2a83d532 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-06-20 01:56:41 +02:00
8295d398aa BUG: accessing invalid coordinateRotation after move assignment (fixes #884)
- incorrect coordinateSystem clear() after the move

- add Test-coordinateSystem
2018-06-19 21:24:38 +02:00
7bf7aaea91 ENH: Further enhancements to stabilizationSchemes 2018-06-19 12:04:27 -07:00
9001aa2440 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-19 11:23:36 -07:00
a3a6768608 ENH: Adding additional entry to stabilizationSchemes.
Correcting tutorial and expanding documentation
2018-06-19 11:21:56 -07:00
5cd6e4bed4 ENH: report the function object name that causes the FatalError 2018-06-19 19:14:16 +02:00
0289582a75 Merge remote-tracking branch 'origin/master' into develop 2018-06-19 18:39:10 +02:00
1871b1d3bc TUT: use separate forces file for wingMotion2D 2018-06-19 17:18:15 +02:00
18f3fadf9c STYLE: restrict vtkCloud output names to use time-index (issue #866)
- this provides easily sortable names.

  The time information is available via the corresponding .series
  file, which can also be loaded directly with ParaView 5.5 or later.

  For further redundancy, time information is saved in the first XML
  comment inside of the .vtp files. For example,

      <!-- cloud=limestoneCloud1 time=0.005 index=200 -->
2018-06-19 17:08:25 +02:00
ce0623ca31 BUG: foamRestoreFields blocks in parallel (issue #877) 2018-06-19 16:46:15 +02:00
6ac47e6db5 STYLE: consistent foamDictionary stderr redirect in RunFunctions 2018-06-19 13:56:30 +02:00
f5275444cc CONFIG: adjust adios2 config 2018-06-19 13:53:23 +02:00
5754405bfb CONFIG: cannot pass additional arguments to foamEtcFile (closes #880)
- add support by using updated foamEtcFile from 1806, which also add
  the '-config' short-cut option.
2018-06-18 08:42:55 +02:00
5390c48b2d BUG: dictionary lookup of embedded coordinateSystem fails (fixes #879)
- also fix incorrect documentation in forces functionObject and
  interRegionExplicitPorositySource fvOption.
2018-06-16 00:29:41 +02:00
636328fc1c ENH: icoReactingMultiPhaseInterFoam: thermo sharing T 2018-06-15 14:05:37 +01:00
f3474dad1d BUG: rigidBodyMotionState: not readable in binary. Fixes #871. 2018-06-13 14:55:20 +01:00
616b91c06e Merge branch 'master' into develop 2018-06-13 14:17:47 +01:00
387ee6b2ad ENH: Updated example usage in header. Fixes #859 2018-06-13 14:11:51 +01:00
765c2051aa BUG: fftw: missing normalisation. See #867. 2018-06-13 14:09:37 +01:00
51c48fa9c9 BUG: non-uniform distribution for Random::position<label> (closes #865)
- use floor/truncate instead of round. Backport of changes in the
  develop-pre-release branch.
2018-06-13 12:38:13 +02:00
4bafb6fd54 COMP: Added include file to enable derived code extensions 2018-06-13 10:52:08 +01:00
cf0a288ead STYLE: typo in copyright dates 2018-06-12 09:03:30 +02:00
071d561224 BUG: refineWallLayer: incorrect handlign of useSet option. Fixes #864. 2018-06-11 13:13:44 +01:00
f19b88a53e GIT: spurious prefix for catalyst submodule naming 2018-06-11 11:49:05 +02:00
8b614d4a46 CONFIG: incorrect Qt5 detect (csh variant)
- bump to ParaView 5.5.1
2018-06-11 11:48:09 +02:00
7602e04ca5 BUG: error with surfMesh transfer from triSurfaceMesh (closes #862)
- face/point ownership is transferred to the surfMesh, so use these
  directly when sampling the interior.
2018-06-08 17:22:40 +02:00
63d07c9ef8 ENH: adjust AMI information for better log processing (issue #860)
- now report as  "min = XX max = YY average = ZZ"
  instead of as  "min/max/average = XX, YY, ZZ"

  this makes it easier to parse any particular value
  (eg, with foamLog)
2018-06-08 13:43:40 +02:00
c611bd6f94 CONFIG: add hostCollated for -fileHandler completion
- in anticipation of future change,
  hard-coded choice within bash_completion
2018-06-07 15:43:46 +02:00
10941280cb BUG: incorrect bitSet auto-vivify in snappy
- should use bitSet::set() and not bitSet::operator[] to auto-vivify
  out-of-range entries

- use bitSet::test() instead of bitSet::operator[] when testing
  non-const variables - circumvents any potential out-of-range issues.
2018-06-07 14:43:10 +02:00
86cd37d144 ENH: check for excess tokens on dimensionedType, Enum (issue #762)
- propagates check for lookupOrDefault etc.
2018-06-07 14:22:06 +02:00
e3ea3b0ce6 STYLE: remove unneeded includes (snappyRefineDriver) 2018-06-07 12:29:37 +02:00
4cb073e150 ENH: Up to date icoReactingMultiphaseInterFoam solver and libs
Adding tutorials and other minor changes
2018-06-04 11:25:59 -07:00
84b109219a STYLE: reduced usage of Switch
- Since 'bool' and 'Switch' use the _identical_ input mechanism
  (ie, both accept true/false, on/off, yes/no, none, 1/0), the main
  reason to prefer one or the other is the output.

  The output for Switch is as text (eg, "true"), whereas for bool
  it is label (0 or 1). If the output is required for a dictionary,
  Switch may be appropriate. If the output is not required, or is only
  used for Pstream exchange, bool can be more appropriate.
2018-06-01 20:51:48 +02:00
0f60cc9263 STYLE: remove bad edit in comment 2018-06-01 14:59:35 +02:00
cdb6d5a604 CONFIG: remove Darwin GCC wmake rules (partly broken, poorly tested) 2018-06-01 14:35:43 +02:00
35d682a4fb COMP: make the scotch librt dependency conditional 2018-06-01 14:17:41 +02:00
8058184b0c COMP: resolve 'point' ambiguity in foamyQuadMesh
- CGAL Triangulation_2.h (version 4.12) defines a point function,
  which interferes with the Foam::point typedef.
2018-06-01 14:10:17 +02:00
d571e5231b ENH: detect excess tokens for "libs" entry (issue #762)
- this addresses issue #843
2018-06-01 13:31:12 +02:00
511b35629d ENH: improve infrastructure for detecting excess tokens (issue #762)
- Always used for optional dictionary entries, since these are individual
  values, and not meant to be embedded in a larger stream of tokens.

  Methods:
     - lookupOrDefault, lookupOrAddDefault, lookupOrDefaultCompat
     - readIfPresent, readIfPresentCompat

- Handling mandatory dictionary entries is slightly more complex,
  since these may be part of larger stream of tokens, and are often
  used in a constructor context. For example,

      word modelType(dict.lookup("type"));

  Or they are used without a definite context. For example,

      dict.lookup("format") >> outputFormat;

  Newly introduced methods for mandatory dictionary entries:
     - get, getCompat
     - read, readCompat

  In a constructor or assignment context:

      word modelType(dict.get<word>("type"));
      outputFormat = dict.lookup("format");

  without copy/move (similar to readIfPresent):

      dict.read("format", outputFormat);
2018-06-01 11:55:57 +02:00
a6f524b1df STYLE: -diff-etc instead of -diffEtc in foamDictionary 2018-06-01 11:36:43 +02:00
b393c60d86 ENH: vtk: fix reading of inverted prisms. Fixes #850. 2018-05-31 12:42:43 +01:00
cd8b67844f ENH: snappyHexMesh: Remove cells inside any limitRegion with level -1. Fixes #852. 2018-05-31 10:05:02 +01:00
1c030f441d STYLE: missing newline in correctPhi.H 2018-05-30 16:18:20 +02:00
12553a2e43 COMP: include /usr/local in search for system headers/libraries
- this is consistent with compiler defaults, and helps Darwin users
2018-05-30 14:45:12 +02:00
e43ae3f23f ENH: detect excess tokens when looking up a dictionary value (issues #762) 2018-05-30 14:43:48 +02:00
2aaae74ee1 STYLE: consistent ordering of "inline explicit" vs. "explicit inline"
- resolve in favour of "inline explicit", which had marginally more
  uses and provides consistent prefixing for inline methods.
2018-05-30 12:11:13 +02:00
f9fe71815a STYLE: consistent use of '= delete' for removed constructors/assignments
- make the purpose more explicit, and reduces some work for the
  compiler as well.
2018-05-30 12:03:17 +02:00
6b6b36afd3 STYLE: revert bitSet/HashSet setMany() to set() method (issue #837)
- improves backward compatibility and more naming consistency.
  Retain setMany(iter1, iter2) to avoid ambiguity with the
  PackedList::set(index, value) method.
2018-05-29 17:38:02 +02:00
3de9b2f675 COMP: resolve size ambiguity (Darwin) 2018-05-29 12:36:12 +02:00
eeb725715d BUG: decomposeParDict: ignores mesh region. Fixes #848. 2018-05-29 10:26:22 +01:00
fe21322939 BUG: Corrected ConeNozzleInjection injected posisions in parallel operation. See #840 2018-05-30 14:05:53 +01:00
e747024c34 BUG: Corrected header documentation - see #831 2018-05-29 15:28:44 +01:00
ffe8048e04 BUG: COxidationIntrinicRate - corrected eta. See #842 2018-05-29 15:10:19 +01:00
5e9ba0bc72 ENH: Darwin emulation for addr2line 2018-05-29 11:21:59 +02:00
bd33a382ee COMP: define additional UIndirectList iterator member types (closes #847)
- required for std::iterator_traits specialization, which is used by
  the std::max_element algorithm on Darwin.
2018-05-29 08:56:08 +02:00
30309e9a65 COMP: 64-bit label ambiguity 2018-05-29 11:16:20 +02:00
7e270fc482 STYLE: formatting of scotch options 2018-05-29 09:57:30 +02:00
14e9ef34e5 Merge remote-tracking branch 'origin/develop' into develop 2018-05-29 10:28:28 +01:00
ca6b6cee8d BUG: decomposeParDict: ignores mesh region. Fixes #848. 2018-05-29 10:26:22 +01:00
7df0608306 STYLE: inline shorterPath function for printStack 2018-05-28 17:44:26 +02:00
d318a630b6 ENH: add directive '#sinclude' (or '#includeIfPresent' as long name)
- consistency with make and more succinct.

- reduce code duplication in findEtcFiles.
2018-05-28 13:38:03 +02:00
e3bb7ffd25 STYLE: avoid mix of 'sinclude' and '-include' in make files 2018-05-28 10:46:40 +02:00
26bb05d6f0 BUG: cyclicPeriodic: wrong indexing. Fixes #838. 2018-05-24 13:29:43 +01:00
417a2f6a73 BUG: reference FO: allocate interpolator on all processors. Fixes #823. 2018-05-24 09:52:33 +01:00
cb1cd96b04 ENH: snappyHexMesh: directional refinememt.
Basic directional refinement:
- only for coordinate aligned meshes
- only for refinementRegions
See the mesh/snappyHexMesh/aerofoilNACA0012_directionalRefinement
tutorial.
2018-05-21 16:51:57 +01:00
85ecb009d7 TUT: Updated input value 2018-05-18 09:57:12 +01:00
d8ea41e7bd STYLE: foamPwd (posix) function with some env replacements (issue #844)
- the current working path with replacements for base-level
  OpenFOAM env variables such as FOAM_RUN, WM_PROJECT_DIR,
  WM_PROJECT_USER_DIR etc

  Can be used directly from the command-line or embedded into a
  command prompt. For example,

      PS1='$(foamPwd)\n\u\$ '

- aliases for user solver/utilities located under "$WM_PROJECT_USER_DIR":
  (ufoam, uapp, usol, uutil)
2018-05-17 15:33:59 +01:00
66df3369dc BUG: ConeInjection - corrected number of parcels injected for multiple injector positions 2018-05-17 09:04:00 +01:00
1844ce5ab2 BUG: wrong sizing index for VTK legacy polyhedrals (closes #829) 2018-05-16 15:57:49 +01:00
c18a2a6370 BUG: compiler-specific INTELMPI not always found (closes #830)
- tie the MPI rules to the base compiler type *without* its version.
  Eg, linux64Gcc (which exists) instead of linux64Gcc81
2018-05-16 12:36:29 +01:00
d942587595 GIT: pointData: unused files 2018-04-11 11:16:21 +01:00
cb4ce1ffec ENH: snappyHexMesh: directional smoothing support 2018-04-11 10:24:18 +01:00
430367b25a STYLE: shm: indentation 2018-03-01 17:09:39 +00:00
e80739b80a STYLE: shm: indentation 2018-03-01 17:09:39 +00:00
e5d4fbcd72 BUG: snappyHexMesh: cutting imcompatible with corner-point detection 2018-02-21 11:08:21 +00:00
fe9d99ca26 BUG: snappyHexMesh: cutting imcompatible with corner-point detection 2018-02-21 11:08:21 +00:00
4d72c2aac0 COMP: incorrect executable path sphereSurfactantFoam (closes #695) 2018-01-08 10:51:00 +01:00
87504d501a BUG: regionToCell: incorrect indexing of remote values. Fixes #818. 2018-05-02 10:55:47 +01:00
1ac7f2e873 BUG: wrong nanoseconds in highResLastModified (closes #794)
- was using st_atim instead of st_mtim for the nanoseconds

- value of followLink was being ignored (it was always being followed).
2018-04-11 10:27:41 +02:00
1eb2458cf5 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2018-04-06 08:52:23 -07:00
a65b189741 ENH: Adding thermo using polynomial transport, JANAF and ideal gas.
This thermo is used with multiComponentMixture in rhoThermo type
2018-04-06 08:46:17 -07:00
1edb2f7dd0 BUG: mesh refinement crash with degenerate mesh distributions (closes #778)
- occurred when the initial mesh distribution was missing cells on
  some processors.
2018-03-21 21:54:40 +01:00
546fdb6207 BUG: corrected 'binned' distribution model 2018-03-20 10:17:33 +00:00
d7b9cea87c BUG: IsoAdvector - updated use of pos/neg as reported by Johan Roenby. See #775 2018-03-19 13:56:32 +00:00
fae1ba0f63 BUG: Corrections to externalWallHeatFluxTemperature BC (ref EP624) 2018-03-14 15:34:53 +00:00
4df782615c BUG: surface proxy zone handling with dangling? reference (closes #757)
- using const reference to temporary was failing.  Remedy by using a
  direct copy, which is a reasonable solution since surfZone content
  is quite minimal.
2018-03-13 17:58:02 +01:00
40e7d389d8 ENH: DPMFoam - extended RAS model selection. See #743 2018-03-13 12:48:16 +00:00
b0c5608b62 TUT: Corrected turbulence Ck value - see #753 2018-03-13 12:32:16 +00:00
73646bb15b BUG: removed incorrect code from cyclicFaPatch referring to cyclicPolyPatch. See #761 2018-03-13 08:54:39 +00:00
e78548352e TUT: Removed misleading comment in tutorial - see #746 2018-03-06 11:12:39 +00:00
7f7f9336c8 COMP: add -fpermissive to c++LESSWARN flags (closes #744)
- downgrades some diagnostics about nonconformant code from errors to
  warnings. Oddly enough, the errors actually arise from STL library
  elements shipped with gcc itself. Affects kahip compilation with
  gcc-6, gcc-7
2018-02-28 14:31:48 +01:00
628f0860c3 BUG: faceOnlySet sampling does not stop at 'end' (closes #745) 2018-02-28 11:23:59 +01:00
9f03511ffb GIT: merge artifact duplicate call to update mesh moving 2018-02-28 10:59:53 +01:00
94afd9e9b2 BUG: isoAdvection using 'vof2IsoTol' instead of 'isoFaceTol' (closes #740) 2018-02-23 15:11:24 +01:00
4d4c5910ed ENH: lagrangian injection - exposed minimum number of particles per parcel. See #728
The minimum number of particles per parcel can now be set in the
injection model input, e.g.:

    model1
    {
        type            ...;
        massTotal       ...;
        parcelBasisType ...;
        minParticlesPerParcel 1; <-- new optional entry
        SOI             ...;
        ...

Uses a value of 1 by default if the entry is not present.  The value of
1 is generally recommended and beneficial for coupled cases where small
time steps can lead to the injection of too many parcels and subsequently
greatly over-predict the particle source contributions (momentum, heat,
mass transfer etc)
2018-02-23 12:00:14 +00:00
ac3a8bc3cb BUG: simpleCoalParcelFoam - corrected dimensions of Qdot. Fixes #742 2018-02-23 09:04:16 +00:00
7ec44a88f1 ENH: Updating the header documentation for fanFvPatchField 2018-01-25 10:04:30 -08:00
ad98934e90 ENH: Changing fanFvPatchField operation for non-dimensional mode.
The non-dimensional table takes non-dimensional U as entry, not flow rate
2018-01-25 08:46:48 -08:00
bf6aa309e4 GIT: corrected incorrect merge artefacts 2018-01-25 11:12:42 +00:00
20125b36a3 BUG: timeControlFunctionObject swallows dictionary modifications (closes #716)
- runTimeModifiable change to the dictionary not being propagated to
  the underlying functionObjects
2018-01-24 20:45:59 +01:00
294a3d05ba BUG: problems converting clouds to ensight or vtk format (closes #708)
- problems when the cloud was not available on all processors.

- NB: ensight measured data only allows a single cloud, but
  foamToEnsight writes all clouds.
2018-01-23 15:39:45 +01:00
d4fe3b931a BUG: noiseModel - added missing read of 'writePSDf' entry 2018-01-19 12:48:59 +00:00
f37b3c479a ENH: kOmegaSSTLM improved robustness 2018-01-18 12:09:06 +00:00
8716ca25c0 ENH: sixDoFRigidBodyState relocated and code improvements. Fixes #711 2018-01-18 09:26:22 +00:00
e3c4696a6e TUT: Updated Allrun scripts for tests. Fixes #710 2018-01-17 15:30:49 +00:00
40985d291b ENH: use main constant/triSurface directory for sampling surfaces (closes #704)
- these were previously taken from region-local directories
  (eg, constant/region/triSurface), but this becomes difficult to
  manage when there are many files and regions.
2018-01-17 14:47:38 +01:00
2ebcb74dd2 BUG: reconstructPar ignores writeLagrangianPositions (fixes #702)
- The central InfoSwitch "writeLagrangianPositions" allows writing an
  additional Lagrangian "positions" file, but these were not being
  written by reconstructPar. These are now also written in reconstructPar
  if the central writeLagrangianPositions InfoSwitch is enabled.

NOTES

- "positions" are reconstructed from the processors "coordinates" file

- decomposePar will not attempt to create or redistribute any
  "positions" files
2018-01-17 13:38:24 +01:00
73ce0ccbef DOC: Documentation updates 2018-01-11 14:32:39 +00:00
1510c0aeb5 ENH: interIsoFoam - added linkage against wave modelling library 2018-01-11 14:30:26 +00:00
35d930ec0c COMP: mpi: const_cast because of incorrect mpi.h header. Fixes #697. 2018-01-10 09:10:30 +00:00
f412419c41 SUBMODULE: cfmesh update for 64-bit labels 2018-01-08 14:50:52 +01:00
4781193e31 ENH: nutUBlended wall function - added protection for uTau. See #696 2018-01-08 10:33:56 +00:00
f02783b986 ENH: Updates to the k-omega SST decay control functionality - see #694 2018-01-05 14:15:32 +00:00
7b4bf88891 ENH: snappyHexMesh: directional refinement tutorial 2017-12-28 16:28:29 +00:00
2a97365428 ENH: snappyHexMesh: tutorial for directional refinement 2017-12-28 14:58:55 +00:00
695246ad5a ENH: snappyHexMesh: directional refinement parallel 2017-12-28 14:45:47 +00:00
41f3ae3495 ENH: snappyHexMesh: directional refinement parallel 2017-12-28 14:45:47 +00:00
97e00442f0 Merge remote-tracking branch 'upstream/develop' into wp3-directional-refinement 2017-12-27 11:45:28 +00:00
14f9a44f0f Merge remote-tracking branch 'upstream/develop' into wp3-directional-refinement 2017-12-21 13:24:21 +00:00
c486a3c436 Merge branch 'wp3-directional-refinement' of develop.openfoam.com:/Customer-VWG/OpenFOAM-plus into wp3-directional-refinement 2017-12-21 13:19:41 +00:00
01b785f23a ENH: 2:1 constraint 2017-12-21 13:12:22 +00:00
7a474d0594 ENH: 2:1 constraint 2017-12-21 13:12:22 +00:00
47bd51348b ENH: snappyHexMesh: message 2017-12-13 12:45:06 +00:00
3a4bbd7935 ENH: snappyHexMesh: message 2017-12-13 12:45:06 +00:00
18ffeba1c8 ENH: snappyHexMesh: updated directional refinement 2017-12-13 12:27:25 +00:00
52231e7836 ENH: snappyHexMesh: updated directional refinement 2017-12-13 12:27:25 +00:00
994138aa40 ENH: snappyHexMesh: updated directional refinement 2017-12-13 12:27:25 +00:00
032f48055f ENH: snappyHexMesh: initial version of directional refinement 2017-12-11 17:23:33 +00:00
88fac3ed9f ENH: snappyHexMesh: initial version of directional refinement 2017-12-11 17:23:33 +00:00
7fe700a8dc COMP: HashPtrTableI.H: inlined functions 2018-05-21 09:50:22 +01:00
447ee9e027 ENH: processorField: added etc/caseDicts file. Fixes #807. 2018-05-21 09:45:55 +01:00
1275c71e50 ENH: snappyHexMeshDict: description of gapMode 2018-05-16 11:38:24 +01:00
b0ddf92e78 ENH: polyMesh: fixed warning message. Fixes #828. 2018-05-16 10:14:45 +01:00
48d654cf19 ENH: avoid memory leaks for HashPtrTable, PtrMap insertion (issue #749)
- disallow insert() of raw pointers, since a failed insertion
  (ie, entry already existed) results in an unmanaged pointer.

  Either insert using an autoPtr, or set() with raw pointers or autoPtr.

- IOobjectList::add() now takes an autoPtr instead of an object reference

- IOobjectList::remove() now returns an autoPtr instead of a raw pointer
2018-05-17 09:56:36 +01:00
46b768628c STYLE: use FieldBase for template invariant parts
- use refCount instead of the tmp<...>::refCount alias
2018-05-16 18:03:14 +01:00
fe80e3b4ed SUBMODULE: updates for catalyst 2018-05-16 16:07:31 +01:00
4289242c07 Merge remote-tracking branch 'origin/master' into develop 2018-05-16 16:07:00 +01:00
7c43b919c5 STYLE: eliminate a global reduction for field function (issue #816) 2018-05-15 18:10:03 +01:00
5b50febfa4 ENH: simplify distance calculation in distanceSurface
- use normal instead of volumeType to decide on the sign.
  This provides a continuous field and eliminates special handling of
  GREAT in iso-surface routines.

- fix regression in isoSurfaceCell cutting that was introduced by the
  previous adjustments for distanceSurface
2018-05-15 13:50:24 +01:00
d8356fee44 CONFIG: change default writeLagrangianPositions ON (closes #781)
- this enables x,y,z access of lagrangian positions, which is useful
  for postprocessing in paraview, but at the expense of slightly
  more disk space.
2018-05-15 11:11:59 +01:00
65129d7b90 CONFIG: export ThirdParty Qt5_DIR (issue #827) 2018-05-14 17:04:18 +01:00
df3b406ef8 COMP: resolve faceZone constructor ambiguity for gcc 4.8.1 2018-05-11 17:18:52 +01:00
26c24492b1 SUBMODULE: updates for avalanche, catalyst, cfmesh 2018-05-11 15:29:00 +02:00
73a525b7f5 ENH: additional input/output parameters for lumped point motion (closes #804)
- input or output scaling of values to manage dissimilar unit systems
  in the structures model

- logging of communicated force, moments and updated positions.
  This allows tracking of the information exchange throughout the
  duration of the simulation and may assist in post-simulation diagnosis.
2018-03-22 23:57:46 +01:00
51d6008bbb Merge remote-tracking branch 'origin/master' into develop 2018-05-11 15:15:54 +02:00
28627250c6 CONFIG: update catalyst configuration files
- relocated from
    etc/caseDicts/postProcessing/catalyst/ -> etc/caseDicts/insitu/catalyst/

- adjusted for unified catalyst function object
2018-05-11 14:55:47 +02:00
cc0eac3e19 ENH: add decompose flag for vtkWrite function object
- default is now without polyhedral decomposition, since this produces
  compacter files and VTK mananges this in most instances.
  However, provide function object flag to reinstate the old behaviour.
2018-05-11 08:04:50 +02:00
f40d7ef578 COMP: use emptyLabelList to avoid reference to temporary (gcc 8.1) 2018-05-09 12:40:38 +02:00
1513a049e0 BUG: swirl: decide based on global properties. Fixes #824. 2018-05-10 11:12:19 +01:00
56231b5b5f STYLE: use FatalIOError and minor changes to log output 2018-05-09 12:43:11 +01:00
16f3eac7d6 ENH: reference FO - position entry is now optional 2018-05-09 12:15:43 +01:00
050628c7b1 COMP: Corrections for clang 3.7.1 2018-05-08 15:54:08 +01:00
8c5d0cd8b2 Merge remote-tracking branch 'origin/develop' into develop 2018-05-08 13:56:16 +01:00
0d7c582293 STYLE: Minor typo corrections 2018-05-08 13:24:38 +01:00
091d847094 ENH: Added a new function object to create a field relative to a field value
Calculates and outputs a field whose values are offset to a reference
    value obtained by sampling the field at a user-specified location.

    The field values are calculated using:

    \f[
        f_c = s(f_{c,t} - f_p + f_{off})
    \f]

    where
    \vartable
        f_c     | field values at cell
        s       | optional scale factor (default = 1)
        f_{c,t} | current field values at cell at this time
        f_p     | field value at position
        f_{off} | offset field value (default = 0)
    \endvartable

Usage
    Example of function object specification to calculate the reference
field:
    \verbatim
    pRef
    {
        type        reference;
        libs        ("libfieldFunctionObjects.so");
        ...
        field       p;
        result      pRef;
        position    (0 0 0);
        scale       1.2;
        offset      100000;
    }
    \endverbatim
2018-05-08 13:19:46 +01:00
5c60cbe34d ENH: improve ensightWrite handling of moving mesh
- now treat all mesh geometries as moving, since we cannot know
  beforehand if this is the case.
2018-05-08 12:41:06 +02:00
e3706cdc69 COMP: wallDistData: incorrect templates 2018-05-08 10:33:58 +01:00
f99880cbea ENH: add nodeValues option for ensightWrite function object (closes #734) 2018-05-08 09:51:15 +02:00
b24bd516ae ENH: write ensightWrite case on each write (closes #733)
- allows processing of the data during the calculation.
2018-05-08 09:25:07 +02:00
9531212f14 ENH: disable ensightWrite, vtkWrite function objects in post-process mode
- prevents accidental overwrite of runtime conversions.
2018-05-08 09:16:00 +02:00
dbe16de58c ENH: cleaner, more consistent ensight case surface output files
- use same data mask width as ensightCase (8 digits)

- consolidate geometry time steps with data time steps if possible,
  for a cleaner case file.
2018-05-08 08:15:31 +02:00
2f567e53de COMP: silence some compiler warnings/errors
- catch (value)
- forward declarations for operator<<()
- non-const access to Reaction name()
- spurious return statement
2018-05-07 17:21:56 +02:00
272e09b051 CONFIG: add Gcc81 2018-05-07 17:21:30 +02:00
01a313d889 BUG: collated ensight not working with isosurfaces (closes #318)
- the problem arises since the various surface writers are stateless.
  The collated output format hacks around this limitation by adding in
  its own fieldDict caching (to disk).

  Now include an updateMesh() method to hook into geometry changes.
  This is considered a stop-gap measure until the surface output
  handling is improved.
2018-05-07 16:59:15 +02:00
b0648f2ba0 ENH: improvements in the surface sampling infrastructure
- improvement documentation for surface sampling.

- can now specify alternative sampling scheme for obtaining the
  face values instead of just using the "cell" value. For example,

      sampleScheme    cellPoint;

  This can be useful for cases when the surface is close to a boundary
  cell and there are large gradients in the sampled field.

- distanceSurface now handles non-closed surfaces more robustly.
  Unknown regions (not inside or outside) are marked internally and
  excluded from consideration. This allows use of 'signed' surfaces
  where not previously possible.
2018-05-07 11:29:00 +02:00
5268b5e61d BUG: Corrected no-op in reverse transform multi-D fft - see #813 2018-05-03 14:54:09 +01:00
ef882e542a ENH: zero initialize memory for Pstream send (issue #814)
- this avoids some valgrind messages

      "Uninitialised byte(s) found during client check request"
2018-05-02 14:02:55 +02:00
6d89a3ec38 ENH: additional convenience for mpirunDebug
- a -valgrind option for logging with valgrind

- determine number of processors from system/decomposeParDict
  or -decomposeParDict if -np was not specified
2018-05-02 11:49:33 +02:00
0ea44eda59 ENH: bitSet::find_first_not() method (issue #751)
- find the position of the first bit off - symmetrical with find_first()
2018-05-02 08:33:49 +02:00
4653beaa49 ENH: report illegal cellId for getRefCellValue (FULLDEBUG)
-  this should normally not be triggered, provided that setRefCell was
   used. However, if getRefCellValue() was called without any previous
   checking on refCelli, it is possible to provoke errors.
2018-04-30 14:25:37 +02:00
b4a2876c56 ENH: use move construct for cellZone/faceZone 2018-03-07 11:28:05 +01:00
4fe8ed8245 STYLE: use direct iteration for HashSet
- The iterator for a HashSet dereferences directly to its key.

- Eg,

      for (const label patchi : patchSet)
      {
          ...
      }
  vs.
      forAllConstIter(labelHashSet, patchSet, iter)
      {
          const label patchi = iter.key();
          ...
      }
2018-03-06 00:29:03 +01:00
2a6ac7edce BUG: nearWallFields: correct exit condition for particles. Fixes #812. 2018-04-30 13:08:58 +01:00
e2361b102f COMP: inplaceMapValue relocated to ListOps 2018-04-30 14:05:54 +02:00
153323e1f6 Merge branch 'feature-regionsplit' into 'develop'
Feature regionsplit

See merge request Development/OpenFOAM-plus!201
2018-04-30 11:21:45 +01:00
f3d1e41d76 COMP: label-size 64 compilation of fft (issue #813) 2018-04-30 08:24:38 +02:00
f86c129fd5 STYLE: additional comment when completion not found (issue #719)
No completion added for XXX
    ... incorrect platform, or not yet compiled?
2018-04-30 07:50:48 +02:00
ed2722745d ENH: revert regionSplit to older algorithm (issue #805)
- the algorithm was last used in OpenFOAM-2.4, after which it was
  replaced with a FaceCellWave version.

  Whereas the original (2.4.x) version exhibited performance
  degradation on very large meshes (with explicit constraints), the
  FaceCellWave version exhibited performance issues with large numbers
  of blocked faces.

  With large numbers of blocked faces, the FaceCellWave regionSplit
  could take between 10 to 100 times longer due to the slow
  propagation speed through blocked faces.

  The 2.4 regionSplit has been revamped to avoid local memory
  allocations, which appears to have been the source of the original
  performance issues on large meshes.

  For additional performance, intermediate renumbering is also avoided
  during the consolidation of regions over processor domains.
2018-04-27 15:51:33 +02:00
dd8341f659 ENH: make format of ExecutionTime = ... output configurable (issue #788)
- controlled by the the 'printExecutionFormat' InfoSwitch in
  etc/controlDict

      // Style for "ExecutionTime = " output
      // - 0 = seconds (with trailing 's')
      // - 1 = day-hh:mm:ss

   ExecutionTime = 112135.2 s  ClockTime = 113017 s

   ExecutionTime = 1-07:08:55.20  ClockTime = 1-07:23:37

- Callable via the new Time::printExecutionTime() method,
  which also helps to reduce clutter in the applications.
  Eg,

     runTime.printExecutionTime(Info);

  vs

     Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
         << "  ClockTime = " << runTime.elapsedClockTime() << " s"
         << nl << endl;

--

ENH: return elapsedClockTime() and clockTimeIncrement as double

- previously returned as time_t, which is less portable.
2018-04-27 15:00:34 +02:00
0743b61a3c STYLE: minor cleanup in decompositionMethod
- reduce cell looping. Avoid initial looping over blockFace.

- make early return (no processor sets, connections, or blocked faces)
  more apparent.
2018-04-26 12:36:24 +02:00
4dcd052ffc STYLE: remove old/dead decompositionMethod::calcCellCells code
- alternative calcCellCells that handled explicitConnections was
  deactivated (2014 or earlier) and finally removed APR-2018.
2018-04-27 11:16:18 +02:00
10b69fa2b4 ENH: ListOp::inplaceMapValue using a Map<label> for the mapping.
For example, with some HashTable or Map container of models

    { model0 => 1, model1 => 4, model2 => 5, model3 => 12, model4 => 15, }

specify the remapping

    Map<label> mapper({{1, 3}, {2, 6}, {3, 12}, {5, 8}});

inplaceMapValue(mapper, models) then yields

    { model0 => 3, model1 => 4, model2 => 8, model3 => 12, model4 => 15, }

--

ENH: extend bitSet::count() to optionally count unset bits instead.

--

ENH: BitOps compatibility methods for boolList.

- These ease coding that uses a boolList instead of bitSet and use
  short-circuit logic when possible.

  Eg, when 'bitset' and 'bools' contain the same information

      bitset.count()  <->  BitOps::count(bools)
      bitset.all()    <->  BitOps::all(bools)
      bitset.any()    <->  BitOps::any(bools)
      bitset.none()   <->  BitOps::none(bools)

  These methods can then be used directly in parameters or in logic.
  Eg,

      returnReduce(bitset.any(), orOp<bool>());
      returnReduce(BitOps::any(bools), orOp<bool>());

      if (BitOps::any(bools)) ...
2018-04-27 10:43:32 +02:00
c0766ce8ea STYLE: consistent '// End namespace' markers 2018-04-27 09:51:35 +02:00
a9fbaa4b08 ENH: volPointInterpolate: improved debug message 2018-04-26 17:08:50 +01:00
a645b2b5c8 BUG: annularThermalMixer: incorrect shm setup. Fixes #811. 2018-04-25 11:43:52 +01:00
0226485c77 BUG: extraneous '}' in FULLDEBUG 2018-04-26 14:49:49 +02:00
d3c2668cc6 STYLE: extraneous debug output in PackedList
- bitSet::used() method for compatibility with code using the
  PackedBoolList typedef, but marked as deprecated.
2018-04-26 14:10:16 +02:00
f181a7ac61 SUBMODULE: minor updates for cfmesh
- with updated DynList that inherits from UList and uses List/FixedList
  internally for its memory management
2018-04-26 10:45:52 +02:00
497dde2b2f CONFIG: bump API version number to 1804 to account for bitSet
- since PackedBoolList is now a compatibility typedef for bitSet,
  it is useful to have an additional means of distinction.

STYLE: simplify internal version tests and compiler defines.

- the API version is now conveyed via the OPENFOAM define directly.
  The older OPENFOAM_PLUS define is provided for existing code.
2018-04-26 09:28:42 +02:00
ebfe46503f STYLE: improve wmkdepend parse error message
- parsing error state only arises from a missing final newline
  in the file (which the dnl macro does not capture).
  Report with a warning instead of modifying the dnl macro since
  we generally wish to know about this anyhow.

- add missing newline to YEqn.H file.
2018-04-25 14:37:59 +02:00
e6787bfa9a Merge branch 'feature-bitset' into 'develop'
ENH: new bitSet class and improved PackedList class (closes #751)

See merge request Development/OpenFOAM-plus!200
2018-04-25 11:39:59 +01:00
dffc65d41d STYLE: make token null constructor constexpr, noexcept 2018-04-25 10:42:25 +02:00
2fde6c3ab0 ENH: improve handling of mismatched brackets, forgotten ';' (issue #762)
- flags the following type of problems:

  * mismatches:

        keyword  mismatch ( set of { brackets ) in the } entry;

  * underflow (too many closing brackets:

        keyword  too many ( set of ) brackets ) in ) entry;

- a missing semi-colon

        dict
        {
           keyword  entry with missing semi-colon
        }

  will be flagged as 'underflow', since it parses through the '}' but
  did not open with it.

Max monitoring depth is 60 levels of nesting, to avoid incurring any
memory allocation.
2018-04-25 09:55:00 +02:00
76cb38fbc7 CONFIG: adjust make scripts for darwin
- handling of dead links (find -L -delete unsupported)

- remove ignore case flag on 's/../../i' used in have_scotch script.
  It is unneeded and not tolerated by Darwin's sed.

- avoid embedded comments in EXE_INC (Make/options files), which do
  not work well with the OSX LLVM cpp.
  It strips out the comments but also removes the continuation char.

STYLE: adjust notes about paraview library locations
2018-04-24 21:20:06 +02:00
0dfda5f796 COMP: fix Darwin size ambiguities
- size ambiguity for Foam::min(string::size_type, label)

- stream operators for int16/uint16 which are needed for mode_t (Darwin)
2018-04-24 18:03:42 +02:00
7bb7f1b352 ENH: overset: extraneous exchange. Fixes #803. 2018-04-25 09:20:57 +01:00
b18a9d73c4 ENH: checkMesh: near-zero vol cell. Fixes #808. 2018-04-23 17:54:16 +01:00
366d757937 COMP: ConstCirculator: missing include 2018-04-23 17:50:50 +01:00
2768500d57 CONFIG: remove WM_LINK_LANGUAGE env variable (always c++)
- was somewhat redundant in wmake/rules/General/general anyhow
2018-04-24 14:59:47 +02:00
b4d38ab468 ENH: improve handling of ThirdParty packages
- generalize some of the library extensions (.so vs .dylib).
  Provide as wmake 'sysFunctions'

- added note about unsupported/incomplete system support

- centralize detection of ThirdParty packages into wmake/ subdirectory
  by providing a series of scripts in the spirit of GNU autoconfig.
  For example,

      have_boost, have_readline, have_scotch, ...

  Each of the `have_<package>` scripts will generally provide the
  following type of functions:

      have_<package>          # detection
      no_<package>            # reset
      echo_<package>          # echoing

  and the following type of variables:

      HAVE_<package>          # unset or 'true'
      <package>_ARCH_PATH     # root for <package>
      <package>_INC_DIR       # include directory for <package>
      <package>_LIB_DIR       # library directory for <package>

  This simplifies the calling scripts:

      if have_metis
      then
          wmake metisDecomp
      fi

  As well as reducing clutter in the corresponding Make/options:

      EXE_INC = \
          -I$(METIS_INC_DIR) \
          -I../decompositionMethods/lnInclude

      LIB_LIBS = \
          -L$(METIS_LIB_DIR) -lmetis

  Any additional modifications (platform-specific or for an external build
  system) can now be made centrally.
2018-04-24 14:51:19 +02:00
672f0574e2 COMP: resolve signed/unsigned long ambiguity on Darwin 2018-04-24 13:17:22 +02:00
29c020f5b3 COMP: sinclude platform-specific CGAL rules
- permits platform-specific override of the general CGAL rules
2018-04-24 09:26:50 +02:00
5af5bfa1a5 ENH: error handling for Ragel STL parsing
- also simplify parsing by accepting any case on keywords.
  This implies that something like "sOlId", "SoLiD" will also
  be accepted. Although nobody should really count on this rather
  generous behaviour, it does simplfy the state machine even further.
2018-04-24 09:15:50 +02:00
591a1a0c68 ENH: improve memory allocations for explicit connections (issue #805)
STYLE: change access methods names in mesh wave algorithms

- nUnvisitedCells(), nUnvisitedFaces() etc instead of
  getUnsetCells(), getUnsetFaces()

- simplify some coding with range-for
2018-04-23 10:37:24 +02:00
857eed5b51 ENH: change findCell mode in meshRefinement (issue #805)
- in 2.4.x the general default for polyMesh::findCell was FACE_DIAG_TRIS,
  but this was changed to CELL_TETS for better handling of concave
  cells.

- in snappyHexMesh meshRefinement, findCell is used to define
  locations in mesh and cells for closer refinement. Using CELL_TETS
  causes an octree rebuild when the mesh has changed and this adds
  considerable overhead. For this operation, the faster FACE_DIAG_TRIS
  mode can be used instead.
2018-04-23 09:37:24 +02:00
1f25c5975d BUG: wmkdepend finds 'include' in multi-line comments (closes #784)
- the previous grammar used

      '/*' { fgoto comment; }

  to start processing multi-line comments and

      comment := any* :>> '*/' @{ fgoto main; };

  as a finishing action to return to normal lexing, but seemed not to
  have been triggered properly.

  Now simply trap in a single rule:

      '/*' any* :>> '*/';             # Multi-line comment

STYLE: use more compact dnl (delete to newline)

  OLD:   [^\n]* '\n'
  NEW:   (any* -- '\n') '\n'

  eliminates the intermediate state
2018-04-20 14:41:32 +02:00
694004ad41 ENH: finiteArea - integrated d2dt2 scheme from Alexander Kabat vel Job 2018-04-20 15:04:47 +01:00
4a2afb85d6 BUG: Added missing oriented flag to meshPhi 2018-04-19 12:08:19 +01:00
b5c7e43c84 DEFEATURE: remove foamToTecplot360
- the API-versioned calls (eg, tecini142, teczne142, tecpoly142, tecend142),
  the limited availability of the SDK and lack of adequate testing make
  proper maintenance very difficult.
2018-04-19 14:51:33 +02:00
6b8f037333 STYLE: provide number of unreachable blocked cells
- in debug, also report the first 10 cell ids

- format header documentation
2018-04-05 16:41:52 +02:00
12157acf07 STYLE: suppress fatal errors for indexedOctree debug=1
- these errors are mostly rounding related (when a point is located on
  the edge of a bounding box instead of being fully inside it).

  For debug > 1, continue to treat as fatal.
2018-04-04 18:14:34 +02:00
0cfe88f2e4 CONFIG: update VTK version to use the latest version
- also see issue #793 (paraview version)
2018-04-19 10:08:09 +02:00
0e82e883f0 ENH: make decomposition methods const (issue #796) 2018-04-19 09:48:11 +02:00
ef922b6917 STYLE: adjust codeTemplates to use '= delete' 2018-04-19 07:38:31 +02:00
367ddb8f05 Merge branch 'style-iostream-option' into 'develop'
Style iostream option

See merge request Development/OpenFOAM-plus!199
2018-04-18 17:23:29 +01:00
756502da87 COMP: listOutput: make compatible with stl include files 2018-04-18 11:35:30 +01:00
af3f93c057 ENH: snappyHexMeshDict: changed 17x to 1.7.x 2018-04-18 11:32:59 +01:00
21369e4702 COMP: correction for Clang 2018-04-18 13:33:09 +01:00
ed4564a805 STYLE: Added backwards compatibility for old keywords 2018-04-18 13:32:49 +01:00
622cde7e31 COMP: some legacy rendering removed for VTK 9 2018-04-18 13:59:35 +02:00
a1b4b20bf4 ENH: surfaceNoise - only write on the master process 2018-04-17 16:00:03 +01:00
53ae09ad04 STYLE: relocate stream allocators to Detail namespace 2018-04-13 10:24:22 +02:00
4cf932b230 STYLE: reorder/refactor stream format options
- IOstreamOption class to encapsulate format, compression, version.
  This is ordered to avoid internal padding in the structure, which
  reduces several bytes of memory overhead for stream objects
  and other things using this combination of data.

  Byte-sizes:
      old  IOstream:48  PstreamBuffers:88  Time:928
      new  IOstream:24  PstreamBuffers:72  Time:904

====

STYLE: remove support for deprecated uncompressed/compressed selectors

In older versions, the system/controlDict used these types of
specifications:

    writeCompression uncompressed;
    writeCompression compressed;

As of DEC-2009, these were deprecated in favour of using normal switch
names:

    writeCompression true;
    writeCompression false;
    writeCompression on;
    writeCompression off;

Now removed these deprecated names and treat like any other unknown
input and issue a warning. Eg,

   Unknown compression specifier 'compressed', assuming no compression

====

STYLE: provide Enum of stream format names (ascii, binary)

====

COMP: fixed incorrect IFstream construct in FIREMeshReader

- spurious bool argument (presumably meant as uncompressed) was being
  implicitly converted to a versionNumber. Now caught by making
  IOstreamOption::versionNumber constructor explicit.

- bad version specifier in changeDictionary
2018-04-12 20:32:20 +02:00
a230e8d408 STYLE: Correcting typos 2018-03-28 17:14:16 +01:00
3a569c9fd5 ENH: streamLineBase - construct with curve distance 2018-03-27 11:01:06 +01:00
801fb7bd5f ENH: streamLine/wallBoundedStreamLine - minor refactoring to enable new derived functionality 2018-03-27 11:00:12 +01:00
ee2ca640d4 BUG: fft - corrected multi-D fft regression when moving to fftw 2018-03-22 16:36:11 +00:00
5037634bd1 CONFIG: return instead of exit in lib-dir script
- affected csh users
2018-04-17 11:45:44 +02:00
aeef1cd4df BUG: wmkdepend parser missing some files
- adjusted grammar to be more precise
2018-04-17 09:20:01 +02:00
ea71484efa ENH: add alternative STL ASCII parsers
- In addition to the traditional Flex-based parser, added a Ragel-based
  parser and a handwritten one.

  Some representative timings for reading 5874387 points (1958129 tris):

      Flex   Ragel   Manual
      5.2s   4.8s    6.7s         total reading time
      3.8s   3.4s    5.3s         without point merging
2018-04-16 10:20:45 +02:00
a8da75d27e STYLE: support wordRe ICASE enum
- better naming consistency with std::regex_constants::icase

- deprecate older NOCASE, but leave supported
2018-04-13 10:42:42 +02:00
b29a0119de ENH: minor code tidying, machine simplifications for wmkdepend parser 2018-04-13 16:17:39 +02:00
c8d0e5ae03 COMP: single-precision ambiguity (fixes #799) 2018-04-12 18:50:58 +02:00
48b52ac8ee SUBMODULE: minor updates for avalanche and cfmesh 2018-04-12 16:32:02 +02:00
c2da3424bb SUBMODULE: catalyst function object
- now uses current OpenFOAM code level

- added initial catalyst script for insitu processing of overset
2018-04-12 16:25:42 +02:00
428f746c68 STYLE: include temperature (T) in the default paraFoam pre-selection 2018-04-12 13:51:51 +02:00
f056e59db6 CONFIG: simplify paraview lib path for 5.5 (issue #793)
- note that the python paths also seem to be treated differently
2018-04-12 12:39:30 +02:00
de72a04aeb ENH: make it easier to switch between the various make dependencies programs.
- However, the new ragel-based parser is much faster
  than the others, and does not cause 'too many open files' error
  that the flex-based parser does (issue #784).

  The timings (using src/sampling as being somewhat representative)

    $ wclean; wmakeLnInclude -u .; time wmake -s dep

        3.4s  wmkdepend (ragel) [now default]
        5.7s  wmkdep (flex)
        6.1s  cpp -M

- The makeDepend script is for testing purposes only, but could used as
  a hook for other dependency generation systems (eg, ninja).
  It simply wraps 'cpp -M' in a form that is calling compatible with
  wmkdepend.

BUG: wmkdepend parser was missing optional leading space on #include match

STYLE: use -G2 (goto-based) option for wmkdepend state machine

- the machine is compact with few states and lends itself to this
2018-04-12 10:14:03 +02:00
5f88e4271e ENH: allow "<case>", "<system>" ... in the string expansions (issue #792)
- the expansions were previously required as slash to follow, but
  now either are possible.

    "<case>", "<case>/" both yield the same as "$FOAM_CASE" and
    will not have a trailing slash in the result. The expansion of
    "$FOAM_CASE/" will however have a trailing slash.

- adjust additional files using these expansions
2018-04-11 23:10:49 +02:00
fc5895f1df STYLE: rename toLabel, toLabelRange classes -> labelOp, labelRangeOp
- make purpose as functors _slightly_ clearer.

- base definition removed for stricter enforcement of the specialization
  requirement.
2018-04-11 22:48:03 +02:00
97dc9f4029 EHN: make signal verbosity an optional calling argument. 2018-04-11 21:35:02 +02:00
297570de53 COMP: some low-level darwin-related patches
- a partial selection from https://github.com/mrklein/openfoam-os-x
  with adjustments. The primary purpose is to reduce header-level
  incompatibilities and to provide a common set of make rules to allow
  easier patching (or re-integration).
2018-04-09 12:48:55 +02:00
d2b1b1cdc0 ENH: paraFoam: catch read errors. Fixes #798. 2018-04-12 15:12:04 +01:00
cb14a2020b ENH: snappyHexMesh: exclude feature angle analysis. See #699. 2018-04-11 10:58:46 +01:00
1fff0109d1 STYLE: adjust config examples 2018-04-11 12:17:56 +02:00
6321ba8f45 Merge branch 'feature-wmake' into 'develop'
Feature wmake

See merge request Development/OpenFOAM-plus!198
2018-04-11 12:35:10 +01:00
1676bd4003 ENH: replace flex-based wmkdep with ragel-based parser (issue #784)
This is similar to efforts (Feb 2010) but using ragel
  (https://en.wikipedia.org/wiki/Ragel) instead of the now defunct
  coco/r. The modified commit message from 2010:

ENH: add C++-based wmkdepend parser (uses ragel grammar).

- This avoids dependency on lex/flex and provides better encapsulation
  for buffer switching. As a result, the maximum number of open files
  only corresponds to the include depth.

--

Note that the flex source and rules are still available, but are not
deactivate (see wmake/rules/General/transform)
2018-04-11 12:31:36 +02:00
a9741cea79 ENH: additional text expansion shortcuts (issue #792)
Support the following expansions when they occur at the start of a
string:

    Short-form       Equivalent
    =========       ===========
      <etc>/          ~OpenFOAM/   (as per foamEtcFile)
      <case>/         $FOAM_CASE/
      <constant>/     $FOAM_CASE/constant/
      <system>/       $FOAM_CASE/system/

These can be used in fileName expansions to improve clarity and reduce
some typing

     "<constant>/reactions"   vs  "$FOAM_CASE/constant/reactions"
2018-04-10 13:41:41 +02:00
d814bce3ee CONFIG: adjust paraview lib path for 5.5 (issue #793)
ParaView 5.4 and older:
    - requires lib/paraview-X.X only

  ParaView 5.5:
    - requires lib/
    - does not appear to require lib/paraview-X.X, but retained for simplicity

- Change default version to paraview-5.5.0 for testing purposes
2018-04-11 11:01:17 +02:00
6d8be52294 STYLE: provide caseDicts for the catalyst function object 2018-04-10 14:23:56 +02:00
b85d0b5cb7 ENH: provide Rand48 as generator in the expected C++11 form
- this removes an OS-specific dependency (eg, drand48_r is not POSIX)
  and allows easier use of other random number generators.

  The Rand48 generator has identical behaviour and period as the
  lrand48() library routine, but holds its own seed and state
  (which makes it re-entrant) and can be combined with other
  random distributions.

  However, when using the modified form to obtain scalar values
  they will not be identical to what drand48() yields.

  This is because drand48() uses the raw 48-bit values to directly
  set the mantissa of an IEEE double where as the newer distribution
  normalizes based on the 32-bit value.

STYLE: simplify code in Random::shuffle and use Swap
2018-04-09 11:08:34 +02:00
e4f5471edf ENH: improve robustness of fileStat class (issue #794)
- quick ignore of empty filenames.

- relocated some implementation details from POSIX.C to the
  fileStat class, where they make more sense.
2018-04-11 10:24:27 +02:00
a11b93bee1 Merge remote-tracking branch 'origin/master' into develop 2018-04-11 10:35:35 +02:00
52cf2d68c4 STYLE: avoid 'sed -i' in wmake rules
- less efficient and less portable than using single-pass processing
2018-04-08 22:15:21 +02:00
0e669fcb39 ENH: Editing header description 2018-04-05 08:39:03 -07:00
bf4125b248 ENH: New outletMachNumberPressure BC. It sets pressure at outlet
keeping chocked conditions of Mach number.
This BC can work in two modes, chocked or non-chocked. In the
chocked mode the Ma is an input. In the non-chocked mode
the Ma is calculated from model inputs.
2018-04-03 16:39:07 -07:00
c52ee82f79 COMP: missing bracket 2018-04-03 21:51:22 +02:00
bbf8dc18f6 Merge branch 'style-returns' into 'develop'
STYLE: use 'return nullptr' for empty autoPtr/tmp returns

See merge request Development/OpenFOAM-plus!197
2018-04-03 20:32:52 +01:00
5ac02c6809 Merge branch 'style-dimensioned' into 'develop'
more consistent use of dimensioned Zero

See merge request Development/OpenFOAM-plus!196
2018-04-03 20:30:31 +01:00
06035b8a30 Merge branch 'feature-catalyst' into 'develop'
Feature catalyst

See merge request Development/OpenFOAM-plus!195
2018-04-03 20:22:48 +01:00
795bdfb2f1 SUBMODULE: catalyst function object 2018-04-03 19:07:35 +02:00
c0498e731a ENH: consolidate some common methods for paraview + catalyst 2018-04-03 18:42:35 +02:00
5c77932513 TUT: test parallel for sphereTransport tutorial 2018-04-03 16:43:05 +02:00
3dbe6ef81f ENH: downgrade to warning and exit if MPI_Finalized is called twice.
- this can occur when OpenFOAM is run in serial mode, but connects to
  a program that starts/stops MPI on its own.
2018-04-03 16:35:03 +02:00
55d9eb206d STYLE: missing space in checkMesh (fixes #767) 2018-04-03 09:40:04 +02:00
b85b261348 STYLE: string::assign instead of string::operator= in string sub-classes
- makes the meaning clearer
2018-04-03 08:31:59 +02:00
c2f0864f68 ENH: remove size limit when reading verbatim strings (issue #785) 2018-04-03 08:16:20 +02:00
b854ce228e ENH: wmkdep: better error message. See #784. 2018-03-28 16:39:05 +01:00
795ece8bb7 ENH: writeFile: check for opening status. Fixes #783. 2018-03-28 11:45:28 +01:00
0c1163c182 Merge branch 'feature-profiling' into 'develop'
ENH: reduce profiling overhead (issue #764)

See merge request Development/OpenFOAM-plus!194
2018-03-27 16:39:02 +01:00
2c3befe090 STYLE: inconsistent field naming for hexRef8Data 2018-03-27 11:46:47 +02:00
d901b4f450 ENH: reduce profiling overhead (issue #764)
- avoid clockTime in favour of clockValue.

- avoid allocations when profiling is not active.

- replace hashing with manual pointer lists
2018-03-26 21:38:47 +02:00
e0d075ff89 Merge branch 'feature-ptrlist' into 'develop'
Updated/modified PtrList implementation

See merge request Development/OpenFOAM-plus!193
2018-03-26 18:41:42 +01:00
db76bbbac0 TUT: clean out old tutorial build directories 2018-03-26 15:54:31 +02:00
36719bf55b STYLE: consistent lookupOrDefault template parameters
- in many cases can just use lookupOrDefault("key", bool) instead of
  lookupOrDefault<bool> or lookupOrDefault<Switch> since reading a
  bool from an Istream uses the Switch(Istream&) anyhow

STYLE: relocated Switch string names into file-local scope
2018-03-26 09:09:09 +02:00
568fbf727d STYLE: simplify VectorSpaceOps template looping
- this is a continuation of commit ba92e75215 with simpler
  template logic.
2018-03-22 14:03:31 +01:00
5d008f7a18 ENH: improvements for PtrList, UPtrList and new PtrDynList container
- improve internal handling to permit deriving resizable containers
  (eg, PtrDynList).

- include '->' iterator dereferencing

- Only append/set non-const autoPtr references. This doesn't break
  existing code, but makes the intention more transparent.
2018-03-22 01:13:38 +01:00
35d348c00d BUG: guard against potential wasted memory in DynamicField
- specialize transfer and swap to ensure allocated capacity isn't
  forgotten.
2018-03-21 15:30:14 +01:00
018124e3bf STYLE: use 'return nullptr' for empty autoPtr/tmp returns
- both autoPtr and tmp are defined with an implicit construct from
  nullptr (but with explicit construct from a pointer to null).
  Thus is it safe to use 'nullptr' when returning an empty autoPtr or tmp.
2018-03-21 09:31:09 +01:00
4cb763f9d2 STYLE: make null constructed lists constexpr, noexcept
- can assist the compiler in producing tighter code.
2018-03-19 13:53:28 +01:00
ca15b5779d Merge remote-tracking branch 'origin/master' into safe-develop 2018-03-22 23:47:20 +01:00
e53384362c ENH: added surfaceFieldValue uniformity operation 2018-03-22 22:38:34 +01:00
acfa0d3ed1 ENH: add bounding to surfMeshes variant of sampled planes (issue #714) 2018-03-22 14:47:53 +01:00
2db4b0867e CONFIG: consolidate C++ flags per compiler type
- easier to ensure that flags are consistent
2018-03-21 11:50:57 +01:00
936d897768 ENH: ConeNozzleInjection - added ability for the injector to move
The set of injectionMethods has been extended to include a new option:

    injectionMethod movingPoint;

The position is then read as a TimeFunction1 entry, e.g. for a 'table'
type:

    position        table
    (
        (0 (-0.009 0.0995 0))
        (1e-3 (0.009 0.0995 0))
    );

where the list corresponds to the tuples (time (position)), and the time
is relative to the start of injection (SOI)
2018-03-21 16:08:52 +00:00
a0a039ad57 ENH: armclang: new compiler type. Fixes #779. 2018-03-21 12:08:44 +00:00
710117fe2b ENH: checkMesh: output cellRegion field. Fixes #763. 2018-03-21 11:41:57 +00:00
46aac34956 ENH: snappyHexMeshDict: improved comment 2018-03-21 11:01:30 +00:00
872ac6c6c0 Merge remote-tracking branch 'origin/master' into develop 2018-03-20 10:52:54 +00:00
f0435beb9c Merge remote-tracking branch 'origin/master' into develop 2018-03-16 23:38:29 +01:00
2f86cdc712 STYLE: more consistent use of dimensioned Zero
- when constructing dimensioned fields that are to be zero-initialized,
  it is preferrable to use a form such as

      dimensionedScalar(dims, Zero)
      dimensionedVector(dims, Zero)

  rather than

      dimensionedScalar("0", dims, 0)
      dimensionedVector("zero", dims, vector::zero)

  This reduces clutter and also avoids any suggestion that the name of
  the dimensioned quantity has any influence on the field's name.

  An even shorter version is possible. Eg,

      dimensionedScalar(dims)

  but reduces the clarity of meaning.

- NB: UniformDimensionedField is an exception to these style changes
  since it does use the name of the dimensioned type (instead of the
  regIOobject).
2018-03-16 10:24:03 +01:00
6a541ccc92 COMP: avoid attempted auto-vivify with PackedBoolList []
- also ensure fewer side-effects from inplaceReorder

- provide ListOps::reorder especially for PackedList and PackedBoolList
  since they behave differently from regular lists.
2018-03-15 15:20:00 +01:00
d17bc72585 ENH: consistency of HashSet setMany(), insertMany() with packed-list version
- this also provides a better separation of the intent
  (ie, inserting a single value, or inserting multiply values)
2018-03-14 21:08:29 +01:00
5d1fb23555 ENH: code reduction in PackedList, PackedBoolList (issue #751)
- eliminate iterators from PackedList since they were unused, had
  lower performance than direct access and added unneeded complexity.

- eliminate auto-vivify for the PackedList '[] operator.
  The set() method provides any required auto-vivification and
  removing this ability from the '[]' operator allows for a lower
  when accessing the values. Replaced the previous cascade of iterators
  with simpler reference class.

PackedBoolList:

- (temporarily) eliminate logic and addition operators since
  these contained partially unclear semantics.

- the new test() method tests the value of a single bit position and
  returns a bool without any ambiguity caused by the return type
  (like the get() method), nor the const/non-const access (like
  operator[] has). The name corresponds to what std::bitset uses.

- more consistent use of PackedBoolList test(), set(), unset() methods
  for fewer operation and clearer code. Eg,

      if (list.test(index)) ...    |  if (list[index]) ...
      if (!list.test(index)) ...   |  if (list[index] == 0u) ...
      list.set(index);             |  list[index] = 1u;
      list.unset(index);           |  list[index] = 0u;

- deleted the operator=(const labelUList&) and replaced with a setMany()
  method for more clarity about the intended operation and to avoid any
  potential inadvertent behaviour.
2018-03-13 08:32:40 +01:00
23b6ea4b85 ENH: provide iterators for IndirectList, UIndirectList
- consistency with other containers.
  Allows range-for, enables various std algorithms, and can be used
  with ListOp::create() with an iterator range.
2018-03-07 17:50:34 +01:00
77338c8bd0 ENH: reduce overhead for clockTime, cpuTime
- clockValue class for managing the clock values only, with a null
  constructor that does not query the system clock (can defer to later).
  Can also be used directly for +/- operations.

- refactor clockTime, cpuTime, clock to reduce storage.
2018-03-15 10:01:51 +01:00
fb4c99b698 STYLE: minor cleanup of contiguous (issue #769) 2018-03-14 21:01:44 +01:00
5542ff6351 STYLE: derive always/never predicates from std types
- make constexpr noexcept
2018-03-14 18:04:42 +01:00
11027b8df6 COMP: Correction for clang 2018-03-16 11:12:47 +00:00
63f60cef59 BUG: Reinstated regex functionality for particle local interaction 2018-03-16 11:01:04 +00:00
bac943e6fc ENH: new bitSet class and improved PackedList class (closes #751)
- The bitSet class replaces the old PackedBoolList class.
  The redesign provides better block-wise access and reduced method
  calls. This helps both in cases where the bitSet may be relatively
  sparse, and in cases where advantage of contiguous operations can be
  made. This makes it easier to work with a bitSet as top-level object.

  In addition to the previously available count() method to determine
  if a bitSet is being used, now have simpler queries:

    - all()  - true if all bits in the addressable range are empty
    - any()  - true if any bits are set at all.
    - none() - true if no bits are set.

  These are faster than count() and allow early termination.

  The new test() method tests the value of a single bit position and
  returns a bool without any ambiguity caused by the return type
  (like the get() method), nor the const/non-const access (like
  operator[] has). The name corresponds to what std::bitset uses.

  The new find_first(), find_last(), find_next() methods provide a faster
  means of searching for bits that are set.

  This can be especially useful when using a bitSet to control an
  conditional:

  OLD (with macro):

      forAll(selected, celli)
      {
          if (selected[celli])
          {
              sumVol += mesh_.cellVolumes()[celli];
          }
      }

  NEW (with const_iterator):

      for (const label celli : selected)
      {
          sumVol += mesh_.cellVolumes()[celli];
      }

      or manually

      for
      (
          label celli = selected.find_first();
          celli != -1;
          celli = selected.find_next()
      )
      {
          sumVol += mesh_.cellVolumes()[celli];
      }

- When marking up contiguous parts of a bitset, an interval can be
  represented more efficiently as a labelRange of start/size.
  For example,

  OLD:

      if (isA<processorPolyPatch>(pp))
      {
          forAll(pp, i)
          {
              ignoreFaces.set(i);
          }
      }

  NEW:

      if (isA<processorPolyPatch>(pp))
      {
          ignoreFaces.set(pp.range());
      }
2018-03-07 11:21:48 +01:00
4f880ba8ea ENH: timeVaryingMappedFixedValue - added option to use an alternate points file name 2018-02-23 14:41:01 +00:00
65fd9b8b4b ENH: turbulenceFields FO - added nuTilda and turbulence length scale 2018-02-23 14:39:51 +00:00
6a024a7b71 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-03-15 08:13:56 -07:00
949a047f27 BUG: Correcting dictionary constructor for swirlFanVelocity 2018-03-15 08:09:07 -07:00
bf74bf32fd Merge branch 'feature-shortestPathSet' into 'develop'
Feature shortest path set

See merge request Development/OpenFOAM-plus!151
2018-03-15 10:18:38 +00:00
2386de9bf4 Merge remote-tracking branch 'origin/develop' into feature-shortestPathSet 2018-03-15 10:03:22 +00:00
e10575ee31 COMP: Allwmake: link order. Fixes #765. 2018-03-15 08:51:33 +00:00
e92aa8fce4 ENH: reduced amount seeding in regionSplit
- now only seed boundary faces and an internal face of cell that itself
  has a blocked face.
2018-03-14 16:21:58 +01:00
520c14c136 ENH: add meshTools polyFields
- provides a simple means of writing an internal dimensioned field
  when fvMesh is not available (eg, during mesh creation).
2018-03-14 13:04:22 +01:00
a6fb0436d5 BUG: fvMotionSolvers: fix dimensions. Fixes #765. 2018-03-14 11:07:56 +00:00
ac027daf36 STYLE: pointDisplacement: fix header 2018-03-14 11:05:37 +00:00
5a816c45a7 ENH: fvMotionSolvers: add fvOptions. Fixes #765. 2018-03-12 14:14:48 +00:00
239c96bf28 ENH: checkMesh: minTetVolume field. Fixes #763. 2018-03-12 09:29:17 +00:00
69ebe127a8 ENH: shm: feature angle. See #699. 2018-03-08 15:14:42 +00:00
3269ba0df9 ENH: shm: Parallel consistent extrusion. Fixes #759. 2018-03-08 15:07:24 +00:00
cb03d0bcf4 STYLE: localPointRegion: minor comment 2018-03-08 15:00:45 +00:00
d1b4471141 BUG: snappyHexMesh: make corner-point detection compatible with cutting 2018-02-21 11:15:38 +00:00
da26c3985e SUBMODULE: avalanche update - movable references in polyMesh constructor 2018-03-07 18:08:37 +01:00
451f8e0357 Merge remote-tracking branch 'origin/master' into develop 2018-03-07 18:08:07 +01:00
9670bf8220 Merge branch 'feature-memory-containers' into 'develop'
Feature memory containers

See merge request Development/OpenFOAM-plus!192
2018-03-07 16:58:10 +00:00
664685f7fe CONFIG: bump API version number to 1803 to account for removal of Xfer
- primary points for an external user are the polyMesh constructor

- add config info for gcc-7.3.0

COMP: intel-2017. Ignore unknown pragmas. Disambiguate method resolution.
2018-03-05 20:18:26 +01:00
3d608bf06a ENH: remove reliance on the Xfer class (issue #639)
This class is largely a pre-C++11 holdover. It is now possible to
simply use move construct/assignment directly.

In a few rare cases (eg, polyMesh::resetPrimitives) it has been
replaced by an autoPtr.
2018-03-05 13:28:53 +01:00
081783db6c ENH: add Xfer rvalue(), valid() methods
- rvalue() is a (transitional) means of converting Xfer content to a
  reference for move construct, move assign semantics.

- valid() method for consistency with autoPtr and tmp classes
2018-02-28 09:30:31 +01:00
7e84380783 GIT: corrected incorrect merge artifacts
STYLE: simplified output logic, reduced duplicate code in CompactIOList
2018-02-27 11:48:34 +01:00
57291e8692 STYLE: use autoPtr::New and tmp::New for simple return types 2018-02-26 14:00:30 +01:00
52b36f84b5 ENH: cleanup tmp class (issue #639)
Improve alignment of its behaviour with std::shared_ptr

  - element_type typedef
  - swap, reset methods

* additional reference access methods:

cref()
    returns a const reference, synonymous with operator().
    This provides a more verbose alternative to using the '()' operator
    when that is desired.

        Mnemonic: a const form of 'ref()'

constCast()
    returns a non-const reference, regardless if the underlying object
    itself is a managed pointer or a const object.
    This is similar to ref(), but more permissive.

        Mnemonic: const_cast<>

    Using the constCast() method greatly reduces the amount of typing
    and reading. And since the data type is already defined via the tmp
    template parameter, the type deduction is automatically known.

    Previously,

        const tmp<volScalarField>& tfld;

        const_cast<volScalarField&>(tfld()).rename("name");
        volScalarField& fld = const_cast<volScalarField&>(tfld());

    Now,

        tfld.constCast().rename("name");
        auto& fld = tfld.constCast();

--

BUG: attempts to move tmp value that may still be shared.

- old code simply checked isTmp() to decide if the contents could be
  transfered. However, this means that the content of a shared tmp
  would be removed, leaving other instances without content.

* movable() method checks that for a non-null temporary that is
  unique (not shared).
2018-02-26 12:05:00 +01:00
660f3e5492 ENH: cleanup autoPtr class (issue #639)
Improve alignment of its behaviour with std::unique_ptr

  - element_type typedef
  - release() method - identical to ptr() method
  - get() method to get the pointer without checking and without releasing it.
  - operator*() for dereferencing

Method name changes

  - renamed rawPtr() to get()
  - renamed rawRef() to ref(), removed unused const version.

Removed methods/operators

  - assignment from a raw pointer was deleted (was rarely used).
    Can be convenient, but uncontrolled and potentially unsafe.
    Do allow assignment from a literal nullptr though, since this
    can never leak (and also corresponds to the unique_ptr API).

Additional methods

  - clone() method: forwards to the clone() method of the underlying
    data object with argument forwarding.

  - reset(autoPtr&&) as an alternative to operator=(autoPtr&&)

STYLE: avoid implicit conversion from autoPtr to object type in many places

- existing implementation has the following:

     operator const T&() const { return operator*(); }

  which means that the following code works:

       autoPtr<mapPolyMesh> map = ...;
       updateMesh(*map);    // OK: explicit dereferencing
       updateMesh(map());   // OK: explicit dereferencing
       updateMesh(map);     // OK: implicit dereferencing

  for clarity it may preferable to avoid the implicit dereferencing

- prefer operator* to operator() when deferenced a return value
  so it is clearer that a pointer is involve and not a function call
  etc    Eg,   return *meshPtr_;  vs.  return meshPtr_();
2018-02-26 12:00:00 +01:00
fc92d30e74 ENH: improvements for labelRange
- constexpr, noexcept.
  Added an 'at()' method for returning an iterator within the range
  and changed operator()(label) to have behaviour as per found().
  This makes the labelRange usable as a unary predicate.

- added templated conversion class 'toLabelRange'

- add range() method to polyPatch and surfZone classes, and corresponding
  templated conversion functors.
  For example,

      auto patchDims = ListOps::create<labelRange>
      (
          mesh.boundaryMesh(),
          toLabelRange<polyPatch>()
      );

  to create a List<labelRange> representing the patch extents.
2018-03-04 20:30:34 +01:00
bcabe827f6 ENH: dedicated HashSetOps, HashTableOps namespaces
- relocated HashSetPlusEqOp and HashTablePlusEqOp to
  HashSetOps::plusEqOp and HashTableOps::plusEqOp, respectively

- additional functions for converting between a labelHashSet
  and a PackedBoolList or List<bool>:

  From lists selections to labelHashSet indices:

      HashSetOps::used(const PackedBoolList&);
      HashSetOps::used(const UList<bool>&);

  From labelHashSet to list forms:

      PackedBoolList bitset(const labelHashSet&);
      List<bool> bools(const labelHashSet&);
2018-03-06 11:41:34 +01:00
15f7260884 ENH: cleanup of ListOps, ListListOps. Adjustments to List, PackedList.
- relocated ListAppendEqOp and ListUniqueEqOp to ListOps::appendEqOp
  and ListOps::UniqueEqOp, respectively for better code isolation and
  documentation of purpose.

- relocated setValues to ListOps::setValue() with many more
  alternative selectors possible

- relocated createWithValues to ListOps::createWithValue
  for better code isolation. The default initialization value is itself
  now a default parameter, which allow for less typing.

  Negative indices in the locations to set are now silently ignored,
  which makes it possible to use an oldToNew mapping that includes
  negative indices.

- additional ListOps::createWithValue taking a single position to set,
  available both in copy assign and move assign versions.
  Since a negative index is ignored, it is possible to combine with
  the output of List::find() etc.

STYLE: changes for PackedList

- code simplication in the PackedList iterators, including dropping
  the unused operator() on iterators, which is not available in plain
  list versions either.

- improved sizing for PackedBoolList creation from a labelUList.

ENH: additional List constructors, for handling single element list.

- can assist in reducing constructor ambiguity, but can also helps
  memory optimization when creating a single element list.
  For example,

    labelListList labels(one(), identity(mesh.nFaces()));
2018-03-01 14:12:51 +01:00
ffd7b00ad5 ENH: fvMatrix::setReferences() single value variant 2018-03-02 13:27:34 +01:00
330b113abc BUG: incorrect cellId check in fvMatrix::setReferences() 2018-03-02 13:17:54 +01:00
53ab527b45 ENH: added constexpr, noexcept for bool, Switch
- rationalized some method naming.
  Eg, c_str() instead of asText()
2018-03-03 20:32:49 +01:00
13ea73c31c ENH: cleanup, extend zero/one classes
- constexpr, noexcept on various bits

- addition of a 'one::minus' class that returns '-1' instead of '1'.
  There are no additional operations defined for this class,
  but it can be used in various places to signal alternative behaviour
  such as "initialize to a negative or other invalid value"
2018-03-02 10:04:56 +01:00
b4703f4a08 ENH: pre-cleanup of Xfer class (issue #639)
- This class is largely a pre-C++11 holdover, prior to having movable
  references.

- align internals with autoPtr instead of always unconditionally
  allocating memory. The valid() method can be used to check for a null
  pointer.

- Consolidate into a single file, in anticipation of future removal.
2018-03-04 21:38:33 +01:00
9cd9e812d2 COMP: avoid compiler warning 'assuming signed overflow does not occur' 2018-02-22 14:21:16 +01:00
a843054b7a ENH: more generous range check for UList<bool>::operator[] specialization
- now also handles negative indices without issue.
  This increases its robustness for predicate type of use.
2018-02-28 09:07:13 +01:00
799924e79a BUG: inverted logic in UList::operator== (introduced by a0148ac095) 2018-02-28 08:48:13 +01:00
46e73fe4dc Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-02-23 08:18:09 -08:00
fe2e75c7dc ENH: Adding swirlFanVelocity to files in finiteVolume and change fanFvPatch operation 2018-02-23 08:16:55 -08:00
3371ed8fac Merge branch 'feature-linked-lists' into 'develop'
several improvements for linked-lists

See merge request Development/OpenFOAM-plus!177
2018-02-23 10:34:42 +00:00
3a4b92c4b2 STYLE: remove deprecated and unused ListOps
- deprecated MAR-2017

    subset(const UList<T>& select, const T& value, const ListType&);
    inplaceSubset(const UList<T>& select, const T& value, ListType&);

  The subsetList/inplaceSubsetList variants with a unary predicate
  provide more flexible and robuster solutions.

- deprecated MAR-2017

    initList(const T[mRows]);
    initListList(const T[mRows][nColumns]);

  Required prior to the addition of constructors with
  std::initializer_list
2018-02-22 12:24:48 +01:00
37e248c74b STYLE: consistent use of wordHashSet instead of HashSet<word>
- the wordHashSet typedef is always available when HashSet has been
  included.

- use default HashTable key (word) instead of explicitly mentioning it
2018-02-22 11:19:47 +01:00
f95f8bf512 COMP: wmake/wmakePrintBuild -api failed to extract API number 2018-02-22 10:54:16 +01:00
35b3d1c6ff STYLE: provide coordinateSystems names() method for consistency 2018-02-22 10:44:25 +01:00
bdb616de24 SUBMODULE: cfmesh update - using findIndices instead of findStrings 2018-02-22 09:43:56 +01:00
ec38e7a408 ENH: prevent conversion of string to regExp in stringListOps (closes #739)
* For most cases, this conversion would be largely unintentional
  and also less efficient. If the regex is desirable, the caller
  should invoke it explicitly.
  For example,

      findStrings(regExp(str), listOfStrings);

  Or use one of the keyType, wordRe, wordRes variants instead.
  If string is to be used as a plain (non-regex) matcher,
  this can be directly invoked

      findMatchingStrings(str, listOfStrings);

  or using the ListOps instead:

      findIndices(listOfStrings, str);

* provide function interfaces for keyType.
2018-02-22 09:28:03 +01:00
f959927910 ENH: improve consistency of ListOps and stringListOps
- subsetList, inplaceSubsetList with optional inverted logic.

- use moveable elements where possible.

- allow optional starting offset for the identity global function.
  Eg,  'identity(10, start)' vs 'identity(10) + start'
2018-02-21 12:58:00 +01:00
3ee2f3293e STYLE: avoid global findIndex() in favour of UList::find() 2018-02-21 11:50:34 +01:00
c126464d1c ENH: change wordRes to be a List of wordRe instead of a wrapper (issue #259)
- this permits direct storage of a list with additional matcher
  capabilities

- provide wordRes::matcher class for similar behaviour as previously
2018-02-21 10:05:30 +01:00
03b287ed24 COMP: adjust tests to compile with current code base 2018-02-20 17:24:08 +01:00
87b1bbacd8 ENH: support writeLagrangianPositions in redistributePar (issue #702) 2018-02-20 15:22:47 +01:00
0d3d895d4d STYLE: use slash-scoping for foamDictionary usage
Eg, -entry boundaryField/wall2/q  vs. boundaryField.wall2.q

- remove unneeded quoting when calling foamDictionary
2018-02-20 13:13:34 +01:00
fe140cd6c5 TUT: test mode not respected (closes #710)
- now replaced 'if ! isTest' with 'if notTest' for most cases.
2018-02-20 12:54:44 +01:00
63edb6024b STYLE: improve robustness of wall interactions code (issue #737) 2018-02-20 12:19:38 +01:00
ad871a16fc BUG: spray/wall interactions failing in parallel (closes #737)
- should have been limited to non-processor patches only
2018-02-20 11:51:08 +01:00
80fad8483b ENH: add polyBoundaryMesh::nNonProcessor() method
- returns the number of non-processorPolyPatch patches, which is invariant
  across all processors.
2018-02-20 11:41:13 +01:00
8716061a4a ENH: support local InfoSwitch for writeLagrangianPositions (issue #721)
- remove writeLagrangianCoordinates as InfoSwitch, since this is
  something that a regular user should not be able to disable.
2018-02-19 15:03:22 +01:00
d69c26311f STYLE: relocate geometryType enum to cloud class (issue #721) 2018-02-19 12:40:06 +01:00
cbbb9753eb STYLE: consolidate positionsCompat1706 structure (issue #721) 2018-02-19 11:57:57 +01:00
3c35c3535e BUG: Fixing bug in dimensioning variables for parallel case 2018-02-21 15:36:30 -08:00
240e304ba2 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-02-21 10:32:44 -08:00
543ac07774 BUG: Fixing constructors from dictionary to avoid hanging in parallel when patch size is zero 2018-02-21 10:31:49 -08:00
32a854d2e2 ENH: meshStructure: make sense in parallel. Fixes #732. 2018-02-15 09:08:40 +00:00
8033592eb1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-02-14 10:17:32 +00:00
ad3d5020f7 ENH: foamDictionary. Added comment. Fixes #316. 2018-02-14 10:17:13 +00:00
88f4b6ca8d ENH: optionally limit systemCall function-object to master only (closes #729) 2018-02-09 19:24:31 +01:00
3e3c97397e STYLE: simplify hashing to use struct instead of class
- more consistent with STL practices for function classes.

- string::hash function class now operates on std::string rather
  than Foam::string since we have now avoided inadvertent use of
  string conversion from int in more places.
2018-02-09 15:34:59 +01:00
09a6e94073 BUG: incorrect HashTable / HashSet instances
- Eg instead of using labelHashSet, used HashSet<label> which uses
  the string::hash for hashing. Other places inadvertently using the
  string::hash instead of Hash<label> for hashing.

STYLE: use Map<..> instead of HashTable<.., label, Hash<label>>

- reduces clutter
2018-02-09 09:30:02 +01:00
806b668418 STYLE: two-parameter Foam::name replaced by word::printf (issue #724)
- reduces some ambiguity and clarifies the expected output and
  behaviour.

STYLE: reduce some automatic conversions of char to string
2018-02-08 12:00:54 +01:00
fa8d972796 STYLE: replace HashSet/HashTable xfer with equivalent movable (issue #726)
- avoid confusion by using HashTable::lookup(key, deflt) explicitly
  instead of allowing an operator() version.
2018-02-08 10:52:29 +01:00
e42c228155 ENH: cleanup List constructors (issue #725)
- add copy construct from UList

- remove copy construct from dissimilar types.

  This templated constructor was too generous in what it accepted.
  For the special cases where a copy constructor is required with
  a change in the data type, now use the createList factory method,
  which accepts a unary operator. Eg,

      auto scalars = scalarList::createList
      (
          labels,
          [](const label& val){ return 1.5*val; }
      );
2018-02-08 08:53:14 +01:00
e27e566345 ENH: blockMesh: stabilise multi-surface intersection. Fixes #730. 2018-02-07 17:57:50 +00:00
4432ca2ef1 Merge branch 'feature-primitiveMesh' into 'develop'
BUG: primitiveMesh: cellPoints, cellEdges inconsistent API. Fixes #703.

See merge request Development/OpenFOAM-plus!189
2018-02-07 13:56:34 +00:00
9ede061dfe STYLE: snappyHexMesh: use iterator 2018-02-07 13:53:28 +00:00
7363a01aa3 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-02-01 16:00:37 -08:00
dada835d31 ENH: adding swirlFanVelocity BC for jumpCyclic types
It creates a swirling velocity across a baffle using jumpCyclic for vectors
2018-02-01 15:59:04 -08:00
e2332d6bd2 COMP: better handling of versioned cmake libraries
- sentinel was not working properly when building user-space routines
2018-01-31 08:35:56 +01:00
38803ddcf7 STYLE: use default construct/destroy for surface writers 2018-01-30 11:52:04 +01:00
25adff2503 ENH: improved handling of bounded sampled planes (issue #714)
- now warn about the following:
  * the bounding box does not overlap wih the global mesh
  * plane does not intersect the (valid) bounding box
  * plane does not intersect the global mesh

- add bounding to the "plane" variant of a sampled plane.
2018-01-30 10:15:19 +01:00
e6c1b394cc ENH: additional boundBox methods (issue #714)
-  boundBox::nDim() to assess dimensionality

- boundBox::intersect(const plane&) to test if plane intersects the
  bounding box
2018-01-29 10:07:44 +01:00
1b9aec2a3d CONP: suppress register warnings for clang only 2018-01-30 06:49:32 +01:00
e13f8a38a9 COMP: suppress warning about deprecated register keyword (Flex) 2018-01-29 09:13:28 +01:00
ba92e75215 BUG: array-bound error for SphericalTensor component-wise functions
STYEL: use constexpr for VectorSpaceOps
2018-01-29 08:56:43 +01:00
25339a5b49 ENH: minor cleanup of the Xfer class
- simplify structure, removed unused constuctors.

- transfer from base objects via '=' assignment removed as being too
  non-transparent

- add New factory method with perfect forwarding.
2018-01-26 15:53:57 +01:00
db1c1e89be ENH: avoid xfer on simple data types
- in many places can use move construcors or rely on RVO
2018-01-26 12:50:06 +01:00
fa3acc9955 ENH: make CompactListList swapable and move construct/assignable 2018-01-26 12:19:48 +01:00
a0148ac095 ENH: replace reverse iterators for UList
- use std::reverse_iterator adaptors, avoid the array-bounds warning
- use pointer arithmetic instead of dereferencing the internal array

- adjust logic to use 'operator<' instead of 'operator>' in sorting.
  This creates less work when making other classes sortable.
2018-01-26 07:52:26 +01:00
d029f4c5c9 ENH: improved swap/transfer methods for FixedList
- the transfer method was previously a copy

- use std::reverse_iterator adaptors in FixedList
  This greatly reduces the amount of code and now avoids the array-bounds
  warning for FixedList::rend()

- use pointer arithmetic instead of dereferencing the internal array
2018-01-25 18:23:11 +01:00
8fc27e0ec8 ENH: make hashedWordList movable 2018-01-25 15:00:25 +01:00
4e47be34d2 Merge branch 'master' into develop 2018-01-25 11:13:30 +00:00
915e8c9f35 ENH: remove Foam::Swap specializations for HashSet, HashTable
- without these will use the normal move construct + move assign.
  This is similarly efficient, but avoids the inadvertently having the
  incorrect Swap being used for derived classes.

STYLE: remove unused xfer methods for HashTable, HashSet

- unneeded since move construct and move assignment are possible
2018-01-25 12:13:16 +01:00
6d75552a77 Merge remote-tracking branch 'origin/master' into develop 2018-01-25 11:59:12 +01:00
7ee93afe9e ENH: allow early completion in PackedBoolList::used()
- can stop producing content when the target number of entries has
  been reached.

- change return type to labelList instead an Xfer container.
  This allows return-value-optimization and avoids a surrounding
  allocation. This potentially breaks existing code.

- make PackedList and PackedBoolList moveable. Drop xfer wrappers.
2018-01-25 10:16:23 +01:00
de4a1eeedb CONFIG: improve evaluation of arguments for foamEtcFile
- forward command-line arguments for paraview, where they may also be
  evaluated (cshrc, POSIX shell)
  Eg,
      . etc/bashrc ParaView_VERSION=5.4.1-mpipy
      source etc/cshrc ParaView_VERSION=5.4.1-mpipy
2018-01-24 12:15:09 +01:00
9bd7ea593e ENH: added fileName::relative() method
- this currently just strips off the leading parent directory name

     "/this/path/and/subdirs/name"

     relative("/this/path")  -> "and/subdirs/name"
     relative("/this")       -> "path/and/subdirs/name"
2018-01-23 18:25:55 +01:00
e98ff5ec73 Merge branch 'feature-LagrangianPatchInterationInfo' into 'develop'
ENH: Adding optional output information ordered by injectorID to LocalInteraction.

See merge request Development/OpenFOAM-plus!187
2018-01-24 08:30:27 +00:00
cf728cef6e STYLE: use Pair flip() method instead of global Swap() function 2018-01-23 17:22:57 +01:00
39ee5d5079 ENH: add HashTable += operation (combines HashTables)
- adjust return values of HashSet operators.
2018-01-23 16:35:43 +01:00
7f3d4b3554 Merge branch 'master' into develop 2018-01-23 16:11:28 +01:00
dc3e4e2c47 ENH: DEShybrid scheme - LES delta name now input instead of default of
'delta'

The scheme should now be specified using, e.g.

    div(phi,U)      Gauss DEShybrid
        linear                    // scheme 1
        linearUpwind grad(U)      // scheme 2
        hmax                      // LES delta name, e.g. 'delta', 'hmax'
        0.65                      // DES coefficient, typically = 0.65
        30                        // Reference velocity scale
        2                         // Reference length scale
        0                         // Minimum sigma limit (0-1)
        1                         // Maximum sigma limit (0-1)
        1.0e-03;                  // Limiter of B function, typically 1e-03
2018-01-23 10:24:33 +00:00
757b8625de Revert "STYLE: overset: warning message. Fixes #691."
This reverts commit 0ee1ed638f.
2018-01-22 16:02:02 +00:00
0ee1ed638f STYLE: overset: warning message. Fixes #691. 2018-01-22 15:22:48 +00:00
5b005095ca STYLE: fvOptions: typos 2018-01-22 11:55:43 +00:00
038bb40a79 COMP: resolve template qualification and other issues for clang-5.0.1 2018-01-22 15:13:39 +01:00
479b8e9d01 CONFIG: bump to llvm-5.0.1 version 2018-01-22 14:47:38 +01:00
0ac8a94122 Merge branch 'feature-memory-streams' into 'develop'
Feature memory streams

See merge request Development/OpenFOAM-plus!191
2018-01-22 13:22:32 +00:00
23c9dd716d ENH: coding cleanup for memory streams
- simplify structure.
- protect against nullptr when resetting memory streams
- make UIListStream swappable
- add uiliststream as an example of using a plain std::istream
2018-01-22 09:42:06 +01:00
0a5e4cf1b0 ENH: define stdFoam::min(), stdFoam::max() as constexpr as per C++14 2018-01-19 17:13:03 +01:00
991a15c4ad ENH: added readFloat(), readDouble() two-parameter forms
- as per readInt32(), readInt64() etc.
  Previously only had readScalar() in a two-parameter form.
2018-01-18 13:00:55 +01:00
89d49f002a Merge branch 'master' into develop 2018-01-18 09:33:40 +00:00
29c066d21e STYLE: avoid redundant eof check in UIPstream (issue #676) 2018-01-17 14:20:30 +01:00
17b82e5e7e Merge remote-tracking branch 'origin/master' into develop 2018-01-17 14:08:11 +01:00
12aa2d3c30 ENH: SubStrings::str(int) method for similarity with std::smatch
- define regExp::results_type using SubStrings container for handling
  groups. This makes a later shift to std::smatch easier, but changes
  the regExp API for matching with groups. Previously had list element
  0 for regex group 1, now list element 0 is the entire match and list
  element 1 is regex group 1.

  Old:
      List<std::string> mat;
      if (re.match(text, mat))  Info<< "group 1: " << mat[0] << nl;

  New:
      regExp::results_type mat;
      if (re.match(text, mat))  Info<< "group 1: " << mat.str(1) << nl;
2018-01-17 00:15:36 +01:00
82a9f2c949 BUG: spurious empty surface zones added (fixes #706)
- problems were introduced by the change ee252307d3 (issue #686).
  Affected reading of OBJ files.

  The fallback zone (used to catch unnamed groups/zones), which was
  previously filtered away when not needed. Now handle more explicitly.

ENH: use stringOps::split and low-level read{Label,Scalar} for parsing OBJ file
2018-01-16 13:20:58 +01:00
ff07ae1520 CONFIG: typo in config.csh/mpi
- also handle stray semi-colons in foamCleanPath.
  Treat like a ':' separator.
  They are incorrect and potentially problematic for shell evals.
2018-01-16 12:00:21 +01:00
a4fa743add ENH: cellCuts: dump only if loop 2018-01-15 17:34:33 +00:00
df30537a61 Merge branch 'style-config-files' into 'develop'
improve handling of gmp/mpfr configuration

See merge request Development/OpenFOAM-plus!190
2018-01-15 17:20:05 +00:00
434a2cb1b9 ENH: primitiveMesh: updated C++ 2018-01-15 15:59:40 +00:00
effe4ce217 BUG: primitiveMesh: cellPoints, cellEdges inconsistent API. Fixes #703. 2018-01-15 14:10:09 +00:00
2d51d4b340 ENH: support silent compat versions.
- can tag the version compatibility with a negative number to suppress
  the warnings but retain some information about which version was
  supported.
2018-01-15 10:09:21 +01:00
1b4807413f ENH: Adding report per injectorId to StandardWallInteraction 2018-01-12 15:43:47 -08:00
ad82072d0f Merge branch 'style-arglist-simplification' into 'develop'
Simplify argList methods names and add more compat options

See merge request Development/OpenFOAM-plus!188
2018-01-12 14:24:37 +00:00
110b00f048 ENH: improved handling of gmp/mpfr library settings (issue #674)
- export library path for gmp/mpfr from CGAL config files.
  This is required when non-system gmp/mpfr libraries are being
  used, but not using a ThirdParty compiler installation.

- automatically handle lib/ vs lib64/ (eg, for central installations)
  for packages such as boost, CGAL, etc. While the ThirdParty
  compilation of these will normally land in lib64/, this may not be
  the case when they are supplied by another means.

- reworked the handling of foamEtcFile and foamCleanPath for less
  clutter in the configuration files.
  Added the bin/tools/lib-dir script to handle logic that is
  too complex to easily manage in csh.
2018-01-11 01:30:23 +01:00
74b1757f07 ENH: Adding optional output information ordered by injectorID to LocalInteraction.
The total number of escaped|stick particles in patches can now be sorted by the injectorID from
which the particle originated. It uses outputByInjectorId keyword in the localInteractionCoeffs
dictionary
2018-01-10 09:29:18 -08:00
2feb11dbeb ENH: add testing for directory lister class 2018-01-10 15:01:12 +01:00
eb7f6d2406 ENH: add output methods for wordRes 2018-01-10 14:09:56 +01:00
2b0eaf2d38 ENH: add fileName::isBackup() method
- previously part of POSIX.C
2018-01-10 10:22:57 +01:00
c093095444 ENH: improve robustness of foamSearch (fixes #700) 2018-01-09 17:28:11 +01:00
c5f4dbd866 ENH: foamRunTutorials now skips tutorials with Allrun-optional
- for tutorials that are known to run poorly, can provide a
  placeholder Allrun-optional instead of the usual Allrun script.
  If this is detected, the case will be skipped.
2018-01-09 16:44:32 +01:00
ab38c04006 STYLE: note deprecated status for NamedEnum 2018-01-09 16:06:40 +01:00
2f32b586b5 ENH: PtrList, UPtrList cleanup
- rationalize iterators, reduce code duplication,
  improve assignment behaviour, moveable construct and assignment.
2018-01-09 13:15:50 +01:00
4deeba17c1 STYLE: restore use of ITstream in argList parsing
- can now be used as previously intended, since the scalarRange
  parsing has been fixed.
2018-01-08 17:10:58 +01:00
adbbd0e678 ENH: add argList option ignoring for compatibility upgrades
- can be used to handle when options become redundant, but it is
  undesirable to treat its presence as an error. Can now tag it as
  being ignored.

     argList::ignoreOptionCompat({"oldOption", 1706}, true);
     argList::ignoreOptionCompat({"oldBoolOpttion", 1706}, false);

     command  -oldOption xyz -oldBoolOpttion
2018-01-08 16:25:27 +01:00
345a2a42f1 ENH: simplify method names for reading argList options and arguments
- use succincter method names that more closely resemble dictionary
  and HashTable method names. This improves method name consistency
  between classes and also requires less typing effort:

    args.found(optName)        vs.  args.optionFound(optName)
    args.readIfPresent(..)     vs.  args.optionReadIfPresent(..)
    ...
    args.opt<scalar>(optName)  vs.  args.optionRead<scalar>(optName)
    args.read<scalar>(index)   vs.  args.argRead<scalar>(index)

- the older method names forms have been retained for code compatibility,
  but are now deprecated
2018-01-08 15:35:18 +01:00
243eda1f7a Merge remote-tracking branch 'origin/master' into develop 2018-01-08 15:05:31 +01:00
9dc361dae9 STYLE: avoid unnecessary use of optionLookup
- direct parsing of -funcs to ITstream.
- use direct lookup when the option is a word/string
2018-01-08 12:38:53 +01:00
199dc3376c STYLE: missing comma in Test-decomposePar 2018-01-08 11:57:54 +01:00
4fd32bfdf2 COMP: incorrect executable path sphereSurfactantFoam (closes #695) 2018-01-08 10:51:00 +01:00
f55a42a835 ENH: improve robustness of scalarRanges from string (fixes #673)
- now avoid Istream and token mechanism in favour of a simpler string
  parser. This makes the code clearer, smaller, robuster.

- provide convenience ge/gt/le/lt static constructors for scalarRange
  for using bounds directly with specifying via a string parameter.

- scalarRange, scalarRanges now follow the unary predicate pattern
  (using an operator() for testing). This allows their reuse in
  other contexts. Eg, for filtering operations:

      myHash.filterValues(scalarRange::ge(100));

- remove unused scalarRanges methods that were specific to handling
  lists of time values. These were superseded by timeSelector methods
  several versions ago.
2018-01-08 09:59:04 +01:00
85eb441bea STYLE: add constexpr to PackedList methods 2018-01-04 19:16:15 +01:00
f868b11a31 BUG: snappyHexMesh: incorrect feature angle. Fixes #699. 2018-01-08 11:50:33 +00:00
34a71c19dc ENH: plane: null constructor so we can have a List of them 2018-01-04 14:43:01 +00:00
931296ef3d ENH: alphatJayatillekeWallFunction - re-worked to remove dependency on k. See #684 2018-01-04 12:24:57 +00:00
534c173a09 TUT: cleanup lumpedPointMotion copied/derived files (closes #683) 2018-01-03 10:48:17 +01:00
ee252307d3 BUG: distributedTriSurfaceMesh hangs (issue #686)
- caused by the removal of empty zones when reading the surface files
2018-01-03 10:34:23 +01:00
0282e47c26 ENH: snappyHexMesh: initial version of directional refinement 2017-12-11 17:23:33 +00:00
cc5f30f25e ENH: several improvements for linked-lists
- support move construct/assignment for linked-lists themselves
  and when moving into a 'normal' list

- better consistency with begin/end signatures and the various
  iterators.

- for indirect linked-lists, provide iterator access to the underlying
  data element address:   iter.get()  vs  &(iter())

- add standard '->' indirection for iterators (as per normal STL
  definitions)
2017-11-27 14:11:25 +01:00
48332c8f16 functionObjects::ddt: New functionObject which calculates and writes the Eulerian time derivative of a field
Based on patch contributed by Tobias Holzmann
Resolves feature-request https://bugs.openfoam.org/view.php?id=2525
2017-11-05 10:58:07 +00:00
cad0455d46 TUT: consistent application name for lumpedPointMotion
- use simpleFoam for steady-state and change to pimpleFoam for
  transient. This provides better correspondence with the expected log
  output.
2018-07-23 09:12:06 +02:00
418cc9b268 STYLE: minor adjustments in wmake scripts.
- comments
- avoid egrep for getting processor count.
- wcleanBuild, wcleanPlatform with shorter form '-curr' instead of '-c'
  to avoid any potential user confusion with '-comp'
2018-07-22 18:28:29 +02:00
f9a956ba7e STYLE: use sigFpe::ignore helper class in runTimePostProcessing (issue #897) 2018-07-20 15:56:15 +02:00
56dd71ab11 CONFIG: cmake targets are globally unique
- unify CMakeLists naming and align content
2018-07-20 12:49:25 +02:00
96b65a781d STYLE: remove spacing around forAll macros and template '> >' closing 2018-07-06 11:03:28 +02:00
957d8dc38d CONFIG: force loading of shell functions (issue #944)
- this avoids a situation when an aborted sourcing of the etc/bashrc
  file can leave WM_SHELL_FUNCTIONS defined, which causes all
  subsequent sourcing to fail.
2018-07-19 16:57:38 +02:00
34a7ea5da7 STYLE: use auto + cfind for constructor tables 2018-07-19 15:55:08 +02:00
cdcbcf4c78 ENH: minor improvements for command-line handling
- check for excess input on command-line arguments

- reduce fileHandler warning verbosity when the output banner is
  disabled
2018-07-19 14:52:27 +02:00
6e2ba37963 CONFIG: new scotch version (6.0.6). Update clang minor versions. 2018-07-19 13:47:32 +02:00
ed4ffd8f89 ENH: add decomposePar -dry-run option
- can be used to test the behaviour of the decomposion and its
  characteristics without writing any decomposition to disk.
  Combine with -cellDist to visualize the expected decomposition
  result.
2018-07-19 11:04:38 +02:00
7cb5b638ad STYLE: more consistency in handling of -region vs -allRegions 2018-07-19 09:15:33 +02:00
8042647610 STYLE: use newer argList access methods 2018-07-19 08:32:18 +02:00
712f49758a TUT: update snappy dictionaries to use minMedialAxisAngle
- canonical parameter name changed from "minMedianAxisAngle" to
  "minMedialAxisAngle" (DEC-2013), but was never previously reported
  as having changed.
2018-07-18 16:47:34 +02:00
a592ebc073 STYLE: avoid unrestricted dictionary lookup in conversion, sampling, surfMesh
- aids with detection of excess tokens (issue #762)

- deprecated dictionary::operator[] in favour of the lookup() method
  which offers more flexibilty and clarity of purpose.
  Additionally, the read<> and get<> forms should generally be used
  instead anyhow.
2018-07-18 13:33:00 +02:00
956abe3f38 ENH: make setAverage optional for mapped patches (issue #943) 2018-07-18 12:17:36 +02:00
a225d5f87a ENH: more tuning parameters for user environment
- FOAM_CONFIG_NOUSER
  Suppress use of user/group configuration files.
  This is useful when packaging for a central installation.

- allow additional user tuning of compiler settings.
  Per-compiler overrides in "compiler-$WM_COMPILER" files
2018-07-18 10:25:55 +02:00
3bb5cef5bf ENH: decompsition: check for mesh dimensions. Fixes #937. 2018-07-18 09:29:28 +01:00
64855e8c12 STYLE: patchCloudSet: typo in header 2018-07-12 17:31:01 +01:00
84784c5061 Merge remote-tracking branch 'origin/master' into develop 2018-07-13 13:25:11 +02:00
71ab8a473d ENH: add normalise methods for vectors and normalised function
- the vector normalise() method modifies the object inplace,
  the normalised function returns a copy.

      vector vec1(1,2,3);
      vec1.normalise();
  vs
      vector vec1(1,2,3);
      vec1 /= mag(vec1) + VSMALL;

  For const usage, can use either of these

      const vector vec2a(normalised(vector(1,2,3)));
      const vector vec2b(vector(1,2,3).normalise());
2018-07-13 11:58:47 +02:00
0304911921 STYLE: more consistent use of dimensioned Zero, scalar decimal points
- use scalar(0) instead of scalar(0.0) etc
2018-07-13 10:28:48 +02:00
e9f0ebc730 GIT: fvSolution: multiple entries from merging. 2018-07-12 13:39:02 +01:00
9ee6036bb2 ENH: surfaceCheck. New writeSets option. Fixes #717. 2018-07-12 13:33:28 +01:00
cb727ab3d1 ENH: processorPolyPatch: warn for wrong number of processors. Fixes #933. 2018-07-12 13:32:04 +01:00
181582fef8 TUT: remove extraneous '}' from dictionary input 2018-07-11 14:24:49 +02:00
81840755fe SUBMODULE: bump cfmesh to develop branch 2018-07-10 19:21:47 +02:00
322d642b57 ENH: verify manual input for labelToCell etc (issue #895)
DOC: document topo sources inputs in doxygen format

ENH: check for excess tokens in dictionary input (issue #762)

- various bits of code cleanup (modernization) in meshTool/sets.
2018-07-07 00:22:58 +02:00
dda1c5f004 STYLE: naming inconsistency for "U" field (issue #917)
- had "UName" instead of "U" for the single field lookup.
2018-07-10 19:11:43 +02:00
a7e37656e8 ENH: reduce storage requirement for volumeType
- char instead of integer representation for the enumeration.

- additional constructor as lookupOrDefault from dictionary entry.
2018-07-11 08:50:38 +02:00
d530bc254a STYLE: code cleanup searchableSurface (issue #929)
- improve doxygen entries for searchable surfaces.

- support selection of searchable surfaces with shorter names.
  Eg,
      type   box | cylinder | ...;
  vs  type   searchableBox | searchableCylinder | ...;
2018-07-06 11:03:28 +02:00
1ee5144079 STYLE: reset version to plus after re-integration of the master branch 2018-07-10 16:44:43 +01:00
7b8e2b1a18 Merge remote-tracking branch 'origin/master' into develop 2018-07-10 16:42:59 +01:00
7156b40fb8 ENH: ensight: allow use for non-time directory based field. Fixes #919. 2018-07-05 13:53:59 +01:00
ad5ab870ef Merge branch 'feature-dictionary-checks' into develop 2018-07-05 13:40:25 +02:00
109a791d35 TUT: adjust dictionary parsing tests 2018-07-05 11:09:40 +02:00
e8fcd1d351 STYLE: enforce dictionary read length for read UNames/epsilonNames entry 2018-07-05 11:00:16 +02:00
209884d39b STYLE: enforce dictionary read length for box/boxes entry 2018-07-05 10:58:34 +02:00
8431964bcb STYLE: mark compatibility level for keyword functionObjectLibs (issue #912)
- was superseded by "libs" in 1612
2018-07-05 10:41:27 +02:00
f7dc92d744 STYLE: mark compatibility level for keyword redirectType (issue #912)
- was replaced with "name" in 1706
2018-07-05 09:26:26 +02:00
f3f30c94b4 ENH: improve detection of EOF missing/additional braces (issue #762)
- stricter checking for common dictionary input errors such as a
  missing ';' for primitive entries, extra or missing closing '}' etc.
2018-07-04 09:24:43 +02:00
2662042d49 ENH: improve controls for Time (issue #910)
- relocate some standard functionality to TimePaths to allow a lighter
  means of managing time directories without using the entire Time
  mechanism.

- optional enableLibs for Time construction (default is on)
  and a corresponding argList::noLibs() and "-no-libs" option

STYLE:

- mark Time::outputTime() as deprecated MAY-2016

- use pre-increment for runTime, although there is no difference in
  behaviour or performance.
2018-07-02 10:20:01 +02:00
e8c1ae3c16 ENH: sloshingTank2D: correct decomposeParDict. Fixes #913. 2018-07-04 17:18:06 +01:00
989ee54bb1 ENH: checkMesh: output volume of cellZone. Fixes #727. 2018-07-04 12:08:24 +01:00
252b5ff7dc BUG: snappyHexMesh: missing tutorial in ./Allrun. Fixes #916. 2018-07-02 16:09:49 +01:00
412ff422bd Merge remote-tracking branch 'origin/develop' into feature-shortestPathSet 2017-10-09 10:18:15 +01:00
9cef7690f0 ENH: AMI - added profiling hooks 2017-09-19 12:01:05 +01:00
dedde07d96 ENH: AMI - added profiling hooks 2017-09-19 12:01:05 +01:00
d016590bbc ENH: AMIInterpolation - updated to perform face triangulation once only; code clean-up 2017-08-18 14:09:34 +01:00
2be17edc1d ENH: AMIInterpolation - added base for caching of triangulation 2017-08-17 11:12:21 +01:00
80ffdfb149 ENH: AMIInterpolation - updated to use Enum class 2017-08-17 11:11:26 +01:00
e3d306d3cf TUT: additional and extra closing braces in dictionaries 2018-06-18 14:05:49 +02:00
bcb2267920 ENH: reduce verbosity of safe warning (fixes #881)
- in places where we use std::cerr instead or Warning or FatalError.
  We only want messages from one process though.
2018-06-18 11:19:37 +02:00
e769daf900 Merge branch 'feature-vtkCloud' into 'develop-pre-release'
ENH: vtkCloud function object (issue #866)

See merge request Development/OpenFOAM-plus!206
2018-06-18 13:22:37 +01:00
9a2d25beb8 Merge branch 'feature-restoreFieldNames' into 'develop-pre-release'
ENH: add foamRestoreFields utility (issue #877)

See merge request Development/OpenFOAM-plus!207
2018-06-18 13:13:40 +01:00
6a13ad2d93 ENH: vtkCloud function object (issue #866)
- writes lagrangian data in VTP format during a simulation.
  In parallel, all data are written from the master.
2018-06-16 01:16:00 +02:00
b30138595c ENH: adjustments to runTimePostProcessing
- support VTP input in functionObjectCloud scene element

- additional fallback lookup of cloud information from state properties
  instead of cloud OutputProperties
2018-06-15 23:01:27 +02:00
c5518dd9ff ENH: additional vtk tools for faceNormals, writing file-series 2018-06-15 22:44:00 +02:00
0ec8e3e780 STY: Formatting log output for stabilityBlendingFactor 2018-06-15 13:43:57 -07:00
c888db2e87 ENH: add foamRestoreFields utility (issue #877)
- "Restore" field names by removing the ending.
  Useful, for example, to change a UMean to U field for further
  calculation.
2018-06-15 11:01:19 +02:00
01f76d7d55 CONFIG: list Clang37 as well for ThirdParty clang
- for Darwin, mention that clang is the only compiler configured

- adjust comments
2018-06-15 09:06:06 +02:00
d77df7aa11 STY: Improving log info in stabilityBlendingFactor 2018-06-14 12:44:43 -07:00
b76d6b5cb5 STYLE: adjust tests for some updates in methods (issue #876) 2018-06-14 17:17:17 +02:00
ba156655aa BUG: incorrect iterator access in ListOps::create (issue #876) 2018-06-14 16:23:10 +02:00
853ec2bf64 STYLE: doxygen fixes for surfaceFieldValue 2018-06-14 16:14:31 +02:00
3b6027d1be ENH: test: make test apps compile. Fixes #876. 2018-06-14 15:14:14 +01:00
3d5d3b84d1 GIT: Adding files missed in commit 8540e6f 2018-06-14 15:11:48 +01:00
357042c801 TUT: Updates for combustionModel = none. See #867 2018-06-14 14:45:32 +01:00
15288516c7 INT: Added wave-mangrove interaction test from IH Cantabria 2018-06-14 14:30:42 +01:00
d1ca1ff51d INT: Removed incompatible case 2018-06-14 14:16:45 +01:00
8540e6fb72 INT: ddtPhiCorr - reinstated v1712 behaviour and provided experimental
version on a switch.  See #867

By default the code will use the same form as previous versions

To use the experimental version integrated from openfoam.org commit
da787200 set the info switch in the controlDict:

    InfoSwitches
    {
        experimentalDdtCorr 1;
    }
2018-06-14 14:00:49 +01:00
46dfc66c08 INT: Refactored waves mangrove interaction fvOptions 2018-06-14 11:35:37 +01:00
337aca5fd5 ENH: reduce some isoSurfaceCell regularise failures (closes #870)
- when the iso-surface (eg, a cut plane, or distanceSurface) passes
  exactly through the cell centre, zero-sized triangles can occur.
  These should be merged away.
2018-06-14 14:31:07 +02:00
e7d81dfe04 COMP: stop some icc warnings
- change "\%" -> "%" in plain string
2018-06-14 13:12:13 +02:00
7a7ecf600f ENH: prescribedRotation: smaller end time so simulation is shorter. 2018-06-14 13:47:07 +01:00
6e6ae853b5 ENH: prescribedRotation: improvements to testcase. See #872. 2018-06-14 13:45:49 +01:00
b50331d543 SUBMODULE: updates for catalyst
- minor change to pruning of lagrangian fields
2018-06-14 12:58:54 +02:00
7ca3da492e COMP: single-precision build 2018-06-14 12:03:19 +02:00
e59d167ed3 ENH: addr2line for Darwin handles relative addresses for executables 2018-06-14 11:28:05 +02:00
e20eaf6af9 CONFIG: update completion cache for csh use 2018-06-14 11:14:51 +02:00
25472673d9 ENH: prescribedRotation: fix testcase. Fixes #872. 2018-06-13 17:43:36 +01:00
78418c875c COMP: corrected field construct 2018-06-13 17:36:34 +01:00
2a29de0ff8 INT: Initial commit of Mangroves source from IH Cantabria 2018-06-13 15:10:44 +01:00
54ebae39de STYLE: mention uniformity index in doxygen 2018-06-13 16:54:28 +02:00
07b573ad5a BUG: missed parameter in dictionary::readCompat call 2018-06-13 16:09:49 +02:00
f0a92b11d1 STYLE: adjust AMI information (issue #860)
- use "min:xxx" for consistency with other outputs

- adjust decompositionInformation as well
2018-06-13 15:26:59 +02:00
a1f5f33091 Merge branch 'feature-isoAdvector-AMR' into 'develop-pre-release'
Feature iso advector AMR

See merge request Development/OpenFOAM-plus!205
2018-06-13 14:44:39 +01:00
c909a5df25 GIT: resolved merge conflict 2018-06-13 14:20:18 +01:00
9258b558f4 ENH: Darwin adjustments
- link CGAL (clang version) without reference to mpfr,gmp libraries

- use offset address in printStack for Darwin as well

- alternative handling of feexcept on Darwin
2018-06-13 13:32:19 +02:00
e3f85039a0 CONFIG: set API version number to 1806 for pre-release branch 2018-06-13 13:10:14 +02:00
53959e7e45 COMP: ambiguous construction from tmp (clang)
STYLE: more consistent use of dimensioned Zero
2018-06-13 12:46:15 +02:00
a784afc87d STYLE: floor/truncate instead of rounding for Random::position (issue #865)
- affects random integer ranges.
  Simpler to extend the range by one and floor (truncate) instead of
  rounding using odd intervals.
2018-06-13 12:38:13 +02:00
e6fd82f173 ENH: interIsoFoam updates
- Reimplemented treatment of alpha1, phi and U in case of
  nOuterCorrectors > 1 based on storePrevIter() to avoid cluttering the
  solver with unnecessary fields in case of nOuterCorrectors = 1.
2018-06-13 11:46:21 +02:00
67310ed4ef ENH: sort cellCentre output according to global cell index (issue #869)
- replace SortableList with sortedOrder, to reduce some overhead
2018-06-13 11:08:58 +02:00
22a7c8bb7f INT: Updated and added Gabi's irregular multi-direction tutorial 2018-06-13 13:32:56 +01:00
a7425273a0 INT: refactored wave model code 2018-06-13 12:45:40 +01:00
bab72d5139 ENH: multiple updates to interIsoFoam related code
- Updated tutorial headers
- Added copyright note to isoAdvector src
- Removed outcommented code lines in interIsoFoam solver
- Removed all LTS from interIsoFoam since this is not currently supported
- Confirmed that discInConstantFlow gives identical results with N subCylces and time step N*dt
- Confirmed that this also holds when nOuterCorrectors > 1.
2018-06-12 23:14:10 +02:00
13d49f60fc INT: Initial commit of the new irregular wave model 2018-06-12 17:21:28 +01:00
83b8032dcc TUT: Modified tutorials and added cyclic test case. 2018-06-12 14:01:25 +02:00
25a7e4da7b INT: Initial update of isoAdvector and interIsoFoam to work with AMR. 2018-06-11 17:51:54 +02:00
8f22683615 STYLE: Renamed source files to reflect solver names 2018-06-11 13:44:25 +01:00
4e8fd19d3d ENH: Refactored creation of simplified meshes for -dry-run operation
TODO: migrate singleCellFvMesh into simplified mesh framework (?)
2018-06-11 12:42:09 +01:00
0643a2a941 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-12 18:27:04 -07:00
b2bb46c39d ENH: Tutorial modifications for Medium Test - 12.06.2018 2018-06-12 18:26:17 -07:00
b2b77c9c13 ENH: add 'cellCentre' sampledSet (issue #869)
- samples on cell centres, can optionally limit based on a bounding box.
  Can be used, for example, to extract volume fields into CSV format.
2018-06-12 23:22:23 +02:00
7402cd7b5a ENH: make sampleSets setSamples movable - preliminary to issue #869
- add some more documentation
2018-06-12 19:19:10 +02:00
c05dab5e50 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-12 08:30:23 -07:00
dcfaeef0ad ENH: Droping tangential U on the master for the swirling fan BC. 2018-06-12 08:29:20 -07:00
5561307913 ENH: improve robustness of ensight surface reader (issue #868)
- improve handling of model: ... line

- simplify parsing of xxx element: ... lines
2018-06-12 14:11:23 +02:00
642e5efdea Merge remote-tracking branch 'origin/develop-pre-release' into develop-pre-release 2018-06-12 08:23:01 +02:00
3bcbb1615b ENH: improve uniformity of Random::position<label>() (closes #865)
- start/end values were underrepresented due to rounding.
  Now extend the range to include -0.5 and +0.5 beyond the usual
  range to ensure the same number density.
2018-06-12 08:16:06 +02:00
c8d585b136 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-11 16:16:28 -07:00
bb1fe5fcfc STY: Modifying warning message 2018-06-11 16:15:38 -07:00
5848b0afd5 BUG: Fixing ray dAve and omega for 1D and 2D cases 2018-06-08 16:55:27 -07:00
698a6d59e0 STY: Tide of chockedNozzle tutorial 2018-06-08 12:22:15 -07:00
ee06e8de33 STY: Cleaning Info statement in BC constructor 2018-06-08 12:20:48 -07:00
fdfc5bd0e9 BUG: Changing naming for log to total heat 2018-06-06 13:24:37 -07:00
46e7dab0cb ENH: Adding stabilizationSchemes FO and tutorial 2018-06-06 12:54:34 -07:00
47d7405d62 ENH: Updating interFoam/RAS/motorBike tutorial 2018-06-06 12:53:21 -07:00
c229bc8a05 ENH: Adding Fatal error if rEff is zero 2018-06-06 12:51:40 -07:00
82fed8f877 GIT: interDyMFoam: moved tutorial. See #856. 2018-06-06 13:55:20 +01:00
0a62fb4593 ENH: postProcess: Clear dictionary to avoid merge warning. See #807. 2018-06-06 09:07:32 +01:00
a7f076385c ENH: twistingColumn: change decomposition method 2018-06-06 09:06:41 +01:00
d98c901ca4 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-05 10:45:25 -07:00
9d31ff4436 BUG: Update mixture type in tutorials 2018-06-05 10:44:41 -07:00
ea4c4f1b2f BUG: Correct EP ID 693. Avoid sum flux over proc patches twice 2018-06-05 10:43:46 -07:00
8df0a7022a STYLE: Minor code update 2018-06-05 16:42:03 +01:00
3530711219 ENH: Refactored the dummyFvMesh code 2018-06-05 16:10:04 +01:00
a3228f861a ENH: GAMG agglom - more robust treatment for small meshes 2018-06-05 15:13:13 +01:00
67d4736a16 COMP: fvMesh: add hasDb() member 2018-06-05 10:54:58 +01:00
cf9209e42c GIT: Removed unused files 2018-06-01 15:39:41 +01:00
dc521b95df STYLE: consistent use of '= delete' 2018-05-30 12:03:17 +02:00
5aa955c9d2 GIT: include submodules in develop-pre-release branch 2018-06-11 11:53:29 +02:00
6b15244de3 STYLE: Enum instead of NamedEnum for fileOperation 2018-06-11 11:40:40 +02:00
5162b9b2b3 TUT: Updated residuals FO usage for field output 2018-05-24 15:50:43 +01:00
5b9c4ceae5 ENH: rigidbodyDynamics: prescribed rotation + testcase
See:
src/rigidBodyDynamics/restraints/prescribedRotation
tutorials/multiphase/overInterDyMFoam/boatAndPropeller
2018-04-19 17:54:24 +01:00
9b330a9e68 ENH: updated residuals function object field output
Fields now correspond to the initial residual for the first solver
iteration
2018-01-17 13:19:36 +00:00
6312f80918 ENH: residuals function object - extended to write residual fields
Residual fields can be written using the new 'writeFields' entry, e.g.

    functions
    {
        residual
        {
            type            residuals;
            libs            ("libutilityFunctionObjects.so");
            fields          (".*");
            writeControl    writeTime;
            writeFields     true;
        }
    }

Fields currently correspond to the initial residual for the last solver
iteration.
2018-01-16 12:13:11 +00:00
08193a50fa ENH: Pair collision model - added ramp time to bleed-in force contributions 2018-05-22 10:05:36 +01:00
885c47150e ENH: chemFoam - updated mesh creation 2018-01-11 21:34:27 +00:00
aec949d7cc ENH: Consistency improvement for setting postProcessing directory name 2018-02-27 14:37:05 +00:00
853b9abb79 ENH: Utilities - add -region option when creating meshes 2018-01-16 12:10:20 +00:00
66ba2dd674 ENH: check case tool - updated command line arguments:
-dry-run : perform check only and no writing
-dry-run-write: perform check and write to the next time step.  This
also triggers function objects that fire on the call to write()
2018-02-26 11:46:03 +00:00
b50bbc7ef2 ENH: Added new dry-run options to solvers 2018-01-11 14:23:17 +00:00
1791a3a334 ENH: Added tools to generate simplified meshes used to check case set-ups 2018-01-11 14:21:51 +00:00
a2762d16fa ENH: Field - read error if insufficient values provided, but allow if more are available 2018-01-12 14:19:46 +00:00
eedb266c72 ENH: polyBoundaryMeshEntries - respect IOobject read flags 2018-01-11 14:19:39 +00:00
a1e5e4abcb COMP: move error trap to within debug scope 2018-01-12 10:03:47 +00:00
8dadd181c1 ENH: surfaceInterpolation - improved robustness when dealing with empty patches 2018-01-11 14:20:26 +00:00
27888bf7aa ENH: Updated mechanism to create empty sets and zones 2018-05-22 10:10:48 +01:00
34606f54b9 COMP: Updated createDpDt for moving meshes 2018-06-01 15:39:28 +01:00
f51ee9a0e2 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-31 17:34:16 +01:00
ec5d9cdf01 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-29 12:13:58 +01:00
d703f09d11 BUG: fileOperation: avoid par syn in uncollated. Fixes #846. 2018-05-29 12:13:13 +01:00
9d5cb5751e ENH: additional methods for tmpNrc (as per tmp)
- move constructable
- factory methods: New, NewFrom
- reset methods
2018-05-28 17:01:03 +02:00
369604e935 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-05-22 14:06:07 -07:00
d8f9029c7f ENH: adding needed dictionary in smallPoolFire2D.
Update QDot dimensions for diffusionMulticomponent
2018-05-22 14:05:03 -07:00
cb74d7b9d4 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-21 17:03:58 +01:00
f7fa618e8f Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-21 09:53:10 +01:00
db23dd7b57 Merge remote-tracking branch 'origin/develop-pre-release' into develop-pre-release 2018-05-21 08:59:55 +01:00
977a9894b4 ENH: codedMotionSolver: motion solver with user-supplied coding 2018-05-21 08:59:01 +01:00
ad25e18c7f Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-18 12:18:13 +01:00
6180e0db8b INT: Additional integration updates/clean-up 2018-05-18 10:49:10 +01:00
b78d37e93c Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-05-18 01:31:17 -07:00
e0912a058c ENH: Adding pressure work terms for compressibleInterFoam
Removing temporary fix from compressibleInterDyFOAM to re-calculte Uf with morphing mesh
2018-05-18 01:27:13 -07:00
5474d161f2 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-05-17 17:11:57 +01:00
f700bce878 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-17 12:14:27 +01:00
647e1c892d INT: Additional integration updates/clean-up 2018-05-16 10:32:42 +01:00
7ac5d76773 ENH: fvMeshDistribute: uses topological rather than geometric point merging
Patch contributed by Mattijs Janssens
2018-03-23 17:02:18 +00:00
8959b8e00a ENH: Improvements to the fileHandler and collated IO
Improvements to existing functionality
--------------------------------------
  - MPI is initialised without thread support if it is not needed e.g. uncollated
  - Use native c++11 threading; avoids problem with static destruction order.
  - etc/cellModels now only read if needed.
  - etc/controlDict can now be read from the environment variable FOAM_CONTROLDICT
  - Uniform files (e.g. '0/uniform/time') are now read only once on the master only
    (with the masterUncollated or collated file handlers)
  - collated format writes to 'processorsNNN' instead of 'processors'.  The file
    format is unchanged.
  - Thread buffer and file buffer size are no longer limited to 2Gb.

The global controlDict file contains parameters for file handling.  Under some
circumstances, e.g. running in parallel on a system without NFS, the user may
need to set some parameters, e.g. fileHandler, before the global controlDict
file is read from file.  To support this, OpenFOAM now allows the global
controlDict to be read as a string set to the FOAM_CONTROLDICT environment
variable.

The FOAM_CONTROLDICT environment variable can be set to the content the global
controlDict file, e.g. from a sh/bash shell:

    export FOAM_CONTROLDICT=$(foamDictionary $FOAM_ETC/controlDict)

FOAM_CONTROLDICT can then be passed to mpirun using the -x option, e.g.:

    mpirun -np 2 -x FOAM_CONTROLDICT simpleFoam -parallel

Note that while this avoids the need for NFS to read the OpenFOAM configuration
the executable still needs to load shared libraries which must either be copied
locally or available via NFS or equivalent.

New: Multiple IO ranks
----------------------
The masterUncollated and collated fileHandlers can now use multiple ranks for
writing e.g.:

    mpirun -np 6 simpleFoam -parallel -ioRanks '(0 3)'

In this example ranks 0 ('processor0') and 3 ('processor3') now handle all the
I/O.  Rank 0 handles 0,1,2 and rank 3 handles 3,4,5.  The set of IO ranks should always
include 0 as first element and be sorted in increasing order.

The collated fileHandler uses the directory naming processorsNNN_XXX-YYY where
NNN is the total number of processors and XXX and YYY are first and last
processor in the rank, e.g. in above example the directories would be

    processors6_0-2
    processors6_3-5

and each of the collated files in these contains data of the local ranks
only. The same naming also applies when e.g. running decomposePar:

decomposePar -fileHandler collated -ioRanks '(0 3)'

New: Distributed data
---------------------

The individual root directories can be placed on different hosts with different
paths if necessary.  In the current framework it is necessary to specify the
root per slave process but this has been simplified with the option of specifying
the root per host with the -hostRoots command line option:

    mpirun -np 6 simpleFoam -parallel -ioRanks '(0 3)' \
        -hostRoots '("machineA" "/tmp/" "machineB" "/tmp")'

The hostRoots option is followed by a list of machine name + root directory, the
machine name can contain regular expressions.

New: hostCollated
-----------------

The new hostCollated fileHandler automatically sets the 'ioRanks' according to
the host name with the lowest rank e.g. to run simpleFoam on 6 processors with
ranks 0-2 on machineA and ranks 3-5 on machineB with the machines specified in
the hostfile:

    mpirun -np 6 --hostfile hostfile simpleFoam -parallel -fileHandler hostCollated

This is equivalent to

    mpirun -np 6 --hostfile hostfile simpleFoam -parallel -fileHandler collated -ioRanks '(0 3)'

This example will write directories:

    processors6_0-2/
    processors6_3-5/

A typical example would use distributed data e.g. no two nodes, machineA and
machineB, each with three processes:

    decomposePar -fileHandler collated -case cavity

    # Copy case (constant/*, system/*, processors6/) to master:
    rsync -a cavity machineA:/tmp/

    # Create root on slave:
    ssh machineB mkdir -p /tmp/cavity

    # Run
    mpirun --hostfile hostfile icoFoam \
        -case /tmp/cavity -parallel -fileHandler hostCollated \
        -hostRoots '("machineA" "/tmp" "machineB" "/tmp")'

Contributed by Mattijs Janssens
2018-03-21 12:42:22 +00:00
d469bbae4b COMP: Allwmake: feed through 'objects' targer for wmakeCollect 2018-05-17 08:39:57 +01:00
c812b4c6f7 ENH: atmosphericModels: Added Lopes da Costa porosity and turbulence models
Specialized variants of the power law porosity and k epsilon turbulence models
developed to simulate atmospheric flow over forested and non-forested complex
terrain.

Class
    Foam::powerLawLopesdaCosta

Description
    Variant of the power law porosity model with spatially varying
    drag coefficient

    given by:

        \f[
            S = -\rho C_d \Sigma |U|^{(C_1 - 1)} U
        \f]

    where
    \vartable
        \Sigma | Porosity surface area per unit volume
        C_d    | Model linear coefficient
        C_1    | Model exponent coefficient
    \endvartable

    Reference:
    \verbatim
        Costa, J. C. P. L. D. (2007).
        Atmospheric flow over forested and non-forested complex terrain.
    \endverbatim

Class
    Foam::RASModels::kEpsilonLopesdaCosta

Description
    Variant of the standard k-epsilon turbulence model with additional source
    terms to handle the changes in turbulence in porous regions represented by
    the powerLawLopesdaCosta porosity model.

    Reference:
    \verbatim
        Costa, J. C. P. L. D. (2007).
        Atmospheric flow over forested and non-forested complex terrain.
    \endverbatim

    The default model coefficients are
    \verbatim
        kEpsilonLopesdaCostaCoeffs
        {
            Cmu         0.09;
            C1          1.44;
            C2          1.92;
            sigmak      1.0;
            sigmaEps    1.3;
        }
    \endverbatim

Tutorial case to follow.
2018-03-20 22:26:07 +00:00
54ddd14168 STYLE: src/atmosphericModels: New library containing models specific to atmospheric flows
Converted the atmBoundaryLayerInlet boundary conditions to inletOutlet to handle
changes in inflow orientation without the need for re-meshing.
2018-03-18 14:08:20 +00:00
a8261a5626 STYLE: fvPatchFields: Corrected documentation
Resolves bug-report https://bugs.openfoam.org/view.php?id=2885
2018-03-22 11:09:42 +00:00
f246a81f8a BUG: wideBandAbsorptionEmission: Corrected errors
Resolves bug-reports
https://bugs.openfoam.org/view.php?id=2881
https://bugs.openfoam.org/view.php?id=2882

Patches contributed by Kevin Nordin-Bates
2018-03-21 18:03:29 +00:00
a33b6aa447 ENH: particle: Optimisation by inlining key methods
Resolves bug report https://bugs.openfoam.org/view.php?id=2871
2018-03-13 08:22:33 +00:00
08079c4be9 ENH: cellLimitedGrad gradientLimiters: Added support for run-time selectable gradient limiter function
Minmod is the default limiter function and specified with an explicit name e.g.:

    gradSchemes
    {
        default Gauss linear;
        limited cellLimited Gauss linear 1;
    }

Venkatakrishnan and cubic limiter functions are also provided and may be
specified explicitly e.g.:

    gradSchemes
    {
        default Gauss linear;
        limited cellLimited<Venkatakrishnan> Gauss linear 1;
    }

or

    gradSchemes
    {
        default Gauss linear;
        limited cellLimited<cubic> 1.5 Gauss linear 1;
    }

The standard minmod function is recommended for most applications but if
convergence or stability problems arise it may be beneficial to use one of the
alternatives which smooth the gradient limiting.  The Venkatakrishnan is not
well formulated and allows the limiter to exceed 1 whereas the cubic limiter is
designed to obey all the value and gradient constraints on the limiter function,
see

    Michalak, K., & Ollivier-Gooch, C. (2008).
    Limiters for unstructured higher-order accurate solutions
    of the Euler equations.
    In 46th AIAA Aerospace Sciences Meeting and Exhibit (p. 776).

The cubic limiter function requires the transition point at which the limiter
function reaches 1 is an input parameter which should be set to a value between
1 and 2 although values larger than 2 are physical but likely to significantly
reduce the accuracy of the scheme.

VenkatakrishnanGradientLimiter: Updated documentation

cubicGradientLimiter: Documented private data
2018-02-26 23:14:46 +00:00
c5125c3299 STYLE: greyDiffusiveRadiationMixedFvPatchScalarField: Simplified the lookup of the fvDOM model 2018-02-11 21:02:27 +00:00
7f42f90901 BUG: directFieldMapper: Corrected constructor name
Note this class is not currently used in OpenFOAM

Resolves bug-report https://bugs.openfoam.org/view.php?id=2829
2018-02-07 15:57:50 +00:00
ee06a687eb TUT: Corrected file header 2018-05-16 16:15:50 +01:00
1fc177152a TUT: aerofoilNACA0012 tutorial for rhoSimpleFoam and rhoPimpleFoam
The tutorial demonstrates generation of a C-grid mesh using blockMesh
The geometry is provided by a surface mesh (OBJ file) of the NACA0012 aerofoil
The case is setup with a freestream flow speed of Ma=0.72

Thanks to Kai Bastos at Duke University for the geometry and helpful input.
2018-02-23 17:05:30 +00:00
7d205cc790 ENH: fixedMeanOutletInletFvPatchField: New outlet/inlet boundary condition which fixes the outlet mean
Description
    This boundary condition extrapolates field to the patch using the near-cell
    values and adjusts the distribution to match the specified, optionally
    time-varying, mean value.  This extrapolated field is applied as a
    fixedValue for outflow faces but zeroGradient is applied to inflow faces.

    This boundary condition can be applied to pressure when inletOutlet is
    applied to the velocity so that a zeroGradient condition is applied to the
    pressure at inflow faces where the velocity is specified to avoid an
    unphysical over-specification of the set of boundary conditions.

Usage
    \table
        Property     | Description             | Required    | Default value
        meanValue    | mean value Function1    | yes         |
        phi          | Flux field name         | no          | phi
    \endtable

    Example of the boundary condition specification:
    \verbatim
    <patchName>
    {
        type            fixedMeanOutletInlet;
        meanValue       1.0;
    }
    \endverbatim

See also
    Foam::fixedMeanFvPatchField
    Foam::outletInletFvPatchField
    Foam::Function1Types
2018-04-04 22:04:25 +01:00
8165c462cd ENH: freestreamPressure, freestreamVelocity: New blended boundary conditions for the freestream
These BCs blend between typical inflow and outflow conditions based on the
velocity orientation.

airFoil2D tutorial updated to demonstrate these new BCs.
2018-02-23 12:23:06 +00:00
83d935d517 ENH: error: exit with the given error number rather than 1
Resolves patch request https://bugs.openfoam.org/view.php?id=2827
2018-02-06 11:48:15 +00:00
ec326f5a4c ENH: chemistryModel: Added new option to specify the initial ODE integration time-step
In constant/chemistryProperties in addition to the specification of the initial
ODE integration time-step used at the start of the run:

    initialChemicalTimeStep 1e-12;

this time step may now also be specified for every chemistry integration by
setting the optional entry maxChemicalTimeStep, e.g.

    maxChemicalTimeStep 1e-12;
2018-02-01 11:27:31 +00:00
05f5a293bc ENH: MRF: Remove ddtCorr from MRF regions
MRFZone: Filter-out excluded patches from ddtCorr
2018-02-10 22:46:17 +00:00
bab508821e BUG: EulerDdtScheme: Corrected fvcDdt dimensions for multiphase moving-mesh cases
Resolves bug-report https://bugs.openfoam.org/view.php?id=2822
2018-01-31 16:44:58 +00:00
fe4752d28a ENH: ddtScheme::fvcDdtPhiCoeff: Improved formulation providing better stability/accuracy balance
Resolves problem with pressure "staggering" when running with a very Courant
number.
2018-01-08 21:35:00 +00:00
4272820fca BUG: writeFile: Increased the number of value characters
The number of characters needed to print a double in scientific format
is 8 plus the number of decimal places; e.g., -6.453452e-231 (6 decimal
places, 14 characters). This has been set in writeFile.C, replacing a
value of 7. Presumably, the case of three digits in the exponent was not
considered when this was first implemented. This change ensures at least
one character of whitespace between tabulated numbers.

This resolves bug report https://bugs.openfoam.org/view.php?id=2801
2018-01-04 08:33:46 +00:00
13d893e4c0 ENH: blockMesh: Always put the mesh in the constant directory 2017-12-19 09:58:51 +00:00
f37ec93404 ENH: chtMultiRegionFoam: Added support for reactions
chtMultiRegionFoam now supports reaction/combustion modelling in fluid
regions in the same way as reactingFoam.

TUT: chtMultiRegionFoam: Added reverseBurner tutorial

This tutorial demonstrates chtMultiRegionFoam's combustion capability
2017-12-13 08:37:25 +00:00
2235ed1f86 STYLE: OSspecific/POSIX: Updated function name in diagnostic messages
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2786
2017-12-10 11:08:29 +00:00
5ea75f8a95 ENH: blockMesh: Added support for automatically reordering cyclic patches
Patch contributed by Mattijs Janssens
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1692
2017-12-01 11:01:30 +00:00
dcad66f7d3 INT: Additional integration updates/clean-up 2018-05-14 13:21:22 +01:00
2d238139b3 STYLE: thermo: Macro renaming
Thermo and reaction thermo macros have been renamed and refactored. If
the name is plural (make???Thermos) then it adds the model to all
selection tables. If not (make???Thermo) then it only adds to the
requested psi or rho table.
2017-12-14 16:37:21 +00:00
8aabbec71e ENH: reactionThermo: Single component mixture
This mixture allows a reacting solver to be used with a single component
fluid without the additional case files usually required for reacting
thermodynamics.

reactionThermo: Instantiated more single component mixtures

ENH: reactionThermo: Select singleComponentMixture as pureMixture

A pureMixture can now be specified in a reacting solver. This further
enhances compatibility between non-reacting and reacting solvers.

To achieve this, mixtures now have a typeName function of the same form
as the lower thermodyanmic models. In addition, to avoid name clashes,
the reacting thermo make macros have been split into those that create
entries on multiple selection tables, and those that just add to the
reaction thermo table.
2017-12-01 11:12:05 +00:00
2193c8e31a ENH: basicSpecieThermo: Updated solver references to mixture class 2017-12-01 11:05:28 +00:00
0c5a87ceba ENH: cylinderToFace, cylinderAnnulusToFace: New face sources
Face equivalents of cylinderToCell and cylinderAnnulusToCell.

Tested-by: Henry Weller <http://openfoam.org>
2017-11-27 11:37:03 +00:00
dde93671ee ENH: forces FO - updated reading of nu 2018-05-17 11:51:31 +01:00
e2c6985ea5 ENH: turbulenceFields FO - added turbulence intensity to list of available fields 2018-05-17 11:08:00 +01:00
1dbed00345 ENH: ParticleFunctionObjects: Added PatchCollisionDensity object
This function object will write a paraview-viewable field showing the
area-density of parcel collisions on every patch face. It also outputs
the rate of collisions hitting each patch face, calculated over an
interval equal to the time elapsed since the last output. It has an
optional entry to specify a minimum incident speed below which a
collision is not counted.

It can be enabled in the cloud properties file as follows:

    cloudFunctions
    {
        patchCollisionDensity1
        {
            type        patchCollisionDensity;
            minSpeed    1e-3; // (optional)
        }
    }

This work was supported by Anton Kidess, at Hilti
2018-01-11 09:13:08 +00:00
22aae2816d ENH: combustionModels: Changed the construction order
The combustion and chemistry models no longer select and own the
thermodynamic model; they hold a reference instead. The construction of
the combustion and chemistry models has been changed to require a
reference to the thermodyanmics, rather than the mesh and a phase name.

At the solver-level the thermo, turbulence and combustion models are now
selected in sequence. The cyclic dependency between the three models has
been resolved, and the raw-pointer based post-construction step for the
combustion model has been removed.

The old solver-level construction sequence (typically in createFields.H)
was as follows:

    autoPtr<combustionModels::psiCombustionModel> combustion
    (
        combustionModels::psiCombustionModel::New(mesh)
    );

    psiReactionThermo& thermo = combustion->thermo();

    // Create rho, U, phi, etc...

    autoPtr<compressible::turbulenceModel> turbulence
    (
        compressible::turbulenceModel::New(rho, U, phi, thermo)
    );

    combustion->setTurbulence(*turbulence);

The new sequence is:

    autoPtr<psiReactionThermo> thermo(psiReactionThermo::New(mesh));

    // Create rho, U, phi, etc...

    autoPtr<compressible::turbulenceModel> turbulence
    (
        compressible::turbulenceModel::New(rho, U, phi, *thermo)
    );

    autoPtr<combustionModels::psiCombustionModel> combustion
    (
        combustionModels::psiCombustionModel::New(*thermo, *turbulence)
    );

ENH: combustionModel, chemistryModel: Simplified model selection

The combustion and chemistry model selection has been simplified so
that the user does not have to specify the form of the thermodynamics.

Examples of new combustion and chemistry entries are as follows:

    In constant/combustionProperties:

        combustionModel PaSR;

        combustionModel FSD;

    In constant/chemistryProperties:

        chemistryType
        {
            solver          ode;
            method          TDAC;
        }

All the angle bracket parts of the model names (e.g.,
<psiThermoCombustion,gasHThermoPhysics>) have been removed as well as
the chemistryThermo entry.

The changes are mostly backward compatible. Only support for the
angle bracket form of chemistry solver names has been removed. Warnings
will print if some of the old entries are used, as the parts relating to
thermodynamics are now ignored.

ENH: combustionModel, chemistryModel: Simplified model selection

Updated all tutorials to the new format

STYLE: combustionModel: Namespace changes

Wrapped combustion model make macros in the Foam namespace and removed
combustion model namespace from the base classes. This fixes a namespace
specialisation bug in gcc 4.8. It is also somewhat less verbose in the
solvers.

This resolves bug report https://bugs.openfoam.org/view.php?id=2787

ENH: combustionModels: Default to the "none" model

When the constant/combustionProperties dictionary is missing, the solver
will now default to the "none" model. This is consistent with how
radiation models are selected.
2017-11-23 16:57:12 +00:00
255ec7366b ENH: multiphaseInterFoam: Merged dynamic mesh functionality of multiphaseInterDyMFoam into multiphaseInterFoam
and replaced multiphaseInterDyMFoam with a script which reports this change.

The multiphaseInterDyMFoam tutorials have been moved into the multiphaseInterFoam directory.

This change is one of a set of developments to merge dynamic mesh functionality
into the standard solvers to improve consistency, usability, flexibility and
maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.
2017-12-01 15:51:21 +00:00
3666d90f31 ENH: interMixingFoam: Added support for mesh-motion and automatic refinement/unrefinement 2017-12-01 14:19:54 +00:00
ede4759b80 ENH: interFoam: Merged dynamic mesh functionality of interDyMFoam into interFoam
and replaced interDyMFoam with a script which reports this change.

The interDyMFoam tutorials have been moved into the interFoam directory.

This change is one of a set of developments to merge dynamic mesh functionality
into the standard solvers to improve consistency, usability, flexibility and
maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.

interMixingFoam, multiphaseInterFoam: Updated for changes to interFoam
2017-11-30 23:56:42 +00:00
e50af751a4 ENH: pimpleFoam, rhoPimpleFoam, interDyMFoam: Rationalized mesh-motion support
Added support for mesh-motion update within PIMPLE loop in pimpleFoam and rhoPimpleFoam.
2017-11-30 13:07:42 +00:00
889791060c INT: Additional integration updates 2018-05-11 12:04:33 +01:00
2f888d1684 ENH: rhePimpleFoam: Merged dynamic mesh functionality of rhoPimpleDyMFoam into rhoPimpleFoam
and replaced rhoPimpleDyMFoam with a script which reports this change.

The rhoPimpleDyMFoam tutorials have been moved into the rhoPimpleFoam directory.

This change is the first of a set of developments to merge dynamic mesh
functionality into the standard solvers to improve consistency, usability,
flexibility and maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.

rhoReactingFoam: Updated for changes to rhoPimpleFoam files
2017-11-23 12:13:37 +00:00
81cea09983 ENH: pimpleDyMFoam: Improved efficiency and consistency when running on a static mesh
Now pimpleDyMFoam is exactly equivalent to pimpleFoam when running on a
staticFvMesh.  Also when the constant/dynamicMeshDict is not present a
staticFvMesh is automatically constructed so that the pimpleDyMFoam solver can
run any pimpleFoam case without change.

pimpleDyMFoam: Store Uf as an autoPtr for better error handling

pimpleFoam: Set initial deltaT from the Courant number

for improved stability on start-up and compatibility with pimpleDyMFoam

ENH: pimpleFoam: Merged dynamic mesh functionality of pimpleDyMFoam into pimpleFoam

and replaced pimpleDyMFoam with a script which reports this change.

The pimpleDyMFoam tutorials have been moved into the pimpleFoam directory.

This change is the first of a set of developments to merge dynamic mesh
functionality into the standard solvers to improve consistency, usability,
flexibility and maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.

tutorials/incompressible/pimpleFoam: Updated pimpleDyMFoam tutorials to run pimpleFoam

Renamed tutorials/incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleDyMFoam

-> tutorials/incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam
2017-11-18 01:13:48 +00:00
be9d388a68 ENH: MRF: Added support for mesh refinement/unrefinement and other topology changes 2017-08-18 22:22:47 +01:00
c06f716555 ENH: reactingParcelFoam: Made YEqn diffusivity consistent with other solvers 2017-10-10 10:14:48 +01:00
910d1a3021 INT: Additional integration updates 2018-05-10 15:13:51 +01:00
e2c4472ab6 STYLE: engineFoam: Renamed engineFoam -> XiEngineFoam and sprayEngineFoam -> engineFoam
XiEngineFoam is a premixed/partially-premixed combustion engine solver which
exclusively uses the Xi flamelet combustion model.

engineFoam is a general engine solver for inhomogeneous combustion with or
without spray supporting run-time selection of the chemistry-based combustion
model.
2017-09-19 17:01:54 +01:00
3c58321b4b ENH: engineTime: Generalized to provide run-time selection of piston-motion
Standard crank-connecting rod and the new free-piston kinematics motion options
are provides, others can easily be added.

Contributed by Francesco Contino and Nicolas Bourgeois, BURN Research Group.
2017-09-19 09:26:26 +01:00
d76923d851 ENH: AMI: Consistency between overlap/normalisation areas
The patch magSf calculation has been changed so that it uses the same
triangulation as the overlap algorithm. This improves consistency and
means that for exactly conforming patches (typically before any mesh
motion) the weights do not require normalisation.
2017-10-31 08:59:21 +00:00
293c0c3014 BUG: compressibleInterFoam family: Corrected transonic option
Resolves bug-report https://bugs.openfoam.org/view.php?id=2785

ENH: compressibleInterFoam family: merged two-phase momentum stress modelling from compressibleInterPhaseTransportFoam

The new momentum stress model selector class
compressibleInterPhaseTransportModel is now used to select between the options:

Description
    Transport model selection class for the compressibleInterFoam family of
    solvers.

    By default the standard mixture transport modelling approach is used in
    which a single momentum stress model (laminar, non-Newtonian, LES or RAS) is
    constructed for the mixture.  However if the \c simulationType in
    constant/turbulenceProperties is set to \c twoPhaseTransport the alternative
    Euler-Euler two-phase transport modelling approach is used in which separate
    stress models (laminar, non-Newtonian, LES or RAS) are instantiated for each
    of the two phases allowing for different modeling for the phases.

Mixture and two-phase momentum stress modelling is now supported in
compressibleInterFoam, compressibleInterDyMFoam and compressibleInterFilmFoam.
The prototype compressibleInterPhaseTransportFoam solver is no longer needed and
has been removed.
2017-12-09 21:03:59 +00:00
e061de2c0a BUG: decomposedBlockData: fixed reconstruction problem
Patch contributed by Mattijs Janssens
Resolves bug-report https://bugs.openfoam.org/view.php?id=2744
2017-11-10 16:02:12 +00:00
5688340a05 ENH: globalIndexAndTransform: Don't generate transforms from coincident-full-match patches
Another exception has been added to globalIndexAndTransform to prevent
transformations being generated from coupled patch pairs marked with
coincident-full-match transformations. Foamy generates such patches, and
the faces on them at intermediate stages of meshing can be degenerate,
making the calculation of transformations unreliable. This change
enforces the definition that coincident-full-match patch pairs are not
transformed.
2017-11-07 09:12:59 +00:00
3839f7478a ENH: foamyHexMesh: Generate coincident-full-match processor patches 2017-11-07 09:18:41 +00:00
47979d18ff ENH: processorPolyPatch: Use relative match tolerance for coincident-full-match ordering 2017-11-07 09:11:03 +00:00
3e19185f10 ENH: mirrorMesh: Added support for cellLevel and pointLevel to support dynamic mesh refinement
Patch contributed by Mattijs Janssens
Resolves bug-report https://bugs.openfoam.org/view.php?id=2712
2017-10-27 14:58:26 +01:00
798ac98aef BUG: simpleFoam: moved createFvOptions.H into createFields.H for -postProcess option
To unsure fvOptions are instantiated for post-processing createFvOptions.H must
be included in createFields.H rather than in the solver directly.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2733

BUG: porousSimpleFoam: moved createFvOptions.H into createFields.H for -postProcess option

Resolves bug-report https://bugs.openfoam.org/view.php?id=2733

BUG: solvers: Moved fvOption construction into createFields.H for post-processing

This ensures that the fvOptions are constructed for the -postProcessing option
so that functionObjects which process fvOption data operate correctly in this
mode.
2017-10-23 22:20:52 +01:00
85a2ae6eaa ENH: surfaceFilmModels::standardPhaseChange: Add support for treating YInf as zero
by setting the optional switch YInfZero to true.
2017-10-19 17:49:46 +01:00
ee4315375a ENH: fvOptions::PhaseLimitStabilization: New fvOption to stabilize phase transport equations
in the limit of the phase fraction -> 0

Can be used with the Maxwell non-Newtonian laminar stress model when used in
multiphase solvers.
2017-10-18 15:01:21 +01:00
5b5c209785 ENH: chtMultiRegionFoam: Added support for single solid region post-processing
Patch contributed by Bruno Santos

Resolves patch request https://bugs.openfoam.org/view.php?id=2684
2017-09-04 17:13:42 +01:00
8b4fabd0bf STYLE: Updated dictionary entry 2018-04-04 12:02:12 +01:00
fc6a8b648f ENH: shortestPath: new line sampling method ('set') that detects the
shortest path between two sets of points. See shortestPathSet.H.
     Fixes #572.
2017-08-17 10:00:14 +01:00
d68adc4d31 ENH: Final stage for laserDTRM model and new icoReactingMultiphaseFoam 2017-08-10 09:17:55 -07:00
9887c8f504 ENH: adding thermo changes to handle multiphase T based thermos 2017-08-10 09:17:14 -07:00
f74e065781 STYLE: cylindricalInletVelocityFvPatchVectorField: Rationalized naming convention
for consistency with other rotating BCs.
2017-07-13 16:09:11 +01:00
e7f979c424 TUT: tutorials: blockMesh: Added missing face projections to pipe tutorial 2017-12-14 12:59:15 +00:00
5c69b02dea ENH: ODESolver: maxSteps now an optional input
e.g.

odeCoeffs
{
    solver          seulex;
    absTol          1e-12;
    relTol          0.0001;
    maxSteps        1e+06;
}

maxSteps defaults to 10000 for backward compatibility.
2017-12-15 15:26:47 +00:00
fe595af8c6 ENH: rigidBodyModelState: Added time value member
The absolute value of the the time has been added to the rigid body
model state. This value is not directly necessary for calculating the
evolution of the rigid body system, it just facilitates the
implementation of sub-models which are in some way time-dependent.
2017-12-13 11:59:46 +00:00
f180ab7249 BUG: basicSpecieMixture: Removed duplicated molecular weight mixing
Mixture molecular weight is now evaluated in heThermo like everything
else, relying on the low level specie mixing rules. Units have also been
corrected.

SpecieMixture: Pure virtual definition for W to prevent Clang warning
2017-12-01 14:21:28 +00:00
d9afa508e1 ENH: createBaffles: Create slave baffles on coupled patches 2017-11-29 15:30:35 +00:00
82fd731b82 BUG; chemistryModel: Fixed segfault in selection error message 2017-11-22 17:00:45 +00:00
363474de07 ENH: createBaffles: Corrected warning about internalFacesOnly setting 2017-11-22 14:45:23 +00:00
512252a67e ENH: surfaceFilmModels::waxSolventEvaporation, waxSolventViscosity: new wax/solvent film models
to support the evaporation of the solvent from the wax film and the changes in
viscosity caused by the reduction in solvent content.

BUG: filmViscosityModel::thixotropicViscosity: Corrected sign of impingement rate

to compensate for rhoSp having the wrong sign

BUG: surfaceFilmModels::waxSolventEvaporation: Corrected handling of impingement

ENH: surfaceFilmModels::waxSolventViscosity: Changed mixing to mole-fraction based

ENH: surfaceFilmModels::thermoSingleLayer: Added call to solveContinuity before updateSubmodels

to allow sub-models to solve transport equations for conserved properties
2017-11-16 22:00:57 +00:00
964c7d223c STYLE: solidThermo.H: Removed superfluous include files
Resolves bug-report https://bugs.openfoam.org/view.php?id=2758
2017-11-14 09:58:53 +00:00
5bfd575a44 ENH: TDACChemistryModel: Added support for multiphase
Patch contributed by Timo Niemi, VTT.
Resolves patch request https://bugs.openfoam.org/view.php?id=2753

STYLE: TDACChemistryModel: Removed unnecessary warning messages

Patch contributed by Francesco Contino
2017-11-09 16:58:17 +00:00
f30e0ab808 ENH: reconstructParMesh: Match face point averages on coupled patches
In the event that matching centroids across a coupled patch pair fails,
we fall back to matching the face point average. The latter can be
obtained more reliably on degenerate faces as the calculation does not
involve division by the face area.

This fallback was already implemented as part of processorPolyPatch.
This change also applies it to the faceCoupleInfo class used by
reconstructParMesh.
2017-11-06 14:34:49 +00:00
4694efa8e2 ENH: basicThermo, heSolidThermo: Added support for specifying the boundary conditions of alpha
Patch contributed by Björn Pfeiffelmann
Resolves patch request https://bugs.openfoam.org/view.php?id=2713
2017-11-07 13:53:46 +00:00
b747cb3519 STYLE: temperatureCoupledBase: Added more user-friendly error messages for inconsistent input
Resolves bug-report https://bugs.openfoam.org/view.php?id=2748
2017-11-02 14:54:11 +00:00
d042f49fc0 BUG: CompactSpatialTensor: Corrected constructor from components 2017-10-31 10:06:19 +00:00
dbc111e6ee ENH: compressibleInterPhaseTransportFoam: New variant of compressibleInterFoam supporting separate phase stress models
In this version of compressibleInterFoam separate stress models (laminar,
non-Newtonian, LES or RAS) are instantiated for each of the two phases allowing
for completely different modeling for the phases.

e.g. in the climbingRod tutorial case provided a Newtonian laminar model is
instantiated for the air and a Maxwell non-Newtonian model is instantiated for
the viscoelastic liquid.  To stabilize the Maxwell model in regions where the
liquid phase-fraction is 0 the new symmTensorPhaseLimitStabilization fvOption is
applied.

Other phase stress modeling combinations are also possible, e.g. the air may be
turbulent but the liquid laminar and an RAS or LES model applied to the air
only.  However, to stabilize this combination a suitable fvOption would need to
be applied to the turbulence properties where the air phase-fraction is 0.

Henry G. Weller, Chris Greenshields
CFD Direct Ltd.
2017-10-30 09:36:43 +00:00
d43c3438fe ENH: coldEngineFoam, engineFoam: Update logSummary to support collated IO
Resolves bug-report https://bugs.openfoam.org/view.php?id=2739
2017-10-27 12:10:45 +01:00
d5f60ea213 BUG: Matrix: Corrected size of field resulting from rectangular matrix multiplication
Resolves bug-report https://bugs.openfoam.org/view.php?id=2740
2017-10-26 15:52:27 +01:00
4dd8b3f247 BUG: RBD: restraints: Corrected restraint force transformations
The restraints generate either joint-local (tau) or global (fx) forces.
At the moment they all generate the latter. This change corrects three
of the four restraints so that the forces are in the gobal coordinate
system and not the local coordinate system of the body.

The problem with this is that the forward dynamics code then transforms
most of the forces back to the body local coordinate system. A better
solution would be to associate restraints which are more sensibly
defined in a local frame with the joints instead of the bodies, and
return the forces as part of the tau variable.
2017-10-20 16:02:43 +01:00
79ad0f0613 ENH: semiPermeableBaffle: Added two new boundary conditions and a tutorial
Two boundary conditions for the modelling of semi-permeable baffles have
been added. These baffles are permeable to a number of species within
the flow, and are impermeable to others. The flux of a given species is
calculated as a constant multipled by the drop in mass fraction across
the baffle.

The species mass-fraction condition requires the transfer constant and
the name of the patch on the other side of the baffle:

boundaryField
{
    // ...

    membraneA
    {
        type            semiPermeableBaffleMassFraction;
        samplePatch     membranePipe;
        c               0.1;
        value           uniform 0;
    }
    membraneB
    {
        type            semiPermeableBaffleMassFraction;
        samplePatch     membraneSleeve;
        c               0.1;
        value           uniform 1;
    }
}

If the value of c is omitted, or set to zero, then the patch is
considered impermeable to the species in question. The samplePatch entry
can also be omitted in this case.

The velocity condition does not require any special input:

boundaryField
{
    // ...

    membraneA
    {
        type            semiPermeableBaffleVelocity;
        value           uniform (0 0 0);
    }
    membraneB
    {
        type            semiPermeableBaffleVelocity;
        value           uniform (0 0 0);
    }
}

These two boundary conditions must be used in conjunction, and the
mass-fraction condition must be applied to all species in the
simulation. The calculation will fail with an error message if either is
used in isolation.

A tutorial, combustion/reactingFoam/RAS/membrane, has been added which
demonstrates this transfer process.

This work was done with support from Stefan Lipp, at BASF.
2017-10-19 10:00:36 +01:00
83026d2546 ENH: mergePolyMesh: Added check for zero patches in the master mesh
Patch contributed by Jakub Benda
Resolves bug-report https://bugs.openfoam.org/view.php?id=2727
2017-10-18 16:24:08 +01:00
b08e8e1904 ENH: functionObjects::wallHeatFlux: More efficient evaluation of heat-flux
which avoids the need for field interpolation and snGrad specification and
evaluation.

Resolves patch request https://bugs.openfoam.org/view.php?id=2725

wallHeatFlux: Filter out coupled patches

Resolves bug-report https://bugs.openfoam.org/view.php?id=2776
2017-10-17 12:17:24 +01:00
8bee77c76a BUG: blackBodyEmission: correct non-coupled boundary values
Resolves bug-report https://bugs.openfoam.org/view.php?id=2709
2017-10-13 17:17:45 +01:00
141e219f87 BUG: blockMesh: Corrected diagram printed with "-help" to be consistent with the documentation
Resolves bug report https://bugs.openfoam.org/view.php?id=2710
2017-10-13 11:28:01 +01:00
da03b803ae ENH: fvMeshSubset: Added coupled patch handling for small subsets 2017-10-12 09:20:43 +01:00
a45b422b75 STYLE: DPMFoam, MPPICFoam: Renamed alphaPhic -> alphaPhi.<continuous phase name>
for consistency with multiphase solvers and compatibility with the generalized
TurbulenceModels library.
2017-10-11 23:04:42 +01:00
efe4a9a4b7 ENH: TurbulenceModels: Obtain the group name from alphaRhoPhi rather than U
to support multiphase solvers in which the phases have the same velocity field.
2017-10-11 21:59:32 +01:00
405bb9414d BUG: constantFilmThermo: Added missing data member constructor call 2017-10-11 11:46:51 +01:00
c96ff47d98 ENH: blockMesh: Added switch to disable face correspondence checking
To disable face correspondence checking set

    checkFaceCorrespondence off;

in blockMeshDict.  This is necessary in the rare cases where adjacent block
faces do not need to correspond because they are geometrically collapsed,
e.g. to form a pole/axis.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2711
2017-10-09 21:33:02 +01:00
0f45c29feb ENH: PBiCG, PBiCGStab, PCG: Changed maxIter test to pre-increment counter
Resolves bug-report https://bugs.openfoam.org/view.php?id=2716
2017-10-09 12:23:28 +01:00
c487fe2ff0 ENH: fvOptions: Added support for transport equations involving d2dt2
Added incompressible solver support to the buoyancyForce fvOption
2017-10-06 15:33:33 +01:00
66b3934ab6 ENH: foamyHexMesh: Set no refinement iterations in global dictionary
ENH: foamyHexMesh: Made default region volume type that of it's parent

Foamy surface conformation entries have a "meshableSide" entry which
controls which side of the surface is to be meshed. Typically this is
set "inside" for boundaries and "both" for baffles. A sub-region's
default entry is now taken from it's parent, rather than a specific
value (it was "inside"). This is consistent with how other entries are
handled.

surfaceConformation
{
    locationInMesh      (0 0 0);

    geometryToConformTo
    {
        baffle
        {
            featureMethod           extractFeatures;
            includedAngle           120;
            meshableSide            both; // <-- per-surface setting

            regions
            {
                disk
                {
                    meshableSide    both; // <-- per-region setting*

                    // *in this example, this entry is not needed, as it
                    // is taken from the per-surface setting above
                }
            }
        }

        // ...
    }
}

ENH: foamyHexMesh: Added (reinstated) baffle patches

A patch can now be assigned to a baffle surface. This assignment will
take precedence over any face-zones.

surfaceConformation
{
    locationInMesh      (0 0 0);

    geometryToConformTo
    {
        disk
        {
            featureMethod           extractFeatures;
            includedAngle           120;
            meshableSide            both; // <-- baffle
            patchInfo
            {
                type wall;
                inGroups (walls);
            }
        }

        // ...
    }
}

STYLE: foamyHexMesh: Switched off output of all the secondary meshes
2017-09-15 15:04:16 +01:00
4ee0af6b08 ENH: gitignore: Added temporary vi/vim files to the ignore list 2017-10-05 09:39:48 +01:00
99bda24907 ENH: MultiComponentPhaseModel: Included laminar diffusion in YiEqns
Resolves bug report https://bugs.openfoam.org/view.php?id=2591
2017-10-03 08:36:12 +01:00
581914f597 STYLE: fvMeshSubset: Removed debugging output 2017-09-28 08:44:56 +01:00
a1679efa80 ENH: lagrangian: Rewrite of integration schemes and transfer terms
The integration of force and heat transfer onto the particle is
facilitated by a run-time-selectable integration scheme. These schemes
were written to generate the value at the end of an intregration step
and also an average value over the step from which the total transfer
was computed.

The average value in the Euler scheme was implemented incorrectly, which
resulted in the momentum and heat transfer processes being
non-conservative. Implementing the average correctly, however, would
have inteoduced a number of trancendental functions which would have
negated the purpose of the Euler scheme as the cheap and stable option.

The schemes have been rewritten to generate changes over the step,
rather than the final value. This change is then used to calculate the
transfers. Regardless of the scheme, this formulation is guaranteed to
be conservative, and the Euler scheme remains computationally
inexpensive.

This change was made with help from Timo Niemi, VTT
This resolves bug report https://bugs.openfoam.org/view.php?id=2666

ENH: integrationSchemes: Further simplification and optimisation

Removed templating from integration schemes, improved the name
convention, and optimised the utilisation so that the virtual call is
only made once per integration in the KinematicParcel and the
ThermoParcel.

BUG: integrationSchemes: Corrections to coupled/non-coupled force splitting

The integration splitting implemented in commit a5806207 has been shown
to be incorrect in some cases. A new procedure has been implemented
which can correctly split the implicit-explicit integral into a number
of pieces, in order to calculate the contribution of each. This is
intended for integrating coupled and non-coupled particle momentum and
heat transfers.

However, currently there is only ever one implicit coefficient used in
these transfers (there is no implicit non-coupled contribution). The
evaluation has therefore been short-cutted to only do the integration
with respect to the coupled contributions. The splitting functionality
has been retained in case additional separate implicit coefficients are
required in the future.

This change was made with help from Timo Niemi, VTT
This resolves bug report https://bugs.openfoam.org/view.php?id=2666
2017-09-20 16:06:48 +01:00
2b47b72fa8 ENH: thermoSingleLayer: Reinstate support for externalWallHeatFluxTemperature 2017-09-22 11:55:18 +01:00
4636f190da STYLE: engineFoam: Renamed engineFoam -> XiEngineFoam and sprayEngineFoam -> engineFoam
XiEngineFoam is a premixed/partially-premixed combustion engine solver which
exclusively uses the Xi flamelet combustion model.

engineFoam is a general engine solver for inhomogeneous combustion with or
without spray supporting run-time selection of the chemistry-based combustion
model.
2017-09-19 17:01:54 +01:00
436b43b61f ENH: mergePatchPairs: Updated 2017-09-19 09:30:26 +01:00
01efb2c85b ENH: engineTime: Generalized to provide run-time selection of piston-motion
Standard crank-connecting rod and the new free-piston kinematics motion options
are provides, others can easily be added.

Contributed by Francesco Contino and Nicolas Bourgeois, BURN Research Group.
2017-09-19 09:26:26 +01:00
d425421c0a ENH: reactingTwoPhaseEulerFoam: Added continuity fvOption term to U equations
Patch contributed by Juho Peltola, VTT
Resolves bug-report https://bugs.openfoam.org/view.php?id=2699
2017-09-15 11:43:15 +01:00
1ad3c4c2b1 ENH: viscosityModels::powerLaw: Changed VSMALL to SMALL to avoid potential overflow 2017-09-14 21:57:47 +01:00
96bdb82918 ENH: ideasUnvToFoam: Added test for no cells (e.g. 2D mesh)
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2691
2017-09-09 22:33:06 +01:00
ef9c6b5abc ENH: kinematicSingleLayer: Refactored to remove "netMass" 2017-09-06 14:20:58 +01:00
24866 changed files with 1125481 additions and 2568247 deletions

30
.gitignore vendored
View File

@ -4,6 +4,7 @@
# Editor and misc backup files - anywhere
*~
.*~
.*.swp
*.bak
*.bak[0-9][0-9]
\#*\#
@ -11,7 +12,7 @@
# File-browser settings - anywhere
.directory
# CVS recovered versions - anywhere
# Backup/recovery versions - anywhere
.#*
# Objects and archives - anywhere
@ -22,7 +23,7 @@
# Derived files
lex.yy.c
# Corefiles
# Core dumps
core
# Dependency files - anywhere
@ -46,22 +47,21 @@ platforms/
# Reinstate wmake rules that might look like build directories
!/wmake/rules/*/
# doxygen generated documentation
# Doxygen generated
doc/Doxygen/html
doc/Doxygen/latex
doc/Doxygen/man
doc/Doxygen/DTAGS
# Generated files in the main directory (e.g. ReleaseNotes-?.?.html)
# and in the doc directory
# Generated files in the main and doc directories
/*.html
/doc/*.html
# Untracked configuration files
# Untracked configuration/preferences files
/etc/prefs.csh
/etc/prefs.sh
/etc/config.csh/prefs.csh
/etc/config.sh/prefs.sh
/etc/config.csh/prefs.*
/etc/config.sh/prefs.*
/wmake/rules/General/mplibUSER*
# Source packages - anywhere
@ -72,19 +72,11 @@ doc/Doxygen/DTAGS
*.tgz
*.gtgz
# Ignore the persistent .build tag in the main directory
/.build
# Ignore .timeStamp in the main directory
/.timeStamp
# Ignore .tags in the main directory
/.tags
# Ignore project files in the main directory
# Ignore tags or project files in the main directory
/.cproject
/.project
/.dir-locals.el
/.project
/.tags
# Ignore the test directory
/tutorialsTest

View File

@ -0,0 +1,73 @@
<!--
*** Please read this first! ***
Before opening a new issue, make sure to search for keywords in the issues
filtered by the "bug" label and check to see if it has already been reported
You can see how your report will be rendered on the platform by using the
"preview" tab above
-->
<!--
All text between these markers are comments and will not be present in the
report
-->
### Summary
<!-- Summarize the bug encountered concisely -->
### Steps to reproduce
<!-- How one can reproduce the issue - this is very important -->
### Example case
<!--
If possible, please create a SMALL example and attach it to your report
If you are using an older version of OpenFOAM this will also determine
whether the bug has been fixed in a more recent version
-->
### What is the current *bug* behaviour?
<!-- What actually happens -->
### What is the expected *correct* behavior?
<!-- What you should see instead -->
### Relevant logs and/or images
<!--
Paste any relevant logs - please use code blocks (```) to format console
output, logs, and code as it's very hard to read otherwise.
-->
### Environment information
<!--
Providing details of your set-up can help us identify any issues, e.g.
OpenFOAM version : v1806|v1812|v1906|v1912|v2006|v2012|v2106 etc
Operating system : ubuntu|openSUSE|centos etc
Hardware info : any info that may help?
Compiler : gcc|intel|clang etc
-->
- OpenFOAM version :
- Operating system :
- Hardware info :
- Compiler :
### Possible fixes
<!--
If you can, link to the line of code that might be responsible for the
problem
The "/label ~bug" text is a gitlab flag that will add the "bug" label to this
issue
-->
/label ~bug

View File

@ -0,0 +1,31 @@
### Functionality to add/problem to solve
(Brief scope)
### Target audience
(Who will benefit from the changes?)
(What type of cases?)
### Proposal
(How are we going to solve the problem?)
### What does success look like, and how can we measure that?
(What are the success factors and acceptance criteria? e.g. test cases, error margins)
### Links / references
(Links to literature, supporting information)
### Funding
(Does the functionality already exist/is sponsorship available?)
/label ~feature

View File

@ -0,0 +1,20 @@
### Summary
(Summarize the changes concisely)
### Resolved bugs (If applicable)
(Links to issues)
### Details of new models (If applicable)
(New options, user inputs etc)
(Images are nice :))
### Risks
(Possible regressions?)
(Changes to user inputs?)

13
.gitmodules vendored
View File

@ -4,3 +4,16 @@
[submodule "avalanche"]
path = modules/avalanche
url = https://develop.openfoam.com/Community/avalanche.git
[submodule "adios"]
path = modules/adios
url = https://develop.openfoam.com/Community/adiosfoam.git
[submodule "OpenQBMM"]
path = modules/OpenQBMM
url = https://github.com/OpenQBMM/OpenQBMM.git
branch = openfoam.com
[submodule "visualization"]
path = modules/visualization
url = https://develop.openfoam.com/modules/visualization.git
[submodule "external-solver"]
path = modules/external-solver
url = https://develop.openfoam.com/Modules/external-solver.git

View File

@ -1,36 +1,65 @@
#!/bin/sh
# Run from OPENFOAM top-level directory only
cd ${0%/*} && wmakeCheckPwd "$WM_PROJECT_DIR" 2>/dev/null || {
cd "${0%/*}" || exit
wmake -check-dir "$WM_PROJECT_DIR" 2>/dev/null || {
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR"
echo " Check your OpenFOAM environment and installation"
exit 1
}
[ -d "$WM_PROJECT_DIR" -a -f "$WM_PROJECT_DIR/etc/bashrc" ] || {
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
echo "Argument parse error";
else
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
echo " Check your OpenFOAM environment and installation"
exit 1
}
# Parse arguments for library compilation
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
fi
#------------------------------------------------------------------------------
# Preamble. Report tools or at least the mpirun location
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/list_tools ]
then sh "$WM_PROJECT_DIR"/wmake/scripts/list_tools || true
else
echo "mpirun=$(command -v mpirun || true)"
fi
echo
# Report compiler information
compiler="$(wmake -show-path-cxx 2>/dev/null || true)"
if [ -x "$compiler" ]
then
echo "compiler=$compiler"
"$compiler" --version 2>/dev/null | sed -ne '1p'
else
echo "compiler=unknown"
fi
echo
echo "========================================"
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
echo "Starting ${WM_PROJECT_DIR##*/} ${0##*}"
echo " $WM_COMPILER $WM_COMPILER_TYPE compiler"
echo "Starting compile ${WM_PROJECT_DIR##*/} ${0##*/}"
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
echo "========================================"
echo
# Compile wmake tools
(cd "${WM_DIR:-wmake}/src" && make)
# Compile tools for wmake
"${WM_DIR:-wmake}"/src/Allmake
# Compile ThirdParty libraries and applications
if [ -d "$WM_THIRD_PARTY_DIR" ]
then
$WM_THIRD_PARTY_DIR/Allwmake
if [ -e "$WM_THIRD_PARTY_DIR"/Allwmake.override ]
then
if [ -x "$WM_THIRD_PARTY_DIR"/Allwmake.override ]
then "$WM_THIRD_PARTY_DIR"/Allwmake.override
fi
elif [ -x "$WM_THIRD_PARTY_DIR"/Allwmake ]
then "$WM_THIRD_PARTY_DIR"/Allwmake
else
echo "Skip ThirdParty (no Allwmake* files)"
fi
else
echo "No ThirdParty directory found - skipping"
echo "Skip ThirdParty (no directory)"
fi
echo "========================================"
@ -44,20 +73,36 @@ echo
applications/Allwmake $targetType $*
# Additional components/modules
if [ -d "$WM_PROJECT_DIR/modules" ]
if [ "$FOAM_MODULE_PREFIX" = false ] || [ "$FOAM_MODULE_PREFIX" = none ]
then
echo "========================================"
echo "Compile OpenFOAM modules"
echo "OpenFOAM modules disabled (prefix=${FOAM_MODULE_PREFIX})"
echo
(cd $WM_PROJECT_DIR/modules 2>/dev/null && wmake -all)
elif [ -d "$WM_PROJECT_DIR/modules" ]
then
(cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all)
fi
# Count files in given directory. Ignore "Test-*" binaries.
_foamCountDirEntries()
{
(cd "$1" 2>/dev/null && find . -mindepth 1 -maxdepth 1 -type f 2>/dev/null) |\
sed -e '\@/Test-@d' | wc -l
}
# Some summary information
echo
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
echo "========================================"
echo " ${WM_PROJECT_DIR##*/}"
echo " $WM_COMPILER $WM_COMPILER_TYPE compiler"
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
echo
echo " api = $(etc/openfoam -show-api 2>/dev/null)"
echo " patch = $(etc/openfoam -show-patch 2>/dev/null)"
echo " bin = $(_foamCountDirEntries "$FOAM_APPBIN") entries"
echo " lib = $(_foamCountDirEntries "$FOAM_LIBBIN") entries"
echo
echo "========================================"
#------------------------------------------------------------------------------

View File

@ -1,121 +0,0 @@
OpenFOAM-1712
==================
Known Build Issues
==================
---------------------
Intel MPI (Gcc/Clang)
---------------------
Either I_MPI_ROOT or MPI_ROOT can be used to specify the Intel-MPI
installation directory path.
The ThirdParty build of ptscotch uses `mpiicc` for Intel-MPI
instead of the usual `mpicc`.
When gcc or clang are used, it is highly likely that the
I_MPI_CC environment variable also needs to be set accordingly.
See `mpiicc -help` for more information about environment variables.
--------------
Intel Compiler
--------------
Since OpenFOAM uses C++11, a fairly recent version is required.
The Intel compiler - icc (ICC) 17.0.1 20161005 is ok, but the
initial release - icc (ICC) 17.0.0 20160721 - has a bug that
will result in these types of error messages.
MatrixSpaceI.H(492): error: no instance of overloaded function
"Foam::MatrixSpace<Form, Cmpt, Mrows, Ncols>::Block<SubTensor,
BRowStart, BColStart>::operator=" matches the specified type
---
VTK
---
If using the runTimePostProcessing to create on-the-fly images, you
can simply just compile ParaView and these libraries will be used.
If you elect to use a separate VTK compilation (for example for
off-screen rendering), it is advisable to reuse the VTK libraries that
are provided with ParaView by making an appropriate symlink
prior to using makeVTK. This doesn't just reduce disk-space, but works
much better than using the VTK tar file.
Using runTimePostProcessing with the 'plain' VTK libraries does
generally work, but does not exit cleanly:
symbol lookup error: .../linux64Gcc/VTK-7.1.0/lib/libvtkCommonExecutionModel-7.1.so.1:
undefined symbol: _ZN33vtkFilteringInformationKeyManager13ClassFinalizeEv
symbol lookup error: .../linux64Gcc/VTK-7.1.0/lib/libvtkCommonDataModel-7.1.so.1:
undefined symbol: _ZN49vtkInformationQuadratureSchemeDefinitionVectorKeyD1Ev
This error appears to be suppressed if VTK is compiled with a Debug build-type.
-------------------------
Building on older systems
-------------------------
If the system gcc is too old for building OpenFOAM, a third-party gcc or
clang/llvm installation can be used. If building clang/llvm, note that
there are also minimum gcc/g++ requirements there:
Min gcc/g++
=========== ==========
4.4 llvm-3.4.2
4.7 llvm-3.5.2 - llvm-3.7.0
If your system compiler is too old to build the minimum required gcc or
clang/llvm, it is just simply too old.
---------------------------------
ThirdParty clang without gmp/mpfr
---------------------------------
If using ThirdParty clang without gmp/mpfr, the ThirdParty makeCGAL
script will need to be run manually and specify that there is no
gmp/mpfr. Eg,
cd $WM_THIRD_PARTY_DIR
./makeCGAL gmp-none mpfr-none
Subequent compilation with Allwmake will now run largely without any
problems, except that the components linking against CGAL
(foamyMesh and surfaceBooleanFeatures) will also try to link against
a nonexistent mpfr library. As a workaround, the link-dependency can
be removed in wmake/rules/General/CGAL :
CGAL_LIBS = \
-L$(BOOST_ARCH_PATH)/lib \
-L$(BOOST_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
-L$(CGAL_ARCH_PATH)/lib \
-L$(CGAL_ARCH_PATH)/lib$(WM_COMPILER_LIB_ARCH) \
-lCGAL
This is a temporary inconvenience until a more robust solution is found.
-------------------------
Building with spack
-------------------------
If you are building with spack, note that the depends_on for paraview
resolves poorly. The +qt dependency (for building the reader module)
may need to be specified as a preference by including the following in
your `~/.spack/packages.yaml` file:
packages:
paraview:
variants: +qt
It appears that spack will otherwise ignore any paraview+qt version
and attempt to install a paraview~qt version instead.
--

57
CONTRIBUTORS.md Normal file
View File

@ -0,0 +1,57 @@
# Contributors to OpenFOAM
The following is a list of known contributors to OpenFOAM.
It is likely incomplete...
## Contributors (alphabetical by surname)
- William Bainbridge
- Gabriel Barajas
- Kutalmis Bercin
- Ivor Clifford
- Greg Collecutt
- Jonathan Cranford
- Sergio Ferraris
- Matej Forman
- Marian Fuchs
- Pawan Ghildiyal
- Chris Greenshields
- Bernhard Gschaider
- Andrew Heather
- David Hill
- Mattijs Janssens
- Andrew Jackson
- Hrvoje Jasak
- Alexander Kabat vel Job
- Thilo Knacke
- Shannon Leakey
- Tommaso Lucchini
- Graham Macpherson
- Alexey Matveichev
- Karl Meredith
- Laurence McGlashan
- Timo Niemi
- Haakan Nilsson
- Niklas Nordin
- Mark Olesen
- Victor Olesen
- Evangelos Papoutsis-Kiachagias
- Juho Peltola
- Johan Roenby
- Henrik Rusche
- Bruno Santos
- Henning Scheufler
- Richard Smith
- Prashant Sonakar
- Hilary Spencer
- Gavin Tabor
- Zeljko Tukovic
- Eugene De Villiers
- Yi Wang
- Norbert Weber
- Henry Weller
- Niklas Wikstrom
- Guanyang Xue
- Thorsten Zirwes
<!----------------------------------------------------------------------------->

View File

@ -1,7 +1,6 @@
GNU GENERAL PUBLIC LICENSE
OpenFOAM(R) is Copyright (C) 2011 OpenFOAM Foundation
Contact: OpenFOAM Foundation (OpenFOAM.Foundation@gmail.com)
OpenFOAM(R) is released by OpenCFD Ltd. via www.openfoam.com
You may use, distribute and copy the OpenFOAM CFD Toolbox under the terms
of GNU General Public License version 3, which is displayed below, or

10
META-INFO/.gitignore vendored Normal file
View File

@ -0,0 +1,10 @@
# Do not track build information
build-info
# Do not track time-stamp
time-stamp
# Do not track any manifest files
*[Mm]anifest.txt
####

87
META-INFO/README.md Normal file
View File

@ -0,0 +1,87 @@
## META-INFO
Meta-information is generally for OpenFOAM internal use only.
The format, content and meaning may be changed at anytime without
prior notice.
If any of these are changed, these are some of places that will need
to be updated accordingly:
- bin/foamEtcFile
- bin/tools/foamConfigurePaths
- bin/tools/foamPackRelease
- etc/openfoam
- wmake/scripts/wmake-build-info
### api-info
This file and its contents are to be tracked by git.
- File content (api) generated by `wmake -build-info` from the
`OPENFOAM` define in `wmake/rules/General/general`
- File content (patch) is manually generated content.
### build-info
This file is ***never*** to be tracked by git, but may be present in
shipped source archives.
- File content (branch, build) generated by `wmake -build-info` from
git information and cached from previous wmake (api)
### Content types
#### api
Format: `date +%y%m`
- 4-digit year-month (YYMM) integer corresponding to the major
release or in unusual cases an intermediate release.
Example, `2106` for the June-2021 release.
#### patch
Format: `date +%y%m%d`
- 6-digit year-month-day (YYMMDD) integer corresponding to a patch-level
for the given **released** API.
- The first release can have a patch value of `0` or `1` which
indicates that it is unpatched or just released. Alternatively
it can have a patch value corresponding to the release date.
The patch value is only meaningful together with the api value.
However, for *development* branches, the patch level should not be
ascribed too much meaning, but will often correspond to the last
merge with a *maintenance* (*eg*, `master`) branch.
### Flow of information
Changes in the build information must be reflected in information
available in the final binaries. Conversely, it is necessary for later
distributions to have a record of the same information.
| property | source | saved |
|-----------|---------------------------|------------|
| api | wmake/rules | api-info |
| patch | manual (api-info) | build-info |
| branch | git | build-info |
| build | git | build-info |
The command `wmake -build-info -check` is used to determine if
the saved information needs synchronization. The command
`wmake -build-info -update` performs the synchronization.
### Notes
The saved information is split into two separate files.
The `api-info` file contains more permanent information,
whereas the `build-info` is more transient in nature.
----
2021-06-09

2
META-INFO/api-info Normal file
View File

@ -0,0 +1,2 @@
api=2106
patch=220610

215
README.md
View File

@ -1,27 +1,216 @@
# About OpenFOAM
OpenFOAM is a free, open source CFD software [released and developed primarily by OpenCFD Ltd](http://www.openfoam.com) since 2004. It has a large user base across most areas of engineering and science, from both commercial and academic organisations. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics. [More...](http://www.openfoam.com/documentation)
## About OpenFOAM
OpenFOAM is a free, open source CFD software [released and developed by OpenCFD Ltd since 2004](http://www.openfoam.com/history/).
It has a large user base across most areas of engineering and science, from both commercial and academic organisations.
OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics.
[See documentation](http://www.openfoam.com/documentation)
OpenFOAM is professionally released every six months to include
customer sponsored developments and contributions from the community -
individual and group contributors, integrations
(eg, from FOAM-extend and OpenFOAM Foundation Ltd) as well as
[governance guided activities](https://www.openfoam.com/governance/).
OpenFOAM is professionally released every six months to include customer sponsored developments and contributions from the community - individual and group contributors, fork re-integrations including from FOAM-extend and OpenFOAM Foundation Ltd - in this Official Release sanctioned by the OpenFOAM Worldwide Trademark Owner aiming towards one OpenFOAM.
## License
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version. See the file COPYING in this directory or
[http://www.gnu.org/licenses/](http://www.gnu.org/licenses), for a
description of the GNU General Public License terms under which you
may redistribute files.
# Copyright
OpenFOAM is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. See the file COPYING in this directory or [http://www.gnu.org/licenses/](http://www.gnu.org/licenses), for a description of the GNU General Public License terms under which you can copy the files.
## OpenFOAM Trademark
OpenCFD Ltd grants use of its OpenFOAM trademark by Third Parties on a
licence basis. ESI Group and OpenFOAM Foundation Ltd are currently
permitted to use the Name and agreed Domain Name. For information on
trademark use, please refer to the
[trademark policy guidelines][link trademark].
Please [contact OpenCFD](http://www.openfoam.com/contact) if you have
any questions about the use of the OpenFOAM trademark.
Violations of the Trademark are monitored, and will be duly prosecuted.
# OpenFOAM Trademark
OpenCFD Ltd grants use of its OpenFOAM trademark by Third Parties on a licence basis. ESI Group and OpenFOAM Foundation Ltd are currently permitted to use the Name and agreed Domain Name. For information on trademark use, please refer to the [trademark policy guidelines](http://www.openfoam.com/legal/trademark-policy.php).
## Using OpenFOAM
Please [contact OpenCFD](http://www.openfoam.com/contact) if you have any questions on the use of the OpenFOAM trademark.
If OpenFOAM has already been compiled on your system, simply source
the appropriate `etc/bashrc` or `etc/cshrc` file and get started.
For example, for the OpenFOAM-v2106 version:
```
source /installation/path/OpenFOAM-v2106/etc/bashrc
```
Violations of the Trademark are continuously monitored, and will be duly prosecuted.
## Compiling OpenFOAM
If you are compiling OpenFOAM from source, please see the relevant
guides:
| Location | Readme | Requirements | Build |
|-------------|-----------|--------------|-------|
| [OpenFOAM][repo openfoam] | [readme][link openfoam-readme] | [system requirements][link openfoam-require] | [build][link openfoam-build] |
| [ThirdParty][repo third] | [readme][link third-readme] | [system requirements][link third-require] | [build][link third-build] |
# Useful Links
- [Download and installation instructions](http://www.openfoam.com/download/)
If you need to modify the versions or locations of ThirdParty
software, please read how the
[OpenFOAM configuration][wiki-config] is structured.
## How do I know which version I am currently using?
The value of the `$WM_PROJECT_DIR` or even `$WM_PROJECT_VERSION` are
not guaranteed to have any correspondence to the OpenFOAM release
(API) value. If OpenFOAM has already been compiled, the build-time
information is embedded into each application. For example, as
displayed from `blockMesh -help`:
```
Using: OpenFOAM-com (2012) - visit www.openfoam.com
Build: b830beb5ea-20210429 (patch=210414)
Arch: LSB;label=32;scalar=64
```
This output contains all of the more interesting information that we need:
| item | value |
|-----------------------|---------------|
| version | com (eg, local development branch) |
| api | 2012 |
| commit | b830beb5ea |
| author date | 20210429 |
| patch-level | (20)210414 |
| label/scalar size | 32/64 bits |
The Arch information may also include the `solveScalar` size
if different than the `scalar` size.
As can be seen in this example, the git build information is
supplemented by the date when the last change was authored, which can
be helpful when the repository contains local changes. If you simply
wish to know the current API and patch levels directly, the
`wmake -build-info` provides the relevant information even
when OpenFOAM has not yet been compiled:
```
$ wmake -build-info
make
api = 2012
patch = 210414
branch = master
build = 308af39136-20210426
```
Similar information is available with `foamEtcFile`, using the
`-show-api` or `-show-patch` options. For example,
```
$ foamEtcFile -show-api
2012
$ foamEtcFile -show-patch
210414
```
This output will generally be the easiest to parse for scripts.
The `$FOAM_API` convenience environment variable may not reflect the
patching changes made within the currently active environment and
should be used with caution.
## ThirdParty directory
OpenFOAM normally ships with a directory of 3rd-party software and
build scripts for some 3rd-party software that is either necessary or
at least highly useful for OpenFOAM, but which are not necessarily
readily available on every operating system or cluster installation.
These 3rd-party sources are normally located in a directory parallel
to the OpenFOAM directory. For example,
```
/path/parent
|-- OpenFOAM-v2106
\-- ThirdParty-v2106
```
There are, however, many cases where this simple convention is inadequate:
* When no additional 3rd party software is actually required (ie, the
operating system or cluster installation provides it)
* When we have changed the OpenFOAM directory name to some arbitrary
directory name, e.g. openfoam-sandbox2106, etc..
* When we would like any additional 3rd party software to be located
inside of the OpenFOAM directory to ensure that the installation is
encapsulated within a single directory structure. This can be
necessary for cluster installations, or may simply be a convenient
means of performing a software rollout for individual workstations.
* When we have many different OpenFOAM directories for testing or
developing various different features but wish to use or reuse the
same 3rd party software for them all.
The solution for these problems is a newer, more intelligent discovery
when locating the ThirdParty directory with the following precedence:
1. PROJECT/ThirdParty
* for single-directory installations
2. PREFIX/ThirdParty-VERSION
* this corresponds to the traditional approach
3. PREFIX/ThirdParty-vAPI
* allows for an updated value of VERSION, *eg*, `v2106-myCustom`,
without requiring a renamed ThirdParty. The API value would still
be `2106` and the original `ThirdParty-v2106/` would be found.
4. PREFIX/ThirdParty-API
* same as the previous example, but using an unadorned API value.
5. PREFIX/ThirdParty-common
* permits maximum reuse for various versions, for experienced
users who are aware of potential version incompatibilities
If none of these directories are found to be suitable, it reverts to
using PROJECT/ThirdParty as a dummy location (even if the directory
does not exist). This is a safe fallback value since it is within the
OpenFOAM directory structure and can be trusted to have no negative
side-effects. In the above, the following notation has been used:
| name | value | meaning |
|---------------|---------------|---------------|
| PROJECT | `$WM_PROJECT_DIR` | The OpenFOAM directory |
| PREFIX | `dirname $WM_PROJECT_DIR` | The OpenFOAM parent directory |
| API | `foamEtcFiles -show-api` | The api or release version |
| VERSION | `$WM_PROJECT_VERSION` | The version we have chosen |
To reduce the potential of false positive matches (perhaps some other
software also uses ThirdParty-xxx for its naming), the directory test
is accompanied by a OpenFOAM-specific sanity test. The OpenFOAM
ThirdParty directory will contain either an `Allwmake` file or a
`platforms/` directory.
<!-- OpenFOAM -->
[link trademark]: https://www.openfoam.com/opencfd-limited-trade-mark-policy
[repo openfoam]: https://develop.openfoam.com/Development/openfoam/
[repo third]: https://develop.openfoam.com/Development/ThirdParty-common/
[link openfoam-readme]: https://develop.openfoam.com/Development/openfoam/blob/develop/README.md
[link openfoam-issues]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/BuildIssues.md
[link openfoam-build]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Build.md
[link openfoam-require]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/README.md
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/BUILD.md
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
[wiki-config]: https://develop.openfoam.com/Development/openfoam/-/wikis/configuring
## Useful Links
- Download [source](https://dl.openfoam.com/source/) and [download and installation instructions](http://www.openfoam.com/download/)
- [Documentation](http://www.openfoam.com/documentation)
- [Reporting bugs/issues/feature requests](http://www.openfoam.com/code/bug-reporting.php)
- [OpenFOAM Community](http://www.openfoam.com/community/)
- [Issue tracker](https://develop.openfoam.com/Development/openfoam/-/issues)
- [Code wiki](https://develop.openfoam.com/Development/openfoam/-/wikis/) and [General wiki](http://wiki.openfoam.com/)
- [Governance](http://www.openfoam.com/governance/), [Governance Projects](https://www.openfoam.com/governance/projects)
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
Copyright 2016-2017 OpenCFD Ltd
Copyright 2016-2021 OpenCFD Ltd

View File

@ -1,22 +1,26 @@
#!/bin/sh
# Run from OPENFOAM applications/ directory only
cd ${0%/*} && wmakeCheckPwd "$WM_PROJECT_DIR/applications" 2>/dev/null || {
cd "${0%/*}" || exit
wmake -check-dir "$WM_PROJECT_DIR/applications" 2>/dev/null || {
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR/applications"
echo " Check your OpenFOAM environment and installation"
exit 1
}
[ -d "$WM_PROJECT_DIR" -a -f "$WM_PROJECT_DIR/etc/bashrc" ] || {
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
echo "Argument parse error";
else
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
echo " Check your OpenFOAM environment and installation"
exit 1
}
# Parse arguments for library compilation
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
fi
#------------------------------------------------------------------------------
wmake -all $targetType solvers
wmake -all $targetType utilities
# Optional
## wmake -all $targetType tools
#------------------------------------------------------------------------------

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.

View File

@ -1,10 +1,12 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
. ${WM_PROJECT_DIR:?}/wmake/scripts/have_fftw
#------------------------------------------------------------------------------
if [ -f "$FFTW_ARCH_PATH/include/fftw3.h" ] || \
[ "${FFTW_ARCH_PATH##*-}" = system -a -f "/usr/include/fftw3.h" ]
if have_fftw
then
wmake
wmake $targetType
else
echo "==> skip dnsFoam solver (no FFTW)"
fi

View File

@ -1,9 +1,9 @@
EXE_INC = \
-I$(LIB_SRC)/randomProcesses/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/randomProcesses/lnInclude
EXE_LIBS = \
-lrandomProcesses \
-lfiniteVolume \
-lmeshTools
-lmeshTools \
-lrandomProcesses

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -44,9 +46,14 @@ Description
int main(int argc, char *argv[])
{
argList::addNote
(
"Direct numerical simulation for boxes of isotropic turbulence."
);
#include "postProcess.H"
#include "setRootCase.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMeshNoClear.H"
#include "createControl.H"
@ -55,6 +62,13 @@ int main(int argc, char *argv[])
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
label ntot = 1;
forAll(K.nn(), idim)
{
ntot *= K.nn()[idim];
}
const scalar recRootN = 1.0/Foam::sqrt(scalar(ntot));
Info<< nl << "Starting time loop" << endl;
while (runTime.loop())
@ -66,7 +80,7 @@ int main(int argc, char *argv[])
fft::reverseTransform
(
K/(mag(K) + 1.0e-6) ^ forceGen.newField(), K.nn()
)
)*recRootN
);
#include "globalProperties.H"
@ -126,9 +140,7 @@ int main(int argc, char *argv[])
);
}
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;

View File

@ -0,0 +1,3 @@
acousticFoam.C
EXE = $(FOAM_APPBIN)/acousticFoam

View File

@ -0,0 +1,14 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOption/lnInclude \
-I$(LIB_SRC)/regionFaModels/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-lsampling \
-lregionFaModels

View File

@ -0,0 +1,99 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2019-2020 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
acousticFoam
Group
grpAcousticSolvers
Description
Acoustic solver solving the acoustic pressure wave equation.
\f[
\ddt2{pa} - c^2 \laplacian{pa} = 0
\f]
where
\vartable
c | Sound speed
pa | Acoustic pressure
\endvartable
SourceFiles
acousticFoam.C
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "fvOptions.H"
#include "pimpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
argList::addNote
(
"Acoustic solver solving the acoustic pressure wave equation."
);
#include "postProcess.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMesh.H"
#include "createControl.H"
#include "createRegionControls.H"
#include "readTransportProperties.H"
#include "createFields.H"
Info<< "\nStarting time loop\n" << endl;
while (runTime.run())
{
++runTime;
Info<< "Time = " << runTime.timeName() << nl << endl;
while (pimple.correct())
{
#include "paEqn.H"
}
runTime.write();
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,15 @@
Info << "\nReading pa" << endl;
volScalarField pa
(
IOobject
(
"pa",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);

View File

@ -0,0 +1,8 @@
fvSolution solutionDict(runTime);
const dictionary& pimpleDict = solutionDict.subDict("PIMPLE");
bool solvePrimaryRegion
(
pimpleDict.getOrDefault("solvePrimaryRegion", true)
);

View File

@ -0,0 +1,15 @@
fvScalarMatrix paEqn
(
fvm::d2dt2(pa) - sqr(c0)*fvc::laplacian(pa)
);
if (solvePrimaryRegion)
{
paEqn.relax();
paEqn.solve();
}
else
{
pa.correctBoundaryConditions();
}

View File

@ -0,0 +1,23 @@
Info<< "\nReading transportProperties" << endl;
IOdictionary transportProperties
(
IOobject
(
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE
)
);
dimensionedScalar c0("c0", dimVelocity, transportProperties);
dimensionedScalar rho("rho", dimDensity, transportProperties);
scalar MaxCo =
max(mesh.surfaceInterpolation::deltaCoeffs()*c0).value()
*runTime.deltaT().value();
Info<< "Max acoustic Courant Number = " << MaxCo << endl;

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.

View File

@ -14,26 +14,36 @@ volScalarField T
);
Info<< "Reading transportProperties\n" << endl;
Info<< "Reading diffusivity DT\n" << endl;
IOdictionary transportProperties
volScalarField DT
(
IOobject
(
"transportProperties",
runTime.constant(),
"DT",
runTime.timeName(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar(dimViscosity, Zero)
);
if (!DT.headerOk())
{
IOdictionary transportProperties
(
IOobject
(
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
DT = dimensionedScalar("DT", dimViscosity, transportProperties);
}
Info<< "Reading diffusivity DT\n" << endl;
dimensionedScalar DT
(
"DT",
dimArea/dimTime,
transportProperties
);
#include "createFvOptions.H"

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -59,15 +62,21 @@ Description
int main(int argc, char *argv[])
{
#include "setRootCase.H"
argList::addNote
(
"Laplace equation solver for a scalar quantity."
);
#include "postProcess.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMesh.H"
simpleControl simple(mesh);
#include "createFields.H"
#include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -93,9 +102,7 @@ int main(int argc, char *argv[])
#include "write.H"
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;

View File

@ -1,3 +1,3 @@
laplacianDyMFoam.C
overLaplacianDyMFoam.C
EXE = $(FOAM_APPBIN)/overLaplacianDyMFoam

View File

@ -1,8 +1,11 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/overset/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lmeshTools \
-ldynamicFvMesh \
-loverset

View File

@ -13,23 +13,6 @@
mesh
);
// Add overset specific interpolations
{
dictionary oversetDict;
oversetDict.add("T", true);
const_cast<dictionary&>
(
mesh.schemesDict()
).add
(
"oversetInterpolationRequired",
oversetDict,
true
);
}
Info<< "Reading transportProperties\n" << endl;
IOdictionary transportProperties
@ -47,7 +30,4 @@
Info<< "Reading diffusivity DT\n" << endl;
dimensionedScalar DT
(
transportProperties.lookup("DT")
);
dimensionedScalar DT("DT", dimViscosity, transportProperties);

View File

@ -1,110 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2016-2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
laplacianFoam
Group
grpBasicSolvers
Description
Laplace equation solver for a scalar quantity.
\heading Solver details
The solver is applicable to, e.g. for thermal diffusion in a solid. The
equation is given by:
\f[
\ddt{T} = \div \left( D_T \grad T \right)
\f]
Where:
\vartable
T | Scalar field which is solved for, e.g. temperature
D_T | Diffusion coefficient
\endvartable
\heading Required fields
\plaintable
T | Scalar field which is solved for, e.g. temperature
\endplaintable
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "fvOptions.H"
#include "simpleControl.H"
#include "dynamicFvMesh.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "setRootCase.H"
#include "createTime.H"
#include "createNamedDynamicFvMesh.H"
simpleControl simple(mesh);
#include "createFields.H"
#include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nCalculating temperature distribution\n" << endl;
while (simple.loop())
{
Info<< "Time = " << runTime.timeName() << nl << endl;
mesh.update();
while (simple.correctNonOrthogonal())
{
fvScalarMatrix TEqn
(
fvm::ddt(T) - fvm::laplacian(DT, T)
==
fvOptions(T)
);
fvOptions.constrain(TEqn);
TEqn.solve();
fvOptions.correct(T);
}
#include "write.H"
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,115 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2016-2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
overLaplacianDyMFoam
Group
grpBasicSolvers
Description
Laplace equation solver for a scalar quantity.
\heading Solver details
The solver is applicable to, e.g. for thermal diffusion in a solid. The
equation is given by:
\f[
\ddt{T} = \div \left( D_T \grad T \right)
\f]
Where:
\vartable
T | Scalar field which is solved for, e.g. temperature
D_T | Diffusion coefficient
\endvartable
\heading Required fields
\plaintable
T | Scalar field which is solved for, e.g. temperature
\endplaintable
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "fvOptions.H"
#include "simpleControl.H"
#include "dynamicFvMesh.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
argList::addNote
(
"Overset Laplace equation solver for a scalar quantity."
);
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createNamedDynamicFvMesh.H"
simpleControl simple(mesh);
#include "createFields.H"
#include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nCalculating temperature distribution\n" << endl;
while (simple.loop())
{
Info<< "Time = " << runTime.timeName() << nl << endl;
mesh.update();
while (simple.correctNonOrthogonal())
{
fvScalarMatrix TEqn
(
fvm::ddt(T) - fvm::laplacian(DT, T)
==
fvOptions(T)
);
fvOptions.constrain(TEqn);
TEqn.solve();
fvOptions.correct(T);
}
#include "write.H"
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -1,4 +1,4 @@
if (runTime.outputTime())
if (runTime.writeTime())
{
volVectorField gradT(fvc::grad(T));

View File

@ -41,6 +41,18 @@
gradT.component(vector::Z)
);
volVectorField DTgradT
(
IOobject
(
"flux",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
DT*gradT
);
runTime.write();
}

View File

@ -5,5 +5,5 @@ const dictionary& potentialFlow
const int nNonOrthCorr
(
potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0)
potentialFlow.getOrDefault<int>("nNonOrthogonalCorrectors", 0)
);

View File

@ -13,7 +13,7 @@ volVectorField U
);
// Initialise the velocity internal field to zero
U = dimensionedVector("0", U.dimensions(), Zero);
U = dimensionedVector(U.dimensions(), Zero);
surfaceScalarField phi
(
@ -28,7 +28,7 @@ surfaceScalarField phi
fvc::flux(U)
);
if (args.optionFound("initialiseUBCs"))
if (args.found("initialiseUBCs"))
{
U.correctBoundaryConditions();
phi = fvc::flux(U);
@ -38,10 +38,9 @@ if (args.optionFound("initialiseUBCs"))
// Construct a pressure field
// If it is available read it otherwise construct from the velocity BCs
// converting fixed-value BCs to zero-gradient and vice versa.
word pName("p");
// Update name of the pressure field from the command-line option
args.optionReadIfPresent("pName", pName);
// Allow override from command-line -pName option
const word pName = args.getOrDefault<word>("pName", "p");
// Infer the pressure BCs from the velocity
wordList pBCTypes
@ -58,9 +57,6 @@ forAll(U.boundaryField(), patchi)
}
}
// Note that registerObject is false for the pressure field. The pressure
// field in this solver doesn't have a physical value during the solution.
// It shouldn't be looked up and used by sub models or boundary conditions.
Info<< "Constructing pressure field " << pName << nl << endl;
volScalarField p
(
@ -70,11 +66,10 @@ volScalarField p
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE,
false
IOobject::NO_WRITE
),
mesh,
dimensionedScalar(pName, sqr(dimVelocity), 0),
dimensionedScalar(sqr(dimVelocity), Zero),
pBCTypes
);
@ -105,7 +100,7 @@ volScalarField Phi
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("Phi", dimLength*dimVelocity, 0),
dimensionedScalar(dimLength*dimVelocity, Zero),
PhiBCTypes
);

View File

@ -1,3 +1,3 @@
potentialFoam.C
overPotentialFoam.C
EXE = $(FOAM_APPBIN)/overPotentialFoam

View File

@ -1,12 +1,13 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/overset/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/overset/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lmeshTools \
-ldynamicFvMesh \
-lsampling \
-loverset

View File

@ -5,5 +5,5 @@ const dictionary& potentialFlow
const int nNonOrthCorr
(
potentialFlow.lookupOrDefault<int>("nNonOrthogonalCorrectors", 0)
potentialFlow.getOrDefault<int>("nNonOrthogonalCorrectors", 0)
);

View File

@ -13,7 +13,7 @@ volVectorField U
);
// Initialise the velocity internal field to zero
U = dimensionedVector("0", U.dimensions(), Zero);
U = dimensionedVector(U.dimensions(), Zero);
surfaceScalarField phi
(
@ -28,7 +28,7 @@ surfaceScalarField phi
fvc::flux(U)
);
if (args.optionFound("initialiseUBCs"))
if (args.found("initialiseUBCs"))
{
U.correctBoundaryConditions();
phi = fvc::flux(U);
@ -38,10 +38,9 @@ if (args.optionFound("initialiseUBCs"))
// Construct a pressure field
// If it is available read it otherwise construct from the velocity BCs
// converting fixed-value BCs to zero-gradient and vice versa.
word pName("p");
// Update name of the pressure field from the command-line option
args.optionReadIfPresent("pName", pName);
// Allow override from command-line -pName option
const word pName = args.getOrDefault<word>("pName", "p");
// Infer the pressure BCs from the velocity
wordList pBCTypes
@ -74,7 +73,7 @@ volScalarField p
false
),
mesh,
dimensionedScalar(pName, sqr(dimVelocity), 0),
dimensionedScalar(sqr(dimVelocity), Zero),
pBCTypes
);
@ -105,7 +104,7 @@ volScalarField Phi
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("Phi", dimLength*dimVelocity, 0),
dimensionedScalar(dimLength*dimVelocity, Zero),
PhiBCTypes
);
@ -122,21 +121,14 @@ mesh.setFluxRequired(Phi.name());
#include "createMRF.H"
// Add overset specific interpolations
// Add solver-specific interpolations
{
dictionary oversetDict;
oversetDict.add("Phi", true);
oversetDict.add("U", true);
wordHashSet& nonInt =
const_cast<wordHashSet&>(Stencil::New(mesh).nonInterpolatedFields());
nonInt.insert("cellMask");
nonInt.insert("interpolatedCells");
const_cast<dictionary&>
(
mesh.schemesDict()
).add
(
"oversetInterpolationRequired",
oversetDict,
true
);
}
// Mask field for zeroing out contributions on hole cells

View File

@ -0,0 +1,265 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
overPotentialFoam
Group
grpBasicSolvers
Description
Potential flow solver which solves for the velocity potential, to
calculate the flux-field, from which the velocity field is obtained by
reconstructing the flux.
\heading Solver details
The potential flow solution is typically employed to generate initial fields
for full Navier-Stokes codes. The flow is evolved using the equation:
\f[
\laplacian \Phi = \div(\vec{U})
\f]
Where:
\vartable
\Phi | Velocity potential [m2/s]
\vec{U} | Velocity [m/s]
\endvartable
The corresponding pressure field could be calculated from the divergence
of the Euler equation:
\f[
\laplacian p + \div(\div(\vec{U}\otimes\vec{U})) = 0
\f]
but this generates excessive pressure variation in regions of large
velocity gradient normal to the flow direction. A better option is to
calculate the pressure field corresponding to velocity variation along the
stream-lines:
\f[
\laplacian p + \div(\vec{F}\cdot\div(\vec{U}\otimes\vec{U})) = 0
\f]
where the flow direction tensor \f$\vec{F}\f$ is obtained from
\f[
\vec{F} = \hat{\vec{U}}\otimes\hat{\vec{U}}
\f]
\heading Required fields
\plaintable
U | Velocity [m/s]
\endplaintable
\heading Optional fields
\plaintable
p | Kinematic pressure [m2/s2]
Phi | Velocity potential [m2/s]
| Generated from p (if present) or U if not present
\endplaintable
\heading Options
\plaintable
-writep | write the Euler pressure
-writePhi | Write the final velocity potential
-initialiseUBCs | Update the velocity boundaries before solving for Phi
\endplaintable
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "pisoControl.H"
#include "dynamicFvMesh.H"
#include "cellCellStencilObject.H"
#include "localMin.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
argList::addNote
(
"Overset potential flow solver which solves for the velocity potential"
);
argList::addOption
(
"pName",
"pName",
"Name of the pressure field"
);
argList::addBoolOption
(
"initialiseUBCs",
"Initialise U boundary conditions"
);
argList::addBoolOption
(
"writePhi",
"Write the final velocity potential field"
);
argList::addBoolOption
(
"writep",
"Calculate and write the Euler pressure field"
);
argList::addBoolOption
(
"withFunctionObjects",
"Execute functionObjects"
);
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createNamedDynamicFvMesh.H"
pisoControl potentialFlow(mesh, "potentialFlow");
#include "createFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< nl << "Calculating potential flow" << endl;
mesh.update();
surfaceScalarField faceMask(localMin<scalar>(mesh).interpolate(cellMask));
// Since solver contains no time loop it would never execute
// function objects so do it ourselves
runTime.functionObjects().start();
MRF.makeRelative(phi);
adjustPhi(phi, U, p);
// Non-orthogonal velocity potential corrector loop
while (potentialFlow.correct())
{
phi = fvc::flux(U);
while (potentialFlow.correctNonOrthogonal())
{
fvScalarMatrix PhiEqn
(
fvm::laplacian(faceMask, Phi)
==
fvc::div(phi)
);
PhiEqn.setReference(PhiRefCell, PhiRefValue);
PhiEqn.solve();
if (potentialFlow.finalNonOrthogonalIter())
{
phi -= PhiEqn.flux();
}
}
MRF.makeAbsolute(phi);
Info<< "Continuity error = "
<< mag(fvc::div(phi))().weightedAverage(mesh.V()).value()
<< endl;
U = fvc::reconstruct(phi);
U.correctBoundaryConditions();
Info<< "Interpolated velocity error = "
<< (sqrt(sum(sqr(fvc::flux(U) - phi)))/sum(mesh.magSf())).value()
<< endl;
}
// Write U and phi
U.write();
phi.write();
// Optionally write Phi
if (args.found("writePhi"))
{
Phi.write();
}
// Calculate the pressure field from the Euler equation
if (args.found("writep"))
{
Info<< nl << "Calculating approximate pressure field" << endl;
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell
(
p,
potentialFlow.dict(),
pRefCell,
pRefValue
);
// Calculate the flow-direction filter tensor
volScalarField magSqrU(magSqr(U));
volSymmTensorField F(sqr(U)/(magSqrU + SMALL*average(magSqrU)));
// Calculate the divergence of the flow-direction filtered div(U*U)
// Filtering with the flow-direction generates a more reasonable
// pressure distribution in regions of high velocity gradient in the
// direction of the flow
volScalarField divDivUU
(
fvc::div
(
F & fvc::div(phi, U),
"div(div(phi,U))"
)
);
// Solve a Poisson equation for the approximate pressure
while (potentialFlow.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
fvm::laplacian(p) + divDivUU
);
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve();
}
p.write();
}
runTime.functionObjects().end();
runTime.printExecutionTime(Info);
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -1,260 +0,0 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2017 OpenCFD Ltd
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
potentialFoam
Group
grpBasicSolvers
Description
Potential flow solver which solves for the velocity potential, to
calculate the flux-field, from which the velocity field is obtained by
reconstructing the flux.
\heading Solver details
The potential flow solution is typically employed to generate initial fields
for full Navier-Stokes codes. The flow is evolved using the equation:
\f[
\laplacian \Phi = \div(\vec{U})
\f]
Where:
\vartable
\Phi | Velocity potential [m2/s]
\vec{U} | Velocity [m/s]
\endvartable
The corresponding pressure field could be calculated from the divergence
of the Euler equation:
\f[
\laplacian p + \div(\div(\vec{U}\otimes\vec{U})) = 0
\f]
but this generates excessive pressure variation in regions of large
velocity gradient normal to the flow direction. A better option is to
calculate the pressure field corresponding to velocity variation along the
stream-lines:
\f[
\laplacian p + \div(\vec{F}\cdot\div(\vec{U}\otimes\vec{U})) = 0
\f]
where the flow direction tensor \f$\vec{F}\f$ is obtained from
\f[
\vec{F} = \hat{\vec{U}}\otimes\hat{\vec{U}}
\f]
\heading Required fields
\plaintable
U | Velocity [m/s]
\endplaintable
\heading Optional fields
\plaintable
p | Kinematic pressure [m2/s2]
Phi | Velocity potential [m2/s]
| Generated from p (if present) or U if not present
\endplaintable
\heading Options
\plaintable
-writep | write the Euler pressure
-writePhi | Write the final velocity potential
-initialiseUBCs | Update the velocity boundaries before solving for Phi
\endplaintable
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "pisoControl.H"
#include "dynamicFvMesh.H"
#include "cellCellStencilObject.H"
#include "localMin.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
argList::addOption
(
"pName",
"pName",
"Name of the pressure field"
);
argList::addBoolOption
(
"initialiseUBCs",
"Initialise U boundary conditions"
);
argList::addBoolOption
(
"writePhi",
"Write the final velocity potential field"
);
argList::addBoolOption
(
"writep",
"Calculate and write the Euler pressure field"
);
argList::addBoolOption
(
"withFunctionObjects",
"execute functionObjects"
);
#include "setRootCase.H"
#include "createTime.H"
#include "createNamedDynamicFvMesh.H"
pisoControl potentialFlow(mesh, "potentialFlow");
#include "createFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< nl << "Calculating potential flow" << endl;
mesh.update();
surfaceScalarField faceMask(localMin<scalar>(mesh).interpolate(cellMask));
// Since solver contains no time loop it would never execute
// function objects so do it ourselves
runTime.functionObjects().start();
MRF.makeRelative(phi);
adjustPhi(phi, U, p);
// Non-orthogonal velocity potential corrector loop
while (potentialFlow.correct())
{
phi = fvc::flux(U);
while (potentialFlow.correctNonOrthogonal())
{
fvScalarMatrix PhiEqn
(
fvm::laplacian(faceMask, Phi)
==
fvc::div(phi)
);
PhiEqn.setReference(PhiRefCell, PhiRefValue);
PhiEqn.solve();
if (potentialFlow.finalNonOrthogonalIter())
{
phi -= PhiEqn.flux();
}
}
MRF.makeAbsolute(phi);
Info<< "Continuity error = "
<< mag(fvc::div(phi))().weightedAverage(mesh.V()).value()
<< endl;
U = fvc::reconstruct(phi);
U.correctBoundaryConditions();
Info<< "Interpolated velocity error = "
<< (sqrt(sum(sqr(fvc::flux(U) - phi)))/sum(mesh.magSf())).value()
<< endl;
}
// Write U and phi
U.write();
phi.write();
// Optionally write Phi
if (args.optionFound("writePhi"))
{
Phi.write();
}
// Calculate the pressure field from the Euler equation
if (args.optionFound("writep"))
{
Info<< nl << "Calculating approximate pressure field" << endl;
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell
(
p,
potentialFlow.dict(),
pRefCell,
pRefValue
);
// Calculate the flow-direction filter tensor
volScalarField magSqrU(magSqr(U));
volSymmTensorField F(sqr(U)/(magSqrU + SMALL*average(magSqrU)));
// Calculate the divergence of the flow-direction filtered div(U*U)
// Filtering with the flow-direction generates a more reasonable
// pressure distribution in regions of high velocity gradient in the
// direction of the flow
volScalarField divDivUU
(
fvc::div
(
F & fvc::div(phi, U),
"div(div(phi,U))"
)
);
// Solve a Poisson equation for the approximate pressure
while (potentialFlow.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
fvm::laplacian(p) + divDivUU
);
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve();
}
p.write();
}
runTime.functionObjects().end();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -81,6 +84,7 @@ Description
\heading Options
\plaintable
-writep | write the Euler pressure
-writephi | Write the final volumetric flux
-writePhi | Write the final velocity potential
-initialiseUBCs | Update the velocity boundaries before solving for Phi
\endplaintable
@ -94,6 +98,11 @@ Description
int main(int argc, char *argv[])
{
argList::addNote
(
"Potential flow solver which solves for the velocity potential"
);
argList::addOption
(
"pName",
@ -107,6 +116,12 @@ int main(int argc, char *argv[])
"Initialise U boundary conditions"
);
argList::addBoolOption
(
"writephi",
"Write the final volumetric flux field"
);
argList::addBoolOption
(
"writePhi",
@ -122,10 +137,12 @@ int main(int argc, char *argv[])
argList::addBoolOption
(
"withFunctionObjects",
"execute functionObjects"
"Execute functionObjects"
);
#include "setRootCase.H"
#include "addRegionOption.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMesh.H"
@ -176,18 +193,23 @@ int main(int argc, char *argv[])
<< (sqrt(sum(sqr(fvc::flux(U) - phi)))/sum(mesh.magSf())).value()
<< endl;
// Write U and phi
// Write U
U.write();
phi.write();
// Optionally write Phi
if (args.optionFound("writePhi"))
// Optionally write the volumetric flux, phi
if (args.found("writephi"))
{
phi.write();
}
// Optionally write velocity potential, Phi
if (args.found("writePhi"))
{
Phi.write();
}
// Calculate the pressure field from the Euler equation
if (args.optionFound("writep"))
if (args.found("writep"))
{
Info<< nl << "Calculating approximate pressure field" << endl;
@ -235,9 +257,7 @@ int main(int argc, char *argv[])
runTime.functionObjects().end();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
Info<< "End\n" << endl;

View File

@ -47,11 +47,8 @@ IOdictionary transportProperties
Info<< "Reading diffusivity DT\n" << endl;
dimensionedScalar DT
(
"DT",
dimArea/dimTime,
transportProperties
);
dimensionedScalar DT("DT", dimViscosity, transportProperties);
#include "createPhi.H"
#include "createFvOptions.H"

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -61,14 +63,19 @@ Description
int main(int argc, char *argv[])
{
#include "setRootCase.H"
argList::addNote
(
"Passive scalar transport equation solver."
);
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMesh.H"
simpleControl simple(mesh);
#include "createFields.H"
#include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -4,6 +4,9 @@ EXE_INC = \
-IXiModels/XiGModels/XiGModel \
-IPDRModels/dragModels/PDRDragModel \
-IlaminarFlameSpeed/SCOPE \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/surfMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/engine/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
@ -12,15 +15,14 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/surfMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
-I$(LIB_SRC)/dynamicFvMesh/lnInclude
EXE_LIBS = \
-lengine \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-lengine \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lcompressibleTransportModels \
@ -28,6 +30,4 @@ EXE_LIBS = \
-lreactionThermophysicalModels \
-lspecie \
-llaminarFlameSpeedModels \
-lfiniteVolume \
-ldynamicFvMesh \
-lfvOptions
-ldynamicFvMesh

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,7 +35,7 @@ Description
Combusting RANS code using the b-Xi two-equation model.
Xi may be obtained by either the solution of the Xi transport
equation or from an algebraic exression. Both approaches are
equation or from an algebraic expression. Both approaches are
based on Gulder's flame speed correlation which has been shown
to be appropriate by comparison with the results from the
spectral model.
@ -64,7 +66,7 @@ Description
CR | Drag tensor (1/m)
CT | Turbulence generation parameter (1/m)
Nv | Number of obstacles in cell per unit volume (m^-2)
nsv | Tensor whose diagonal indicates the number to substract from
nsv | Tensor whose diagonal indicates the number to subtract from
| Nv to get the number of obstacles crossing the flow in each
| direction.
\endplaintable
@ -78,7 +80,6 @@ Description
#include "XiModel.H"
#include "PDRDragModel.H"
#include "ignition.H"
#include "Switch.H"
#include "bound.H"
#include "pimpleControl.H"
#include "fvOptions.H"
@ -87,9 +88,16 @@ Description
int main(int argc, char *argv[])
{
argList::addNote
(
"Solver for compressible premixed/partially-premixed combustion with"
" turbulence modelling."
);
#include "postProcess.H"
#include "setRootCase.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMesh.H"
#include "createControl.H"
@ -97,7 +105,6 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createFieldRefs.H"
#include "createFvOptions.H"
#include "initContinuityErrs.H"
#include "createTimeControls.H"
#include "compressibleCourantNo.H"
@ -116,7 +123,7 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
runTime++;
++runTime;
Info<< "\n\nTime = " << runTime.timeName() << endl;
#include "rhoEqn.H"
@ -150,12 +157,10 @@ int main(int argc, char *argv[])
runTime.write();
Info<< "\nExecutionTime = "
<< runTime.elapsedCpuTime()
<< " s\n" << endl;
runTime.printExecutionTime(Info);
}
Info<< "\n end\n";
Info<< "End\n";
return 0;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -30,7 +32,7 @@ Description
Combusting RANS code using the b-Xi two-equation model.
Xi may be obtained by either the solution of the Xi transport
equation or from an algebraic exression. Both approaches are
equation or from an algebraic expression. Both approaches are
based on Gulder's flame speed correlation which has been shown
to be appropriate by comparison with the results from the
spectral model.
@ -63,7 +65,6 @@ Description
#include "XiModel.H"
#include "PDRDragModel.H"
#include "ignition.H"
#include "Switch.H"
#include "bound.H"
#include "dynamicRefineFvMesh.H"
#include "pimpleControl.H"
@ -72,8 +73,13 @@ Description
int main(int argc, char *argv[])
{
#include "setRootCase.H"
argList::addNote
(
"Solver for compressible premixed/partially-premixed combustion with"
" turbulence modelling."
);
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createDynamicFvMesh.H"
@ -102,8 +108,8 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
// Indicators for refinement. Note: before runTime++
// only for postprocessing reasons.
// Indicators for refinement.
// Note: before ++runTime only for post-processing reasons.
tmp<volScalarField> tmagGradP = mag(fvc::grad(p));
volScalarField normalisedGradP
(
@ -113,7 +119,7 @@ int main(int argc, char *argv[])
normalisedGradP.writeOpt() = IOobject::AUTO_WRITE;
tmagGradP.clear();
runTime++;
++runTime;
Info<< "\n\nTime = " << runTime.timeName() << endl;
@ -122,20 +128,20 @@ int main(int argc, char *argv[])
fvc::makeAbsolute(phi, rho, U);
// Test : disable refinement for some cells
PackedBoolList& protectedCell =
bitSet& protectedCell =
refCast<dynamicRefineFvMesh>(mesh).protectedCell();
if (protectedCell.empty())
{
protectedCell.setSize(mesh.nCells());
protectedCell = 0;
protectedCell = false;
}
forAll(betav, celli)
{
if (betav[celli] < 0.99)
{
protectedCell[celli] = 1;
protectedCell.set(celli);
}
}
@ -198,12 +204,10 @@ int main(int argc, char *argv[])
runTime.write();
Info<< "\nExecutionTime = "
<< runTime.elapsedCpuTime()
<< " s\n" << endl;
runTime.printExecutionTime(Info);
}
Info<< "\n end\n";
Info<< "End\n";
return 0;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -103,7 +105,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::basicSubGrid::XiEq() const
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("zero", Nv.dimensions(), 0.0)
dimensionedScalar(Nv.dimensions(), Zero)
);
N.primitiveFieldRef() = Nv.primitiveField()*Cw;
@ -118,12 +120,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::basicSubGrid::XiEq() const
IOobject::NO_WRITE
),
U.mesh(),
dimensionedSymmTensor
(
"zero",
nsv.dimensions(),
Zero
)
dimensionedSymmTensor(nsv.dimensions(), Zero)
);
ns.primitiveFieldRef() = nsv.primitiveField()*Cw;

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -25,7 +27,7 @@ Class
Foam::XiEqModels::basicSubGrid
Description
Basic sub-grid obstacle flame-wrinking enhancement factor model.
Basic sub-grid obstacle flame-wrinkling enhancement factor model.
Details supplied by J Puttock 2/7/06.
<b> Sub-grid flame area generation </b>
@ -94,11 +96,11 @@ class basicSubGrid
// Private Member Functions
//- Disallow copy construct
basicSubGrid(const basicSubGrid&);
//- No copy construct
basicSubGrid(const basicSubGrid&) = delete;
//- Disallow default bitwise assignment
void operator=(const basicSubGrid&);
//- No copy assignment
void operator=(const basicSubGrid&) = delete;
public:
@ -125,7 +127,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -49,7 +51,7 @@ Foam::XiGModels::basicSubGrid::basicSubGrid
)
:
XiGModel(XiGProperties, thermo, turbulence, Su),
k1(readScalar(XiGModelCoeffs_.lookup("k1"))),
k1(XiGModelCoeffs_.get<scalar>("k1")),
XiGModel_(XiGModel::New(XiGModelCoeffs_, thermo, turbulence, Su))
{}
@ -104,7 +106,7 @@ bool Foam::XiGModels::basicSubGrid::read(const dictionary& XiGProperties)
{
XiGModel::read(XiGProperties);
XiGModelCoeffs_.lookup("k1") >> k1;
XiGModelCoeffs_.readEntry("k1", k1);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2013 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -26,7 +28,7 @@ Class
Description
Basic sub-grid obstacle flame-wrinking generation rate coefficient model.
Basic sub-grid obstacle flame-wrinkling generation rate coefficient model.
Details supplied by J Puttock 2/7/06.
\f$ G_{sub} \f$ denotes the generation coefficient and it is given by
@ -82,11 +84,11 @@ class basicSubGrid
// Private Member Functions
//- Disallow copy construct
basicSubGrid(const basicSubGrid&);
//- No copy construct
basicSubGrid(const basicSubGrid&) = delete;
//- Disallow default bitwise assignment
void operator=(const basicSubGrid&);
//- No copy assignment
void operator=(const basicSubGrid&) = delete;
public:
@ -113,7 +115,7 @@ public:
// Member Functions
//- Return the flame-wrinking generation rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const;
//- Return the flame diffusivity

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -58,14 +60,14 @@ Foam::PDRDragModel::PDRDragModel
(
PDRProperties.subDict
(
word(PDRProperties.lookup("PDRDragModel")) + "Coeffs"
PDRProperties.get<word>("PDRDragModel") + "Coeffs"
)
),
turbulence_(turbulence),
rho_(rho),
U_(U),
phi_(phi),
on_(PDRDragModelCoeffs_.lookup("drag"))
on_(PDRDragModelCoeffs_.get<bool>("drag"))
{}
@ -81,7 +83,7 @@ bool Foam::PDRDragModel::read(const dictionary& PDRProperties)
{
PDRDragModelCoeffs_ = PDRProperties.optionalSubDict(type() + "Coeffs");
PDRDragModelCoeffs_.lookup("drag") >> on_;
PDRDragModelCoeffs_.readEntry("drag", on_);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -67,18 +69,18 @@ protected:
const volVectorField& U_;
const surfaceScalarField& phi_;
Switch on_;
bool on_;
private:
// Private Member Functions
//- Disallow copy construct
PDRDragModel(const PDRDragModel&);
//- No copy construct
PDRDragModel(const PDRDragModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const PDRDragModel&);
//- No copy assignment
void operator=(const PDRDragModel&) = delete;
public:

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -29,31 +32,32 @@ License
Foam::autoPtr<Foam::PDRDragModel> Foam::PDRDragModel::New
(
const dictionary& PDRProperties,
const dictionary& dict,
const compressible::RASModel& turbulence,
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi
)
{
const word modelType(PDRProperties.lookup("PDRDragModel"));
const word modelType(dict.get<word>("PDRDragModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
Info<< "Selecting drag model " << modelType << endl;
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown PDRDragModel type "
<< modelType << nl << nl
<< "Valid PDRDragModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"PDRDragModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<PDRDragModel>
(cstrIter()(PDRProperties, turbulence, rho, U, phi));
(cstrIter()(dict, turbulence, rho, U, phi));
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -104,12 +106,7 @@ Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
IOobject::NO_WRITE
),
U_.mesh(),
dimensionedSymmTensor
(
"zero",
dimMass/dimTime/pow(dimLength, 3),
Zero
)
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
)
);
@ -143,7 +140,7 @@ Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
IOobject::NO_WRITE
),
U_.mesh(),
dimensionedScalar("zero", dimMass/dimLength/pow(dimTime, 3), 0.0)
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
)
);
@ -170,8 +167,8 @@ bool Foam::PDRDragModels::basic::read(const dictionary& PDRProperties)
{
PDRDragModel::read(PDRProperties);
PDRDragModelCoeffs_.lookup("Csu") >> Csu.value();
PDRDragModelCoeffs_.lookup("Csk") >> Csk.value();
PDRDragModelCoeffs_.readEntry("Csu", Csu.value());
PDRDragModelCoeffs_.readEntry("Csk", Csk.value());
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -108,11 +110,11 @@ class basic
// Private Member Functions
//- Disallow copy construct
basic(const basic&);
//- No copy construct
basic(const basic&) = delete;
//- Disallow default bitwise assignment
void operator=(const basic&);
//- No copy assignment
void operator=(const basic&) = delete;
public:

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
Copyright (C) 2019-2020 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -69,7 +72,7 @@ PDRkEpsilon::PDRkEpsilon
C4_
(
dimensioned<scalar>::lookupOrAddToDict
dimensioned<scalar>::getOrAddToDict
(
"C4",
coeffDict_,
@ -94,10 +97,8 @@ bool PDRkEpsilon::read()
C4_.readIfPresent(coeffDict_);
return true;
}
else
{
return false;
}
return false;
}
@ -129,7 +130,7 @@ void PDRkEpsilon::correct()
volScalarField G(GName(), rho_*nut_*(tgradU() && dev(twoSymm(tgradU()))));
tgradU.clear();
// Update espsilon and G at the wall
// Update epsilon and G at the wall
epsilon_.boundaryFieldRef().updateCoeffs();
// Add the blockage generation term so that it is included consistently

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -29,7 +31,7 @@ Description
corresponding to PDR basic drag model (\link basic.H \endlink)
The default model coefficients correspond to the following:
@verbatim
\verbatim
PDRkEpsilonCoeffs
{
Cmu 0.09;
@ -41,7 +43,7 @@ Description
sigmaEps 1.3;
Prt 1.0; // only for compressible
}
@endverbatim
\endverbatim
The turbulence source term \f$ G_{R} \f$ appears in the
\f$ \kappa-\epsilon \f$ equation for the generation of turbulence due to

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -49,13 +51,10 @@ Foam::XiEqModels::Gulder::Gulder
)
:
XiEqModel(XiEqProperties, thermo, turbulence, Su),
XiEqCoef_(readScalar(XiEqModelCoeffs_.lookup("XiEqCoef"))),
XiEqCoef_(XiEqModelCoeffs_.get<scalar>("XiEqCoef")),
SuMin_(0.01*Su.average()),
uPrimeCoef_(readScalar(XiEqModelCoeffs_.lookup("uPrimeCoef"))),
subGridSchelkin_
(
readBool(XiEqModelCoeffs_.lookup("subGridSchelkin"))
)
uPrimeCoef_(XiEqModelCoeffs_.get<scalar>("uPrimeCoef")),
subGridSchelkin_(XiEqModelCoeffs_.get<bool>("subGridSchelkin"))
{}
@ -96,9 +95,9 @@ bool Foam::XiEqModels::Gulder::read(const dictionary& XiEqProperties)
{
XiEqModel::read(XiEqProperties);
XiEqModelCoeffs_.lookup("XiEqCoef") >> XiEqCoef_;
XiEqModelCoeffs_.lookup("uPrimeCoef") >> uPrimeCoef_;
XiEqModelCoeffs_.lookup("subGridSchelkin") >> subGridSchelkin_;
XiEqModelCoeffs_.readEntry("XiEqCoef", XiEqCoef_);
XiEqModelCoeffs_.readEntry("uPrimeCoef", uPrimeCoef_);
XiEqModelCoeffs_.readEntry("subGridSchelkin", subGridSchelkin_);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -70,11 +72,11 @@ class Gulder
// Private Member Functions
//- Disallow copy construct
Gulder(const Gulder&);
//- No copy construct
Gulder(const Gulder&) = delete;
//- Disallow default bitwise assignment
void operator=(const Gulder&);
//- No copy assignment
void operator=(const Gulder&) = delete;
public:
@ -101,7 +103,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -27,7 +29,7 @@ Class
Description
Simple SCOPEBlendXiEq model for XiEq based on SCOPEXiEqs correlation
with a linear correction function to give a plausible profile for XiEq.
See @link SCOPELaminarFlameSpeed.H @endlink for details on the SCOPE
See \link SCOPELaminarFlameSpeed.H \endlink for details on the SCOPE
laminar flame speed model.
SourceFiles
@ -66,11 +68,11 @@ class SCOPEBlend
// Private Member Functions
//- Disallow copy construct
SCOPEBlend(const SCOPEBlend&);
//- No copy construct
SCOPEBlend(const SCOPEBlend&) = delete;
//- Disallow default bitwise assignment
void operator=(const SCOPEBlend&);
//- No copy assignment
void operator=(const SCOPEBlend&) = delete;
public:
@ -97,7 +99,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -49,15 +51,12 @@ Foam::XiEqModels::SCOPEXiEq::SCOPEXiEq
)
:
XiEqModel(XiEqProperties, thermo, turbulence, Su),
XiEqCoef_(readScalar(XiEqModelCoeffs_.lookup("XiEqCoef"))),
XiEqExp_(readScalar(XiEqModelCoeffs_.lookup("XiEqExp"))),
lCoef_(readScalar(XiEqModelCoeffs_.lookup("lCoef"))),
XiEqCoef_(XiEqModelCoeffs_.get<scalar>("XiEqCoef")),
XiEqExp_(XiEqModelCoeffs_.get<scalar>("XiEqExp")),
lCoef_(XiEqModelCoeffs_.get<scalar>("lCoef")),
SuMin_(0.01*Su.average()),
uPrimeCoef_(readScalar(XiEqModelCoeffs_.lookup("uPrimeCoef"))),
subGridSchelkin_
(
readBool(XiEqModelCoeffs_.lookup("subGridSchelkin"))
),
uPrimeCoef_(XiEqModelCoeffs_.get<scalar>("uPrimeCoef")),
subGridSchelkin_(XiEqModelCoeffs_.get<bool>("subGridSchelkin")),
MaModel
(
Su.mesh().lookupObject<IOdictionary>("combustionProperties"),
@ -105,7 +104,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
IOobject::NO_WRITE
),
epsilon.mesh(),
dimensionedScalar("XiEq", dimless, 0.0)
dimensionedScalar(dimless, Zero)
)
);
volScalarField& xieq = tXiEq.ref();
@ -147,11 +146,11 @@ bool Foam::XiEqModels::SCOPEXiEq::read(const dictionary& XiEqProperties)
{
XiEqModel::read(XiEqProperties);
XiEqModelCoeffs_.lookup("XiEqCoef") >> XiEqCoef_;
XiEqModelCoeffs_.lookup("XiEqExp") >> XiEqExp_;
XiEqModelCoeffs_.lookup("lCoef") >> lCoef_;
XiEqModelCoeffs_.lookup("uPrimeCoef") >> uPrimeCoef_;
XiEqModelCoeffs_.lookup("subGridSchelkin") >> subGridSchelkin_;
XiEqModelCoeffs_.readEntry("XiEqCoef", XiEqCoef_);
XiEqModelCoeffs_.readEntry("XiEqExp", XiEqExp_);
XiEqModelCoeffs_.readEntry("lCoef", lCoef_);
XiEqModelCoeffs_.readEntry("uPrimeCoef", uPrimeCoef_);
XiEqModelCoeffs_.readEntry("subGridSchelkin", subGridSchelkin_);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2013 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -84,11 +86,11 @@ class SCOPEXiEq
// Private Member Functions
//- Disallow copy construct
SCOPEXiEq(const SCOPEXiEq&);
//- No copy construct
SCOPEXiEq(const SCOPEXiEq&) = delete;
//- Disallow default bitwise assignment
void operator=(const SCOPEXiEq&);
//- No copy assignment
void operator=(const SCOPEXiEq&) = delete;
public:
@ -115,7 +117,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -48,7 +50,7 @@ Foam::XiEqModel::XiEqModel
(
XiEqProperties.subDict
(
word(XiEqProperties.lookup("XiEqModel")) + "Coeffs"
XiEqProperties.get<word>("XiEqModel") + "Coeffs"
)
),
thermo_(thermo),
@ -110,7 +112,7 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
false
),
mesh,
dimensionedScalar("zero", Nv.dimensions(), 0.0)
dimensionedScalar(Nv.dimensions(), Zero)
)
);
volScalarField& N = tN.ref();
@ -127,12 +129,7 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
IOobject::NO_WRITE
),
mesh,
dimensionedSymmTensor
(
"zero",
nsv.dimensions(),
Zero
)
dimensionedSymmTensor(nsv.dimensions(), Zero)
);
ns.primitiveFieldRef() = nsv.primitiveField()*pow(mesh.V(), 2.0/3.0);
@ -147,10 +144,10 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
const scalarField upLocal(uPrimeCoef*sqrt((U & CT & U)*cellWidth));
const scalarField deltaUp(upLocal*(max(scalar(1.0), pow(nr, 0.5)) - 1.0));
const scalarField deltaUp(upLocal*(max(scalar(1), pow(nr, 0.5)) - 1.0));
// Re use tN
N.primitiveFieldRef() = upLocal*(max(scalar(1.0), pow(nr, 0.5)) - 1.0);
N.primitiveFieldRef() = upLocal*(max(scalar(1), pow(nr, 0.5)) - 1.0);
return tN;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -79,11 +81,11 @@ private:
// Private Member Functions
//- Disallow copy construct
XiEqModel(const XiEqModel&);
//- No copy construct
XiEqModel(const XiEqModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const XiEqModel&);
//- No copy assignment
void operator=(const XiEqModel&) = delete;
public:
@ -144,7 +146,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const
{
return turbulence_.muEff();

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -29,13 +32,13 @@ License
Foam::autoPtr<Foam::XiEqModel> Foam::XiEqModel::New
(
const dictionary& propDict,
const dictionary& dict,
const psiuReactionThermo& thermo,
const compressible::RASModel& turbulence,
const volScalarField& Su
)
{
const word modelType(propDict.lookup("XiEqModel"));
const word modelType(dict.get<word>("XiEqModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
@ -43,15 +46,16 @@ Foam::autoPtr<Foam::XiEqModel> Foam::XiEqModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown XiEqModel type "
<< modelType << nl << nl
<< "Valid XiEqModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"XiEqModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<XiEqModel>(cstrIter()(propDict, thermo, turbulence, Su));
return autoPtr<XiEqModel>(cstrIter()(dict, thermo, turbulence, Su));
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -49,7 +51,7 @@ Foam::XiEqModels::instability::instability
)
:
XiEqModel(XiEqProperties, thermo, turbulence, Su),
XiEqIn(readScalar(XiEqModelCoeffs_.lookup("XiEqIn"))),
XiEqIn(XiEqModelCoeffs_.get<scalar>("XiEqIn")),
XiEqModel_(XiEqModel::New(XiEqModelCoeffs_, thermo, turbulence, Su))
{}
@ -73,7 +75,7 @@ bool Foam::XiEqModels::instability::read(const dictionary& XiEqProperties)
{
XiEqModel::read(XiEqProperties);
XiEqModelCoeffs_.lookup("XiEqIn") >> XiEqIn;
XiEqModelCoeffs_.readEntry("XiEqIn", XiEqIn);
return XiEqModel_->read(XiEqModelCoeffs_);
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -27,7 +29,7 @@ Class
Description
This is the equilibrium level of the flame wrinkling generated by
instability. It is a constant (default 2.5). It is used in
@link XiModel.H @endlink.
\link XiModel.H \endlink.
SourceFiles
instability.C
@ -65,11 +67,11 @@ class instability
// Private Member Functions
//- Disallow copy construct
instability(const instability&);
//- No copy construct
instability(const instability&) = delete;
//- Disallow default bitwise assignment
void operator=(const instability&);
//- No copy assignment
void operator=(const instability&) = delete;
public:
@ -96,7 +98,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -49,7 +51,7 @@ Foam::XiGModels::KTS::KTS
)
:
XiGModel(XiGProperties, thermo, turbulence, Su),
GEtaCoef_(readScalar(XiGModelCoeffs_.lookup("GEtaCoef")))
GEtaCoef_(XiGModelCoeffs_.get<scalar>("GEtaCoef"))
{}
@ -76,7 +78,7 @@ bool Foam::XiGModels::KTS::read(const dictionary& XiGProperties)
{
XiGModel::read(XiGProperties);
XiGModelCoeffs_.lookup("GEtaCoef") >> GEtaCoef_;
XiGModelCoeffs_.readEntry("GEtaCoef", GEtaCoef_);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -60,11 +62,11 @@ class KTS
// Private Member Functions
//- Disallow copy construct
KTS(const KTS&);
//- No copy construct
KTS(const KTS&) = delete;
//- Disallow default bitwise assignment
void operator=(const KTS&);
//- No copy assignment
void operator=(const KTS&) = delete;
public:
@ -91,7 +93,7 @@ public:
// Member Functions
//- Return the flame-wrinking generation rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const;
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -48,7 +50,7 @@ Foam::XiGModel::XiGModel
(
XiGProperties.subDict
(
word(XiGProperties.lookup("XiGModel")) + "Coeffs"
XiGProperties.get<word>("XiGModel") + "Coeffs"
)
),
thermo_(thermo),

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -70,11 +72,11 @@ private:
// Private Member Functions
//- Disallow copy construct
XiGModel(const XiGModel&);
//- No copy construct
XiGModel(const XiGModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const XiGModel&);
//- No copy assignment
void operator=(const XiGModel&) = delete;
public:
@ -135,7 +137,7 @@ public:
// Member Functions
//- Return the flame-wrinking genration rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const = 0;
//- Return the flame diffusivity

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -29,13 +32,13 @@ License
Foam::autoPtr<Foam::XiGModel> Foam::XiGModel::New
(
const dictionary& propDict,
const dictionary& dict,
const psiuReactionThermo& thermo,
const compressible::RASModel& turbulence,
const volScalarField& Su
)
{
const word modelType(propDict.lookup("XiGModel"));
const word modelType(dict.get<word>("XiGModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
@ -43,15 +46,16 @@ Foam::autoPtr<Foam::XiGModel> Foam::XiGModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown XiGModel type "
<< modelType << nl << nl
<< "Valid XiGModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"XiGModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<XiGModel>(cstrIter()(propDict, thermo, turbulence, Su));
return autoPtr<XiGModel>(cstrIter()(dict, thermo, turbulence, Su));
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -49,8 +51,8 @@ Foam::XiGModels::instabilityG::instabilityG
)
:
XiGModel(XiGProperties, thermo, turbulence, Su),
GIn_(XiGModelCoeffs_.lookup("GIn")),
lambdaIn_(XiGModelCoeffs_.lookup("lambdaIn")),
GIn_("GIn", dimless/dimTime, XiGModelCoeffs_),
lambdaIn_("lambdaIn", dimLength, XiGModelCoeffs_),
XiGModel_(XiGModel::New(XiGModelCoeffs_, thermo, turbulence, Su))
{}
@ -86,8 +88,8 @@ bool Foam::XiGModels::instabilityG::read(const dictionary& XiGProperties)
{
XiGModel::read(XiGProperties);
XiGModelCoeffs_.lookup("GIn") >> GIn_;
XiGModelCoeffs_.lookup("lambdaIn") >> lambdaIn_;
XiGModelCoeffs_.readEntry("GIn", GIn_);
XiGModelCoeffs_.readEntry("lambdaIn", lambdaIn_);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -25,7 +27,7 @@ Class
Foam::XiGModels::instabilityG
Description
Flame-surface instabilityG flame-wrinking generation rate coefficient model
Flame-surface instabilityG flame-wrinkling generation rate coefficient model
used in \link XiModel.H \endlink.
See Technical Report SH/RE/01R for details on the PDR modelling.
@ -57,7 +59,7 @@ class instabilityG
{
// Private data
//- Flame instabilityG wrinling generation rate coefficient
//- Flame instabilityG wrinkling generation rate coefficient
dimensionedScalar GIn_;
//- InstabilityG length-scale
@ -69,11 +71,11 @@ class instabilityG
// Private Member Functions
//- Disallow copy construct
instabilityG(const instabilityG&);
//- No copy construct
instabilityG(const instabilityG&) = delete;
//- Disallow default bitwise assignment
void operator=(const instabilityG&);
//- No copy assignment
void operator=(const instabilityG&) = delete;
public:
@ -100,7 +102,7 @@ public:
// Member Functions
//- Return the flame-wrinking generation rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const;
//- Return the flame diffusivity

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -51,7 +53,7 @@ Foam::XiModel::XiModel
(
XiProperties.subDict
(
word(XiProperties.lookup("XiModel")) + "Coeffs"
XiProperties.get<word>("XiModel") + "Coeffs"
)
),
thermo_(thermo),

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -122,7 +124,7 @@ protected:
const volScalarField& b_;
const surfaceScalarField& phi_;
//- Flame wrinking field
//- Flame wrinkling field
volScalarField Xi_;
@ -130,11 +132,11 @@ private:
// Private Member Functions
//- Disallow copy construct
XiModel(const XiModel&);
//- No copy construct
XiModel(const XiModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const XiModel&);
//- No copy assignment
void operator=(const XiModel&) = delete;
public:
@ -207,7 +209,7 @@ public:
// Member Functions
//- Return the flame-wrinking Xi
//- Return the flame-wrinkling Xi
virtual const volScalarField& Xi() const
{
return Xi_;
@ -227,10 +229,10 @@ public:
)
{}
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct() = 0;
//- Correct the flame-wrinking Xi using the given convection scheme
//- Correct the flame-wrinkling Xi using the given convection scheme
virtual void correct(const fv::convectionScheme<scalar>&)
{
correct();

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -29,7 +32,7 @@ License
Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
(
const dictionary& propDict,
const dictionary& dict,
const psiuReactionThermo& thermo,
const compressible::RASModel& turbulence,
const volScalarField& Su,
@ -38,7 +41,7 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
const surfaceScalarField& phi
)
{
const word modelType(propDict.lookup("XiModel"));
const word modelType(dict.get<word>("XiModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
@ -46,16 +49,17 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown XiModel type "
<< modelType << nl << nl
<< "Valid XiModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"XiModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<XiModel>
(cstrIter()(propDict, thermo, turbulence, Su, rho, b, phi));
(cstrIter()(dict, thermo, turbulence, Su, rho, b, phi));
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -52,7 +54,7 @@ Foam::XiModels::algebraic::algebraic
)
:
XiModel(XiProperties, thermo, turbulence, Su, rho, b, phi),
XiShapeCoef(readScalar(XiModelCoeffs_.lookup("XiShapeCoef"))),
XiShapeCoef(XiModelCoeffs_.get<scalar>("XiShapeCoef")),
XiEqModel_(XiEqModel::New(XiProperties, thermo, turbulence, Su)),
XiGModel_(XiGModel::New(XiProperties, thermo, turbulence, Su))
{}
@ -89,7 +91,7 @@ bool Foam::XiModels::algebraic::read(const dictionary& XiProperties)
{
XiModel::read(XiProperties);
XiModelCoeffs_.lookup("XiShapeCoef") >> XiShapeCoef;
XiModelCoeffs_.readEntry("XiShapeCoef", XiShapeCoef);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -67,11 +69,11 @@ class algebraic
// Private Member Functions
//- Disallow copy construct
algebraic(const algebraic&);
//- No copy construct
algebraic(const algebraic&) = delete;
//- Disallow default bitwise assignment
void operator=(const algebraic&);
//- No copy assignment
void operator=(const algebraic&) = delete;
public:
@ -104,7 +106,7 @@ public:
//- Return the flame diffusivity
virtual tmp<volScalarField> Db() const;
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct();
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -55,11 +57,11 @@ class fixed
{
// Private Member Functions
//- Disallow copy construct
fixed(const fixed&);
//- No copy construct
fixed(const fixed&) = delete;
//- Disallow default bitwise assignment
void operator=(const fixed&);
//- No copy assignment
void operator=(const fixed&) = delete;
public:
@ -89,7 +91,7 @@ public:
// Member Functions
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct()
{}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -57,7 +59,7 @@ Foam::XiModels::transport::transport
)
:
XiModel(XiProperties, thermo, turbulence, Su, rho, b, phi),
XiShapeCoef(readScalar(XiModelCoeffs_.lookup("XiShapeCoef"))),
XiShapeCoef(XiModelCoeffs_.get<scalar>("XiShapeCoef")),
XiEqModel_(XiEqModel::New(XiProperties, thermo, turbulence, Su)),
XiGModel_(XiGModel::New(XiProperties, thermo, turbulence, Su))
{}
@ -136,7 +138,7 @@ bool Foam::XiModels::transport::read(const dictionary& XiProperties)
{
XiModel::read(XiProperties);
XiModelCoeffs_.lookup("XiShapeCoef") >> XiShapeCoef;
XiModelCoeffs_.readEntry("XiShapeCoef", XiShapeCoef);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -67,11 +69,11 @@ class transport
// Private Member Functions
//- Disallow copy construct
transport(const transport&);
//- No copy construct
transport(const transport&) = delete;
//- Disallow default bitwise assignment
void operator=(const transport&);
//- No copy assignment
void operator=(const transport&) = delete;
public:
@ -113,13 +115,13 @@ public:
fields.add(Xi_);
}
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct()
{
NotImplemented;
}
//- Correct the flame-wrinking Xi using the given convection scheme
//- Correct the flame-wrinkling Xi using the given convection scheme
virtual void correct(const fv::convectionScheme<scalar>& mvConvection);
//- Update properties from given dictionary

View File

@ -7,7 +7,7 @@ autoPtr<psiuReactionThermo> pThermo
psiuReactionThermo& thermo = pThermo();
thermo.validate(args.executable(), "ha", "ea");
basicMultiComponentMixture& composition = thermo.composition();
basicSpecieMixture& composition = thermo.composition();
volScalarField rho
(
@ -165,7 +165,7 @@ IOdictionary PDRProperties
autoPtr<PDRDragModel> drag = PDRDragModel::New
(
PDRProperties,
turbulence,
*turbulence,
rho,
U,
phi
@ -176,7 +176,7 @@ autoPtr<XiModel> flameWrinkling = XiModel::New
(
PDRProperties,
thermo,
turbulence,
*turbulence,
Su,
rho,
b,
@ -215,3 +215,4 @@ flameWrinkling->addXi(fields);
#include "createK.H"
#include "createMRF.H"
#include "createFvOptions.H"

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2017 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -53,8 +55,8 @@ Foam::laminarFlameSpeedModels::SCOPE::polynomial::polynomial
)
:
FixedList<scalar, 7>(polyDict.lookup("coefficients")),
ll(readScalar(polyDict.lookup("lowerLimit"))),
ul(readScalar(polyDict.lookup("upperLimit"))),
ll(polyDict.get<scalar>("lowerLimit")),
ul(polyDict.get<scalar>("upperLimit")),
llv(polyPhi(ll, *this)),
ulv(polyPhi(ul, *this)),
lu(0)
@ -73,21 +75,32 @@ Foam::laminarFlameSpeedModels::SCOPE::SCOPE
(
dictionary
(
IFstream
(
fileName
(
dict.lookup("fuelFile")
)
)()
IFstream
(
dict.get<fileName>("fuelFile")
)()
).optionalSubDict(typeName + "Coeffs")
),
LFL_(readScalar(coeffsDict_.lookup("lowerFlamabilityLimit"))),
UFL_(readScalar(coeffsDict_.lookup("upperFlamabilityLimit"))),
LFL_
(
coeffsDict_.getCompat<scalar>
(
"lowerFlammabilityLimit",
{{"lowerFlamabilityLimit", 1712}}
)
),
UFL_
(
coeffsDict_.getCompat<scalar>
(
"upperFlammabilityLimit",
{{"upperFlamabilityLimit", 1712}}
)
),
SuPolyL_(coeffsDict_.subDict("lowerSuPolynomial")),
SuPolyU_(coeffsDict_.subDict("upperSuPolynomial")),
Texp_(readScalar(coeffsDict_.lookup("Texp"))),
pexp_(readScalar(coeffsDict_.lookup("pexp"))),
Texp_(coeffsDict_.get<scalar>("Texp")),
pexp_(coeffsDict_.get<scalar>("pexp")),
MaPolyL_(coeffsDict_.subDict("lowerMaPolynomial")),
MaPolyU_(coeffsDict_.subDict("upperMaPolynomial"))
{
@ -145,19 +158,19 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::SuRef
{
if (phi < LFL_ || phi > UFL_)
{
// Return 0 beyond the flamibility limits
// Return 0 beyond the flammability limits
return scalar(0);
}
else if (phi < SuPolyL_.ll)
{
// Use linear interpolation between the low end of the
// lower polynomial and the lower flamibility limit
// lower polynomial and the lower flammability limit
return SuPolyL_.llv*(phi - LFL_)/(SuPolyL_.ll - LFL_);
}
else if (phi > SuPolyU_.ul)
{
// Use linear interpolation between the upper end of the
// upper polynomial and the upper flamibility limit
// upper polynomial and the upper flammability limit
return SuPolyU_.ulv*(UFL_ - phi)/(UFL_ - SuPolyU_.ul);
}
else if (phi < SuPolyL_.lu)
@ -255,7 +268,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
IOobject::NO_WRITE
),
p.mesh(),
dimensionedScalar("Su0", dimVelocity, 0.0)
dimensionedScalar(dimVelocity, Zero)
)
);
@ -304,7 +317,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
IOobject::NO_WRITE
),
p.mesh(),
dimensionedScalar("Su0", dimVelocity, 0.0)
dimensionedScalar(dimVelocity, Zero)
)
);
@ -358,7 +371,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
IOobject::NO_WRITE
),
phi.mesh(),
dimensionedScalar("Ma", dimless, 0.0)
dimensionedScalar(dimless, Zero)
)
);
@ -397,7 +410,7 @@ Foam::laminarFlameSpeedModels::SCOPE::Ma() const
(
dimensionedScalar
(
psiuReactionThermo_.lookup("stoichiometricAirFuelMassRatio")
"stoichiometricAirFuelMassRatio", dimless, psiuReactionThermo_
)*ft/(scalar(1) - ft)
);
}
@ -438,7 +451,7 @@ Foam::laminarFlameSpeedModels::SCOPE::operator()() const
psiuReactionThermo_.Tu(),
dimensionedScalar
(
psiuReactionThermo_.lookup("stoichiometricAirFuelMassRatio")
"stoichiometricAirFuelMassRatio", dimless, psiuReactionThermo_
)*ft/(scalar(1) - ft)
);
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -109,10 +111,10 @@ class SCOPE
dictionary coeffsDict_;
//- Lower flamability limit
//- Lower flammability limit
scalar LFL_;
//- Upper flamability limit
//- Upper flammability limit
scalar UFL_;
//- Lower Su polynomial

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -26,7 +28,7 @@ Global
Description
Reset the timestep to maintain a constant maximum courant Number.
Reduction of time-step is imediate but increase is damped to avoid
Reduction of time-step is immediate but increase is damped to avoid
unstable oscillations.
\*---------------------------------------------------------------------------*/

View File

@ -1,4 +1,7 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/engine/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
@ -6,12 +9,13 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-lsampling \
-lengine \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
@ -19,8 +23,4 @@ EXE_LIBS = \
-lfluidThermophysicalModels \
-lreactionThermophysicalModels \
-lspecie \
-llaminarFlameSpeedModels \
-lfiniteVolume \
-lfvOptions \
-lsampling \
-lmeshTools
-llaminarFlameSpeedModels

View File

@ -2,9 +2,9 @@ EXE_INC = \
-I.. \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/engine/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
@ -18,10 +18,10 @@ EXE_INC = \
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-ldynamicMesh \
-ldynamicFvMesh \
-ltopoChangerFvMesh \
-ldynamicMesh \
-lmeshTools \
-lsampling \
-lengine \
-lturbulenceModels \

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015-2016 OpenCFD Ltd.
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2015-2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,7 +36,7 @@ Description
Combusting RANS code using the b-Xi two-equation model.
Xi may be obtained by either the solution of the Xi transport
equation or from an algebraic exression. Both approaches are
equation or from an algebraic expression. Both approaches are
based on Gulder's flame speed correlation which has been shown
to be appropriate by comparison with the results from the
spectral model.
@ -67,9 +70,15 @@ Description
int main(int argc, char *argv[])
{
argList::addNote
(
"Solver for compressible premixed/partially-premixed combustion with"
" turbulence modelling."
);
#include "postProcess.H"
#include "setRootCase.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createDynamicFvMesh.H"
#include "createControl.H"
@ -77,7 +86,6 @@ int main(int argc, char *argv[])
#include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createFieldRefs.H"
#include "createFvOptions.H"
#include "initContinuityErrs.H"
#include "createRhoUf.H"
#include "createControls.H"
@ -108,7 +116,7 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
runTime++;
++runTime;
Info<< "Time = " << runTime.timeName() << nl << endl;
@ -136,8 +144,8 @@ int main(int argc, char *argv[])
}
#include "rhoEqn.H"
Info<< "rhoEqn max/min : " << max(rho).value()
<< " " << min(rho).value() << endl;
Info<< "rho min/max : " << min(rho).value() << " " << max(rho).value()
<< endl;
// --- Pressure-velocity PIMPLE corrector loop
while (pimple.loop())
@ -170,9 +178,7 @@ int main(int argc, char *argv[])
runTime.write();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;

View File

@ -2,10 +2,10 @@
bool correctPhi
(
pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
pimple.dict().getOrDefault("correctPhi", true)
);
bool checkMeshCourantNo
(
pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
pimple.dict().getOrDefault("checkMeshCourantNo", false)
);

View File

@ -1,6 +1,6 @@
#include "readTimeControls.H"
correctPhi = pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
correctPhi = pimple.dict().getOrDefault("correctPhi", true);
checkMeshCourantNo =
pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
pimple.dict().getOrDefault("checkMeshCourantNo", false);

View File

@ -0,0 +1,3 @@
XiEngineFoam.C
EXE = $(FOAM_APPBIN)/XiEngineFoam

View File

@ -0,0 +1,27 @@
EXE_INC = \
-I.. \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/engine/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-lsampling \
-lengine \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lreactionThermophysicalModels \
-lspecie \
-llaminarFlameSpeedModels

Some files were not shown because too many files have changed in this diff Show More