Commit Graph

16442 Commits

Author SHA1 Message Date
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
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
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
fa57b4e45e ENH: adjust dynamicFvMesh to support controllable mesh motion updates 2019-12-11 20:12:49 +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
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
d1d567a90f STYLE: flush newline in blockMesh feedback 2019-12-11 09:43:47 +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
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
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
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
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
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
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
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
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
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