Compare commits

...

437 Commits

Author SHA1 Message Date
18dc3426ce WIP: code ideas for load/unload functions in dlLibraryTable 2019-12-16 16:30:05 +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
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
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
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
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
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
b63a6edb24 STYLE: Corrected option description 2019-11-01 11:27:48 +00: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
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
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
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
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
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
60517236fd CONFIG: bump API to 1908 to reflect is_contiguous handling 2019-08-13 16:26:30 +02:00
a49fc7acf2 SUBMODULE: cfmesh update for is_contiguous 2019-08-13 13:10:10 +02:00
b86f9944d7 ENH: handle some miscellaneous mixed input types (#1378) 2019-08-06 16:57:29 +02: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
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
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
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
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
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
7b02c0fa19 CONFIG: Reset WM_PROJECT_VERSION 2019-06-27 13:30:14 +01:00
4125 changed files with 151919 additions and 26796 deletions

3
.gitmodules vendored
View File

@ -7,3 +7,6 @@
[submodule "catalyst"]
path = modules/catalyst
url = https://develop.openfoam.com/Community/catalyst.git
[submodule "adios"]
path = modules/adios
url = https://develop.openfoam.com/Community/adiosfoam.git

View File

@ -1,6 +1,7 @@
#!/bin/sh
# Run from OPENFOAM top-level directory only
cd ${0%/*} && wmakeCheckPwd "$WM_PROJECT_DIR" 2>/dev/null || {
cd "${0%/*}" || exit
wmakeCheckPwd "$WM_PROJECT_DIR" 2>/dev/null || {
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR"
echo " Check your OpenFOAM environment and installation"
exit 1
@ -11,7 +12,7 @@ cd ${0%/*} && wmakeCheckPwd "$WM_PROJECT_DIR" 2>/dev/null || {
exit 1
}
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
. "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------
# Preamble. Report compiler version
@ -19,9 +20,15 @@ case "$WM_COMPILER" in
Gcc*) gcc --version 2>/dev/null | sed -ne '1p' ;;
Clang*) clang --version 2>/dev/null | sed -ne '1p' ;;
esac
# Preamble. Report mpirun location
command -v mpirun 2>/dev/null || true
# Preamble. Report tools or at least the mpirun location
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/list_tools ]
then . "$WM_PROJECT_DIR"/wmake/scripts/list_tools ]
else
echo "mpirun=$(command -v mpirun || true)"
fi
echo
echo "========================================"
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
echo "Starting compile ${WM_PROJECT_DIR##*/} ${0##*/}"
@ -36,7 +43,7 @@ echo
# Compile ThirdParty libraries and applications
if [ -d "$WM_THIRD_PARTY_DIR" ]
then
$WM_THIRD_PARTY_DIR/Allwmake
"$WM_THIRD_PARTY_DIR/Allwmake"
else
echo "No ThirdParty directory found - skipping"
fi
@ -57,7 +64,7 @@ then
echo "========================================"
echo "Compile OpenFOAM modules"
echo
(cd $WM_PROJECT_DIR/modules 2>/dev/null && wmake -all)
(cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all)
fi
# Count files in given directory. Ignore "Test-*" binaries.

View File

@ -1,2 +1,2 @@
api=1906
patch=191111
api=1912
patch=0

View File

@ -12,24 +12,36 @@ individual and group contributors, integrations
# 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 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.
# 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).
Please [contact OpenCFD](http://www.openfoam.com/contact) if you have any questions on the use of the 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).
Violations of the Trademark are continuously monitored, and will be duly prosecuted.
Please [contact OpenCFD](http://www.openfoam.com/contact) if you have
any questions on the use of the OpenFOAM trademark.
Violations of the Trademark are monitored, and will be duly prosecuted.
# Using OpenFOAM
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-v1906 version:
For example, for the OpenFOAM-v1912 version:
```
source /installation/path/OpenFOAM-v1906/etc/bashrc
source /installation/path/OpenFOAM-v1912/etc/bashrc
```
# Compiling OpenFOAM
@ -51,7 +63,7 @@ not guaranteed to have any correspondence to the OpenFOAM release
information is embedded into each application. For example, as
displayed from `blockMesh -help`:
```
Using: OpenFOAM-v1812.local (1812) (see www.OpenFOAM.com)
Using: OpenFOAM-v1812.local (1812) - visit www.openfoam.com
Build: 65d6551ff7-20190530 (patch=190531)
Arch: LSB;label=32;scalar=64
```
@ -109,8 +121,8 @@ These 3rd-party sources are normally located in a directory parallel
to the OpenFOAM directory. For example,
```
/path/parent
|-- OpenFOAM-v1906
\-- ThirdParty-v1906
|-- OpenFOAM-v1912
\-- ThirdParty-v1912
```
There are, however, many cases where this simple convention is inadequate:
@ -118,7 +130,7 @@ There are, however, many cases where this simple convention is inadequate:
operating system or cluster installation provides it)
* When we have changed the OpenFOAM directory name to some arbitrary
directory name, e.g. openfoam-sandbox1906, etc..
directory name, e.g. openfoam-sandbox1912, etc..
* When we would like any additional 3rd party software to be located
inside of the OpenFOAM directory to ensure that the installation is
@ -130,35 +142,38 @@ There are, however, many cases where this simple convention is inadequate:
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:
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*, `v1906-myCustom`,
* allows for an updated value of VERSION, *eg*, `v1912-myCustom`,
without requiring a renamed ThirdParty. The API value would still
be `1906` and the original `ThirdParty-v1906/` would be found.
be `1912` and the original `ThirdParty-v1912/` would be found.
4. 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*,
`1906-patch190131`, `1906.19W03`
`1912-patch190131`, `1912.19W03`
5. PREFIX/ThirdParty-common
* permits maximum reuse for various versions, but only for
experienced user who are aware of potential version
incompatibilities
* permits maximum reuse for various versions, for experienced user
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:
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've chosen |
| 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
@ -183,10 +198,13 @@ ThirdParty directory will contain either an `Allwmake` file or a
# Useful Links
- [Download and installation instructions](http://www.openfoam.com/download/)
- Download [source](https://sourceforge.net/projects/openfoam/files/) 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)
- [Wiki](http://wiki.openfoam.com/) and [code wiki](https://develop.openfoam.com/Development/openfoam/wikis/)
- [Community](http://www.openfoam.com/community/), [Governance](http://www.openfoam.com/governance/)
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
Copyright 2016-2019 OpenCFD Ltd

View File

@ -1,6 +1,7 @@
#!/bin/sh
# Run from OPENFOAM applications/ directory only
cd ${0%/*} && wmakeCheckPwd "$WM_PROJECT_DIR/applications" 2>/dev/null || {
cd "${0%/*}" || exit
wmakeCheckPwd "$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
@ -11,7 +12,7 @@ cd ${0%/*} && wmakeCheckPwd "$WM_PROJECT_DIR/applications" 2>/dev/null || {
exit 1
}
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
. "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -1,7 +1,7 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
. $WM_PROJECT_DIR/wmake/scripts/have_fftw
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
. ${WM_PROJECT_DIR:?}/wmake/scripts/have_fftw
#------------------------------------------------------------------------------

View File

@ -14,23 +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)
);
Info<< "Reading diffusivity DT\n" << endl;
dimensionedScalar DT("DT", dimViscosity, transportProperties);
if (!DT.headerOk())
{
IOdictionary transportProperties
(
IOobject
(
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
DT = dimensionedScalar("DT", dimViscosity, transportProperties);
}
#include "createFvOptions.H"

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -66,6 +67,8 @@ int main(int argc, char *argv[])
"Laplace equation solver for a scalar quantity."
);
#include "postProcess.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"

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

@ -40,7 +40,7 @@ if (args.found("initialiseUBCs"))
// converting fixed-value BCs to zero-gradient and vice versa.
// Allow override from command-line -pName option
const word pName = args.opt<word>("pName", "p");
const word pName = args.get<word>("pName", "p");
// Infer the pressure BCs from the velocity
wordList pBCTypes

View File

@ -40,7 +40,7 @@ if (args.found("initialiseUBCs"))
// converting fixed-value BCs to zero-gradient and vice versa.
// Allow override from command-line -pName option
const word pName = args.opt<word>("pName", "p");
const word pName = args.get<word>("pName", "p");
// Infer the pressure BCs from the velocity
wordList pBCTypes

View File

@ -84,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
@ -115,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",
@ -186,11 +193,16 @@ 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
// Optionally write the volumetric flux, phi
if (args.found("writephi"))
{
phi.write();
}
// Optionally write velocity potential, Phi
if (args.found("writePhi"))
{
Phi.write();

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,14 +32,14 @@ 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.get<word>("PDRDragModel"));
const word modelType(dict.get<word>("PDRDragModel"));
Info<< "Selecting drag model " << modelType << endl;
@ -46,16 +47,17 @@ Foam::autoPtr<Foam::PDRDragModel> Foam::PDRDragModel::New
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

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,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.get<word>("XiEqModel"));
const word modelType(dict.get<word>("XiEqModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
@ -45,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

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,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.get<word>("XiGModel"));
const word modelType(dict.get<word>("XiGModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
@ -45,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

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,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,
@ -40,7 +41,7 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
const surfaceScalarField& phi
)
{
const word modelType(propDict.get<word>("XiModel"));
const word modelType(dict.get<word>("XiModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
@ -48,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

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean libso BCs
wclean

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
(wmake $targetType BCs && wmake $targetType && wmake $targetType rhoCentralDyMFoam)

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -36,6 +37,10 @@ Description
Uses the flexible PIMPLE (PISO-SIMPLE) solution for time-resolved and
pseudo-transient simulations.
Note
The motion frequency of this solver can be influenced by the presence
of "updateControl" and "updateInterval" in the dynamicMeshDict.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
@ -131,7 +136,7 @@ int main(int argc, char *argv[])
}
// Do any mesh changes
mesh.update();
mesh.controlledUpdate();
if (mesh.changing())
{

View File

@ -380,8 +380,11 @@ updateCoeffs()
// TvNbr: vapour Tp
scalarField c(TcNbr*KDeltaLiqNbr + TvNbr*KDeltaVapNbr);
valueFraction() = KDeltaNbr/(KDeltaNbr + KDelta);
refValue() = c/KDeltaNbr;
//valueFraction() = KDeltaNbr/(KDeltaNbr + KDelta);
//refValue() = c/KDeltaNbr;
scalarField KDeltaLiqVapNbr(KDeltaLiqNbr + KDeltaVapNbr);
valueFraction() = KDeltaLiqVapNbr/(KDeltaLiqVapNbr + KDelta);
refValue() = c/KDeltaLiqVapNbr;
refGrad() = (qr + qrNbr)/kappa(Tp);
if (debug)
@ -395,7 +398,7 @@ updateCoeffs()
<< " walltemperature "
<< " min:" << gMin(Tp)
<< " max:" << gMax(Tp)
<< " avg:" << gAverage(Tp)
<< " avg:" << gAverage(Tp) << nl
<< endl;
}
}

View File

@ -21,7 +21,178 @@ const uniformDimensionedVectorField& g = meshObjects::gravity::New(runTime);
PtrList<pimpleControl> pimpleFluid(fluidRegions.size());
// Populate fluid field pointer lists
//Debug Fields
/*
PtrList<volScalarField> faceRegimesFluid(fluidRegions.size());
PtrList<volScalarField> qcFluid(fluidRegions.size());
PtrList<volScalarField> qFilmFluid(fluidRegions.size());
PtrList<volScalarField> htcFilmBoilingFluid(fluidRegions.size());
PtrList<volScalarField> qtbFluid(fluidRegions.size());
PtrList<volScalarField> qSubCoolFluid(fluidRegions.size());
PtrList<volScalarField> CHFtotalFluid(fluidRegions.size());
PtrList<volScalarField> TdnbFluid(fluidRegions.size());
PtrList<volScalarField> phiFluid(fluidRegions.size());
forAll(fluidRegions, i)
{
faceRegimesFluid.set
(
i,
new volScalarField
(
IOobject
(
"faceRegimes",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
qcFluid.set
(
i,
new volScalarField
(
IOobject
(
"qc",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
qFilmFluid.set
(
i,
new volScalarField
(
IOobject
(
"qFilm",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
htcFilmBoilingFluid.set
(
i,
new volScalarField
(
IOobject
(
"htcFilmBoiling",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
qtbFluid.set
(
i,
new volScalarField
(
IOobject
(
"qtb",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
qSubCoolFluid.set
(
i,
new volScalarField
(
IOobject
(
"qSubCool",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
CHFtotalFluid.set
(
i,
new volScalarField
(
IOobject
(
"CHFtotal",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
TdnbFluid.set
(
i,
new volScalarField
(
IOobject
(
"Tdnb",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
phiFluid.set
(
i,
new volScalarField
(
IOobject
(
"phiTb",
runTime.timeName(),
fluidRegions[i],
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fluidRegions[i],
dimensionedScalar(dimless, Zero)
)
);
}
*/
forAll(fluidRegions, i)
{
Info<< "*** Reading fluid mesh thermophysical properties for region "

View File

@ -56,3 +56,16 @@
pimpleControl& pimple = pimpleFluid[i];
const dimensionedScalar& pMin = pMinFluid[i];
// Debug fields
/*
volScalarField& faceRegimes = faceRegimesFluid[i];
volScalarField& qc = qcFluid[i];
volScalarField& qFilm = qFilmFluid[i];
volScalarField& htcFilmBoiling = htcFilmBoilingFluid[i];
volScalarField& qtb = qtbFluid[i];
volScalarField& qSubCool = qSubCoolFluid[i];
volScalarField& CHFtotal = CHFtotalFluid[i];
volScalarField& Tdnb = TdnbFluid[i];
volScalarField& phiTb = phiFluid[i];
*/

View File

@ -55,10 +55,6 @@ int main(int argc, char *argv[])
for (om++; !om.end(); om++)
{
Info<< "* * * * * * * * * * * * * * * * * * *" << endl;
Info<< "Time = " << runTime.timeName() << endl;
Info<< "* * * * * * * * * * * * * * * * * * *" << endl;
if (om.update())
{
// Update design variables and solve all primal equations

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -75,6 +76,8 @@ int main(int argc, char *argv[])
" of Newtonian fluids."
);
#include "postProcess.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -67,6 +68,10 @@ Description
\<turbulence fields\> | As required by user selection
\endplaintable
Note
The motion frequency of this solver can be influenced by the presence
of "updateControl" and "updateInterval" in the dynamicMeshDict.
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
@ -121,7 +126,8 @@ int main(int argc, char *argv[])
{
if (pimple.firstIter() || moveMeshOuterCorrectors)
{
mesh.update();
// Do any mesh changes
mesh.controlledUpdate();
if (mesh.changing())
{

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean libso DPMTurbulenceModels

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -121,7 +121,7 @@ volScalarField alphac
const word kinematicCloudName
(
args.opt<word>("cloud", "kinematicCloud")
args.get<word>("cloud", "kinematicCloud")
);
Info<< "Constructing kinematicCloud " << kinematicCloudName << endl;

View File

@ -59,7 +59,7 @@ volScalarField mu
const word kinematicCloudName
(
args.opt<word>("cloud", "kinematicCloud")
args.get<word>("cloud", "kinematicCloud")
);
Info<< "Constructing kinematicCloud " << kinematicCloudName << endl;

View File

@ -51,7 +51,7 @@ autoPtr<compressible::turbulenceModel> turbulence
const word kinematicCloudName
(
args.opt<word>("cloud", "kinematicCloud")
args.get<word>("cloud", "kinematicCloud")
);
Info<< "Constructing kinematicCloud " << kinematicCloudName << endl;

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean libso CompressibleTwoPhaseMixtureTurbulenceModels
wclean

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean libso twoPhaseMixtureThermo
wclean libso surfaceTensionModels

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean libso multiphaseMixtureThermo
wclean

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2013-2017 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -192,8 +193,7 @@ public:
//- Destructor
virtual ~multiphaseMixtureThermo()
{}
virtual ~multiphaseMixtureThermo() = default;
// Member Functions

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean libso mixtureViscosityModels
wclean libso relativeVelocityModels

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2014-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -99,8 +100,7 @@ public:
//- Destructor
virtual ~incompressibleTwoPhaseInteractingMixture()
{}
virtual ~incompressibleTwoPhaseInteractingMixture() = default;
// Member Functions

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2014-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -130,8 +131,7 @@ public:
//- Destructor
virtual ~mixtureViscosityModel()
{}
virtual ~mixtureViscosityModel() = default;
// Member Functions

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2014-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -34,12 +35,12 @@ License
Foam::autoPtr<Foam::mixtureViscosityModel> Foam::mixtureViscosityModel::New
(
const word& name,
const dictionary& viscosityProperties,
const dictionary& dict,
const volVectorField& U,
const surfaceScalarField& phi
)
{
const word modelType(viscosityProperties.get<word>("transportModel"));
const word modelType(dict.get<word>("transportModel"));
Info<< "Selecting incompressible transport model " << modelType << endl;
@ -47,16 +48,17 @@ Foam::autoPtr<Foam::mixtureViscosityModel> Foam::mixtureViscosityModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown mixtureViscosityModel type "
<< modelType << nl << nl
<< "Valid mixtureViscosityModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"mixtureViscosityModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<mixtureViscosityModel>
(cstrIter()(name, viscosityProperties, U, phi));
(cstrIter()(name, dict, U, phi));
}

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2014-2017 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -114,12 +115,13 @@ Foam::autoPtr<Foam::relativeVelocityModel> Foam::relativeVelocityModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown time scale model type "
<< modelType << nl << nl
<< "Valid time scale model types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< abort(FatalError);
FatalIOErrorInLookup
(
dict,
"relative velocity",
modelType,
*dictionaryConstructorTablePtr_
) << abort(FatalIOError);
}
return

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean libso phasesSystem
wclean libso massTransferModels

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd
Copyright (C) 2017-2019 OpenCFD Ltd
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -66,9 +66,6 @@ class DTRMParticle
{
// Private data
//- Size in bytes of the fields
static const std::size_t sizeofFields_;
//- Initial position
point p0_;
@ -146,7 +143,12 @@ public:
inline scalar& Q(label celli);
};
// Static data members
// Static Data Members
//- Size in bytes of the fields
static const std::size_t sizeofFields_;
//- String representation of properties
AddToPropertyList
@ -160,22 +162,9 @@ public:
+ " transmissiveId";
);
//- String representation of property types
AddToPropertyTypes
(
particle,
"{point"
+ " point"
+ " scalar"
+ " scalar"
+ " scalar"
+ " label}"
);
// Constructors
//- Construct from components, with searching for tetFace and
// tetPt unless disabled by doCellFacePt = false.
DTRMParticle
@ -305,6 +294,18 @@ public:
);
// I-O
//- Write individual parcel properties to stream
void writeProperties
(
Ostream& os,
const wordRes& filters,
const word& delim,
const bool namesOnly = false
) const;
// Ostream Operator
friend Ostream& operator<<(Ostream& os, const DTRMParticle& p);

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -63,6 +63,21 @@ Foam::DTRMParticle::DTRMParticle
{
is >> p0_ >> p1_ >> I0_ >> I_ >> dA_ >> transmissiveId_;
}
else if (!is.checkLabelSize<>() || !is.checkScalarSize<>())
{
// Non-native label or scalar size
is.beginRawRead();
readRawScalar(is, p0_.data(), vector::nComponents);
readRawScalar(is, p1_.data(), vector::nComponents);
readRawScalar(is, &I0_);
readRawScalar(is, &I_);
readRawScalar(is, &dA_);
readRawLabel(is, &transmissiveId_);
is.endRawRead();
}
else
{
is.read(reinterpret_cast<char*>(&p0_), sizeofFields_);
@ -73,6 +88,31 @@ Foam::DTRMParticle::DTRMParticle
}
void Foam::DTRMParticle::writeProperties
(
Ostream& os,
const wordRes& filters,
const word& delim,
const bool namesOnly
) const
{
particle::writeProperties(os, filters, delim, namesOnly);
#undef writeProp
#define writeProp(Name, Value) \
particle::writeProperty(os, Name, Value, namesOnly, delim, filters)
writeProp("p0", p0_);
writeProp("p1", p1_);
writeProp("I0", I0_);
writeProp("I", I_);
writeProp("dA", dA_);
writeProp("transmissiveId", transmissiveId_);
#undef writeProp
}
Foam::Ostream& Foam::operator<<(Ostream& os, const DTRMParticle& p)
{
if (os.format() == IOstream::ASCII)

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -45,11 +45,13 @@ Foam::radiation::reflectionModel::New
if (!cstrIter.found())
{
FatalIOErrorInFunction(dict)
<< "Unknown reflectionModel type " << modelType << nl << nl
<< "Valid types :" << nl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalIOError);
FatalIOErrorInLookup
(
dict,
"reflectionModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<reflectionModel>(cstrIter()(dict, mesh));

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -38,7 +39,7 @@ Foam::interfaceCompositionModel::New
const phasePair& pair
)
{
word interfaceCompositionModelType
const word modelType
(
dict.get<word>("type")
+ "<"
@ -49,19 +50,19 @@ Foam::interfaceCompositionModel::New
);
Info<< "Selecting interfaceCompositionModel for "
<< pair << ": " << interfaceCompositionModelType << endl;
<< pair << ": " << modelType << endl;
const auto cstrIter =
dictionaryConstructorTablePtr_->cfind(interfaceCompositionModelType);
const auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown interfaceCompositionModelType type "
<< interfaceCompositionModelType << nl << nl
<< "Valid interfaceCompositionModel types are : " << nl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"interfaceCompositionModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(dict, pair);

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -45,12 +45,13 @@ Foam::autoPtr<Foam::porousModel> Foam::porousModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown modelType type "
<< modelType << endl << endl
<< "Valid porousModel types are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"porousModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(dict, mesh);

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -45,12 +45,13 @@ Foam::autoPtr<Foam::surfaceTensionModel> Foam::surfaceTensionModel::New
if (!cstrIter.found())
{
FatalIOErrorInFunction(dict)
<< "Unknown surfaceTensionModel type "
<< surfaceTensionModelType << endl << endl
<< "Valid modelType types are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalIOError);
FatalIOErrorInLookup
(
dict,
"surfaceTensionModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(dict, pair, true);

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -36,7 +36,9 @@ Foam::autoPtr<Foam::phaseModel> Foam::phaseModel::New
const word& phaseName
)
{
const word modelType(fluid.subDict(phaseName).get<word>("type"));
const dictionary& dict = fluid.subDict(phaseName);
const word modelType(dict.get<word>("type"));
Info<< "Selecting phaseModel for "
<< phaseName << ": " << modelType << endl;
@ -45,12 +47,13 @@ Foam::autoPtr<Foam::phaseModel> Foam::phaseModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown phaseModel type "
<< modelType << endl << endl
<< "Valid phaseModel types are : " << endl
<< phaseSystemConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"phaseModel",
modelType,
*phaseSystemConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(fluid, phaseName);

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd.
Copyright (C) 2017-2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -34,38 +34,37 @@ Foam::autoPtr<Foam::multiphaseSystem> Foam::multiphaseSystem::New
const fvMesh& mesh
)
{
const word multiphaseSystemType
const IOdictionary dict
(
IOdictionary
IOobject
(
IOobject
(
phasePropertiesName,
mesh.time().constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false
)
).get<word>("type")
phasePropertiesName,
mesh.time().constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE,
false // Do not register
)
);
Info<< "Selecting multiphaseSystem " << multiphaseSystemType << endl;
const word systemType(dict.get<word>("type"));
const auto cstrIter =
dictionaryConstructorTablePtr_->cfind(multiphaseSystemType);
Info<< "Selecting multiphaseSystem " << systemType << endl;
const auto cstrIter = dictionaryConstructorTablePtr_->cfind(systemType);
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown multiphaseSystemType type "
<< multiphaseSystemType << endl
<< "Valid multiphaseSystem types are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"multiphaseSystem",
systemType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<multiphaseSystem> (cstrIter()(mesh));
return autoPtr<multiphaseSystem>(cstrIter()(mesh));
}

View File

@ -526,7 +526,7 @@ public:
//- Return the name of the thermo physics
virtual word thermoName() const
{
NotImplemented
NotImplemented;
return word();
}

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean libso temperaturePhaseChangeTwoPhaseMixtures
wclean

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2016 OpenCFD Ltd.
Copyright (C) 2016-2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -81,8 +81,7 @@ public:
//- Destructor
virtual ~constant()
{}
virtual ~constant() = default;
// Member Functions

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2016 OpenCFD Ltd.
Copyright (C) 2016-2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -37,7 +37,7 @@ Foam::temperaturePhaseChangeTwoPhaseMixture::New
const fvMesh& mesh
)
{
IOdictionary phaseChangePropertiesDict
const IOdictionary dict
(
IOobject
(
@ -46,14 +46,11 @@ Foam::temperaturePhaseChangeTwoPhaseMixture::New
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE,
false
false // Do not register
)
);
const word modelType
(
phaseChangePropertiesDict.get<word>("phaseChangeTwoPhaseModel")
);
const word modelType(dict.get<word>("phaseChangeTwoPhaseModel"));
Info<< "Selecting phaseChange model " << modelType << endl;
@ -61,16 +58,20 @@ Foam::temperaturePhaseChangeTwoPhaseMixture::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown temperaturePhaseChangeTwoPhaseMixture type "
<< modelType << nl << nl
<< "Valid temperaturePhaseChangeTwoPhaseMixture types :" << endl
<< componentsConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"temperaturePhaseChangeTwoPhaseMixture",
modelType,
*componentsConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<temperaturePhaseChangeTwoPhaseMixture>
(cstrIter()(thermo, mesh));
return
autoPtr<temperaturePhaseChangeTwoPhaseMixture>
(
cstrIter()(thermo, mesh)
);
}

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2016 OpenCFD Ltd.
Copyright (C) 2016-2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -122,8 +122,7 @@ public:
//- Destructor
virtual ~temperaturePhaseChangeTwoPhaseMixture()
{}
virtual ~temperaturePhaseChangeTwoPhaseMixture() = default;
// Member Functions

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2016 OpenCFD Ltd.
Copyright (C) 2016-2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -87,8 +87,7 @@ public:
//- Destructor
virtual ~thermoIncompressibleTwoPhaseMixture()
{}
virtual ~thermoIncompressibleTwoPhaseMixture() = default;
// Access function

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2014 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -68,8 +69,7 @@ public:
//- Destructor
virtual ~immiscibleIncompressibleThreePhaseMixture()
{}
virtual ~immiscibleIncompressibleThreePhaseMixture() = default;
// Member Functions

View File

@ -17,13 +17,6 @@
#include "interpolatedFaces.H"
}
if (runTime.outputTime())
{
H.write();
rAU.write();
HbyA.write();
}
surfaceScalarField phiHbyA("phiHbyA", fvc::flux(HbyA));
if (ddtCorr)

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean libso phaseChangeTwoPhaseMixtures
wclean

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -98,8 +99,7 @@ public:
//- Destructor
virtual ~Kunz()
{}
virtual ~Kunz() = default;
// Member Functions

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -92,8 +93,7 @@ public:
//- Destructor
virtual ~Merkle()
{}
virtual ~Merkle() = default;
// Member Functions

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -105,8 +106,7 @@ public:
//- Destructor
virtual ~SchnerrSauer()
{}
virtual ~SchnerrSauer() = default;
// Member Functions

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -37,7 +38,7 @@ Foam::phaseChangeTwoPhaseMixture::New
const surfaceScalarField& phi
)
{
IOdictionary transportPropertiesDict
const IOdictionary dict
(
IOobject
(
@ -46,14 +47,11 @@ Foam::phaseChangeTwoPhaseMixture::New
U.db(),
IOobject::MUST_READ,
IOobject::NO_WRITE,
false
false // Do not register
)
);
const word modelType
(
transportPropertiesDict.lookup("phaseChangeTwoPhaseMixture")
);
const word modelType(dict.get<word>("phaseChangeTwoPhaseMixture"));
Info<< "Selecting phaseChange model " << modelType << endl;
@ -61,12 +59,13 @@ Foam::phaseChangeTwoPhaseMixture::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown phaseChangeTwoPhaseMixture type "
<< modelType << nl << nl
<< "Valid phaseChangeTwoPhaseMixture types :" << endl
<< componentsConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"phaseChangeTwoPhaseMixture",
modelType,
*componentsConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<phaseChangeTwoPhaseMixture>(cstrIter()(U, phi));

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -121,8 +122,7 @@ public:
//- Destructor
virtual ~phaseChangeTwoPhaseMixture()
{}
virtual ~phaseChangeTwoPhaseMixture() = default;
// Member Functions

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean libso multiphaseSystem
wclean libso interfacialModels

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -47,12 +48,13 @@ Foam::autoPtr<Foam::dragModel> Foam::dragModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown dragModel type "
<< modelType << nl << nl
<< "Valid dragModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
interfaceDict,
"dragModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(interfaceDict, phase1, phase2);

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -39,7 +40,7 @@ Foam::autoPtr<Foam::heatTransferModel> Foam::heatTransferModel::New
{
const word modelType
(
interfaceDict.lookup("heatTransferModel" + phase1.name())
interfaceDict.get<word>("heatTransferModel" + phase1.name())
);
Info<< "Selecting heatTransferModel for phase "
@ -51,12 +52,13 @@ Foam::autoPtr<Foam::heatTransferModel> Foam::heatTransferModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown heatTransferModel type "
<< modelType << nl << nl
<< "Valid heatTransferModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
interfaceDict,
"heatTransferModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(interfaceDict, alpha1, phase1, phase2);

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -46,12 +47,13 @@ Foam::autoPtr<Foam::diameterModel> Foam::diameterModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown diameterModel type "
<< modelType << nl << nl
<< "Valid diameterModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"diameterModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()

View File

@ -831,7 +831,7 @@ void Foam::multiphaseSystem::solve()
const Time& runTime = mesh_.time();
const dictionary& alphaControls = mesh_.solverDict("alpha");
label nAlphaSubCycles(readLabel(alphaControls.lookup("nAlphaSubCycles")));
label nAlphaSubCycles(alphaControls.get<label>("nAlphaSubCycles"));
if (nAlphaSubCycles > 1)
{

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -238,8 +239,7 @@ public:
//- Destructor
virtual ~multiphaseSystem()
{}
virtual ~multiphaseSystem() = default;
// Member Functions

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean libso multiphaseMixture
wclean

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean reactingTwoPhaseEulerFoam
wclean reactingMultiphaseEulerFoam

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017-2019 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -108,9 +109,13 @@ void Foam::functionObjects::sizeDistribution::initialise
default:
{
FatalIOErrorInFunction(dict)
<< "Unknown functionType. Valid types are:"
<< functionTypeNames_ << nl << exit(FatalIOError);
FatalIOErrorInLookup
(
dict,
"functionType",
word::null,
functionTypeNames_
) << exit(FatalIOError);
}
}
@ -128,9 +133,13 @@ void Foam::functionObjects::sizeDistribution::initialise
default:
{
FatalIOErrorInFunction(dict)
<< "Unknown abszissaType. Valid types are:"
<< abszissaTypeNames_ << nl << exit(FatalIOError);
FatalIOErrorInLookup
(
dict,
"abszissaType",
word::null,
abszissaTypeNames_
) << exit(FatalIOError);
}
}
@ -141,7 +150,7 @@ void Foam::functionObjects::sizeDistribution::initialise
FatalIOErrorInFunction(dict)
<< type() << " " << name() << ": "
<< selectionModeTypeNames_[selectionModeType_]
<< "(" << selectionModeTypeName_ << "):" << nl
<< '(' << selectionModeTypeName_ << "):" << nl
<< " Selection has no cells" << exit(FatalIOError);
}
@ -149,7 +158,7 @@ void Foam::functionObjects::sizeDistribution::initialise
Info<< type() << " " << name() << ":"
<< selectionModeTypeNames_[selectionModeType_]
<< "(" << selectionModeTypeName_ << "):" << nl
<< '(' << selectionModeTypeName_ << "):" << nl
<< " total cells = " << nCells_ << nl
<< " total volume = " << volume_
<< nl << endl;
@ -162,7 +171,7 @@ void Foam::functionObjects::sizeDistribution::setCellZoneCells()
{
case rtCellZone:
{
dict().lookup("cellZone") >> selectionModeTypeName_;
dict().readEntry("cellZone", selectionModeTypeName_);
label zoneId =
mesh().cellZones().findZoneID(selectionModeTypeName_);
@ -190,9 +199,13 @@ void Foam::functionObjects::sizeDistribution::setCellZoneCells()
default:
{
FatalIOErrorInFunction(dict_)
<< "Unknown selectionMode type. Valid selectionMode types are:"
<< selectionModeTypeNames_ << nl << exit(FatalIOError);
FatalIOErrorInLookup
(
dict_,
"selectionMode",
word::null,
selectionModeTypeNames_
) << exit(FatalIOError);
}
}
}
@ -402,7 +415,7 @@ bool Foam::functionObjects::sizeDistribution::execute()
bool Foam::functionObjects::sizeDistribution::write()
{
writeFileHeader();
writeTime(file());
writeCurrentTime(file());
Log << type() << " " << name() << " write" << nl;

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean libso multiphaseSystem
wclean libso multiphaseCompressibleTurbulenceModels

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -31,7 +31,7 @@ Description
common pressure, but otherwise separate properties. The type of phase model
is run time selectable and can optionally represent multiple species and
in-phase reactions. The phase system is also run time selectable and can
optionally represent different types of momentun, heat and mass transfer.
optionally represent different types of momentum, heat and mass transfer.
\*---------------------------------------------------------------------------*/

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -34,7 +34,7 @@ Description
but otherwise separate properties. The type of phase model is run time
selectable and can optionally represent multiple species and in-phase
reactions. The phase system is also run time selectable and can optionally
represent different types of momentun, heat and mass transfer.
represent different types of momentum, heat and mass transfer.
\*---------------------------------------------------------------------------*/

View File

@ -1,5 +1,5 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
cd "${0%/*}" || exit # Run from this directory
wclean libso twoPhaseSystem
wclean libso interfacialModels

View File

@ -1,6 +1,6 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
#------------------------------------------------------------------------------

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2014-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -46,12 +47,13 @@ Foam::aspectRatioModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown aspectRatioModel type "
<< modelType << nl << nl
<< "Valid aspectRatioModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"aspectRatioModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(dict, pair);

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -45,12 +46,13 @@ Foam::autoPtr<Foam::dragModel> Foam::dragModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown dragModel type "
<< modelType << nl << nl
<< "Valid dragModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"dragModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(dict, pair, true);

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -45,12 +46,13 @@ Foam::autoPtr<Foam::heatTransferModel> Foam::heatTransferModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown heatTransferModel type "
<< modelType << nl << nl
<< "Valid heatTransferModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"heatTransferModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(dict, pair);

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2014-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -45,12 +46,13 @@ Foam::autoPtr<Foam::liftModel> Foam::liftModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown liftModel type "
<< modelType << nl << nl
<< "Valid liftModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"liftModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(dict, pair);

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2014-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -46,12 +47,13 @@ Foam::swarmCorrection::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown swarmCorrection type "
<< modelType << nl << nl
<< "Valid swarmCorrection types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"swarmCorrection",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(dict, pair);

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2014-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -46,12 +47,13 @@ Foam::turbulentDispersionModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown turbulentDispersionModel type "
<< modelType << nl << nl
<< "Valid turbulentDispersionModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"turbulentDispersionModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(dict, pair);

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2014-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -45,12 +46,13 @@ Foam::autoPtr<Foam::virtualMassModel> Foam::virtualMassModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown virtualMassModel type "
<< modelType << nl << nl
<< "Valid virtualMassModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"virtualMassModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(dict, pair, true);

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2014-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -45,12 +46,13 @@ Foam::autoPtr<Foam::wallLubricationModel> Foam::wallLubricationModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown wallLubricationModel type "
<< modelType << nl << nl
<< "Valid wallLubricationModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"wallLubricationModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return cstrIter()(dict, pair);

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -43,12 +44,13 @@ Foam::kineticTheoryModels::conductivityModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown conductivityModel type "
<< modelType << nl << nl
<< "Valid conductivityModel types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"conductivityModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<conductivityModel>(cstrIter()(dict));

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -43,12 +44,13 @@ Foam::kineticTheoryModels::frictionalStressModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown frictionalStressModel type "
<< modelType << nl << nl
<< "Valid frictionalStressModelType types :" << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"frictionalStressModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<frictionalStressModel>(cstrIter()(dict));

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -43,12 +44,13 @@ Foam::kineticTheoryModels::granularPressureModel::New
if (!cstrIter.found())
{
FatalErrorInFunction
<< "Unknown granularPressureModel type "
<< modelType << nl << nl
<< "Valid granularPressureModel types :" << nl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"granularPressureModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<granularPressureModel>(cstrIter()(dict));

Some files were not shown because too many files have changed in this diff Show More