Compare commits

..

7681 Commits

Author SHA1 Message Date
8b319324b6 COMP: g++11: suppress optimisation. See #3024 2024-01-19 20:29:44 +01:00
9f40e04cc1 BUG: ThermoSurfaceFilm: reintroduce energy to film sources (fixes #2996) 2023-10-11 11:31:51 +01:00
927b06a19d BUG: mapFields: incorrect patches. Fixes #2944. 2023-08-30 16:37:41 +02:00
e6a27e0a67 BUG: expressions rand() ignores objectRegistry timeIndex (fixes #2923) 2023-06-26 17:58:31 +02:00
50b44dbfe2 BUG: UPstream::shutdown misbehaves with external initialisation (fixes #2808)
- freeCommmunicatorComponents needs an additional bounds check.
  When MPI is initialized outside of OpenFOAM, there are no
  UPstream communicator equivalents
2023-06-20 09:27:35 +02:00
54567be3c6 Revert "BUG: Fixing ray dAve and omega for 1D and 2D cases"
This reverts commit 5848b0afd5.
2023-05-22 09:39:53 +01:00
8c20e769ba BUG: VTK write pointSet fails in parallel (fixes #2773)
- de-referenced autoPtr with () instead of ref() will fail on
  non-master ranks.
2023-05-05 16:05:25 +02:00
d1264955e8 COMP: code adjustments for gcc-13 (#2714) 2023-02-28 16:03:54 +01:00
2c6fc15734 BUG: globalIndex gather/scatter fails with multi-world (fixes #2706)
- was using UPstream::procIDs(), which returns the sub-ranks with
  respect to the parent communicator. This is normally just an
  identity list (single-world) but with multi-world the indexing
  is incorrect.  Use UPstream::allProcs() instead.
2023-02-22 10:01:48 +01:00
ffde9c2c6f COMP: backslash instead of slash in Make/options 2023-02-22 09:41:49 +01:00
0081eca87d BUG: expression field functionObject 'store' keyword ignored 2023-02-22 09:41:27 +01:00
a3f173e937 BUG: inconsistent finiteArea proc-boundary contributions (fixes #2672) 2023-02-22 09:37:02 +01:00
06a60286d2 BUG: incorrect order for output scaling (transformPoints, ...)
- the output write scaling should be applied *after* undoing the
  effects of the specified rotation centre. Fixes #2566

ENH: update option names for transformPoints and surfaceTransformPoints

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

  Changing to '-centre' avoids possible confusion with
  coordinate system origin().
2022-08-18 12:29:57 +02:00
6e1fca0e46 CONFIG: bump patch level 2022-06-10 12:25:10 +02:00
7b5cfbd1b0 COMP: Gcc 11+ potential fix - see #2434 2022-06-09 12:58:22 +02:00
40cadfd2f2 COMP: references to temporaries
COMP: include <limits>
2022-06-03 10:04:38 +02:00
91198eaf6a COMP: gcc-12 buffer check bypasses xsputn (#2481, #2496)
- add overflow() method to the SHA1 streambuf. Previously could rely
  on xsputn for adding to sha1 content, but streams now check pptr()
  first to test for the buffering range and thus overflow() is needed.
2022-06-03 10:04:35 +02:00
6f4196ae62 BUG: totalFlowRateAdvectiveDiffusive: missing autoMap. Fixes #2475 2022-05-18 12:19:33 +01:00
f8dc192941 CONFIG: sourcing etc/cshrc twice unset the environment (fixes #2458) 2022-05-07 15:53:55 +02:00
2c7621116e COMP: missing linkage to regionFaModels (fixes #2449)
- needed for the lld linker (eg, AMD aocc compiler)
2022-05-06 19:32:34 +02:00
de1aa80593 BUG: SprayParcel - set the child origProc. Fixed #1857 2022-05-06 10:54:39 +01:00
579883354a BUG: ManualInjection - corrected for non-zero SOI. See #2096 2022-05-04 12:39:03 +01:00
0e5dfb1f64 BUG: atmosphericModels: add missing clone functions (fixes #2428) 2022-04-01 08:56:25 +01:00
cae9b6b868 BUG: Added missing GbyNu name - see #2409 2022-03-24 14:27:08 +00:00
b9d6a84314 BUG: Ensure T can be checked-out on destruction of thermo. See #1619 2022-03-24 09:17:19 +00:00
80318542e1 CONFIG: bump patch level 2022-03-01 11:00:00 +01:00
942c354b59 BUG: atmTurbulentHeatFluxTemperature BC - added missing clone() calls for Function1. See #2370 2022-02-25 13:01:04 +00:00
3d7e99b7a7 BUG: timeActivatedFileUpdate file check on non-master (fixes #2377)
ENH: report relative paths for output for easier reading
2022-02-23 12:48:18 +01:00
cc65f5f0f0 TUT: coded functionObject called on execute instead of write
- generated too much output that also missed topology changes,
  which prevents proper post-processing
2022-02-18 10:41:17 +01:00
3d842aac93 BUG: decomposeParDict: operate with masterUncollated. Fixes #2368. 2022-02-16 16:43:33 +01:00
34a3e0abe3 BUG: cyclicAMI: optional settings not written. Fixes #2363 2022-02-16 16:43:25 +01:00
3a6c0d7fb0 BUG: sample/store surface field triggers dimension check (fixes #2361)
- when used for example with wallShearStress, the stress field is
  initially created as incompressible but later updated with the
  correct compressible/incompressible dimensions.

  If this field is sampled as a surface and stored on the registry
  the dimensions should be reset() and not '=' assigned, since that
  causes a dimension check which will obviously fail.
2022-02-11 14:27:00 +01:00
19398ded1c CONFIG: align adios2 settings with shipped ThirdParty version (#2353) 2022-02-04 09:01:32 +01:00
d44c8318f0 COMP: use automatic cleanup for run-time compat table (fixes #2314)
- occurs with newer gcc on ubuntu impish (gcc-11.2.0), but may perhaps
  actually be related to `-flto=auto` or to the destruction order of
  the static variables (race condition?).

  Leaving the compat table around for automatic cleanup does not
  impact on other lookups (which are nullptr checked anyhow).
2022-01-11 11:39:57 +01:00
91b5525749 CONFIG: incorrect lib-name handling (fixes #2322) 2022-01-11 11:24:24 +01:00
48562b8649 BUG: KinematicReynoldsNumber: enable cloud function object (fixes #2317)
TUT: hopperEmptying: add an example for KinematicReynoldsNumber
DOC: ThermoReynoldsNumber/KinematicReynoldsNumber: correct the usage examples
2022-01-11 11:24:24 +01:00
145f29cc9a Merge branch 'develop' 2021-12-21 19:19:38 +00:00
14aeaf8dab RELEASE: Updated version to v2112 2021-12-20 18:57:43 +00:00
34e226dfe3 RELEASE: updated completion cache 2021-12-20 18:57:43 +00:00
a2014242cf RELEASE: Updated headers for v2112 2021-12-20 14:18:01 +00:00
281f136f38 DOC: Fixed some doxygen complaints 2021-12-20 14:17:59 +00:00
af864cdcd1 ENH: Adding option mesh flux correction to solidFoam 2021-12-16 11:59:36 -08:00
83243cf01e COMP: non-group-local communicator for MS-MPI (mingw)
- partial revert for 13740de427 (#2158)

  MS-MPI does not currently have a MPI_Comm_create_group(),
  so keep using MPI_Comm_create() there.

  Only affects multi-world simulations.

CONFIG: retain dummy version of libPstream.dll

- retain as libPstream.dll-dummy so that it is available for
  manual replacement of the regular libPstream.dll (#2290)

  Keep extra copy of libPstream.dll as libPstream.dll-msmpi
  (for example) for manual replacement.
2021-12-16 14:44:28 +01:00
c2368e3775 COMP: fix regionFaModels linkage (mingw) 2021-12-16 12:41:45 +01:00
1a4975a021 CONFIG: set API level to 2112 (now in pre-release state) 2021-12-15 19:15:07 +01:00
b0748af9f6 CONFIG: update versions
- ADIOS2-2.7.1      latest
- CGAL-4.14.3       latest without c++14 requirement
- ParaView-v5.10.0  final (or RC2)
- boost_1_74_0      newest is 1_77_0 but had problems with gcc-4.8.5
- fftw-3.3.10       bugfix
- openmpi-4.1.2     latest
- scotch_6.1.0 (no change) - dgraph regression in 6.1.2
- kahip-3.14        latest
2021-12-15 19:14:44 +01:00
a526dcb305 SUBMODULE: use OpenFOAM-v2112 tagged OpenQBMM version 2021-12-15 19:13:27 +01:00
2f07de03ff COMP: add -pthread for AMD compiler rule
- https://github.com/spack/spack/pull/27949

COMP: respect FOAM_BUILDROOT for wmake -queue

STYLE: fix stray paraview setting
2021-12-15 19:13:27 +01:00
b632e7b500 STYLE: specify pointer type 2021-12-15 19:13:27 +01:00
ec3cdf57bb ENH: have expression dupZeroField respect defaultBoundaryType
- this is now consistent with what the internal
  "get(Vol|Surface|Point)Field" methods deliver
  (ie, zero-gradient for volume, calculated otherwise).

  Still some slight inconsistencies with what the internal
  "new(Vol|Surface|Point)Field" methods deliver however.
  There they are always "calculated"
2021-12-15 19:13:27 +01:00
223e06dfb8 BUG: Adding virtual function Cp to SpecieMixture 2021-12-15 09:57:29 -08:00
79c23b0d23 BUG: energyTransport: delete own storage. Fixes #2302 2021-12-15 13:48:24 +00:00
ae708e67b5 Merge branch 'feature-lagrangian-additions' into 'develop'
Lagrangian modelling updates/new features

See merge request Development/openfoam!521
2021-12-15 10:46:57 +00:00
c4cc33b748 ENH: Added new FaceInteraction cloudFunctionObject
Enables particles to interact with mesh faces (decsribed using faceZones).

    faceInteraction1
    {
        type            faceInteraction;
        faceZones
        (
            (blockageFaces    stick)
//            (blockageFaces    escape)
//            (blockageFaces    rebound) // not applicable for this test case (!)
        );

        dMin            0;
        dMax            1;
    }

The faceZones entry is a list of (faceZoneName interactionType), where
interaction type is either stick, escape or rebound.
2021-12-15 10:46:34 +00:00
f64e2864f7 TUT: Lagrangian - added example showing moving injector 2021-12-15 10:46:34 +00:00
c754c1ccbf ENH: ConeNozzleInjection - enabled direction to change as f(time)
- Now only has the options 'point' and 'disk' (deprecated movingPoint)
  - moving state is based on the type of Function1

- The position and direction entries are Function1-types, e.g. for the 'table'
  type the entries could be:

        position        table
        (
            (  0 (0.1 0.5 0.5))
            (0.2 (0.5 0.9 0.5))
            (0.4 (0.9 0.5 0.5))
            (0.6 (0.5 0.1 0.5))

            (0.8 (0.5 0.5 0.9))
            (1.0 (0.5 0.9 0.5))
            (1.2 (0.5 0.5 0.1))
            (1.4 (0.5 0.1 0.5))

            (1.6 (0.1 0.5 0.5))
            (1.8 (0.5 0.5 0.9))
            (2.0 (0.9 0.5 0.5))
            (2.2 (0.5 0.5 0.1))
        );

        direction       table
        (
            (  0 ( 1  0  0))
            (0.2 ( 0 -1  0))
            (0.4 (-1  0  0))
            (0.6 ( 0  1  0))

            (0.8 ( 0  0 -1))
            (1.0 ( 0 -1  0))
            (1.2 ( 0  0  1))
            (1.4 ( 0  1  0))

            (1.6 ( 1  0  0))
            (1.8 ( 0  0 -1))
            (2.0 (-1  0  0))
            (2.2 ( 0  0  1))
        );
2021-12-15 10:46:34 +00:00
0260643c67 ENH: PatchInjectionModel - added new parcel initial velocity options
The parcel initial velocity can now be set using the new `velocityType`
entry, taking one of the following options:

- fixedValue   : (default) same as earlier versions, requires U0
- patchValue   : velocity set to seed patch face value
- zeroGradient : velocity set to seed patch face adjacent cell value

Example usage:

        model1
        {
            type            patchInjection;
            massTotal       1;
            SOI             0;
            parcelBasisType mass;
            patch           cylinder;
            duration        10;
            parcelsPerSecond 100;
            velocityType    patchValue;
            //velocityType    zeroGradient;
            //U0              (-10 0 0);
            flowRateProfile constant 1;
            sizeDistribution
            {
                type        normal;
                normalDistribution
                {
                    expectation 1e-3;
                    variance 1e-4;
                    minValue 1e-5;
                    maxValue 2e-3;
                }
            }
        }

See the new $FOAM_TUTORIALS/lagrangian/kinematicParcelFoam/spinningDisk tutorial
2021-12-15 10:46:34 +00:00
0e7920efc3 Merge branch 'feature-acceleration-relaxation' into 'develop'
ENH: rigidBodyMotion: new Function1-type accelerationRelaxation

See merge request Development/openfoam!520
2021-12-15 10:17:11 +00:00
208aee14af TUT: liquidFilmStepWithSprinkles: add shearStress entry 2021-12-15 10:17:04 +00:00
c47eb2fe80 TUT: replace turbulentTemperatureCoupledBaffleMixed boundary condition
The turbulentTemperatureCoupledBaffleMixed boundary condition
has been superseded by the turbulentTemperatureRadCoupledMixed condition

TUT: injectorPipe: remove an unused entry

TUT: waveMakerFlap: remove uncompressed entry
2021-12-15 10:17:04 +00:00
beea7ba62f TUT: nonOrthogonalChannel/skewnessCavity: migrate under verificationAndValidation
TUT: nonOrthogonalChannel: refactor productionRate computation (fixes #2285)
2021-12-15 10:17:04 +00:00
4c2728a45c ENH: rigidBodyMotion: new Function1-type accelerationRelaxation
TUT: floatingObject: add Function1-type accelerationRelaxation example
2021-12-15 10:17:04 +00:00
18dd013e22 Merge branch 'feature-sub-cooling-ext' into 'develop'
Additional sub-cooling heat transfer correlations for liquid H2

See merge request Development/openfoam!509
2021-12-15 10:16:49 +00:00
cd2e69923e STY: Function names and arguments order 2021-12-15 10:16:20 +00:00
e5b64f7740 ENH: Calculating L from saturation states. 2021-12-15 10:16:20 +00:00
43f904ba9c STYLE: phaseSystemModels: modernise code style
BUG: LemmertChawla: add missing write function

BUG: alphatPhaseChangeJayatillekeWallFunction:
     remove unused maxExp, Tw, and Tp objects

BUG: alphatFixedDmdtWallBoilingWallFunction: add missing ctor entries
2021-12-15 10:16:20 +00:00
50137a483d DOC: phaseSystemModels: improve header-file documentation 2021-12-15 10:16:20 +00:00
94b3e5b406 ENH: alphatBoilingWallFunction: add nucleating model
ENH: Copying alphatLiquid value to alphatVapour for boiling regimes.

When using correlations for boiling regimes the phases next to the
wall are not relevant to these. Therefore the alphat is copied
accordingly from the alphat for liquid.
Only in the sub-cooling RPI model the partition of heat flux
between vapour and liquid is considered.
2021-12-15 10:16:20 +00:00
29f2eddf80 ENH: Shirai: new TDNB model 2021-12-15 10:16:20 +00:00
63e294c55c ENH: Tatsumoto: new CHF sub-cooling model 2021-12-15 10:16:20 +00:00
c51fc0175e ENH: exponential: new nucleate flux model 2021-12-15 10:16:20 +00:00
1f0671694f ENH: Kutaledze: new nucleate flux model 2021-12-15 10:16:20 +00:00
6615699801 ENH: BreenWestwater: new film boiling model 2021-12-15 10:16:20 +00:00
17657673b2 ENH: Updating wall boiling models for new rho and Cp functions 2021-12-15 10:16:20 +00:00
f309319c06 BUG: Fixing Href for hPolynomialThermo.
Tref, Href , Sref and Pref are optional inputs to set the enthalpy
at Href for Tref. Pref is needed for the departure function EoS::H
2021-12-15 10:16:20 +00:00
13b1417710 ENH: Adding new access to basic thermo for rho and Cp 2021-12-15 10:16:20 +00:00
b18dd0cb43 Merge branch 'feature-dynamic-solvers' into 'develop'
ENH: Adding dynamic-mesh motion capabilities to various solvers

See merge request Development/openfoam!505
2021-12-15 10:16:08 +00:00
18bc876c93 ENH: rhoCentralFoam: add dynamic-mesh motion capabilities
ENH: discard rhoCentralDyMFoam by merging it with rhoCentralFoam
2021-12-15 10:15:37 +00:00
445baaf277 ENH: buoyantPimpleFoam: add dynamic-mesh motion capabilities 2021-12-15 10:15:37 +00:00
19705bdd64 ENH: buoyantBoussinesqPimpleFoam: add dynamic-mesh motion capabilities 2021-12-15 10:15:37 +00:00
ee36fe8c0f ENH: Adding optional output fields for Tdew and HR 2021-12-14 10:32:48 -08:00
bc192e249c Merge branch 'feature-propeller-info' into 'develop'
Added new propellerInfo function object

See merge request Development/openfoam!519
2021-12-14 16:45:31 +00:00
fd257cb011 TUT: propeller - added example use of propellerInfo function object 2021-12-14 16:45:03 +00:00
734a3143dc ENH: Added new propellerInfo function object
Calculates propeller performance and wake field properties.

Controlled by executeControl:
- Propeller performance
  - Thrust coefficient, Kt
  - Torque coefficient, 10*Kq
  - Advance coefficient, J
  - Open water efficiency, etaO
  - Written to postProcessing/<name>/<time>/propellerPerformance.dat

Controlled by writeControl:
- Wake field text file
  - Wake: 1 - UzMean/URef
  - Velocity in cylindrical coordinates at xyz locations
  - Written to postProcessing/<name>/<time>/wake.dat
- Axial wake field text file
  - 1 - Uz/URef at r/R and angle
  - Written to postProcessing/<name>/<time>/axialWake.dat
- Velocity surface
  - Written to postProcessing/<name>/surfaces/time>/disk.<fileType>

Usage

    Example of function object specification:
    \verbatim
    propellerInfo1
    {
        type            propellerInfo;
        libs            (forces);
        writeControl    writeTime;

        patches         ("propeller.*");

        URef            5; // Function1 type; 'constant' form shown here
        rho             rhoInf; // incompressible
        rhoInf          1.2;

        // Optionally write propeller performance data
        writePropellerPerformance yes;

        // Propeller data:

        // Radius
        radius          0.1;

        rotationMode    specified; // specified | MRF

        // rotationMode = specified:
        origin          (0 -0.1 0);
        n               25.15;
        axis            (0 1 0);

        // Optional reference direction for angle (alpha) = 0
        alphaAxis       (1 0 0);

        //// rotationMode = mrf
        //// MRF             MRFZoneName;
        //// (origin, n and axis retrieved from MRF model)

        // Optionally write wake text files
        // Note: controlled by writeControl
        writeWakeFields yes;

        // Sample plane (disk) properties
        // Note: controlled by writeControl
        sampleDisk
        {
            surfaceWriter   vtk;
            r1              0.05;
            r2              0.2;
            nTheta          36;
            nRadial         10;
            interpolationScheme cellPoint;
            errorOnPointNotFound false;
        }
    }
    \endverbatim

    Where the entries comprise:
    \table
        Property        | Description                   | Required | Deflt value
        type            | Type name: propellerInfo      | yes      |
        log             | Write to standard output      | no       | no
        patches         | Patches included in the forces calculation | yes |
        p               | Pressure field name           | no       | p
        U               | Velocity field name           | no       | U
        rho             | Density field name            | no       | rho
        URef            | Reference velocity            | yes      |
        rotationMode    | Rotation mode (see below)     | yes      |
        origin          | Sample disk centre            | no*      |
        n               | Revolutions per second        | no*      |
        axis            | Propeller axis                | no*      |
        alphaAxis       | Axis that defines alpha=0 dir | no       |
        MRF             | Name of MRF zone              | no*      |
        originOffset    | Origin offset for MRF mode    | no       | (0 0 0)
        writePropellerPerformance| Write propeller performance text file | yes |
        writeWakeFields | Write wake field text files   | yes      |
        surfaceWriter   | Sample disk surface writer    | no*      |
        r1              | Sample disk inner radius      | no       | 0
        r2              | Sample disk outer radius      | no*      |
        nTheta          | Divisions in theta direction  | no*      |
        nRadial         | Divisions in radial direction | no*      |
        interpolationScheme | Sampling interpolation scheme | no* | cell
    \endtable

Note
- URef is a scalar Function1 type, i.e. supports constant, table, lookup values
- rotationMode is used to set the origin, axis and revolutions per second
  - if set to 'specified' all 3 entries are required
    - note: origin is the sample disk origin
  - if set to 'MRF' only the MRF entry is required
    - to move the sample disk away from the MRF origin, use the originOffset
- if writePropellerPerformance is set to on|true:
  - propellerPerformance text file will be written
- if writeWakeFields is set to on|true:
  - wake and axialWake text files will be written
- if the surfaceWriter entry is set, the sample disk surface will be written
  - extents set according to the r1 and r2 entries
  - discretised according to the nTheta and nRadial entries
2021-12-14 16:45:03 +00:00
692734bc69 BUG: Consistent addition of coefficients on mappedPAtch. Fixes #2294 2021-12-13 14:04:40 -08:00
7438aa6c01 Merge branch 'feature-interIsoFoam-update' into 'develop'
Update of interIsoFoam and isoAdvection extending to work with porous media

See merge request Development/openfoam!511
2021-12-13 17:11:34 +00:00
7b6572b483 ENH: geometricVoF: added profiling 2021-12-13 17:09:10 +00:00
5fa2bc030d TUT: discInConstantPorousFlow/porousDamBreak: new tutorials for interIsoFoam
TUT: create verificationAndValidation/multiphase
     directory and migrate StefanProblem into this
2021-12-13 17:09:10 +00:00
b7af3ff891 TUT: interIsoFoam: remove redundant entries 2021-12-13 17:09:10 +00:00
0bf7758dd4 ENH: interIsoFoam/isoAdvection: new porosity extension
Co-authored-by: Niels Gjøl Jacobsen <>
Co-authored-by: Konstantinos Missios <>
Co-authored-by: Henning Scheufler <henning.scheufler@dlr.de>
Co-authored-by: Johan Roenby <johan.roenby@gmail.com>
2021-12-13 17:09:10 +00:00
d2c1eac501 Merge branch 'feature-age-comfort' into 'develop'
INT: age/comfort: New field function objects

See merge request Development/openfoam!512
2021-12-13 17:07:00 +00:00
97081969b4 INT: comfortHotRoom: new tutorial for age and comfort function objects 2021-12-13 17:04:53 +00:00
923e8103dc INT: age/comfort: add new field function objects 2021-12-13 17:04:53 +00:00
7419b0bf98 ENH: heatTransferCoeff function object - use ::he(p,T) instead of ::he() 2021-12-13 14:37:47 +00:00
644bd11a93 BUG: GAMG: manual processorAgglomerator incorrect input. See #2281. 2021-12-13 14:24:53 +00:00
eb3c806ff9 COMP: dynamicCode: add missing default constructor
Used copy constructor for dictionary. Probably not
necessary.
2021-12-13 13:20:04 +00:00
818a5c3dc2 BUG: swirlFanVelocity: incorrect writing. Fixes #2298. 2021-12-13 09:26:48 +00:00
c46216e645 COMP: Added missed file 2021-12-10 15:43:22 +00:00
7da2a5e096 ENH: redistributePar: reconstruct mode in collated. Fixes #2194 2021-12-10 15:24:04 +00:00
33b2e0df3d Merge branch 'feature-fvExpressionField' into 'develop'
New "exprField" function object

See merge request Development/openfoam!516
2021-12-10 14:46:33 +00:00
8d4ad0438d ENH: add exprField function object
- provides a simple means of defining/modifying fields. For example,

  ```
  <name1>
  {
      type    exprField;
      libs    (fieldFunctionObjects);
      field   pTotal;

      expression  "p + 0.5*(rho*magSqr(U))";
      dimensions  [ Pa ];
  }
  ```
  It is is also possible to modify an existing field.
  For example, to modify the previous one.
  ```
  <name2>
  {
      type    exprField;
      libs    (fieldFunctionObjects);
      field   pTotal;
      action  modify;

      // Static pressure only in these regions
      fieldMask
      #{
          (mag(pos()) < 0.05) && (pos().y() > 0)
       || cellZone(inlet)
      #};
      expression  "p";
  }
  ```

  To use as a simple post-process calculator, simply avoid storing the
  result and only generate on write:
  ```
  <name2>
  {
      store            false;
      executionControl none;
      writeControl     writeTime;
      ...
  }
  ```
2021-12-10 14:46:21 +00:00
a6cbfcb9ba STYLE: qualify expression debug flags
- for debug/tracing handle the following keywords:

   * debug.driver   (was "debugBaseDriver")
   * debug.scanner  (was "debugScanner")
   * debug.parser   (was "debugParser")
2021-12-10 14:46:21 +00:00
510ffb3322 ENH: code reduction, improvements for expressions
- literal lookups only for expression strings

- code reduction for setExprFields.

- changed keyword "condition" to "fieldMask" (option -field-mask).
  This is a better description of its purpose and avoids possible
  naming ambiguities with functionObject triggers (for example)
  if we apply similar syntax elsewhere.

BUG: erroneous check in volumeExpr::parseDriver::isResultType()

- not triggered since this method is not used anywhere
  (may remove in future version)
2021-12-10 14:46:21 +00:00
39f6618d3a TUT: counterFlowFlame2D - corrected CH4 fraction. Fixes #2292 2021-12-10 14:34:05 +00:00
6be31e3feb ENH: pimpleFoam - added LTS support 2021-12-10 14:34:05 +00:00
af0b20779e Merge branch 'issues-2021-2' into 'develop'
BUG: 2021-2: Various bug fixes and developments

See merge request Development/openfoam!492
2021-12-09 18:49:20 +00:00
cad325f41f BUG: icoReactingMultiphaseInterFoam: enable phasesSystem surface tension models (Fixes #2228) 2021-12-09 18:49:02 +00:00
de90b2b28e BUG: rotateMesh: prevent double rotations (Fixes #2186) 2021-12-09 18:49:02 +00:00
8ac0548c6a BUG: solidificationMeltingSource: allow topology changes (Fixes #2026) 2021-12-09 18:49:02 +00:00
c8db0d135f BUG: solitaryWaveModel: avoid reference access to an operand object (Fixes #2178) 2021-12-09 18:49:02 +00:00
b053e2214c BUG: LESdelta: avoid double object registrations (Fixes #1171) 2021-12-09 18:49:02 +00:00
0c20256be5 BUG: LiquidEvapFuchsKnudsen: add missing particle surface area (Fixes #2069) 2021-12-09 18:49:02 +00:00
ae555ec744 BUG: alphatWallBoilingWallFunction: remove redundant phaseType=vapor entries (Fixes #2243) 2021-12-09 18:49:02 +00:00
ee955b19e5 STYLE: snappyHexMeshDict: remove excess entries 2021-12-09 17:09:34 +00:00
5b61013cf5 Merge branch 'feature-casting-oxide' into 'develop'
ENH: interfaceOxideRate: new mass transfer model for icoReactingMultiphaseInterFoam solver

See merge request Development/openfoam!510
2021-12-09 17:05:23 +00:00
1fca0d8d23 TUT: icoReactingMultiphaseInterFoam: new tutorial oxideFormation
Co-authored-by: sergio <s.ferraris@opencfd.co.uk>
2021-12-09 17:04:10 +00:00
60f3d416a6 ENH: InterfaceCompositionModels: add new thermo types for oxidation mass model 2021-12-09 17:04:10 +00:00
402bc0fef0 ENH: multiphaseSystem: add alpha1 boundary manipulation 2021-12-09 17:04:10 +00:00
437ea6917a ENH: timeVaryingMassSorption: new boundary condition for icoReacting solvers
Co-authored-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2021-12-09 17:04:10 +00:00
ea9d424e24 ENH: interfaceOxideRate: New mass transfer model
Based on:

    Cao, L., Sun, F., Chen, T., Tang, Y., & Liao, D. (2018).
    Quantitative prediction of oxide inclusion defects inside
    the casting and on the walls during cast-filling processes.
    International Journal of Heat and Mass Transfer, 119, 614-623.
    DOI:10.1016/j.ijheatmasstransfer.2017.11.127

Co-authored-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2021-12-09 17:04:10 +00:00
6580f1bbef ENH: interfaceCompositionModel: refactor Tactivate and includeDivU funcs 2021-12-09 17:04:10 +00:00
142fc55f44 TUT: icoReactingMultiphaseInterFoam: correct the directory name 2021-12-09 17:04:10 +00:00
f67406ddb2 Merge branch 'feature-liquidFilm' into 'develop'
ENH: New liquid film features

See merge request Development/openfoam!508
2021-12-09 17:02:18 +00:00
e479f842b3 ENH: liquidFilmModel: change default write option to NO_WRITE for few fields 2021-12-09 17:01:46 +00:00
b69ceb54a7 ENH: Adding shear stress to the film from the wall function
TUT: inclinedPlaneFilm/pitzDailyWithSprinklers: add shearStress model
2021-12-09 17:01:46 +00:00
9e8fd66ed2 BUG: faOption-limitVelocity: remove remnants of fvOption
COMP: ensure compilation of faOption-limitVelocity
2021-12-09 17:01:46 +00:00
eabafe5f9e BUG: filmTurbulenceModel: fix film friction models
STYLE: filmTurbulenceModel: add default destructor
2021-12-09 17:01:46 +00:00
9024441566 ENH: iglooWithFridges: demonstrate threaded, collated handling. See #2194. 2021-12-09 16:33:26 +00:00
c3c23c3cb2 ENH: allow top-level definition of function object name scoping
- this refines commit c233961d45, which added prefix scoping.

  Default is now off (v2106 behaviour).

  The 'useNamePrefix' keyword can be specified on a per function basis
  or at the top-level of "functions".

  ```
      functions
      {
          errors          warn;
          useNamePrefix   true;

          func1
          {
              type  ...;
              useNamePrefix   false;
          }

          func2
          {
              type  ...;
              // Uses current default for useNamePrefix
          }
      }
  ```
2021-12-09 15:42:51 +01:00
638d1fe8f6 BUG: blockMesh verbosity set too late
- sort out the command-line vs dictionary vs default logic *before*
  constructing any other members since they too are influenced by the
  verbosity.
2021-12-09 15:42:51 +01:00
fde3904796 GIT: relocate PrecisionAdaptor to memory/ 2021-12-09 15:42:51 +01:00
698ff5eedc STYLE: inherit SubField from FieldBase instead of refCount
- at the moment there is no significant difference since FieldBase is
  essentially just a refCount anyhow, but changing the inheritance
  ensures that reinterpret casting from SubField -> Field will
  continue to work if FieldBase is changed in the future.
2021-12-09 15:42:51 +01:00
efb187e3f7 ENH: support optional dimensionSet reading 2021-12-09 15:42:46 +01:00
8c98906780 ENH: MRFZone|List - enable re-reading; code clean-up 2021-12-09 13:33:13 +00:00
d7f7267165 Merge branch 'fix-2291-patchProbes' into 'develop'
ENH: patchProbes: output patch. Fixes #2291.

See merge request Development/openfoam!515
2021-12-09 09:23:00 +00:00
f19883c0c6 ENH: patchProbes: output patch. Fixes #2291. 2021-12-09 09:20:19 +00:00
aaf4f40bf7 Merge branch 'feature-adjoint-smoothed-sensitivity-map' into 'develop'
Added functionality for smoothing the sensitivity derivatives

See merge request Development/openfoam!504
2021-12-09 09:18:36 +00:00
f6dfa76f6d TUT: updated the motorbike tutorial
to also compute smoothed sensitivity maps
2021-12-09 09:18:02 +00:00
90d62c33e4 INT: Minor integration updates 2021-12-09 09:18:02 +00:00
3ef0d19ef4 ENH: added functionality for smoothing the sensitivity derivatives
A Helmholtz-like filter is applied to the original field of sensitivity
derivatives. The corresponding PDE is solved on the sensitivity patches,
using the finite area infrastructure. A smoothing radius is needed,
which is computed based on the average 'length' of the boundary faces,
if not provided by the user explicitly.

If an faMesh is provided, it will be used; otherwise it will be created
on the fly based on either an faMeshDefinition dictionary in system or
one constructed internally based on the sensitivity patches.
2021-12-09 09:18:02 +00:00
0343d3d7e9 Merge branch 'feature-nonorthogonal-correction-schemes' into 'develop'
ENH: New schemes for non-orthogonal meshes

See merge request Development/openfoam!502
2021-12-08 12:08:01 +00:00
ada3d1c77e TUT: nonOrthogonalChannel: new non-orthogonality test case 2021-12-08 12:07:26 +00:00
86da88cdfd ENH: Added relaxed nonOrthogonal laplacian corrector scheme 2021-12-08 12:07:26 +00:00
391c1eaa40 ENH: snGradSchemes: new scheme relaxedSnGrad
Surface gradient scheme with under-/over-relaxed
full or limited explicit non-orthogonal correction.

A minimal example by using system/fvSchemes:

  snGradSchemes
  {
      snGrad(<term>)       relaxed;
  }

and by using system/fvSolution:

  relaxationFactors
  {
      fields
      {
          snGrad(<term>)   <relaxation factor>;
      }
  }
2021-12-08 12:07:26 +00:00
37a6fc8db3 STYLE: snGradSchemes: modernise and clean up code
ENH: removes an unused scalarField from skewCorrectedSnGrad

DOC: snGradSchemes: improve header-file documentation
2021-12-08 12:07:26 +00:00
96821f70cd Merge branch 'feature-skew-corrected-gradient' into 'develop'
ENH: New gradient scheme iterativeGaussGrad

See merge request Development/openfoam!500
2021-12-08 11:05:43 +00:00
cac0bf856b TUT: skewnessCavity: new skewness test case 2021-12-08 11:05:06 +00:00
adf6869bba ENH: gradSchemes: new gradient scheme iterativeGaussGrad
A second-order gradient scheme using face-interpolation,
Gauss' theorem and iterative skew correction.

Minimal example by using system/fvSchemes:

  gradSchemes
  {
    grad(<term>) iterativeGauss <interpolation scheme> <number of iters>;
  }
2021-12-08 11:05:06 +00:00
563456087c STYLE: gradSchemes: modernise and clean up code 2021-12-08 11:05:06 +00:00
41b30af01a TUT: pisoFoam/RAS/cavity - updated FOreference 2021-12-08 10:00:46 +00:00
f6ccd77d8c BUG: sampledSets - ensure results are written on all procs 2021-12-07 21:09:14 +00:00
65bc8d1140 STYLE: remove local version of momentum::scopedName
BUG: incorrect return for unscoped functionObject name
2021-12-07 15:48:19 +01:00
b25e1486de CONFIG: adjust paraview libs, intelmpi handling
- fix overly aggressive match in the API value

- allow `INTELMPI*` generic value, this can be used to specify something
  like INTELMPI_custom and populate the corresponding wmake rule
  manually

STYLE: mention FOAM_BUILDROOT in wmake -help-full output

STYLE: adjust openfoam shell session welcome information

- adjust internal variable names to reduce collision potential

- improve handling of openfoam -etc=...
2021-12-07 15:22:32 +01:00
810d0c72ee Merge branch 'feature-sampled-sets-extension' into 'develop'
sampledSets - enable writer construction from dictionary; glTF export

See merge request Development/openfoam!503
2021-12-06 13:14:09 +00:00
34b4770949 TUT: Added glTF export example for field and track data 2021-12-06 12:26:49 +01:00
85b405206d ENH: Added new glTF sammpled set writer
Description
    Writes point data in glTF v2 format

    Two files are generated:
    - filename.bin  : a binary file containing all scene entities
    - filename.gltf : a JSON file that ties fields to the binary data

    The output can contain both geometry and fields, with additional support
    for colours using a user-supplied colour map, and animation of particle
    tracks.

    Controls are provided via the optional formatOptions dictionary.

    For non-particle track data:

    \verbatim
    formatOptions
    {
        // Apply colours flag (yes | no ) [optional]
        colours     yes;

        // List of options per field
        fieldInfo
        {
            p
            {
                // Colour map [optional]
                colourMap       <colourMap>;

                // Colour map minimum and maximum limits [optional]
                // Uses field min and max if not specified
                min             0;
                max             1;

                // Alpha channel [optional] (uniform | field)
                alpha           uniform;
                alphaValue      0.5;

                //alpha           field;
                //alphaField      T;
                //normalise       yes;
            }
        }
    }
    \verbatim

    For particle tracks:

    \verbatim
    formatOptions
    {
        // Apply colours flag (yes | no) [optional]
        colours     yes;

        // Animate tracks (yes | no) [optional]
        animate     yes;

        // Animation properties [optional]
        animationInfo
        {
            // Colour map [optional]
            colourMap       <colourMap>;

            // Colour [optional] (uniform | field)
            colour          uniform;
            colourValue     (1 0 0); // RGB in range [0-1]

            //colour          field;
            //colourField     d;

            // Colour map minimum and maximum limits [optional]
            // Note: for colour = field option
            // Uses field min and max if not specified
            min             0;
            max             1;

            // Alpha channel [optional] (uniform | field)
            alpha           uniform;
            alphaValue      0.5;

            //alpha           field;
            //alphaField      T;
            //normalise       yes;
        }
    }
    \endverbatim

Note
    When writing particle animations, the particle field and colour properties
    correspond to initial particle state (first data point) and cannot be
    animated (limitation of the file format).

    For more information on the specification see
    https://www.khronos.org/registry/glTF/
2021-12-06 12:26:49 +01:00
0f155daf86 ENH: particleTracks - updated to include field data
The utility will now add field data to all tracks (previous version only
created the geometry)

The new 'fields' entry can be used to output specific fields.

Example

    cloud           reactingCloud1;

    sampleFrequency 1;

    maxPositions    1000000;

    fields          (d U); // includes wildcard support

STYLE: minor typo fix
2021-12-06 12:26:49 +01:00
98c25d163a ENH: sampledSets - enable writer construction from dictionary
Users can now include additional controls via a new formatOptions dictionary.
2021-12-06 12:26:48 +01:00
e5267bf81d ENH: sampledSetWriters - updated writing of particle tracks 2021-12-06 12:26:48 +01:00
79fafda22c ENH: Cloud - added function to read cloud fields from disk to obr 2021-12-06 12:26:48 +01:00
f5f93e81d8 COMP: temperatureCoupledBase: make API consistent. Fixes #2287. 2021-12-06 10:54:43 +00:00
29f7fcc515 COMP: workaround clang-13 optimization issue (vtk handling) 2021-12-03 21:23:44 +01:00
9a5125111e ENH: add coded Function1 (#2282)
- update coded templates with qualified names

GIT: add in missing PatchFunction1 constant() method

- was missed in a previous commit
2021-12-03 20:56:10 +01:00
8624d65c5a ENH: support alternative build-root location (#2286)
- specify any of these

    ./Allwmake -build-root=...
    wmake -build-root=...
    FOAM_BUILDROOT=... wmake

  these specify an alternative root where build artifacts are to land.
  Currently only used as an alternative for the 'build/' hierarchy
  since the 'platforms/' target normally includes inputs as well.

  Possible use:
  ```
  (
      export WM_MPLIB="%{foam_mplib}"
      export FOAM_MPI="%{foam_mpi}"
      export MPI_ARCH_PATH="%{mpi_prefix}"

      export FOAM_BUILDROOT=/tmp/mpibuild
      export FOAM_MPI_LIBBIN="$FOAM_BUILDROOT/platforms/$WM_OPTIONS/lib/$FOAM_MPI"

      src/Pstream/Allwmake-mpi
   )
   ```
2021-12-03 17:10:22 +01:00
27e57c29f7 BUG: dangling dictionary reference for expression BCs
- exposed by the new embedded function handling.

  Requires local copies of dictionary content instead
  (similar to coded BCs handling)

BUG: incorrect formatting for expression function output

ENH: simpler copyDict version taking wordList instead of wordRes

- corresponds to the most common use case at the moment

ENH: expression string writeEntry method

- write as verbatim for better readability
2021-12-03 17:10:22 +01:00
e09298092d ENH: support negated regular expressions (#2283)
- extendes the prefix syntax to handle '!' values.

  For example,  "(?!).*processor.*" or "(?!i)inlet.*"
2021-12-03 17:10:22 +01:00
49e26dd7d2 ENH: consistent specification of fan conditions (fixes #2279) 2021-12-03 17:10:22 +01:00
31a7c2a9cd ENH: initial use of ReactionTable to wrap information 2021-12-03 17:10:22 +01:00
c7f30a0989 STYLE: use Hash<word> instead of string::hasher for runTimeSelectionTables 2021-12-03 15:55:19 +01:00
bdf77bbdd1 ENH: simplify hashing overloads of string-types
- this revises the changes made in 95cd8ee75c to replace the
  SFINAE-type of handling of string hashes with direct definitions.

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

STYLE: drop template key defaulting from HashSet

- this was never used and `HashSet<>` is much less transparent
  than writing `HashSet<word>` or `wordHashSet`
2021-12-03 15:55:19 +01:00
939c335504 INT: liquidProperties: support for user defined liquid properties (#2141)
- Generic thermophysical properties class for a liquid in which the
  functions and coefficients for each property are run-time selected.

  Code adapted from openfoam.org
2021-12-03 15:54:48 +01:00
e9054ec636 COMP: consistent FatalError/FatalIOError exit types
STYLE: hostName() is short name, don't need parameter
2021-12-03 15:32:37 +01:00
ed5dee71a4 BUG: ccm region merge fails (fixes #2048)
- had lookups into the merge-point map instead of
  determining/remapping the duplicate points directly.
  The result was a jumble of face/point addressing.

STYLE: additional debug/verbosity comment for mergePoints
2021-12-03 15:32:37 +01:00
e6f4ae927a LINT: script not marked as bash-specific
CONFIG: cleanup additional build-related env variables
2021-12-03 15:32:37 +01:00
8ed6a61106 CONFIG: set API level to 2109
- Function1, sampledSets, expressions, runTime selection tables
2021-12-03 15:32:37 +01:00
78cc5f8676 SUBMODULE: entries marked as removable, compilation fixes 2021-12-03 15:32:37 +01:00
f7c7fa94a3 ENH: add Function1 constant() member
- marks if the value is considered to be independent of 'x'.
  Propagate into PatchFunction1 instead ad hoc checks there.

- adjust method name in PatchFunction1 to 'whichDb()' to reflect
  final changes in Function1 method names.

ENH: add a Function1 'none' placeholder function

- This is principally useful for interfaces that expect a Function1
  but where it is not necessarily used by a particular submodel.

TUT: update Function1 creation to use objectRegistry
2021-12-03 15:32:37 +01:00
b96cef1339 ENH: [sampled]DistanceSurface - added construct from searchableSurface 2021-12-03 13:48:34 +00:00
9cf26ac7c5 BUG: InjectionModel::findCellAtPosition - celli can be zero 2021-12-03 13:48:34 +00:00
9833e614da BUG: surfaceAlignedSBRStressFvMotionSolver - corrected units (see #2265)
Note - this resolves the reported dimensions error, but it is not clear
if this code (has ever?) run or if this change is appropriate...
2021-12-03 13:48:34 +00:00
6aa608cf33 ENH: MRF - exposed origin and axis; added lookup from name 2021-12-03 13:48:33 +00:00
53e9c8eb5a ENH: forces|Coeffs FO - updated coordinate system 2021-12-03 13:48:33 +00:00
8fc4501c46 Merge branch 'feature-turbulentTemperature_Function1' into 'develop'
ENH: coupling BC: allow Function1. Fixes #2277.

See merge request Development/openfoam!507
2021-12-02 18:03:17 +00:00
29c70e9bbb ENH: coupling BC: allow Function1. Fixes #2277. 2021-12-02 18:03:16 +00:00
6abbcb3eac BUG: GAMG: processorAgglomerator crashes. Fixes #2281.
Problem was extending the storage, copying the
original contents.
2021-11-29 14:44:24 +00:00
2880a54373 Merge branch 'feature-expr-improvements' into 'develop'
Updates for expressions to improve robustness and support functions, external context etc.

See merge request Development/openfoam!501
2021-11-26 12:16:45 +00:00
c0adccf826 ENH: generalize volField lookups to include 'context' objects
- allows an additional HashTable of pointers to reference external
  content which not otherwise directly available via an
  objectRegistry.

  This could typically be used to provide a function-local "rho"
  to the expression evaluation.
2021-11-26 12:24:35 +01:00
643763d258 ENH: add cell/face set/zone support for patch expressions
- for cell quantities, these evaluate on the faceCells associated with
  that patch to produce a field of true/false values

- for face quantities, these simply correspond to the mesh faces
  associated with that patch to produce a field of true/false values
2021-11-26 12:24:35 +01:00
fc6239d96e ENH: add expression support for scalar/vector expression lookups
- similar idea to swak timelines/lookuptables but combined together
  and based on Function1 for more flexibility.

  Specified as 'functions<scalar>' or 'functions<vector>'.
  For example,

  functions<scalar>
  {
      intakeType table ((0 0) (10 1.2));

      p_inlet
      {
          type        sine;
          frequency   3000;
          scale       50;
          level       101325;
      }
  }

  These can be referenced in the expressions as a nullary function or a
  unary function.

  Within the parser, the names are prefixed with "fn:" (function).
  It is thus possible to define "fn:sin()" that is different than
  the builtin "sin()" function.

     * A nullary call uses time value
       - Eg, fn:p_inlet()

     * A unary call acts as a remapper function.
       - Eg, fn:intakeType(6.25)
2021-11-26 12:24:35 +01:00
e6697edb52 ENH: robuster lemon parsing
- previously simply reused the scan token, which works fine for
  non-nested tokenizations but becomes too fragile with nesting.

  Now changed to use tagged unions that can be copied about
  and still retain some rudimentary knowledge of their types,
  which can be manually triggered with a destroy() call.

- provide an 'identifier' non-terminal as an additional catch
  to avoid potential leakage on parsing failure.

- adjust lemon rules and infrastructure:

  - use %token to predefine standard tokens.
    Will reduce some noise on the generated headers by retaining the
    order on the initial token names.

  - Define BIT_NOT, internal token rename NOT -> LNOT

- handle non-terminal vector values.
  Support vector::x, vector::y and vector::z constants

- permit fieldExpr access to time().
  Probably not usable or useful for an '#eval' expression,
  but useful for a Function1.

- provisioning for hooks into function calls. Establishes token
  names for next commit(s).
2021-11-26 12:24:35 +01:00
adbcd3a19f Merge branch 'feature-functionObject-Function1' into 'develop'
Function1 objectRegistry access

See merge request Development/openfoam!499
2021-11-26 11:24:13 +00:00
adcf41bd13 ENH: add Function1 wrapping for functionObject trigger
Returns a 0/1 value corresponding to function object trigger levels.

    Usage:
    \verbatim
        <entryName> functionObjectTrigger;
        <entryName>Coeffs
        {
            triggers        (1 3 5);
            defaultValue    false;  // Default when no triggers activated
        }
    \endverbatim

ENH: add reset() method for Constant Function1

ENH: allow forced change of trigger index

- the triggers are normally increase only,
  but can now override this optionally
2021-11-26 11:22:36 +00:00
30a2fa4b27 BUG: dsmcFields fails with scoped field names 2021-11-26 11:22:36 +00:00
89ddc271c7 ENH: LimitRange Function1 - extended and renamed
Description
    Function1 wrapper that maps the input value prior to it being used by
    another Function1.

    Example usage for limiting a polynomial:
    \verbatim
        <entryName>
        {
            type            inputValueMapper;
            mode            minMax;

            min             0.4;
            max             1.4;

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

    Here the return value will be:
    - poly(0.4) for x <= 0.4;
    - poly(1.4) for x >= 1.4; and
    - poly(x) for 0.4 < x < 1.4.

    Example usage for supplying a patch mass flux for a table lookup:
    \verbatim
        <entryName>
        {
            type            inputValueMapper;
            mode            function;

            function
            {
                type            functionObjectValue;
                functionObject  surfaceFieldValue1;
                functionObjectResult sum(outlet,phi);
            }

            value
            {
                type        table;
                file        "<system>/fanCurve.txt";
            }
        }
    \endverbatim

    Where:
    \table
        Property | Description                                  | Required
        mode     | Mapping mode (see below)                     | yes
        function | Mapping Function1                            | no*
        min      | Minimum input value                          | no*
        max      | Maximum input value                          | no*
        value    | Function of type Function1<Type>             | yes
    \endtable

    Mapping modes include
    - none     : the input value is simply passed to the 'value' Function1
    - function : the input value is passed through the 'function' Function1
                 before being passed to the 'value' Function1
    - minMax   : limits the input value to 'min' and 'max' values before being
                 passed to the 'value' Function1

Note
    Replaces the LimitRange Function1 (v2106 and earlier)
2021-11-26 11:22:36 +00:00
ba45fb2cba ENH: Function1 - updated time-based Function1 usage 2021-11-26 11:22:36 +00:00
f6ee1811e7 STYLE: renamed convertTimeBase to more descriptive userTimeToTime 2021-11-26 11:22:36 +00:00
098aec4962 ENH: Function1's - added objectRegistry access 2021-11-26 11:22:36 +00:00
889bc171d9 TUT: Added example showing use of functionObject result lookup from a Function1 2021-11-26 11:22:36 +00:00
c233961d45 ENH: function objects - apply scoped name when registering objects 2021-11-26 11:22:36 +00:00
9194cd5203 ENH: Deprecated TimeFunction1 usage in favour of Function1 2021-11-26 11:22:36 +00:00
925a2e724b ENH: add caching selector to PatchFunction1
- extend handling of uniform PatchFunction1 to include new Function1
  types and pass through the objectRegistry information
2021-11-26 11:22:36 +00:00
f29eb55cee ENH: Refactored TimeFunction1 - now possible using Function1 directly 2021-11-26 11:22:36 +00:00
b9b011f5ea ENH: Added new sample Function1 2021-11-26 11:22:36 +00:00
bc2b469f9d ENH: Added new Function1: FunctionObjectValue
Returns a value retrieved from a function object result.

Usage:
    <entryName> functionObjectValue;
    <entryName>Coeffs
    {
        functionObject          <name>;
        functionObjectResult    <function object result field name>
    }
2021-11-26 11:22:36 +00:00
2c2310dc17 ENH: reference function object - retrieve reference using Function1
Note: previous behaviour to set the reference to a cell value can be recovered
by using the new 'sample' Function1
2021-11-26 11:22:36 +00:00
70b55be684 COMP: Function1 - propagated API change resulting from new objectRegistry access 2021-11-26 11:22:36 +00:00
c1a04abd96 ENH: Function1 - added optional objectRegistry reference
Function1 can now be created with an object registry, e.g. time or mesh
database. This enables access to other stored objects, e.g. fields,
dictionaries etc. making Function1 much more flexible.

Note: will allow TimeFunction1 to be deprecated
2021-11-26 11:22:36 +00:00
aeef96251f ENH: Refactored stateFunctionObject
- created new functionObjects::properties class derived from IOdictionary
  - replaces raw state IOdictionary owned by functionObjectList
  - state dictionary access/manipulators moved from stateFunctionObject
- stateFunctionObject now acts as a light wrapper around
  functionObjecties::properties
- updated dependent code
2021-11-26 11:22:36 +00:00
b19e767b8f ENH: sampledSets - added min,max,average values to the results dict 2021-11-26 11:22:36 +00:00
f078643f8c ENH: add blockFaces.vtp output for blockMesh -write-vtk 2021-11-25 20:02:09 +01:00
f459b11e24 STYLE: direct iteration over dictionary entries 2021-11-25 20:02:08 +01:00
bcf8a48c68 CONFIG: add build information into shell session
- more closely reflect what the binaries report
- report the installation path
- change PS1 case/separator to roughly correspond to package names

STYLE: adjust README to mention upcoming v2112
2021-11-25 17:36:37 +01:00
1804d3fed5 ENH: additional #word and #message dictionary directives (#2276)
- use `#word` to concatenate, expand content with the resulting string
  being treated as a word token. Can be used in dictionary or
  primitive context.

  In dictionary context, it fills the gap for constructing dictionary
  names on-the-fly. For example,

  ```
  #word "some_prefix_solverInfo_${application}"
  {
      type    solverInfo;
      libs    (utilityFunctionObjects);
      ...
  }
  ```

  The '#word' directive will automatically squeeze out non-word
  characters. In the block content form, it will also strip out
  comments. This means that this type of content should also work:

  ```
  #word {
     some_prefix_solverInfo
     /* Appended with application name (if defined) */
     ${application:+_}  // Use '_' separator
     ${application}     // The application
  }
  {
      type    solverInfo;
      libs    (utilityFunctionObjects);
      ...
  }
  ```
  This is admittedly quite ugly, but illustrates its capabilities.

- use `#message` to report expanded string content to stderr.
  For example,

  ```
  T
  {
     solver          PBiCG;
     preconditioner  DILU;
     tolerance       1e-10;
     relTol          0;
     #message "using solver: $solver"
  }
  ```
  Only reports on the master node.
2021-11-25 17:05:37 +01:00
55af2fc2c6 BUG: missing unit-normal weighting for surfaceFieldValue (fixes #2273)
- when using a vector field for weighting, it either used mag()
  or mag * area, but did not have a unit-normal projection version
2021-11-25 09:39:20 +01:00
ccb0fd9cf0 EMH: Adding layers option and writing out HR and Tdew fields for
humidityTemperature BC
2021-11-24 15:52:24 -08:00
6712548137 Merge branch 'feature-electrodeposition' into 'develop'
ENH: New suite for electrostatic deposition applications

See merge request Development/openfoam!496
2021-11-24 18:06:39 +00:00
27f4cee78d TUT: interFoam: new tutorial for electrostatic deposition 2021-11-24 18:05:58 +00:00
19f7825a04 ENH: electrostaticDeposition: new finiteVolume boundary condition 2021-11-24 18:05:58 +00:00
aaeddba466 ENH: electricPotential: new solver function object 2021-11-24 18:05:58 +00:00
fd9670d4a3 ENH: add objectRegistry handling to expressions driver
- needed for future embedding
2021-11-23 13:37:37 +01:00
fbd7b78999 ENH: make expressions::FieldAssociation a common enum
- use FACE_DATA (was SURFACE_DATA) for similarity with polySurface

ENH: add expression value enumerations and traits

- simple enumeration of standard types (bool, label, scalar, vector)
  that can be used as a value type-code for internal bookkeeping.

GIT: relocate pTraits into general traits/ directory
2021-11-23 12:53:45 +01:00
141403ed98 BUG: compare of two zero-sized faces was returning false 2021-11-23 10:31:24 +01:00
d710bb6595 TUT: Rename tutorial 2021-11-22 09:44:46 -08:00
bb7d8d0f4d BUG: mapped: make consistent with AMI. Fixes #2275 2021-11-22 12:21:13 +00:00
39d244ad91 ENH: add check for isTimeDb() into objectRegistry
- add missing time() into pointMesh

STYLE: use static_cast instead of dynamic_cast for Time -> objectRegistry
2021-11-17 19:52:33 +01:00
1af0380edc Merge branch 'feature-dictionary-reporting' into 'develop'
ENH: report dictionary defaults with Executable prefix

See merge request Development/openfoam!498
2021-11-17 17:33:01 +00:00
3d889b6dbf ENH: report dictionary defaults with Executable prefix
- provides better context when default values are accessed from
  a dictionary than reporting a source file location.
2021-11-17 16:04:46 +01:00
bb771a3caf GIT: remove spurious method declaration in regIOobject
STYLE: adjust param/return for internal readStream method
2021-11-17 16:04:40 +01:00
92d52243af ENH: support cref() and shallow copies (refPtr and tmp)
- enables building HashTables with shadowed variables

- support good() and valid() as synonyms in memory classes
2021-11-17 16:04:40 +01:00
96735dce20 ENH: expose ITstream hasPutback to allow better handling
STYLE: relocate ITstream::parseStream from static to file-scope
2021-11-17 16:04:40 +01:00
4e59ad9d8d ENH: make objectRegistry::cfindIOobject public 2021-11-15 22:13:21 +01:00
28800dcbbc LINT: fix permissions 2021-11-15 21:22:36 +01:00
effd69a005 ENH: add refPtr release() method
- releases ownership of the pointer. A no-op (and returns nullptr)
  for references.

  Naming consistent with unique_ptr and autoPtr.

DOC: adjust wording for memory-related classes

- add is_const() method for tmp, refPtr.

  Drop (ununsed and confusing looking) isTmp method from refPtr
  in favour of is_pointer() or movable() checks

ENH: noexcept for some pTraits methods, remove redundant 'inline'

- test for const first for tmp/refPtr (simpler logic)
2021-11-15 19:34:01 +01:00
9c9d6c64b5 DEFEATURE: remove general objects storage from exprResult
- unused, generally fragile.
2021-11-15 19:19:55 +01:00
adb01bddf4 ENH: use float-narrowing for ensight set writer
- replaces hand-rolled checks

STYLE: minor cleanup of ensightPTraits
2021-11-15 18:14:16 +01:00
e62a260bdd ENH: rhoThermos: enable new set of combinations 2021-11-15 18:14:16 +01:00
8e887d3395 BUG: snappyHexMesh: parallel consistency. Fixes #2271. 2021-11-15 11:46:38 +00:00
168c13c514 ENH: cht: suppress printing of thicknessLayers. Fixes #2266 2021-11-11 08:54:42 +00:00
ba93392f69 Merge branch 'feature-Function1-fvSolution' into 'develop'
ENH: fvSolution: allow Function1 for all scalars

See merge request Development/openfoam!497
2021-11-10 19:06:49 +00:00
53e8f2a807 ENH: fvSolution: allow Function1 for all scalars
TUT: demonstrate some ramping

- compressible/rhoPimpleFoam/RAS/angledDuct
2021-11-10 17:28:52 +01:00
ba95b89e5f ENH: add Function1 caching selector 2021-11-10 17:28:45 +01:00
fd82f3e47a ENH: distinguish between compressible/incompressible coded source
- previously had codeAddSup used for both incompressible and
  compressible source terms. However, it was not actually possible to
  use it for compressible sources since any references to the 'rho'
  parameter would cause a compilation error for the incompressible case.

  Added 'codeAddSupRho' to distinguish the compressible case.
  User must supply one or both of them on input.
2021-11-09 21:48:42 +01:00
8638d82325 ENH: additional dictionary controls, methods
STYLE: declaration order of topoSet, resize_nocopy for sortedOrder

STYLE: remove cstring dependency from SHA1

STYLE: use Ostream endEntry()
2021-11-09 21:33:32 +01:00
79e110aeb0 ENH: update lemon version, wmake wrappers 2021-11-09 21:17:51 +01:00
a78e79908b ENH: additional decompose options
- decomposePar: -no-fields to suppress decomposition of fields

- makeFaMesh: -no-decompose to suppress creation of *ProcAddressing
  and fields, -no-fields to suppress decomposition of fields only
2021-11-09 15:44:54 +01:00
e8aa3aad25 ENH: simple detection for collapsed block descriptions
- switch from default topology merge to point merge if degenerate
  blocks are detected. This should alleviate the problems noted in
  #1862.

  NB: this detection only works for blocks with duplicate vertex
      indices, not ones with geometrically duplicate points.

ENH: add patch block/face summary in blockMesh generation

- add blockMesh -verbose option to override the static or dictionary
  settings.  The -verbose option can be used multiple times to increase
  the verbosity.

ENH: extend hexCell handling with more cellShape-type methods

- allows better reuse in blockMesh.
  Remove blockMesh-local hex edge definitions that shadowed the
  hexCell values.

ENH: simplify some of the block-edge internals
2021-11-09 15:44:54 +01:00
5a121119e6 ENH: add -verbose support into argList
- similar to -dry-run handling, can be interrogated from argList,
  which makes it simpler to add into utilities.

- support multiple uses of -dry-run and -verbose to increase the
  level. For example, could have

    someApplication -verbose -verbose

 and inside of the application:

    if (args.verbose() > 2) ...

BUG: error with empty distributed roots specification (fixes #2196)

- previously used the size of distributed roots to transmit if the
  case was running in distributed mode, but this behaves rather poorly
  with bad input. Specifically, the following questionable setup:

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

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

      WARNING: running distributed but did not specify roots!
2021-11-09 15:44:54 +01:00
c45c649d15 ENH: portable scoping char for solver info names (#2224, #1675)
COMP: implicit cast scope name to C++-string in IOobject::scopedName

- handles 'const char*' and allows a check for an empty scope name

COMP: avoid potential name conflict in local function (Istream)

- reportedly some resolution issues (unconfirmed) with Fujitsu clang
2021-11-09 15:44:54 +01:00
9371c517b9 COMP: adjust include guards 2021-11-09 12:18:07 +01:00
d4f3581265 BUG: createPhiv - updated flux call 2021-11-08 19:32:13 +00:00
c8ba81f92c Merge branch 'feature-one-equation-turbulence-model' into 'develop'
ENH: new RANS model for geophysical applications

See merge request Development/openfoam!493
2021-11-08 18:58:07 +00:00
f05dc09692 TUT: atmFlatTerrain: add an example for kL RANS model
BUG: atmFlatTerrain: fix input settings in the plot script
2021-11-08 18:56:59 +00:00
76dcc4f28f ENH: kL: new RANS model for geophysical applications
STYLE: atmosphericModels: regroup atmospheric turbulence models
ENH: kEpsilonLopesdaCosta: enable this RANS model for compressible applications
2021-11-08 18:56:59 +00:00
b90ba9d125 ENH: noiseModel updates. Fixes #2263
- updated safeLog10 - returns -GREAT instead of zero
- enabled reference for dB calc to be user defined

Cross reference exchange platform 1689
2021-11-08 18:48:46 +00:00
6102b76377 Merge branch 'feature-finiteArea-fixes' into 'develop'
parallel construct finiteArea with arbitrary connections

See merge request Development/openfoam!490
2021-11-05 18:08:12 +00:00
7fc943c178 ENH: improvements for makeFaMesh, checkFaMesh
- added -dry-run, -write-vtk options.
  Additional mesh information after creation.

- add parallel reductions and more information for checkFaMesh

ENH: minor cleanup of faPatch internals

- align pointLabels and pointEdges creation more closely with coding
  patterns used in PrimitivePatch

- use fileHandler when loading "S0" field.
2021-11-05 18:07:36 +00:00
a95427c28a ENH: improve handling of area calculations in faMesh (#2233)
- previous handling did not correctly account for off-processor
  connections (SEGFAULT).

- revised the point/area normal calculations to use the dual of the
  faces. This simplifies the logic and reduces the depth of loops.

  Point corrections from the neighbouring patches is handled
  centrally by the new halo face information, which properly handles
  on-processor or off-processor faces irrespective of any explicit
  processor patches.

STYLE: local function and add comments for finiteArea area weighting

- following the original Tukovic code, the area-weighted normal
  for a vector pair (defining a triangle) is weighted by
    (1) area : larger weight for larger areas
    (2) sin  : lower weight for narrow angles (eg, shards)
    (3) invDist squared : lower weights for distant points

  Refactored to eliminate intermediate operations, some additional
  divide-by-zero protection - similar to vector normalise()
2021-11-05 18:07:36 +00:00
ea92cb82c4 ENH: add boundary halo handling to faMesh
- the finiteArea is typically restricteed to one or more patches on a
  polyMesh but will have an external connectivity to other parts of
  the polyMesh. For proper determination of the point normals (for
  example), the neighbouring information is needed.

  These outside 'halo' faces can be located on different processors,
  but not correspond to an internal processor-processor interface.

  Add a dedicated form of mapDistribute for swapping this type of
  information. Since this is a collective operation, locate
  corresponding methods directly on the faMesh level instead of
  the faPatch level.
2021-11-05 18:07:36 +00:00
8e45108905 BUG: parallel construct finiteArea fails with arbitrary connections (#2152)
- the case of 'fan-like' processor was previously assumed to be
  rare (see merge-request !490 and issue #2084).

  However, Vaggelis Papoutsis noticed that even fairly normal geometries
  can trigger problems.

- replaced the old patch/patch matching style with a more general
  edge-based synchronisation and matching that appears to handle
  the corner cases inherently. The internal communication overhead
  is essentially unchanged, and the logic is simpler.

ENH: additional framework for managing patch connectivity
2021-11-05 18:07:36 +00:00
9c1f94d4fd BUG: parallel blocking with faFieldDecomposer, faMeshReconstructor (fixes #2237)
- the patch remapping in faFieldDecomposer calls weights
  internalField() which can trigger parallel communication on the
  complete mesh for some processors only (ie, blocks).

  Force a priori creation of weights instead.

- ensure that the complete mesh (reconstruction helper)
  is serial when adding patches.
2021-11-05 18:07:36 +00:00
a809265432 BUG: incorrect finite-area faceProcAddressing (fixes #2155)
- when creating a finite-area mesh in parallel, need to determine
  the equivalent ProcAddressing for the faMesh.

  In the faceProcAddressing the collected and sorted order was being
  scattered directly back to the individual processors instead of only
  the sections relevant to each particular processor.

  This caused the observed jumbled order for reconstructed fields.
2021-11-05 18:07:36 +00:00
38bf30167d Merge branch 'feature-runTimeCompat' into 'develop'
long-term maintenance improvement for runTime selection tables

See merge request Development/openfoam!481
2021-11-05 18:06:31 +00:00
ba8d6bddcc ENH: use singleton method for accessing runtime selection
STYLE: use alias to mark partialFaceAreaWeightAMI deprecation after v2012
2021-11-05 17:21:27 +01:00
4fc6ec1d1d ENH: define singleton-style lookups for runTime selection, alias handling
- this makes the lookup and use of tables slightly cleaner and
  provides a hook for update (compat) messages

  The singleton-style method returns the function pointer directly,
  or nullptr on not-found.

  NEW access method (mnemonic: 'ctor' prefix for constructors)

  ```
  auto* ctorPtr = dictionaryConstructorTable(modelType);

  if (!ctorPtr)
  {
      ...
  }

  return autoPtr<myModel>(ctorPtr(dict, ...));
  ```

  OLD method, which also still works, but without any compat handling:

  ```
  auto ctorIter = dictionaryConstructorTablePtr_->cfind(modelType);

  if (!ctorIter.found())
  {
      ...
  }

  return autoPtr<myModel>(ctorIter()(dict, ...));
  ```
2021-11-05 17:21:27 +01:00
794e23e083 ENH: add error::master() static for low-level messages
- a Pstream::master with a Pstream::parRun guard in case Pstream has
  not yet been initialised, as will be the case for low-level messages
  during startup.

- propagate relativeName handling into IOstreams
2021-11-05 14:53:55 +01:00
0bd113f537 ENH: refactored and simplified runtime declaration macros
- improves future maintenance, avoids code/macro duplication
2021-11-05 14:53:51 +01:00
7f8ecd98f5 ENH: rename runTime selection typedefs
- better distinction between content and storage type
  by appending 'Type' to the typedef.

    old: 'Class::abcConstructorTable* tablePtr'
    new: 'Class::abcConstructorTableType* tablePtr'

  Was rarely used in any exposed code.

BREAKING: LESdelta::New with additional table

- parameter change to dictionaryConstructorTableType
  (was dictionaryConstructorTable)
2021-11-05 14:14:20 +01:00
3416151dee ENH: improve isolation of basicThermo internals (as private)
- getThermoOrDie: returns constructor pointer, or FatalError.
  Better isolation and avoids additional template/typename previously
  needed with ambiguous method name (lookupThermo).

- makeThermoName: centralize dictionary -> stringified name

- splitThermoName: use stringOps functionality
2021-11-05 14:14:20 +01:00
9e56dd4098 Merge branch 'feature-proudman-mean-fields' into 'develop'
ENH: proudmanAcousticPower - extended to operate on mean turbulence fields

See merge request Development/openfoam!485
2021-11-05 13:08:52 +00:00
5cba269072 ENH: proudmanAcousticPower - extended to operate on mean turbulence fields
Example using mean turbulence fields (mean fields should be available e.g. from
a fieldAverage function object)

    proudmanAcousticPower1
    {
        // Mandatory entries (unmodifiable)
        type        proudmanAcousticPower;
        libs        (fieldFunctionObjects);

        ...

        // Turbulence field names (if not retrieved from the turb model)
        k           kMean;
        epsilon     epsilonMean;
        omega       none; // omegaMean
    }
2021-11-05 13:06:31 +00:00
83fd1c9579 SUBMODULE: update OpenQBMM (selector table modifications) 2021-11-04 21:44:04 +01:00
742a2c8a49 BUG: foamPackRelease detects wrong build information
- was taking from the current head instead from specified commit-ish

ENH: add -debian=NUM convenience option to foamPackRelease

STYLE: relocate compile begin/end messages

COMP: suppress more clang warnings (needed for boost)
2021-11-04 19:56:01 +01:00
50995706a6 STYLE: remove unused private fields (foamyMesh)
- simplify handling of warnings for surfaceBooleanFeatures
2021-11-04 18:03:34 +01:00
c9333a5ac8 ENH: improve flexibility of error, messageStream output
- provide a plain stream() method on messageStream to reduce reliance
  on casting operators and slightly opaque operator()() calls etc

- support alternative stream for messageStream serial output.
  This can be used to support local redirection of output.
  For example,

     refPtr<OFstream> logging;   // or autoPtr, unique_ptr etc

     // Later...
     Info.stream(logging.get())
        << "Detailed output ..." << endl;

  This will use the stdout semantics in the normal case, or allow
  redirection to an output file if a target output stream is defined,
  but still effectively use /dev/null on non-master processes.

  This is mostly the same as this ternary

      (logging ? *logging : Info())

  except that the ternary could be incorrect on sub-processes,
  requires more typing etc.

ENH: use case-relative names of dictionary, IOstream for FatalIOError

- normally yields more easily understandable information
2021-11-03 11:46:13 +01:00
1c354ce299 ENH: expose dictionary relativeName() method
STYLE: more consistent noexcept for dictionary and entry
2021-11-03 11:38:39 +01:00
b364a9e72c ENH: argList improvements
- argList::envExecutable() static method.
  This is identical to getEnv("FOAM_EXECUTABLE"), where the name of
  the executable has typically been set from the argList construction.

  Provides a singleton access to this value from locations that
  do not have knowledge of the originating command args (argList).
  This is a similar rationale as for the argList::envGlobalPath() static.

- additional argList::envRelativePath() static method.

- make -dry-run handling more central and easier to use by adding into
  argList itself.

STYLE: drop handling of -srcDoc (v1706 option)

- replaced with -doc-source for 1712 and never used much anyhow
2021-11-03 11:38:21 +01:00
a19f03a5cb STYLE: additional storage checks, noexcept, spelling
- prune unneeded demandDrivenData.H includes
2021-11-03 11:27:56 +01:00
851be8ea33 ENH: use consistent naming when toggling exception throwing on/off 2021-11-02 21:14:41 +01:00
fddf8a8832 ENH: add -help-full option for foamEtcFile 2021-11-02 21:14:41 +01:00
2698cab01c ENH: extend use of WM_COMPILER_CONTROL to manage compiler versions
- for compilers such as gcc and clang, may have several different
  variants installed on the computer. Use WM_COMPILER_CONTROL to
  specify the preferred variant.

  Eg,
      WM_COMPILER=Gcc
      WM_COMPILER_CONTROL="version=8"

      will compile with "gcc-8" and "g++-8"

  Good practice would be to tag output directory names with the
  version too. Eg

      WM_COMPILER=Clang110
      WM_COMPILER_CONTROL="version=11.0"

STYLE: modify message for change of gcc -> clang (darwin)
2021-11-02 17:30:06 +01:00
3494d662c7 COMP: eliminate some unused variables 2021-11-02 15:47:18 +01:00
a6f2aff449 BUG: spurious argument in sutherlandTransport addition (fixes #2256) 2021-11-02 15:47:18 +01:00
8746d7e443 Merge branch 'fix-2257-threaded-writing' into 'develop'
BUG: collated: threaded writing accesses out-of-scope. Fixes #2257.

See merge request Development/openfoam!494
2021-11-02 14:26:30 +00:00
227b3976ba BUG: collated: threaded writing accesses out-of-scope. Fixes #2257. 2021-11-02 14:26:30 +00:00
08e66a64e1 CONFIG: increment API level to 2108
- reflects updates for List, globalIndex handling etc
2021-10-29 19:41:27 +02:00
08588134fb ENH: report filter settings for distance surface (#1631) 2021-10-29 19:34:54 +02:00
0c89154729 ENH: add fallback behaviour for distanceSurface proximity regions (#1631)
- using the proximityRegions filter when there is no enclosing surface
  to segregate domains causes a surface of zero-faces to be created.

  In most cases, this means that a simpler proximityFaces filter would
  have been more appropriate. To increase overall robustness, revert
  to the simpler proximityFaces filter logic when the proximityRegions
  would otherwise result in zero faces (globally seen).
2021-10-29 17:49:50 +02:00
048166c3d8 ENH: reduces buffer use / blocking in Ensight output
- reuse single component buffer within an Ensight output method.
  Use direct UPstream read/write to avoid Pstream char buffers

- replace blocking transfer with scheduled for Ensight cloud output
2021-10-29 17:04:52 +02:00
33ff3201ea ENH: replace PstreamBuffers with scheduled read/writes for VTK output
- use the new updates to globalIndex to manage the bookkeeping
2021-10-29 17:04:52 +02:00
b6539cd02e ENH: additional MPI gather/scatter routines, globalIndex gather methods
- UPstream::mpiGather (MPI_Gather)   - used by Pstream::listGatherValues
- UPstream::mpiScatter (MPI_Scatter) - used by Pstream::listScatterValues

  These are much simpler forms for gather/scatter of fixed-sized
  contiguous types data types (eg, primitives, simple pairs etc).

  In the gather form, creates a list of gathered values on the master
  process. The subranks have a list size of zero.

  Similarly, scatter will distribute a list of values to single values
  on each process.

  Instead of

      labelList sendSizes(Pstream::nProcs());
      sendSizes[Pstream::myProcNo()] = sendData.size();
      Pstream::gatherList(sendSizes);

  Can write

      const labelList sendSizes
      (
          UPstream::listGatherValues<label>(sendData.size())
      );

  // Less code, lower overhead and list can be const.

  For scattering an individual value only,
  instead of

      labelList someValues;
      if (Pstream::master()) someValues = ...;

      Pstream::gatherList(sendSizes);
      const label localValue
      (
          someValues[Pstream::myProcNo()]
      );

  Can write

      labelList someValues;
      if (Pstream::master()) someValues = ...;

      Pstream::gatherList(sendSizes);
      const label localValue
      (
          UPstream::listScatterValues<label>(someValues)
      );

   Can of course also mix listGatherValues to assemble a list on master
   and use Pstream::scatterList to distribute.

ENH: adjusted globalIndex gather methods

- added mpiGather() method [contiguous data only] using MPI_Gatherv

- respect localSize if gathering master data to ensure that a
  request for 0 master elements is properly handled.
2021-10-29 17:04:52 +02:00
1f20747b1a ENH: cleanup Pstream internal names, cull unneeded parameters
- Pstreams can be ascii/binary but are always currentVersion

- rename UIPstream externalBuf_ to 'recvBuf_' for similar naming as
  PstreamBuffers and symmetry with UOPstream::sendBuf_

- specific enum size for commsType (for more compact structures in the
  future). Default construct lists items.

BUG: possible incidental indexing in UIPstream::read(char*, std::streamsize)

- raw reading had been split into beginRawRead(), readRaw().
  However, this could change the current input position (due to word
  boundary alignment), even if the expected count is zero. Make a
  no-op for count == 0. This mirrors UOPstream::write behaviour.
2021-10-29 17:04:51 +02:00
609fb366e3 ENH: improve flexibilty of globalIndex
- construct or reset from a list of local sizes. It is generally
  easier and safer to assemble sizes and let globalIndex determine the
  corresponding offsets, when working with raw values.

- Can use reset() from sizes or fine-tune offsets with setLocalSize()
  instead of using the potentially more fragile non-const access to
  the offsets.

- add globalIndex const_iterator to iterate across the access ranges.
  This is makes it simpler to use with the List slice() method to
  access or operate on a sub-section of list.

  For example,
      scalarField allValues = ...;
      globalIndex procAccess = ...;

      for (const labelRange& range : procAccess)
      {
          someOutput(allValues.slice(range));
      }
2021-10-29 17:04:51 +02:00
b8a4b7e80d ENH: additional 'nocopy' methods for List resize/reserve methods
- the size of a List often requires adjustment prior to an operation,
  but old values (if any) are not of interest and will be overwritten.

  In these cases can use the _nocopy versions to avoid additional memory
  overhead of the intermediate list and the copy/move overhead of
  retaining the old values (that we will subsequently discard anyhow).

  No equivalent for PtrList/UPtrList - this would be too fragile.

- add swap DynamicField with DynamicList

BUG: fixed Dynamic{Field,List} setCapacity corner case

- for the case when the newly requested capacity coincides with the
  current addressable size, the resize of the underlying list would have
  been bypassed - ie, the real capacity was not actually changed.

- remove (unused) PtrDynList setCapacity method as too fragile
2021-10-29 17:04:51 +02:00
e2861cc200 ENH: return UList range slice as a SubList
- previously returned the range slice as a UList,
  but this prevents convenient assignment.
  Apply similar handling for Field/SubField

  Allows the following

     labelRange range(...);
     fullList.slice(range) = identity(range.size());

  and

     fullList.slice(range) = UIndirectList<T>(other, addr);

ENH: create SubList from full FixedList (simplifies interface)

- allow default constructed SubList. Use shallowCopy to 'reset' later
2021-10-29 17:04:51 +02:00
3781f17eee ENH: add '_bytes()' versions of List data(), cdata()
- simply adds in the reinterpret_cast, which simplifies coding for
  binary data movement.
  Name complements the size_bytes() method for contiguous data

STYLE: container IO.C files into main headers for better visibility

STYLE: include CompactListList.H in polyTopoChange

- avoids future mismatches if the CompactListList template signature
  changes

GIT: relocate CompactListList into CompactLists/ directory
2021-10-29 17:04:51 +02:00
3d3d287452 ENH: additional tests in {cell,face}SetOption
- useSubMesh() - name as per fvMeshSubsetProxy.
  Setter methods take a parameter instead of direct access.
2021-10-29 17:04:51 +02:00
f5058bca90 ENH: add static set/get dimensionSet::checking() method
- encapsulates toggling

STYLE: noexcept for some Time methods
2021-10-29 17:04:51 +02:00
33790ca972 ENH: add stream and dictionary output options for edgeMesh formats 2021-10-29 17:04:51 +02:00
120e4a46bc BUG: face flips lost on foamToVTK faceZone output
- previously used an indirect patch to get the sampling locations,
  but this doesn't take account of the face flips. Now use
  the faceZone intrinsic for generating a properly flipped patch
  and provide the sampling locations separately.

STYLE: adjust compatiblity header for surfaceMeshWriter
2021-10-29 17:04:51 +02:00
a98d5ebf32 ENH: handle ';' for fluent input (fixes #2249) 2021-10-29 17:04:51 +02:00
435be2e5ec CONFIG: improve flexibility of MPI specification
- it is now possible to include the selected mpi version in the
  top-level bashrc or prefs.sh file. For example,

      WM_MPLIB=OPENMPI-4.1.1  or  WM_MPLIB=openmpi-4.1.1

  after evaluation of the config.sh/mpi, this will define

      WM_MPLIB=OPENMPI-4.1.1  and  FOAM_MPI=openmpi-4.1.1

  During the wmake, the mpi-rules will first load the MPI 'family'
  rules (OPENMPI in this example) before trying to load
  version-specific rules if they exist.

  NOTE: the regular user-defined prefs system is unaffected by this
  change. This means it is still possible to use a file such as
  'prefs.openmpi' to define the preferred version instead or as well.
  However, it does mean inconsistent naming can be specified.
  For example, specify WM_MPLIB=OPENMPI-4.1.1 at the top-level but
  actually have FOAM_MPI=openmpi-4.0.6 in the prefs.openmpi file.
  This will make the value of WM_MPLIB misleading.

CONFIG: foamConfigurePaths support for sys-openmpi major version

CONFIG: cleanup any shadow env variables
2021-10-29 17:04:51 +02:00
36bb99da9b BUG: Condensation mass transfer in interfaceHeatResistance. Fixes #2216 2021-10-28 14:33:05 -07:00
7d5dc29e53 Merge branch 'feature-turbulence-model-hierarchy' into 'develop'
ENH: Regroup and unify various virtual functions in laminar/RAS/LES models

See merge request Development/openfoam!487
2021-10-22 16:29:13 +00:00
783c2f567f ENH: LESModel: regroup omega/epsilon virtual functions
ENH: LESeddyViscosity: move Ce to LESModel to
enable omega/epsilon virtual hierarchy
2021-10-22 11:40:50 +01:00
64fdbf6099 ENH: laminar: regroup k/omega/epsilon/R virtual functions 2021-10-22 11:40:48 +01:00
ec62cda73a ENH: RASModel: regroup omega/epsilon virtual functions 2021-10-22 11:40:45 +01:00
52be5d0428 TUT: use mergeType points for wedge geometries (#2241) 2021-10-21 15:31:11 +02:00
c2697f466d CONFIG: update c++ standard, some compiler rules (partially addresses #2209)
- migrate to c++14 for most compilers *except* gcc.
  There are still many systems in use with gcc-4.8.5, which does not
  support c++14.

- initial rules for nvidia compilers (pgi is will soon be defunct).
  Not fully tested...

CONFIG: provide fallback value for the user directory name

- in containers may have an unset USER env variable.
  Default to 'user' to prevent ugly looking directory names.
2021-10-21 15:31:05 +02:00
8eab653117 Merge branch 'feature-decompositionConstraints_cyclicAMI' into 'develop'
ENH: decomposePar: cyclicAMI in constraints. Fixes #2242

See merge request Development/openfoam!491
2021-10-20 15:40:39 +00:00
42a9078dad ENH: decomposePar: cyclicAMI in constraints. Fixes #2242 2021-10-20 14:51:38 +01:00
b157614e00 ENH: redistributePar: write collated format. #806
- supports redistributePar -decompose -fileHandler collated
- supports redistributePar -reconstruct
- does not support redistributePar with collated in redistribution mode
2021-10-19 12:18:07 +01:00
2a2edf5fee ENH: Added contact resistance to multi-world. See #1535.
- added contact resistance to turbulentTemperatureCoupledBaffleMixed
- added basic multi-world to turbulentTemperatureRadCoupledMixed
- added unit-testcase to $FOAM_APP/test/multiWorld
2021-10-18 19:22:23 +01:00
3e026783ab TUT: update keywords, create finiteArea in parallel 2021-10-18 15:30:51 +02:00
85760cbc34 COMP: added arm64 support for OSX fpe handling (#2240) 2021-10-18 15:28:23 +02:00
fe8c630936 BUG: Foam::cp inadvertently creates recursive directories (fixes #2235)
- noticed by Robin Knowles with `decomposePar -fields -copyZero`

  The internals for the Foam:cp method combine the behaviour of
  a regular `cp` and `cp -R` combined.

  When source and target are both directories, the old implementation
  created a subdirectory for the contents.
  This normally fine,

      ok:  cp "path1/0/" to "path2/1" -> "path2/1/2"
      BUT: cp "path1/0/" to "path2/0" -> "path2/0/0" !!

  Now add check for the basenames first.
  If they are identical, we probably meant to copy directory contents
  only, without the additional subdir layer.

BUG: decomposePar -fields -copyZero copies the wrong directory

- was using the current time name (usually latest) instead of copying
  the 0 directory

ENH: accept 0.orig directories as a fallback to copy if the 0 directory
is missing
2021-10-18 14:58:17 +02:00
4a0646451d CONFIG: accept '-lib' for foamCleanPath
- simplfies differences for OSX
2021-10-18 14:58:17 +02:00
16d48ed047 CONFIG: improve robustness/flexibility for MPI config handling
- use orte-info to determine prefix/libdir for openmpi.
  This removes a run-time dependency on mpicc, which is actually
  only needed for building with MPI (not running with MPI).
  The corresponding openmpi devel package (deb/rpm) will not
  necessarily be installed on a particular system.

- retain mpicc logic if the new logic using orte-info does not
  deliver an answer. Final fallback to using 'orterun' to
  infer prefix/libdir.

- Additional logic for intel and msmpi to make it easier to
  locate these vendor packages within ThirdParty
  (ie, under ThirdParty/opt/...)

CONFIG: improve robustness

- add check for absolute path when adding PATH/LD_LIBRARY_PATH etc.

- prefix more variables with '_foam*' to prevent accidental overwrite
  of userspace shell variables when sourcing
2021-10-18 11:34:02 +02:00
f61228ae38 STYLE: changes for implicit handling, region coupling
- avoid deprecated autoPtr check

- bundle bool values in fvPatchField for compacter allocation

- change useImplicit to a set method taking an argument instead of
  allowing direct access.
2021-10-15 18:48:08 +02:00
f422495bb5 BUG: Robust implementation for contact resistance. See #1535. 2021-10-14 14:40:42 -07:00
9bed548227 ENH: Adding coupled matrix option for solid-only cht cases 2021-10-14 14:40:02 -07:00
7ad75fa18e ENH: add single-parameter PtrListOps::names (ie, no name filtering)
ENH: adjust fileName component method

- the location \c npos returns the last component
2021-10-12 10:11:05 +02:00
5014398c45 ENH: adjust documentation for face edges, remove unused method
BUG: incorrect addressing in rcEdge, but not used in the code.
2021-10-08 10:16:39 +02:00
6a3f918827 ENH: collective for boundary connections, makes lduAddressing const
- top-level faceCells() on the boundary list simplifies the creation
  of lduAddressing etc, can also be useful on its own

STYLE: replace isA/refCast combination with a single isA
2021-10-08 09:13:36 +02:00
674a9a878f ENH: foamGetDict: sneak in topoSetSourcesDict. See #2232 2021-10-07 10:56:13 +01:00
3c0fef819b BUG: cyclicAMI: defaultValues are on *this. Fixes #2226. 2021-10-06 11:05:01 +01:00
9ad7e87000 Merge branch 'issues-2021-1' into 'develop'
BUG: 2021-1: Various bug fixes and developments

See merge request Development/openfoam!489
2021-10-05 10:47:21 +00:00
40bed278ef DOC: pressure: correct the usage explanations for pName (#2221) 2021-10-04 15:25:49 +01:00
770df14bf6 ENH: foamMonitor: modernise and refactor for POSIX compliance (#2202)
ENH: add xrange option
2021-10-04 15:24:47 +01:00
a8243b8377 STYLE: PilchErdman: modernise code for constness and constructs 2021-10-04 15:24:47 +01:00
e2d54dfe14 BUG: PilchErdman: correct the sign of the exponent (fixes #2214) 2021-10-04 15:24:47 +01:00
3a1c61fc98 DOC: uniformSet: improve header documentation 2021-10-04 15:24:47 +01:00
cd938d96f3 ENH: uniformSet: enable the relative tolerance (tol) as a user-defined optional entry 2021-10-04 15:24:47 +01:00
c161d0e069 BUG: uniformSet: add missing hit point updates (fixes #2067) 2021-10-04 15:24:47 +01:00
9923cc9bf8 BUG: applyBoundaryLayer: disable application on disconnected cells (fixes #1513) 2021-10-04 15:24:47 +01:00
8a3dc0527c ENH: -no-finite-area, -no-lagrangian options for some parallel utils 2021-10-01 15:26:50 +02:00
20902b7f7c ENH: use updated surface methods, additional debugging for isoTopo 2021-10-01 15:26:50 +02:00
15f2487c0b ENH: extend vtk::polyWriter and vtk:GenericPatchWriter
- writeCellData() and writePointData() for polyWriter
- writeProcIDs for generic vtk patch writer
2021-10-01 15:26:50 +02:00
aa5ba2b494 ENH: additional cleanup method(s) for MeshedSurface, triSurface
- adjust zone addressing after surface face swap and upon construction
2021-10-01 15:26:50 +02:00
8e5c569cf1 ENH: explicitly check for invalid edge (PrimitivePatch::findEdge) 2021-10-01 15:25:13 +02:00
d585774841 ENH: handle float values for named optimisation switches (#2222) 2021-10-01 12:47:06 +02:00
6a3f63c2bc BUG: error write() method not marked as virtual (fixes #2218)
- slices on output and misses file/line information for IOerror
2021-09-30 19:58:26 +02:00
9ce5aa2136 BUG: Function1 Table: disallow wildcards. See #2223 2021-09-30 13:35:06 +01:00
ad8e5540a3 BUG: overset: memory leak. Fixes #2219
Not tested; from visual inspection
2021-09-29 10:57:42 +01:00
680c1dcfdd Merge branch 'feature-isosurface-snapping' into 'develop'
add point snapping to iso-surface topo algorithm (#2210)

See merge request Development/openfoam!488
2021-09-27 15:46:13 +00:00
4ff010d094 ENH: add point snapping to iso-surface topo algorithm (#2210)
- helps avoid the creation of small face cuts (near corners, edges)
  that result in zero-size faces on output.

CONFIG: make default iso-surface topo regularisation less aggressive

- The full (diagcell) regularisation no longer includes cleaning of
  non-manifold surfaces by removing open edges.
  This can be selected by the 'clean' regularisation option instead.
  ie, 'clean' = 'full' + erode open edges

ENH: additional debug modes for iso-surface topo

- with (debug & 8) dumps out a VTK file of the tets to be cut and the
  calculated open edges.
2021-09-27 16:23:58 +02:00
0454f4a040 ENH: robustness and functionality improvements for VTK output
- PstreamBuffers for parallel VTK output.
  - avoids MPI overflows for larger meshes

- new vtk::lineWriter for writing edges

- vtk::fileWriter::writeUniform now also supports processor-specific
  uniform values instead of assuming that they are identical everywhere.
2021-09-27 13:26:22 +02:00
a0d7933360 ENH: support vtu mesh subsetting, creation from cellShapes
- support simple mesh subsetting to vtu formats to enable debug output
  for a subsection of an existing polyMesh

- rudimentary support for VTK from cellShapes is intended for handling
  basic primitive cell shapes without a full blown polyMesh description.

  For example,

     // Create an empty polyMesh with points only
     polyMesh debugMesh
     (
         io,
         std::move(points),
         faceList(),     // faces
         labelList(),    // owner
         labelList(),    // neighbour
         true            // syncPar
     );

    // Establish the appropriate VTK sizing for the TET shapes
    vtk::vtuCells vtuCells;
    vtuCells.resetShapes(debugCutTets);
    vtuCells.nPoints(debugMesh.nPoints());

  NOTE
  Since the vtk::internalMeshWriter only uses the polyMesh reference
  for the points, it is also possible to create the vtuCells
  description without a pointField (or from a different mesh
  description) and write out the connectivity using the pointField
  from a different mesh.
2021-09-27 13:26:02 +02:00
8628d4216c BUG: foamToVTK patch/proc ids missing if there are no volume fields 2021-09-27 13:18:27 +02:00
fcd7423fa8 CONFIG: add date and paths information for tutorial Allrun script
STYLE: replace short-circuit Allrun script with Alltest
2021-09-22 17:42:21 +02:00
134aaee91a ENH: relocated tetBasePtIs adjustment from sampling to polyMeshTetDecomposition 2021-09-22 13:32:31 +02:00
c0b4c26dc1 BUG: correct erroneous PoutInFunction macro
- replace unusable operator() calls with simple '<<' operations
2021-09-21 15:26:45 +02:00
72e67c7d1b Merge branch 'feature-cyclicPeriodicAMI' into 'develop'
ENH: interpolate in cylindrical coordinates: See #2145

See merge request Development/openfoam!483
2021-09-16 08:48:16 +00:00
a4289f7dd2 ENH: interpolate in cylindrical coordinates: See #2145
This intercepts all vector/tensor AMI interpolations and
does the interpolation in cylindrical coordinates.

Use (component) 'coupled' linear solver to enable this in
the linear solver sweeps.
2021-09-16 08:30:17 +00:00
c0feb56521 ENH: optional face area normals output for VTK surface format
- similar to additional flag for the raw surface writer (#2003)

  Example,
  ```
  formatOptions
  {
      vtk
      {
          normal      yes;
      }
  }
2021-09-15 18:04:36 +02:00
7c46daea0d Merge branch 'issue-1838-yPlus' into 'develop'
BUG: fix yPlus predictions of nut wall functions

See merge request Development/openfoam!484
2021-09-14 15:21:49 +00:00
6ed5e23536 BUG: nut{k,U}WallFunction: use viscous predictions in yPlus (fixes #1773,#1838) 2021-09-14 15:21:09 +00:00
da1afe816a ENH: yPlus: add a warning to remind users about solver's postProcess option (#1846) 2021-09-14 15:21:09 +00:00
f3d0db18bb ENH: yPlus: add a flag to enable/disable wall-function predictions 2021-09-14 15:21:09 +00:00
91439bb30d BUG: nutLowReWallFunction: add effective viscosity into yPlus (fixes #1843) 2021-09-14 15:21:09 +00:00
0265f2caad COMP: ShihQuadraticKE: remove redundant header file 2021-09-14 15:21:09 +00:00
fb88d4887b SUBMODULE: update cfmesh (compilation only) 2021-09-08 13:47:32 +02:00
7d20854726 BUG: fileHandler: disable parallel inside master-only ops. See #806. 2021-09-08 09:04:57 +01:00
f815a12bba BUG: error with empty distributed roots specification (fixes #2196)
- previously used the size of distributed roots to transmit if the
  case was running in distributed mode, but this behaves rather poorly
  with bad input. Specifically, the following questionable setup:

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

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

      WARNING: running distributed but did not specify roots!
2021-09-08 09:29:27 +02:00
f89fb3e066 CONFIG: adjust ordering of library paths (#2200)
- previously OpenFOAM library paths were set before adding in
  MPI-specific elements. However, this may mask some libraries.

  |  New library order  |  Old library order  |
  |---------------------|---------------------|
  |  user-lib (serial)  |  various 3rd-party  |
  |  site-lib (serial)  |  foam-lib (mpi)     |
  |  foam-lib (mpi)     |  ext-lib (mpi)      |
  |  foam-lib (serial)  |  system mpi-libs    |
  |  ext-lib  (mpi)     |  user-lib (serial)  |
  |  ext-lib  (serial)  |  site-lib (serial)  |
  |  various 3rd-party  |  foam-lib (serial)  |
  |  system mpi-libs    |  ext-lib (serial)   |
  |  dummy              |  dummy              |
2021-09-07 16:35:34 +02:00
96adf3ae80 ENH: add IOobject::objectRelPath() for compact output (#2195) 2021-09-07 16:35:34 +02:00
610711ac47 ENH: inGroups support for mesh zones
- provisions for alternative groupings of zones

- extend indices() for boundary meshes to handle wordRes as well
2021-09-07 16:35:10 +02:00
f0fb0d4263 ENH: variable-specific debug flags (finiteArea solvers) 2021-09-07 11:29:11 +02:00
dabe506e9e ENH: code-style for lduMatrix and fvMatrix solve
- use dictionary methods directly in LduMatrix::solver::readControls.
  Deprecate the redundant LduMatrix::solver::readControl helper-function

- define solver log-level outside of the loop,
  narrow log flag to int.

- reinstate API-compatible parameters for SolverPerformance
2021-09-07 11:29:11 +02:00
bf1ed94e53 ENH: use PrecisionAdaptor to support scotch with label widening
- allows reuse of an int64_t scotch library with label-size 32
  and/or label-size 64.

COMP: prefer scotch/metis/kahip libraries with label-size qualifiers

- as noted in #2200, mpirun may insert mpi libraries higher in the
  library loader which can cause masking of our ThirdParty libraries
  of the same name. With scotch (for example), the operating system
  may have an int32 version installed but we have an int64 version
  compiled under ThirdParty. Runing in serial is fine, but in parallel
  we resolve to the (incorrect) system version due to the adjustments
  in mpirun.

- adjust the ThirdParty make scripts to also create corresponding
  links (eg, 'ln -s libscotch.so libscotch-int64.so') and prefer
  linkage with these qualified libraries.

    Eg,  -L$(SCOTCH_LIB_DIR) -lscotch$(SCOTCH_LIBNAME_SUFFIX)

  this prevent accidental runtime linkage with the system versions.

STYLE: simplify scotch interface code by using local functions
2021-09-07 11:29:11 +02:00
5e4d678c98 ENH: make precision adaptors modifiable (#2173)
- allows reuse similar to refPtr for wrapping different content.

- additional control for when contents are copied back,
  instead of waiting for the adaptor to go out of scope.

  Eg,

  if (adaptor.active())
  {
      adaptor.commit();
      adaptor.clear();
  }

- static ConstPrecisionAdaptor::get method renamed to 'select' as a
  better description of its purpose and avoid confusion with
  non-static 'get' method.

  Was previously only used within GAMGPreconditioner, but even there
  it is better just to use the ConstPrecisionAdaptor directly.
2021-09-07 11:29:11 +02:00
d27aa79cd7 ENH: KirchhoffShell: further simplication of log output 2021-09-07 11:29:11 +02:00
ac6077b471 Merge remote-tracking branch 'origin/master' into develop 2021-09-07 10:14:29 +01:00
aeda015a78 BUG: distributionModels::general: avoid zero-division errors 2021-09-07 09:50:16 +01:00
0aa44f2b9b ENH: ConeInjection - randomised the injector order. See #2199
For cases where the number of injectors exceeded the number of parcels to
inject, processing the injectors sequentially led to not all injector locations
being active and yielding non-physical spatial distributions.
2021-09-06 14:23:21 +01:00
c307c4abd2 Merge branch 'feature-distributionModels' into 'develop'
Improve the Lagrangian distribution models

See merge request Development/openfoam!426
2021-09-06 13:07:03 +00:00
4be5511f8c DOC: distributionModels: improve header file documentation 2021-09-02 13:58:20 +01:00
2bd37c7643 INT: distributionModels::general: add cumulative distribution function 2021-09-02 13:58:20 +01:00
5a1baa478d BUG: distributionModels: fix mean functions (#1996) 2021-09-02 13:58:20 +01:00
800df883a6 BUG: distributionModels: fix sample functions (#1996) 2021-09-02 13:58:20 +01:00
07cd88abd0 ENH: distributionModels: replace input variable names with de facto conventions
Previous naming conventions for input variables in the
normal, multiNormal, RosinRammler, and massRosinRammler
distributions were heuristic and did not reflect
the de facto conventions being used in statistics.
2021-09-02 13:58:20 +01:00
89289b0716 STYLE: distributionModels: modernise code style 2021-09-02 13:58:16 +01:00
0feb0e4d7b ENH: distributionModel: add new sanity checks 2021-09-02 13:58:16 +01:00
839a52ee16 ENH: distributionModel: consolidate min/max of distributions
BUG: distributionModel: disallow any distribution
where input min is equal to input max

ENH: distributionModel: ensure execution of check() at ctor level
2021-09-02 13:57:04 +01:00
a88d0e7181 BUG: Fixing BC's fixed value for species in multicomponent system 2021-09-01 12:26:29 -07:00
851cf11c0a BUG: iglooWithFridges: consistent collated handling. Fixes #2194. 2021-09-01 15:49:30 +01:00
d5fd97d991 ENH: createPatch: check for overlapping patches. Fixes #2193 2021-09-01 08:29:32 +01:00
4e6e7d59da BUG: ParticleCollector - corrected and simplified parallel reductions. See #2184 2021-08-18 10:29:17 +01:00
8be3f3d910 BUG: Corrected ddtCorr switch - see #2183 2021-08-17 15:36:34 +01:00
9678b1dc22 ENH: splitMeshRegions: combine cellZones. See #2046
addZones: specifies the name instead of synthesising
2021-08-11 16:14:23 +01:00
9bf030d86a BUG: Fixing frozenFlow option with implicit fvMatrix in CHT solvers 2021-08-06 12:54:44 -07:00
b826e23d2f TUT: Rename tutorial scripts to Allrun 2021-08-06 11:15:31 -07:00
93b0a57791 BUG: Fixes #2175 and #2176 2021-08-06 11:07:48 -07:00
b78dccdd51 ENH: noiseModel - protected log10 calls 2021-08-05 16:06:33 +01:00
d8eecc5e2a Merge branch 'issue-2093-custom-U-in-devRhoReff-and-devReff' into 'develop'
ENH: enable custom input of U for devRhoReff and devReff

See merge request Development/openfoam!479
2021-08-05 12:41:24 +00:00
a870be6511 BUG: forces: ensure UName entry can be used (fixes #2093)
Previously, for basic incompressible and compressible simulations,
the "force" function object has not been using the user-specified "UName"
for the "devRhoReff" computation (affecting the tangential component),
but using the "U" of the latest available step. In contrast,
the user-specified "pName" has always been being used correctly.

This has been causing issues for users when they wish to use a specific
"UMean" field in various force and forceCoeff function object computations.
2021-08-05 12:40:47 +00:00
3207e315b2 ENH: enable custom input of U for devRhoReff and devReff 2021-08-05 12:40:47 +00:00
c8a52fad96 Merge branch 'issue-2132-turbulenceFields' into 'develop'
ENH: turbulenceFields: various improvements

See merge request Development/openfoam!476
2021-08-04 11:37:16 +00:00
14b328d990 ENH: turbulenceFields: enable custom prefix for output fields 2021-08-04 11:36:53 +00:00
2e703543ff BUG: turbulenceFields: unset duplicate already-registered fields 2021-08-04 11:36:53 +00:00
be7d6b3afb DOC: turbulenceFields: improve header documentation 2021-08-04 11:36:53 +00:00
c6c575052f STYLE: turbulenceFields: apply more recent OpenFOAM-coding practices 2021-08-04 11:36:53 +00:00
99291a7ac5 BUG: turbulenceFields: use omega funcs of turbulence models (fixes #2132) 2021-08-04 11:36:53 +00:00
084f89ee94 Merge branch 'issue-2122-dmd-snapshot0' into 'develop'
BUG: DMD: write snapshot0 at start times

See merge request Development/openfoam!482
2021-08-04 09:23:49 +00:00
9c46f86048 ENH: makeSolidReaction: modify macros to allow new models 2021-08-04 09:23:20 +00:00
c64c312bae TUT: hopper: parameterise blockMeshDict content (#2134) 2021-08-04 09:23:20 +00:00
f482f74277 BUG: DMD: write snapshot0 at start times (fixes #2122) 2021-08-04 09:23:20 +00:00
f687a21761 Merge branch 'issue-1615-solver-verbosity' into 'develop'
ENH: linear solvers: add variable-specific debug flags

See merge request Development/openfoam!478
2021-08-04 09:15:31 +00:00
6dedfe078a ENH: linear solvers: add variable-specific debug flags
Introduces a new optional keyword of label type 'log'
to linear-solver dictionaries to enable variable-specific
debug statements. For example, in fvOptions file:

    solvers
    {
        p
        {
            solver GAMG;
            ...
            log    2;
        }

        U
        {
            ...
            log    0;
        }
    }

The meanings of values of 'log' are:

    log    0;    <!--  no output
    log    1;    <!--  standard output
    log    2;    <!--  debug output
    // values higher than 2 are expected to have no effect

This keyword does not directly affect the operations of various
DebugSwitches and backward compatibility has been ensured in exchange
of code cleanness. The related DebugSwitches are:

    DebugSwitches
    {
        SolverPerformance    0;
        GAMG                 0;
        PCG                  0;
        PBiCG                0;
        smoothSolver         0;
    }
2021-08-04 09:15:19 +00:00
d9b200af28 TUT: rotatingFanInRoom: perturb locationInMesh (fixes #2162) 2021-08-04 09:15:19 +00:00
d6ff22e5e7 ENH: KirchhoffShell: simplification of log output 2021-08-04 09:15:19 +00:00
fa03050e03 Merge branch 'feature-implicitCyclics-merge' into 'develop'
Implicit treatment of coupled boundary conditions

See merge request Development/openfoam!477
2021-08-03 20:08:51 +00:00
53af23b9fb Implicit treatment of coupled boundary conditions 2021-08-03 20:08:49 +00:00
9645e1adc2 BUG: Curle - added missing division by r. See #2169 2021-08-02 18:51:58 +01:00
11e0db96d3 ENH: snappyHexMeshDict: added missing documentation 2021-08-02 14:01:12 +01:00
60aeca32a8 ENH: checkMesh: add stabilisation. Fixes #2171 2021-07-28 17:56:48 +01:00
9ab8c525cf CONFIG: set API level to 2107
- liquid film, blockMesh changes, multiWorld communicators
2021-07-28 17:17:41 +02:00
9b0051c40d SUBMODULE: update visualization 2021-07-28 16:54:00 +02:00
270f2eecf9 ENH: report API information in header #2126
- previously reported the WM_PROJECT_VERSION in the top banner
  but this makes it overly sensitive to arbitrary user naming.

  Change to the current API in the comment banner, include the
  WM_PROJECT_VERSION as part of the reported "Build: ..."
  string instead.
2021-07-28 16:53:53 +02:00
d379f0b61d Merge branch 'feature-multiWorld' into 'develop'
improve handling of multiple world communication

See merge request Development/openfoam!480
2021-07-28 14:50:05 +00:00
9d26b25c46 TUT: multi-world tutorial setup with circular connectivity 2021-07-28 16:21:14 +02:00
2bb91e354b ENH: improve handling of database mapping for multi-world
- cleanup initialization (to avoid stealing tokens)
2021-07-28 16:07:31 +02:00
56a5a43910 ENH: simplify mapped patch cloning in extrudeToRegionMesh 2021-07-28 16:07:31 +02:00
ec4265343a ENH: use multi-world connection object for managing mappedPatches 2021-07-28 16:07:30 +02:00
b2ec5af9e0 ENH: centralized MeshObject handler for multi-world connections 2021-07-28 16:07:30 +02:00
13740de427 BUG: mpi: use group-local communicator allocation. Fixes #2158 2021-07-28 16:07:30 +02:00
8f1bad1cb4 BUG: decomposing ConstantField loses information (#2101)
- previously had a patch-size check, which caused a zero-sized patch
  to be "sticky" as uniform Zero regardless of what the original input
  stated (eg, "constant 0.5")

  This was caused by short-circuiting logic that circumvented reading
  on zero-size patches.
2021-07-28 16:05:46 +02:00
10dd0d34d1 ENH: combine patchDistMethod New methods (code reduction) 2021-07-28 13:14:44 +02:00
a530b505ed TUT: replace m4 versions of angledDuct blockMeshDict with native forms
- dictionary parameters to change the bend angle

- blockMesh transform parameters to allow different orientations
2021-07-28 13:14:44 +02:00
29acee5a50 TUT: use new blockMesh support (faces, transforms) 2021-07-28 13:14:44 +02:00
d31f351c15 ENH: blockMesh enhancements
- support non-uniform scaling, prescaling and cartesian coordinate
  transformations.

  Eg, stretch in one direction and then rotate
  ```
  prescale  (1.5 1 1);
  transform
  {
      origin   (0 0 0);
      rotation
      {
          type  axisAngle;
          axis  (0 0 1);
          angle 45;
      }
  }
  ```

- support "transformed" versions of blockMesh vertices, topology.
  With the additional of transformations etc, a simplistic application
  of a single scale parameter is no longer sufficient.

    new:  blMesh.vertices(true);
    old:  blMesh.vertices() * blMesh.scaleFactor();

    new:  blMesh.topology(true);
    old:  N/A

- add individual edge access for blockDescriptor.
  Saves copying and duplicate calculations.

- handle '(block face)' specification for curved faces,
  which is ok for external block faces, but likely somewhat
  questionable if used for internal block faces.
2021-07-28 13:14:44 +02:00
4eeff16735 ENH: handle min/span as alternative to min/max for box selection
- searchable box, boxToCell, boxToFace, boxToPoint
2021-07-28 11:35:12 +02:00
d49566ea34 ENH: improve alignment of tetCell and cellShape
- added hexCell for some more encapsulation
2021-07-28 11:35:08 +02:00
5b09e59b3f ENH: support direct specification of coordinate rotation "none"
- Can specify
  ```
  transform
  {
      origin      (1 2 3);
      rotation    none;
  }
  ```
  instead of the longer form
  ```
  transform
  {
      origin      (1 2 3);
      e1          (1 0 0);
      e3          (0 0 1);
  }
  ```

COMPAT: remove old (pre-1812) Euler and STARCD keywords

- use "angles", remove old compat name "rotation"
  as clutter and possible confusion with "coordinate rotation"

STYLE: remove coordinate rotation move constructors

- an unnecessary holdover from older code.
2021-07-28 10:02:27 +02:00
e2be2289a1 ENH: finer granularity for CleanFunctions
- separate handling of auxiliary files vs time directories

- restore0Dir: avoid removing 0/ if 0.orig/ does not exist
2021-07-28 10:02:27 +02:00
eb7d0f0ef0 COMP: add missing includes for runtime-selection 2021-07-28 10:02:27 +02:00
847b61d1f9 GIT: fix some merge and edit rubbish 2021-07-28 10:02:27 +02:00
621d400db2 BUG: Fix to const Uwall helper function 2021-07-27 08:24:33 -07:00
3e70154ff1 BUG: Fixing movingWall BC mesh flux 2021-07-26 11:03:30 -07:00
7f2cbd6cd4 BUG: boundaryData output incorrect when no fields are sampled (fixes #2163)
- add "point data" or "face data" note to the boundaryData output
  for easier diagnositics in the future.
2021-07-20 12:53:39 +02:00
40ff2acdd6 BUG: word input is too strict (fixes #2160)
- for v2106 restricted the input conversion of string types to disallow
  treating verbatim strings as possible word input.
  However, it was too strict in just allowing quoted strings
  and should have also permitted '$'-sigil variables as well.

- ensure that errors for bad string -> word input conversion
  are raised from within the '>>' read operator. These were
  previously triggered during the stripping process, which
  made error tracing more difficult.
2021-07-17 19:46:37 +02:00
6f20499b57 Merge branch 'feature-liquidFilm' into 'develop'
finiteArea: new models and solvers for films

See merge request Development/openfoam!475
2021-07-16 16:39:48 +00:00
1f3c35841f ENH: Updating tutorials for finite area 2021-07-16 16:38:06 +00:00
3f670d88ea ENH: Initialization for area and single layer films for lagrangian 2021-07-16 16:38:06 +00:00
7d8dba564c TUT: heatTransfer: new tutorial for thermalShellModel 2021-07-16 16:38:06 +00:00
5b21050a0b TUT: incompressible/lagrangian: new tutorials for surfaceFilmModel 2021-07-16 16:38:06 +00:00
4b05b766d3 ENH: limitVelocity: new faOption 2021-07-16 16:38:06 +00:00
18ffb1ad07 ENH: KirchhoffShell: replace read() by init() 2021-07-16 16:38:06 +00:00
d3807a6ee3 ENH: vibrationShellModel and thermalShellModel: remove read()
STYLE: vibrationShellModel and thermalShellModel: regroup the access functions
2021-07-16 16:38:06 +00:00
a9aa6cb0db ENH: kinematicParcelFoam: new solver and tutorial
The original thermoSurfaceFilm sub-models were divided between kinematicSurfaceFilm and thermoSurfaceFilm in order to use the surfaceFilm model in a kinematicCloud.

The film interaction models are now in a kinematicSurface class which can be used in a kinematic cloud adding constant thermal properties (p and T) for some sub-models, e.g. drySplashInteraction/wetSplashInteraction.

pRef and Tref were added to the kinematicSurfaceFilm as entry to the regionFilm when used with a kinematic cloud.

In the finite area surface film model Tref, pRef are stored in filmSubModelBase.

TUT: kinematicParcelFoam: new tutorial pitzDailySprinkles
2021-07-16 16:38:06 +00:00
4476863907 ENH: Adding radiation to thermalShell 2021-07-16 16:38:06 +00:00
384b9f8100 ENH: reactingParcelFoam: allow to run single species 2021-07-16 16:38:06 +00:00
f98633e427 ENH: liquidFilm subModels: add force models 2021-07-16 16:38:06 +00:00
e30cbfc6db ENH: liquidFilm subModels: add injection models
ENH: Several additions to thinFilm models

1) Changing the faSolution entry nonOrthoCorr to nFilmCorr entry.
   This entry specify the number of iterations on the film thickness
   Eq which does not correct for laplacian non-orthogonality.

2) Changing laminar turbulent model for the skin friction exerted by
   the flow to the film.

3) Adding optional relaxation factors for source terms coming from
   the added mass of the lagragian particles into the film such as
   rhoSp, pnSp and Usp. Similarly the film pressure (pf) can  be
   relaxed in the inner loops.

4) Adding optional entries to curvatureSepration injection model.
   minimum (fThreshold) force and minimum curvature (minInvR1) for
   separation were added to have more control on determining the
   points of film separation

ENH: ThermoSurfaceFilm in lagragian to search for finiteArea film models
2021-07-16 16:38:06 +00:00
b62306ddc5 ENH: Adding regionFaModels library to solvers 2021-07-16 16:38:06 +00:00
be09967acf ENH: regionFaModel: various updates 2021-07-16 16:38:06 +00:00
efd3f59295 ENH: finiteArea: new models for shallow film modelling
- new model framework: liquidFilm
- new film turbulence models: filmTurbulenceModel with friction models
- new velocity boundary condition: velocityFilmShell to handle/evolve regionFa film
- new function object: setTimeStep to control the simulation time-step based on regionFa Courant number
- add support for the absorption of Lagrangian particles into films
2021-07-16 16:38:06 +00:00
b006f5c44e ENH: movingWallVelocity: add Uwall function 2021-07-16 16:38:06 +00:00
ce5e2e7e1c ENH: volSurfaceMapping: new mapToField and mapToSurface funcs 2021-07-16 16:38:06 +00:00
db9460f0bc ENH: copy construct FixedList from fixed subset of input
- remove construct from two iterators (#2083)
2021-07-15 16:47:27 +02:00
0c15f773e0 STYLE: remove/replace unneeded SortableList 2021-07-15 16:47:27 +02:00
aca366d293 TUT: replace remaining templated thermoType
TUT: some simplification for multiWorld test

STYLE: remove some editor junk
2021-07-15 16:47:22 +02:00
09aa3d8b43 COMP: avoid incomplete types in runTime tables, unneeded typedefs etc 2021-07-15 14:31:54 +02:00
ccc751e55d ENH: centralize checks for keyword age into Foam::error
STYLE: additional note about include/exclude HashTable.C
2021-07-15 12:53:02 +02:00
90ad6ce9cf GIT: Updated gitlab bug template 2021-07-15 10:20:09 +00:00
c1c1799051 BUG: Caching alphaPhiUn for VoF for scalarTransport FOcin mixture. #2053 2021-07-12 14:22:08 -07:00
20ca8e8aac BUG: Fixing entries for BinghamPlastic model. Fixes #1150 2021-07-08 13:23:39 -07:00
bda5a87213 BUG: Correcting calculation of phiGas used in coupled BC. Fixes #2149 2021-07-08 12:26:04 -07:00
2ab81c3b69 BUG: Correcting surface tension calculation from pair order. Fixes #2051 2021-07-08 12:17:05 -07:00
028ca26617 COMP: resolve abi:cxx11 linker issue (fixes #2147)
Issue first shows up on gcc-11 with these types of library symbols:

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

  Use concrete hasher functor for runtime selection tables, which
  avoids any additional template resolutions (introduced with
  95cd8ee75c). The library symbols now resolve _without_ an
  additional abi:cxx11 tag.
2021-07-08 13:58:28 +02:00
014dbf4004 Update Build.md 2021-07-07 09:24:55 +00:00
3f172ccae1 ENH: Provided links to source packs 2021-07-07 09:24:31 +00:00
70c697fdcb BUG: momentum: boundary field mismatch on "empty" patches (fixes #2121) 2021-07-05 15:20:41 +02:00
64deb4e4b8 BUG: state error in volRegion::calculateCache() (fixes #2121)
- need to change requireUpdate_ at the beginning of calculateCache
  otherwise it is not updated for "ALL" selection (causing unnecessary
  repeated calculations). For other modes, it would have tripped
  an error in FULLDEBUG.
2021-07-05 15:17:56 +02:00
8cda8e5c3a ENH: downgrade lookupObject failure from abort() to exit()
- lets function objects catch and handle errors
  (fixes #2144, related to #1779)
2021-07-05 14:55:48 +02:00
cc5aa20931 ENH: simplify exit/abort handling and jobinfo (code reduction)
- handle failures more robustly
- add static shutdown() for similarity with Pstream etc.
2021-07-05 14:55:48 +02:00
8a1f667067 COMP: cannot resolve read in UnsortedMeshedSurface constructor
- fix linkage for cellModeller compat methods
2021-07-05 14:55:37 +02:00
00990698ad COMP: remove construct SortableList from two iterators (#2083)
- unused, but missed in 40567b844a
2021-07-05 14:55:37 +02:00
8884d58a52 STYLE: fix/correct some tests. Remove useless tests 2021-07-05 14:55:37 +02:00
6a390f6ad1 COMP: remove includes of defunct locations (fixes #2143) 2021-06-29 13:43:44 +02:00
1898395038 ENH: group bools together, relocate override of updateT (basicThermo)
- all flags before loaders. Avoids "uninitialized when used here"
  warning while preserving the field ownership logic.

- relocate override of updateT basicThermo into constructor body
  for clearer logic and initialization

STYLE: plain bool instead of Switch for dpdt flag
2021-06-29 13:43:44 +02:00
252326df05 STYLE: add fa/fv namespace qualifiers for fa/fv option 2021-06-29 13:43:44 +02:00
f75379633c CONFIG: Updated version to com following release of OpenFOAM v2106 2021-06-28 17:33:22 +01:00
c15bfde3cb RELEASE: Updated config scripts to v2106 2021-06-28 09:15:09 +01:00
e3796745ed CONFIG: Updated headers to v2106
Minor clean-up
2021-06-28 09:14:42 +01:00
c503deb72e CONFIG: Updated completions 2021-06-28 09:14:34 +01:00
03cc42414c BUG: Changing divDevRhoReff scheme for incompressible flows 2021-06-24 08:10:16 -07:00
155455398e SUBMODULE: update OpenQBMM 2021-06-24 13:51:36 +02:00
eb3c96fe30 Merge branch 'bugfix-fan' into 'develop'
Hot fixes for v2106

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

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

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

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

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

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

- construct for multiple zone selection

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

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

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

STYLE: formatting/wording for openfoam starters

TUT: simplify controlDict modification, add default substitution

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Example of function object specification:

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

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

        // Optional entries
        regions     (region1 region2);
    }

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

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

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

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

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

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

        // Mandatory entries (runtime modifiable)
        operation       subtract;

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

            ...

            regionN
            {
                ...
            }
        }

        // Optional (inherited) entries
        ...
    }

    where the entries mean:

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

    Options for the \c operation entry:

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

Deprecated fieldValueDelta

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

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

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

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

        relax           0.2;

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

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

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

        // Optional under-relaxation
        relax           0.2;

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

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

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

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

ENH: additional volume/patch expressions

- deltaT()

STYLE: rename exprDriverWriter -> fvExprDriverWriter

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

BUG: expression faceToPoint/pointToFace definitions were flipped

ENH: refactor expression hierarchy and code style

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

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

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

  Alternatively, can specify more granularity if required.

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

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

- optional -output=DIR to preserve output

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

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

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

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

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

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

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

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

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

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

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

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

  ```
      tmp<volScalarField> tfld;

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

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

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

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

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

boundary conditions and function objects:

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

PatchFunction1:

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

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

fvOptions:

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

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

ENH: additional debugging faOption/fvOption (#2110)

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

STYLE: rename CodedSource -> CodedFvSource

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

- support reading of both versions.

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

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

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

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

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

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

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

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

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

- use uindirectPrimitivePatch instead of indirectPrimitivePatch
  for internal patch handling.

- align boundary methods with polyMesh equivalents

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

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

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

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

ENH: LabelledItem container, replaces unused 'Keyed' container

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

* exclude imbalanced closing ')' from word/variable

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

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

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

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

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

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

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

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

* improve #eval { ... } brace slurping

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

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

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

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

* tighten recognition of verbatim strings and expressions.

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

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

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

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

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

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

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

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

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

      ... do something that only works with uncollated

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

ENH: make fileOperation distributed(bool) mutable

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

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

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

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

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

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

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

      pointField pts = ....;

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

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

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

- reduce the number of operations in edgeDirection methods

DEFEATURE: remove longestEdge global function

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

Eg,

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

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

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

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

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

  Example,

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

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

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

Step 2.
    include "getAllRegionOptions.H"

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

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

    OR use the -region option

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

    Creates a `wordList regionNames`

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

    include "createNamedMeshes.H"

    Creates a `PtrList<fvMesh> meshes`

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

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

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

ENH: further relax check for matching number of processor dirs

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

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

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

  For example,

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

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

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

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

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

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

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

    Needs adjustment, or use intelmpi instead.

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

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

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

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

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

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

- standardize internal hashing functors.

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

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

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

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

- define hasher and Hash specialization for bitSet and PackedList

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

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

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

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

  which adds a fileName::validate on the inputs

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

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

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

BREAKING: remove fileName::clean() const method

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

  Replace:
      fileName sanitized = constPath.clean();

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

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

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

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

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

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

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

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

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

STYLE: fix stray use of wordReList instead of wordRes

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ENH: improve code isolation for decomposedBlockData

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

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

- remove unused constructors for decomposedBlockData

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

- refine internals for IOstreamOption streamFormat, versionNumber

ENH: improve data alignment for IOstream and IOobject

- fit sizeof label/scalar into unsigned char

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

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

STYLE: use data/cdata instead of begin

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

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

  instead of

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

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

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

- direct check of word.
  For example,

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

  instead of

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

- make token lineNumber() a setter method

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

- support named compound tokens

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

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

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

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

- optional user-specified output precision

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

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

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

ENH: use std::swap for basic types

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

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

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

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

ENH: modify interface methods for surfaceWriter

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

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

ENH: allow post-construction change to sampledSurface interpolation

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

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

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

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

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

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

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

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

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

STYLE: deprecate transitional getNameOp, getTypeOp

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

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

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

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

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

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

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

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

- improve sizing consistency for (Istream >> DynamicList)

STYLE: more consistent use of resize vs setSize in DynamicList

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

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

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

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

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

Example usage:

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

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

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

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

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

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

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

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

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

ENH: additions to PDRutils, improve comments

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

TUT: update PDRsetFieldsDict and tutorials to use "ground"

- remove tutorial references to unused types and legacy obstacles

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

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

Example of the boundary condition specification:

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

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

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

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

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

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

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

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

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

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

Example usage for limiting a polynomial:

    limitedPolyTest        limitRange;
    limitedPolyTestCoeffs
    {
        min         0.4;
        max         1.4;

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

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

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

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

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

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

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

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

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

    fieldResult = field1 * field2 * ... * fieldN

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

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

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

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

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

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

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

GIT: remove merge cruft

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

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

       ratios      1.1;

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

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

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

Closes #1949

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

Closes #1948

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ENH: restructure distance surface geometric filtering

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

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

- rudimentary runtime selection

ENH: isoSurface Cell/Topo uses the isoSurfaceBase infrastructure

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

ENH: use indirect patch during edge erosion

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

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

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

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

geometry
{
    type            highAspectRatio;
}

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

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

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

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

Usage

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

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

- Add optional hRef, eRef and Tref as optional.

- Use new thermo to multiphase solver icoReactingMuliPhaseFoam

- Remove hRefConst and eRefConst thermos.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- harmonize filter/regularisation flags for iso-surface

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

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

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

- use procRangeType for encapsulating the processor ranges

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

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

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

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

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

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

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

Example usage:

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

        recycleFraction     0.8; // [0-1]
    }

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

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

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

  - volFieldValue:
    * 0-N scalar fields

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

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

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

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

  Eg,

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

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

      // inferred name = inlet
  }

- reduce some overhead in surfaceFieldValue

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

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

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

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

      -(10 * elemId + sideNum)

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

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

- minor code simplication in bitSet and PackedList

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

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

- bin/tools/vscode-settings

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ENH: separate mark/space for Square

- makes it easier to tailor the desired intervals.

BUG: incorrect square wave fraction with negative phase shifts

ENH: additional cosine Function1

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

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

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

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

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

- support for compatibility lookups

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

ENH: refactor a base class for Function1, PatchFunction1

- includes base characteristics, patch or scalar information

ENH: additional creation macros

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

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

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

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

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

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

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

ENH: improved efficiency in countstreambuf

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ENH: support different major versions for system openmpi

- for example, with

     WM_MPLIB=SYSTEMOPENMPI2

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

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

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

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

    After:
        include $(GENERAL_RULES)/mpi-rules

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

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

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

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

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

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

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

CONFIG: use project/ThirdParty without additional sanity checks

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

COMP: add simple mpi test to 00-dummy

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

COMP: bad constructor in searchableSphere

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

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

- makes it easier to trace potential format errors etc

STYLE: downgrade warning about polyhedrals to a simple info message

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

ENH: ensure polyMesh from PDRblockMesh is marked as AUTO_WRITE

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

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

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

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

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

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

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

  For example,

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

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

STYLE: relocate blockMesh OBJ output to application only

- remove blockTopology files in cleanCase function

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- add transferCompoundToken() without Istream reference

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- reduce some allocations in cellModel centre/mag methods

STYLE: mark old cellModeller methods as compile-time deprecated

- deprecated in 2017, but not marked as such

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

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

TUT: improve parameterization of sphere blockMeshDict

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

      arc 0 1 origin (0 0 0);

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

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

      arc 0 1 origin 1.1 (0 0 0);

ENH: minor code cleanup for block edges

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

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

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

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

ENH: support construct empty ITstream with given name

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

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

- relocates labelRange IO operators to IntRange

ENH: make sliceRange interators random access

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

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

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

  instead of

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

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

  instead of

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

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

- more similarity to finiteVolume patch type

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

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

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

- simplify construction of iterators

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

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

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

Deprecations:

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

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

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

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

DEFEATURE: drop labelRange::identity static method

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

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

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

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

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

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

ENH: improve code alignment between faMatrix and fvMatrix

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

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

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

ENH: add code to ignore negative face ids

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

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

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

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

      WM_COMPILE_CONTROL="+gold ~openmp"

CONFIG: accept FOAM_EXTRA_LDFLAGS for AMD, gold, Mingw linkers

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  - copies tutorials (can be deactivated)

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

ENH: add very simple FFT test

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

  These stream pointers have some characteristics similar to a
  unique_ptr.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- libincompressibleMultiphaseSystems
  - removed: libmassTransferModels

- libmultiphaseSystem
  - removed: libcompressibleMultiphaseEulerianInterfacialModels

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

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

Avoid duplicate symbol for phaseCompressibleTurbulenceModels

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

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

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

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

ENH: improved naming consistency in tmp, refPtr

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- propagate similar changes to HashPtrTable

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

  With 'insert' semantics

      table.emplace("list1", 1000);

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

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

  With 'set' semantics:

      table.emplace_set("list1", 15);

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

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

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

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

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

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

STYLE: remove remnant parent::operator= from HashSet

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

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

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

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

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

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

ENH: renamed tmpNrc to refPtr

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

- provide tmpNrc typedef and header for code compatibility

NOTE

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

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

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

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

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

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

STYLE: refactor tmp operator=(T*)

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

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

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

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

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

  Now
      if (ptr)
      if (!ptr)

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

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

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

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

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

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

STYLE: fix private/protected access

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

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

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

- construct or open from initializer_list of names

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

- basename and fullname methods (migrated from dynamicCode).

- centralise low-level load/unload hooks

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

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

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

ENH: simplify/improve Pstream profiling

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      if foamHasLibrary geometricVoF
      then ...
      fi

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

      foamHasLibrary -verbose petscFoam

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

CONFIG: bump to new hypre version

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

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

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

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

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

Example of function object specification:

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

        // Input - either points or surface

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

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

        // Output - either points or surface
        output          points;

        //output          surface;
        //surfaceType     ensight;
    }

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

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

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

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

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

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

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

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

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

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

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

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

TUT: adjust building motion tutorial

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

- use simpler libs () format

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

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

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

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

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

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

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

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

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

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

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

    cloudFunctions
    {
        WeberNumber1
        {
            type    WeberNumber;
        }
    }

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

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

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

- update names of cyclics

- increase tolerance for zero-thickness baffles

- velocity field "U" instead of "UBet"

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

- apply similar local change for the momentum function object.

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

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

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

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

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

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

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

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

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

  ENH: add new fvOptions for ABL modelling

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

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

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

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

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

  ENH: review actuationDiskSource and radialActuationDiskSource

  ENH: add new function object, ObukhovLength

  ENH: add new ABL tutorials/verifications

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

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

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

\verbatim

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

\endverbatim

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

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

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

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

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

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

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

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

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

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

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

ENH: add -no-recursion option for AllwmakeParseArguments

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

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

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

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

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

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

  ENH: add generalised atmBoundaryLayerInletOmega boundary condition

  ENH: add a verification case for atmBoundaryLayerInlet BCs

  DOC: improve atmBoundaryLayerInlet header documentation

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

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

  Related references:

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

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

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

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

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

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

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

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

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

    Please refer to the header file documentation for further details.

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

  The new iterative eigen decomposition functionality is
  derived from:

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

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

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

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

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

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

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

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

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

This commit includes the following:

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

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

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

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

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

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

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

Potential breaking change (minor):

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

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

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

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

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

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

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

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

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

The FO heatTransferCoeffs for libfieldFunctionObjects needs
twoPhaseReactingTurbulenceModels.

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

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

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

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

Example,

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

Rebuild MPI-layers with different MPI.

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

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

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

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

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

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

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

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

- Do not specify '-j' option for wrapped cmake creation to avoid
  the warning:
  make[1]: warning: -jN forced in submake: disabling jobserver mode.
2020-05-14 16:53:06 +02:00
614db5a1e2 STYLE: adjust 'No completions' message for more clarification
- Now state "[ignore if OpenFOAM is not yet compiled]"
2020-05-14 11:20:49 +02:00
3d0404af18 STYLE: simpler use of autoPtr, unique_ptr for OSspecific, fileFormats 2020-05-14 11:15:24 +02:00
841b65536b ENH: use unique_ptr for resource handling in dynamicMesh
ENH: defaulting for destructors where possible

STYLE: clear() instead of setSize(0) for plain Lists

STYLE: use bool operator instead of valid()/empty() for autoPtr tests
2020-05-14 02:16:58 +02:00
2c3425ac1e ENH: simplify coding for local faces (in enrichedPatch)
- similar to changes made in PrimitivePatch (commit 8a5d108fd2)
2020-05-13 21:22:13 +02:00
2530bb77ae COMP: add copy assign List from FixedList (was missing) 2020-05-13 21:21:23 +02:00
3688957e01 GIT: moved polyTopoChange from dynamicMesh -> meshTools 2020-05-13 20:59:03 +02:00
44b225604d ENH: add blockMeshDict "mergeType" keyword (#1589)
- enumerated values are (points | topology) which can be optionally
  specified in the blockMeshDict. Default is 'topology'.

  If the command-line option `blockMesh -merge-points` is specified,
  this has absolute priority over any blockMeshDict entry.

STYLE: changed blockMesh "-blockTopology" option to "-write-obj"

- this is more specific to what it does. Potentially wish to add a
  "-write-vtk" option in the future.

TUT: adjust tutorials to use preferred or necessary merge strategies:

  * channel395DFSEM - topology
  * nozzleFlow2D - points
  * pipeCyclic - points
2020-05-13 20:59:03 +02:00
5999125cd9 BUG: Fix info statement in parallel. Fix #1694 2020-05-13 11:48:23 -07:00
1584f28e91 ENH: blockMesh: generate duplicate boundary faces. Fixes #1516 2020-05-13 11:59:47 +01:00
bb13d27d2b ENH: inverseDistance: output stencil per zone. See #1683.
Code provided by Nicolas Edh.
2020-05-13 10:24:40 +01:00
90e21679b3 DOC: Corrected header documentation 2020-05-12 15:27:26 +01:00
ed3c6bcb63 COMP: only use Project/build if Project directory is writable (#1693) 2020-05-12 10:16:18 +02:00
d4e31093fd ENH: improved encapsulation of MPI (re)builds
- dependency handling relocated from cmakeFunctions to wmakeFunctions
  and reused for mpi-versioned builds. This allows more checks for
  configuration parameters and removes hard-code build path
  information.

CONFIG: remove spurious mplibHPMPI entries

CONFIG: remove ADIOS1 rules (antiquated)
2020-05-12 10:05:47 +02:00
f99561700b ENH: add 'subcommand' handling to wclean (#1693)
- wcleanBuild, wcleanPlatform now accessible as "wclean -build" and
  "wclean -platform", respectively
2020-05-12 10:05:47 +02:00
9e3d06853e ENH: add 'subcommand' handling to wmake (#1693)
- initial split of wmake-related commands into "plumbing" and
  "porcelain" akin to how git handles things.

- wmakeBuildInfo (very low-level), now relocated to the wmake/scripts
  and accessible for the user as "wmake -build-info".

  This satisfies a long-standing desire to access build information
  in a fashion similar to the api/patch information.

CONFIG: avoid git information when building with a debian/ directory

- when a 'debian/' directory exists, there is a high probability that
  the '.git/' directory is from debian and not from OpenFOAM (ie,
  useless here). This corresponds to an implicit '-no-git', which has
  no effect when building from pristine sources.

ENH: wmakeCheckPwd becomes scripts/wmake-check-dir

- accessible for the user as "wmake -check-dir" and with 1 or 2
  directory names. A wmakeCheckPwd symlink left for compatibility.
2020-05-12 10:05:24 +02:00
8bd9f41efd ENH: wmakeLnInclude support for multiple dirs and -force option (#1693)
STYLE: minor changes to makefiles
2020-05-12 08:00:26 +02:00
488b03980e ENH: support different config names in foamConfigurePaths 2020-05-11 20:37:19 +02:00
a577f8e006 BUG: Pair sort on construct did the opposite (fixes #1701) 2020-05-11 20:37:19 +02:00
8395d69cdb BUG: Pair sort on construct did the opposite (fixes #1701) 2020-05-11 20:23:19 +02:00
435957ac87 ENH: exposed access to compile-time project, etc directories
- less frequently used, but the information was previously inaccessible
  under etcFiles.C.

  Now exposed within the foamVersion namespace and defined under
  <global.Cver> to improve configuration possibilities.
2020-05-11 14:14:59 +02:00
6a16db3708 ENH: use hasEnv() instead of env() for naming symmetry with getEnv, setEnv
- less confusing than the env() name, which could look like a
  setter/getter instead of a test
2020-05-11 10:12:26 +02:00
584ff5e0d0 TUT: Adjusting tutorial settings 2020-05-08 13:56:42 -07:00
712512d4f4 BUG: Reverting change on qr signs for power and heatFlux modes 2020-05-07 14:00:45 -07:00
e5afe55e9b CONFIG: bump API to 2004 2020-05-06 17:25:00 +02:00
30612f42ae SUBMODULES: adios, OpenQBMM, visualization - handle installation prefixes 2020-05-06 17:15:17 +02:00
0ec0facff6 ENH: add paraFoam -plugin-path=DIR option
- convenient way to use alternative plugin installations

- provide separate -help-build information and reduce the noisy output
  when a reader module cannot be located.
2020-05-06 16:44:05 +02:00
b3464d8afc COMP: wmake rules for AMD (clang-based) compiler (#1627)
- not fully tested
2020-05-06 13:11:09 +02:00
78dc8c6ba6 CONFIG: refactor common link rules, support FOAM_EXTRA_CFLAGS (#1256)
- additional cgal-headers-only rules (future use)

COMP: add -lgmp for CGAL with mpfr linkage
2020-05-06 13:10:30 +02:00
595579e01d COMP: use -iquotedir for including the local '.' directory
- adds into the include-quoted search list instead the general (-Idir)
  search list.

  * makes it less subject to ordering (since it will now generally be
    searched first) and makes it less subject to how duplicate removal
    is implemented. In some compilers (#1627), the last instance of
    a duplicate directory would be used and not the first instance.

  * removes clutter in some Make/options files

COMP: add missing linkage libraries
2020-05-06 13:06:40 +02:00
b4bf26ea4f Merge remote-tracking branch 'origin/master' into develop 2020-05-06 10:13:56 +02:00
d0846edf50 CONFIG: increment patch level 2020-05-06 09:11:55 +02:00
bcd798aa65 SUBMODULES: catalyst module with updated cmake/wmake scripts 2020-05-06 09:11:32 +02:00
c853080d91 COMP: provide makefile fallbacks for FOAM_SOLVERS, FOAM_UTILITIES
- improves build robustness, even with a reduced environment (#517)
2020-05-06 09:11:04 +02:00
cf5928c3b8 Merge branch 'config-improve-cmake-paraview-handling' into 'master'
ENH: improve cmake/ParaView config handling

See merge request Development/openfoam!358
2020-05-05 17:50:48 +01:00
aafe674f5f ENH: improve cmake/ParaView config handling
- improve handling of changes in ParaView/VTK or cmake parameters (#1693)

  * adjust internals to support recording of an unlimited number of
    configuration parameters and use file `cmp` instead of trying
    to check strings ourselves.

ENH: new wmake/scripts/wmake.cmake-args handler

- additional handling of -prefix=... as CMAKE_INSTALL_PREFIX export.

- in some contexts, can use instead of AllwmakeParseArguments
2020-05-05 18:06:09 +02:00
8756791b00 ENH: use topological merge as default for blockMesh (closes #1589)
- faster and fewer issues with high aspect ratio cells.

- `blockMesh -merge-geometric` for old behaviour
2020-05-04 16:19:03 +02:00
8d29896fca TUT: illustrate inverse expansion ratio in a few places
- see commit 7da0b5bee1
2020-05-04 15:41:37 +02:00
77a2c1b578 ENH: support token conversion of scalar to label (#1696)
- this specifically arises in the case we have used the `#eval` syntax
  to generate a value.
  However, since the expressions produce scalar/vector/tensor etc, the
  tokenized value will *not* be introduced into the dictionary as a
  label, even if it appears to be an integer value.

  Eg, eval "2*5", eval "sqrt(100)" both yield `scalar(100)`, which
  will not be suitable for any consumer expecting a label value.

  With the `#calc` version, this problem is glossed over since it uses a
  string buffer for the output (which can suppress the decimal)
  and re-parses the string into tokens, which causes a label to be
  recognized.

- Since we obviously already support implicit handling of ints as
  floats (when reading), now also allow conversion of float
  representations of integral values.

  Uses the ad hoc value of 1e-4 for deciding if the value deviates too
  far from being integral.

- As a side-effect, can now also support scientific notation when
  specifying integers.  Eg, (10 100 1e+3) for cell counts.
2020-05-04 14:54:45 +02:00
8cfb483054 STYLE: some general spelling fixes 2020-05-04 09:15:21 +02:00
2a24bab057 STYLE: consistent looping of patchSet entries 2020-05-01 17:31:01 +02:00
0680416b59 COMP: tag lookupObjectPtr and lookupObjectRefPtr as deprecated
- were deprecated via comments (2018-10).
  Now mark with compilation warning
2020-05-01 16:42:55 +02:00
0c163e40e5 COMP: missing clone methods for some derived boundary conditions 2020-05-01 16:25:11 +02:00
a1ccd1b716 STYLE: use DebugInFunction macro 2020-05-01 16:11:18 +02:00
a3c226a1bd Merge branch 'style-primitive-patch' into 'develop'
Update primitive patch templating and storage

See merge request Development/openfoam!357
2020-05-01 07:10:04 +01:00
8a5d108fd2 STYLE: update PrimitivePatch (#1648)
- simplified templating, which cleans up code and does not appear to
  break any normal user coding.

ENH: unique_ptr instead of homegrown demand-driven handling.
2020-04-30 15:52:42 +02:00
5c9f07df7a STYLE: include demandDrivenData.H wherever deleteDemandDrivenData is used
- allows easier identification for future changes
2020-04-30 11:16:06 +02:00
aeebdc3cdc Merge branch 'feature-directionalMeshWave' into 'develop'
WIP-ENH: add directionalMeshWave functionality

See merge request Development/openfoam!356
2020-04-30 08:52:47 +01:00
ea16cb4b29 ENH: add directionalMeshWave functionality
For a given point within a given mesh, the existing `meshWave` method gives
  the orthogonal distance to a patch. In meshes with very steep terrain (e.g.
  a hill of 90 [deg], this might be problematic for the fields that require
  the distance to the patch associated with the terrain surface.

  `directionalMeshWave` is a variant of `meshWave` distance-to-patch method,
  which ignores the component in the specified direction. Can be used e.g. to
  calculate the distance in the z-direction only.

  TUT: add example of directionalMeshWave to mesh/moveDynamicMesh/SnakeCanyon

  Requirement by CENER
  Implementation by Mattijs Janssens
2020-04-29 19:54:00 +01:00
50055b3d00 ENH: add IOobject::scopedName() static method
- preliminary to further changes (#1675)
2020-04-28 16:21:34 +02:00
119796b6cb STYLE: avoid ":<>" in EnSight file names (#902) 2020-04-28 16:21:34 +02:00
14e2dbfb2a ENH: add string replaceAny() method
- takes a search string and a replacement character.
  The replacement character can also be a nul char ('\0'), which
  simply removes the characters.

  Possible uses:

  * Replace reserved characters
      str.replaceAny("<>:", '_');

  * Remove shell meta-characters or reserved filesystem characters
      str.replaceAny("*?<>{}[]:", '\0');
2020-04-28 16:21:34 +02:00
344940829a STYLE: use simpler typedefs for PrimitivePatch instances 2020-04-28 16:21:30 +02:00
8cbf55acad STYLE: reuse faceCentres if they already exist 2020-04-28 15:38:47 +02:00
cc7af66a15 STYLE: use face_type instead of FaceType typedef 2020-04-28 15:38:47 +02:00
213d413464 STYLE: simplify handling of null faceMap for MeshedSurface 2020-04-28 12:13:15 +02:00
64fcbd5e4f ENH: additional dimensionedType constructors
- construct from dimensioned/value, defaulting name from value.
  Can be convenient for these type of operations:

      max(.., dimensionedScalar(somedims, 0.5))

- construct from dimensioned/one, forwarding to pTraits::one.
  Can be convenient for constructors:

    volScalarField( ..., dimensionedScalar(somedims, one{}))

ENH: minor updates to zero/one classes.

- add global 'One' constant for symmetry with 'Zero'.
2020-04-28 10:41:25 +02:00
79048eb68f STYLE: use writeEntry(), beginBlock(), endBlock() methods
- use dictionary::get<..> instead of lookup in a few more places
2020-04-28 10:41:23 +02:00
8525d4a2c5 CONFIG: no default verbosity for openfoam shell session
- an otherwise confusing amount of output that may not be expected
2020-04-27 21:24:56 +02:00
81bd0aa09f STYLE: pass autoPtr for fileHandler and matrix solver as moveable
- clearer than passing a reference to a dummy variable,
  or relying on move occuring within the copy constructor
  (historical, but should be deprecated)

STYLE: consistent autoPtr syntax for uncollated file operations
2020-04-27 13:09:45 +02:00
394a3a9b6e ENH: retain compound type on List output (continuation of 68de05285a)
- can help in circumstances when an zero-sized entry is written on
  some processors, but the compound-type may be useful for determining
  a particular code path when re-reading the files. Ensures that the
  information is consistent on all processors.

STYLE: adjust separation of includes between List.H and UList.H
2020-04-27 13:08:53 +02:00
bfa20286f2 STYLE: remove spurious coordinate system validity check 2020-04-27 13:08:53 +02:00
5ab04f5745 GIT: remove prebuilt pdf file(s) 2020-04-27 09:45:17 +02:00
c3571b7357 ENH: topoDistanceData: templated on passive data type.
Also adds pointTopoDistance, edgeTopoDistance.
2020-04-24 12:34:08 +01:00
9b4462e07b CONFIG: bump API to 2003
- various changes
2020-04-21 15:09:12 +02:00
9cfa5fe454 Merge remote-tracking branch 'origin/master' into develop 2020-04-21 15:07:35 +02:00
aa2f932b75 CONFIG: additional packaging helpers, tutorial test helper
- bin/tools/create-mpi-config to query/write values for system openmpi.
  In some cases this can be used to avoid an mpicc requirement at runtime.

- adjust openfoam session to include -test-tutorial forwarding to the
  tutorials/AutoTest. This helps with writing installation tests.

- adjust foamConfigurePaths to latest version

- removal of gperftools default config, as per develop
2020-04-21 14:59:07 +02:00
6691e6563c COMP: adjust for CGAL-1.14 changes 2020-04-21 14:59:07 +02:00
2ed60bbc01 STYLE: generalize transform/invTransform no-op for base types 2020-04-21 13:32:27 +02:00
c99d074247 CONFIG: additional options for foamPackRelease 2020-04-21 13:32:27 +02:00
a14a231f09 STYLE: spelling and misc code style for interfaceHeatResistance 2020-04-21 13:32:26 +02:00
a686491187 Merge branch 'feature-VOF-massModels' into 'develop'
Feature VOF mass models

See merge request Development/openfoam!351
2020-04-20 20:58:32 +01:00
b240f9f963 ENH: Adding interfaceHeatResistance mass transfer model
1) Add interfaceHeatResistance model to icoReactingMultiphaseInterFoam
   This model uses a spread source for the continuity Eq.
   It is recommended for cases with good mesh resolution.

2) Adding iso-surface type of calculation for the interface for
   the kineticGasEvaporation model

3) Add switch for option to take into account volume change

4) Add poolEvaporation tutorial
2020-04-20 20:58:32 +01:00
da070b573f ENH: transform: support for unsigned int 2020-04-20 09:04:47 +01:00
302b4443e8 ENH: mappedPatchBase: support topo changes. Fixes #1676 2020-04-20 08:26:37 +01:00
04fc529589 TUT: Adjusting Tsat in phase change model 2020-04-17 11:31:32 -07:00
c8b504a680 BUG: Bound Tsource and pEq sign for condensation. Fix #1682. 2020-04-17 11:30:10 -07:00
b2bf82360c COMP: cleanup of surfaceCoarsen/bunnylod
- remove MSWindows components (code and makefiles)

- use cxx, hxx extensions to reduce possible confusion with other
  "list" and "vector" classes

- use C++ versions for C headers
2020-04-16 13:34:56 +02:00
a5b2cf9069 BUG: bad internal coeff for finiteArea zeroGradient BC (closes #1637)
- inadvertently set to zero instead of one (in commit 1d85fecf4d)
2020-04-16 10:11:33 +02:00
e1586bdaa0 CONFIG: add linuxARM64Fujitsu settings (#1671) 2020-04-16 00:48:08 +02:00
6152940ba2 CONFIG: support compiler query in bin/tools/query-versions
- Query the etc/config.sh/compiler for Gcc/Clang versions
2020-04-16 00:47:05 +02:00
9aae45fa51 Merge remote-tracking branch 'origin/master' into develop 2020-04-16 00:45:11 +02:00
2416599ea9 STYLE: format consistency for copyright 2020-04-15 23:28:41 +02:00
392d497d30 BUG: Time: check for processorsDDD. Fixes #1679. 2020-04-15 12:50:10 +01:00
06333efd2d CONFIG: improve detection of scotch system include/libraries
- align wmake have_* scripts to support version query as per current
  develop branch

- use config.sh/ fallbacks when the corresponding *_ARCH_PATH is empty
  (eg, BOOST, CGAL, FFTW).
  This aids when building outside of the regular OpenFOAM environment.
2020-04-15 13:35:45 +02:00
4200774d35 CONFIG: improve support for compiler derivatives (#1671)
- add '[-+.~]' to the recognized qualifiers.
  This allows simple readable names such as

      WM_COMPILER=Clang-vendor

  but also opens the FUTURE (not yet supported) possibility of
  combining in additional information. For example,

      WM_COMPILER=Clang~openmp
      WM_COMPILER=Clang+cuda~openmp

  by using '+' (add) and '~' (subtract) notation similar to what
  spack uses.

CONFIG: support 'override' rules

- if present, compiler-family 'override' rules are included after
  compiler-family 'general' rules have been included. This allows a
  central means for including dynamically generated content to
  override some values.

  Some examples:

  To handle different gcc versions (system compiler):

  wmake/rules/...Gcc/override

  ```
  ifneq (,$(findstring 9, $(WM_COMPILER)))
      cc  := gcc-9
      CC  := g++-9 -std=c++11
  endif
  ```

  To handle different openmp on Darwin (#1656):

  wmake/rules/darwin64Clang/override

  ```
  # Use libomp (not libgomp) unless openmp is disabled
  ifeq (,$(findstring "~openmp", "$(WM_COMPILER)"))
      COMP_OPENMP = -DUSE_OMP -Xpreprocessor -fopenmp
      LINK_OPENMP = -lomp
  else
      include $(GENERAL_RULES)/no-openmp
  endif
  ```

  This treatment arguably fits into wmake/rules/darwin64Clang/general,
  but it serves to illustrate a possible use case.
2020-04-15 13:18:31 +02:00
04b5291c55 CONFIG: handle openmp on Darwin (#1656)
- requires -Xpreprocessor
- uses 'libomp' (no 'libgomp' link)
2020-04-15 13:18:19 +02:00
a41584ff26 Merge branch 'tut-multiphase-review.kbc' into 'develop'
TUT: clean up multiphase tutorials

See merge request Development/openfoam!347
2020-04-14 20:18:37 +01:00
01514e4d43 TUT: clean up multiphase tutorials 2020-04-14 16:30:44 +01:00
86e78ac3c1 BUG: forces - corrected moment field calculation 2020-04-09 10:00:43 +01:00
647e161511 BUG: Fixing sign of qr in externalWallHeatFluxTemperature
1) The sign of radiative flux (qr) for modes Power and HeatFlux was
corrected.

2) Relaxation factor implementation was incomplete. Now caching
valueFraction and refValue from  the previous time step.
2020-04-08 14:11:07 -07:00
5425de66e4 ENH: adding momemtumErro FO 2020-04-08 12:19:23 -07:00
f01ad2f187 CONFIG: improve config files for Darwin (#1667), BSD-csh syntax (#1668)
- use Clang instead of Gcc for Darwin since this is its system
  compiler. The user can force use of Gcc by using Gcc92 etc.

- make etc/cshrc sed check more robust.

- replace tcsh (${%var}) syntax with ("${var}" != "")

[Fixes and ideas from Alexey Matveichev]

CONFIG: do not source the gperftools environment by default

- this is now an used feature, but can be re-enabled by advanced users
  if required.
2020-04-08 11:38:18 +02:00
3fd91c9084 ENH: improve foamConfigurePaths, remove some antiquated tools
- add edit of llvm/mesa/vtk paths. Reduce some verbosity

- include Darwin in foamInstallationTest, foamSystemCheck to avoid
  a false negative.
2020-04-08 11:38:18 +02:00
5f90964dee BUG: minor regression in surface reading of compressed files (#1600)
- as a side-effect of recent changes, command-line stripping of .gz
  extensions on input was lost. For example,

      OK:    surfaceTransformPoints file.stl ...
      Fail:  surfaceTransformPoints file.stl.gz ...

- restore the previous behaviour of silently stripping the '.gz'
  extension on input.

ENH: add triSurface::New selector entry point

- for symmetry with MeshedSurface
2020-04-08 09:17:12 +02:00
0eed8fa829 ENH: Adding option to thermalBaffle to be used as external/internal baffle
Now the thermal baffle can be extrapolated from a patch which is
  coupled to the bottom patch of the solid region.

  The user can set the T bc on the 'top' patch of the solid.

  The new keyword is 'internal' and its default is true. Check new
  tutorial for an example:

  tutorials/heatTransfer/buoyantSimpleFoam/roomWithThickCeiling/
2020-04-06 15:29:07 -07:00
f644d78bde Merge remote-tracking branch 'origin/master' into develop 2020-04-06 12:38:57 +02:00
e26568f2de CONFIG: add foamPackRelease -gitbase option 2020-04-06 12:29:50 +02:00
55b49ac0d0 CONFIG: bump patch level 2020-04-06 08:34:58 +02:00
a8b6d01b87 CONFIG: relocate wmake binaries into project platforms/tools (#1647)
- can aid when creating source-only or binary-only packages
2020-04-06 08:32:42 +02:00
8075804b18 COMP: add -pthread compile/link dependency for std::thread (#614) 2020-04-06 08:30:11 +02:00
497cdb50a3 ENH: add low-level handling for abaqus files (#1600)
- reads/write shell elements
  Output elements are "bunched" according to type and their set
  without reordering.

- preliminary reading of solids without extraction.
  Handling of *Surface specifications is not implemented
2020-04-03 19:11:52 +02:00
eeb050cca4 ENH: refine geometry and field scaling for nastran and raw surfaces (#1600)
- enhancement and potential breaking change.

  Nastran surface writer previously used the keyword 'scale' for
  field scaling, which was applied uniformly to all output fields.

  Change the meaning of 'scale' to be geometric scaling
  (consistent with reading triSurfaceMesh etc).

  New 'fieldScale' entry is an optional dictionary of scaling
  parameters.

  Example,

      nastran
      {
          scale   1000;     // [m] -> [mm]
          fieldScale
          {
             "p.*"   0.01;  // [Pa] -> [mbar]
          }
      }
2020-04-03 19:11:51 +02:00
cfd8873012 ENH: keep element ids when reading/writing meshed surfaces (#1600) 2020-04-03 19:11:51 +02:00
560c053bc8 ENH: support independent specification of surface read/write format (#1600)
- adjustments to internal handling to improve run-time addition of
  other formats (eg, with additional user library)

  For example, to write a binary STL with a '.stl' extension:

    $ surfaceMeshConvert input.obj  -write-format stlb  output.stl

  Or in a sampler,
  to specify the input type without ambiguity:

  surf
  {
      type        meshedSurface;
      surface     sampling.inp;

      fileType    starcd;
      scale       0.001;
      ...
  }

STYLE: regularize naming for input/output scaling

  * -read-scale   (compat: -scaleIn)
  * -write-scale  (compat: -scaleOut)

CONFIG: change edge/surface selection name for STARCD format

- now select as "starcd" instead of "inp" to avoid naming ambiguity
  with abaqus
2020-04-03 19:11:50 +02:00
a88e67f2e1 BUG: potential divide-by-zero in x3d surface output (#1212)
- eg, for a uniform field and auto range.
2020-04-03 15:38:58 +02:00
b4229841c0 BUG: Extension of commit d16f1312cb 2020-04-03 09:30:43 +01:00
ae14a1ef31 COMP: correct the internal reference types for surfMesh
- had a PrimitivePatch with SubField, but now use const pointField&.

  There is no derivation path from a pointIOField to SubField<point>,
  so a const reference makes more sense.
2020-04-02 23:19:46 +02:00
d79954869d STYLE: simplify IO routines for ac3d, types in isoSurface 2020-04-02 23:19:40 +02:00
7f32509abc STYLE: additional surface-related typedefs
- face_type, point_type (similar to STL value_type, etc).
  The naming avoids potential confusion with template parameters.

- rename private typedef from ParentType to MeshReference for more
  consistency with polySurface etc.
2020-04-02 23:18:09 +02:00
74bc5f327c BUG: triSurfaceMesh scaling applied twice
- regression introduced by 431c9632f9

  The triSurface dictionary constructor applies the scaling,
  and thus it can be reported, but not applied in triSurfaceMesh
2020-04-02 22:22:16 +02:00
617b60279c ENH: adjustments to error streams
- refactor common exit/abort code

- support single-parameter output. Eg,

    FatalError("some-executable")
        << "Cannot load something\n"
        << exit(FatalError);
2020-04-01 16:57:18 +02:00
01f6505442 ENH: add a Pstream::shutdown() method (#1660)
- previously used a Pstream::exit() invoked from the argList
  destructor to handle all MPI shutdown, but this has the unfortunate
  side-effect of using a fixed return value for the program exit.

  Instead use the Pstream::shutdown() method in the destructor and allow
  the normal program exit codes as usual. This means that the
  following code now works as expected.

  ```
  argList args(...);

  if (...)
  {
      InfoErr<< "some error\n";
      return 1;
  }
  ```
2020-04-01 12:33:39 +02:00
d16f1312cb BUG: P1 model - read qr field if present - see #1659 2020-04-01 10:29:28 +01:00
b2a3e9487f GIT: remove unused files
- orphaned file: extendedFeatureEdgeMeshI.H

- unused primitiveFaceZone typedef.
  Identical to indirectPrimitivePatch typedef
2020-04-01 10:32:15 +02:00
68b2f50365 STYLE: unique_ptr instead of manual management
- conversion, sampling, surfMesh
2020-03-30 11:34:35 +02:00
95f14621de ENH: support relative expansion for PDRblockMesh (#1655) 2020-03-31 16:59:53 +02:00
9b1c0786ce TUT: verificationAndValidation Allrun uses bash
STYLE: double-quote "$@" for isTest/notTest
2020-03-30 21:14:29 +02:00
8a4ea197cd ENH: allow use of std::unique_ptr directly as Foam::unique_ptr
- placed in stdFoam.H (as well as autoPtr.H) for general availability

STYLE: minor adjustments to autoPtr code layout
2020-03-25 13:21:11 +01:00
a5dbd27ddb CONFIG: update llvm versions 2020-03-25 13:21:11 +01:00
816e96e0f2 ENH: tuning wmake behaviour (#1647)
- preferentially handle Allwmake.override, which allows packaging
  tools to define alternative make scripts, or selectively disable
  components.

- remove legacy handling of 'Optional' directory.
  Conditionals have since migrated into scripts themselves and/or
  use the wmake/scripts/have_* framework.

BUG: missed passing -debug for Allwmake scripts
2020-03-25 10:41:29 +01:00
6849c008a1 ENH: support -case option for foamCleanTutorials, foamRunTutorials
- makes it easier to run/clean individual cases
2020-03-25 09:58:52 +01:00
11a4a659cb STYLE: avoid spurious ddt warning about unknown field (#1643) 2020-03-23 12:21:32 +01:00
89c21888a9 ENH: 'mag' postOperation returns scalar (#1622) 2020-03-23 11:14:57 +01:00
c589d1c90f COMP: Resolved compiler warning 2020-03-31 10:05:53 +01:00
0e6213e548 BUG: Correct interface after alphaEq in interCondensatingEvaporatingFoam 2020-03-30 10:32:35 -07:00
e50b2c04e1 ENH: Adding clipping information for limitTemperature FO 2020-03-30 10:32:35 -07:00
69861df91d COMP: snappyHexMesh: growing cellZones. See #1528 2020-03-30 17:14:43 +01:00
e1ca5806dc BUG: marshakRadiation: default to mixedfvPatch mapping. Fixes #1653 2020-03-30 17:08:39 +01:00
cffcbc343e BUG: snappyHexMesh: growing cellZones. Fixes #1528 2020-03-30 17:08:38 +01:00
4678638abb Merge branch 'region-model-mesh' into 'develop'
Enabled postProcess on film region for reactingParcelFoam

See merge request Development/openfoam!352
2020-03-27 09:35:50 +00:00
af34e61ef7 ENH: reactingParcelFoam - made film region mesh available for postProcess 2020-03-26 21:27:44 +00:00
5265a87223 ENH: regionModel - simplified construction of regionMesh - now owned by time db 2020-03-26 21:27:44 +00:00
179d9fd61d ENH: correct pow(complex, ..) functions (fixes #1638)
* Use cast for std::pow(??, z).
* No cast for std::pow(z, ??) - already properly specialized.
2020-03-19 12:31:49 +01:00
ba8d45c82d CONFIG: forces.cfg - updated output controls. See #1642 2020-03-18 18:21:32 +00:00
5f115371d1 STYLE: use bitSet class instead of PackedBoolList typedef 2020-03-18 17:21:34 +01:00
d0522f7300 STYLE: relocate duplicate versions of unionEqOp to ListOps 2020-03-18 17:21:34 +01:00
071d979ebb BUG: timeVaryingMapped: fixes #1640 2020-03-18 15:37:19 +00:00
75b9f2618b ENH: support sequencing of vtp/vtu files 2020-03-17 10:52:08 +01:00
3e3193aa5e Merge remote-tracking branch 'origin/master' into develop 2020-03-16 15:27:27 +01:00
80e4033810 CONFIG: bump patch level 2020-03-16 14:56:50 +01:00
794ab39742 BUG: missing output for foamDictionary -includes (closes #1635)
- log to stdout when explicitly enabled
2020-03-16 14:54:25 +01:00
2c3bfcc684 STYLE: incorrect file permissions (from commit 499933dbab) 2020-03-16 13:06:21 +01:00
fe17c8ad5f CONFIG: improve prefix matching for system libraries (#1607)
- missed detection of system libraries when installed with multiarch
  paths like /usr/lib/x86_64-linux-gnu

CONFIG: improve handling of group/user config files (#928)

- changed bashrc handling of FOAM_CONFIG_NOUSER to use
  FOAM_CONFIG_MODE instead. Propagate into foamEtcFile to make this
  a stickier control.

  This change allows better control, but also enables cluster
  installations to define their own value within the OpenFOAM prefs.sh
  file to prevent users accidentally mis-configuring things if
  necessary.

- remove undocumented handling of an (a)ll mode in foamEtcFile to
  avoid potential pitfalls.

- add support for FOAM_CONFIG_ETC handling.
  This allows injection of an extra search layer when finding
  project etc files

ENH: improvements to foamConfigurePaths (#928)

- handle FOAM_CONFIG_ETC implicitly, or explicitly with the new
  -etc option.

STYLE: more explicit wording in foamConfigurePaths usage (#1602)

- document that an absolute path (eg, -scotch-path) overrides/ignores
  the equivalent ThirdParty setting (eg, -scotch)

- longer options -system-compiler and -third-compiler for -system
  and -third, respectively. Clearer as to their purpose.

- adjust the location sanity check to look for META-INFO directory.
2020-03-16 12:03:58 +01:00
ac8b64df46 CONFIG: support FOAM_EXTRA_CXXFLAGS (#1256)
- allows custom tuning of compilation parameters
2020-03-16 12:03:58 +01:00
ba3a31af95 ENH: openfoam shell session - improved and relocated
- '-c' option (as per shell), '-Dkey[=value]' option to provide
  preferences via the command-line. For example,

      etc/openfoam -DWM_COMPILER=Clang -int64  ./Allwmake -j -s -l

  These can also be combined with other options. Eg,

      etc/openfoam -DWM_COMPILER=Clang \
          -c 'wmake -show-path-cxx -show-cxxflags'

- relocated from bin/tools/ => etc/ for easier access

- bin/tools/openfoam.in : for autoconfig-style installation

- Auto-detect if the shell script was executed with openfoam and
  interpret accordingly.

  Simple example,

      --------------
      #!/usr/bin/openfoam
      cd "${0%/*}" || exit   # Run -*-sh-*- from this dir

      blockMesh
      simpleFoam
      --------------

   Note it is NOT currently possible to provide any other parameters
   this way. Eg,

      `#!/usr/bin/openfoam -sp` (NOT)

   This will either fail to run, or result in infinite recursion.
2020-03-16 12:03:57 +01:00
c35e7a7bf1 ENH: support packing of modules-only tar files (#907)
- make tar-file generation more flexible
2020-03-16 11:33:37 +01:00
69a61bf835 BUG: objToVTK - corrected for empty lines in obj file. See #1632 2020-03-16 10:21:34 +00:00
1a6824f9e4 Merge remote-tracking branch 'origin/master' into develop 2020-03-13 12:41:33 +00:00
989fda3b18 BUG: BSpline - only snap to points at ends and not intermediate knots. See #1628 2020-03-13 10:43:10 +00:00
38334ed15a Merge branch 'feature-surface-handling' into 'develop'
Feature surface handling

See merge request Development/openfoam!343
2020-03-12 16:37:39 +00:00
5a395dde0f ENH: support for patch subsets on a sampled mesh (#1600) 2020-03-12 16:20:57 +01:00
06c4dc34ee ENH: adjust sampling onto meshed surfaces (#1600)
- base level surface container is now a meshedSurface instead of
  a triSurface. This avoid automatic triangulation of surfaces
  when they are read, and simplifies the internals.

- sampling types:
  * "meshedSurface" (compat: "sampledTriSurfaceMesh")
  * "meshedSurfaceNormal" (compat: "sampledTriSurfaceMeshNormal")
2020-03-12 16:20:57 +01:00
e3d4443871 ENH: improve surfaceSplitByPatch controls (#1600)
- uses MeshedSurface instead of triSurface to prevent automatic
  triangulation.

- supports '-patches' and '-excludePatches' controls as per foamToVTK.
  For example,

    surfaceSplitByPatch -patches '( ".*rider.*" )'  motorBike.obj

ENH: use MeshedSurface for surfaceSubset
2020-03-12 16:20:57 +01:00
465630bbb0 ENH: code cleanup in MeshedSurface (#1600)
- removed swapZones method (unused, potentially fragile)

- add subsetMesh by name

BUG: incorrect zone assignment in MeshedSurface::subsetMesh

- used the new (zero-sized) zone when determining the old zone ending
  instead of the original zone bounds.
2020-03-12 16:20:57 +01:00
408f252d64 ENH: regularize surfaceFormat writers (#1600)
- use local branching for face maps to reduce code complexity
  and duplication
2020-03-12 16:20:57 +01:00
431c9632f9 ENH: add IOobject-based constructors for meshed surfaces (#1600)
- refactor logic from triSurfaceMesh for triSurface, MeshedSurface,
  UnsortedMeshedSurface.

  Makes it easier to locate and use surface files without the
  triSurfaceMesh (meshTools) infrastructure.

STYLE: remove unused sampledTriSurfaceMesh constructors
2020-03-12 16:20:56 +01:00
de4c728e12 STYLE: use List::found() instead of deprecated findIndex function 2020-03-12 13:05:42 +01:00
6744a2102b Merge remote-tracking branch 'origin/master' into develop 2020-03-12 11:35:26 +01:00
28d24fefbc CONFIG: bump patch level 2020-03-12 11:34:14 +01:00
161c66df17 BUG: incorrect EnSight lagrangian fields in parallel (fixes #1629) 2020-03-12 11:13:23 +01:00
30d9cfa7c2 STYLE: remove trailing space, use Enum::get() 2020-03-12 10:17:49 +01:00
3df281b367 SUBMODULE: update OpenQBMM 2020-03-12 10:04:45 +01:00
8e27022ea2 STYLE: find(), cfind() methods instead of lookupPtr()
- coordinateSystems, DictionaryBase
2020-03-11 22:05:15 +01:00
a18617bbd1 ENH: add line number for dictionary getCheck errors 2020-03-11 19:54:51 +01:00
418248709f BUG: Corrected update of T field for energyJump[AMI]FvPatchScalarField. See #1624 2020-03-11 17:47:19 +00:00
6ab699633d ENH: wallHeatFlux - separated field and log writing. Fixes #1613 2020-03-11 17:45:25 +00:00
97ff8fee20 BUG: matrix checking: Fixes #1626 2020-03-11 16:48:32 +00:00
b69360fec3 Merge branch 'feature-turbModel-access' into 'develop'
ENH: improve access to the inner content of turbulence models

See merge request Development/openfoam!344
2020-03-11 16:32:20 +00:00
2319762cda ENH: register internal fields of kOmegaSST 2020-03-11 16:31:42 +00:00
d7622d1ef8 ENH: add virtual omega to turbulenceModels
STYLE: update dimensionSets in SpalartAllmaras
2020-03-11 16:31:42 +00:00
aa9be5b5cd ENH: nearWallFields - updated construction of sampled field. Fixes #1620 2020-03-11 15:26:46 +00:00
0eecec4811 ENH: Added GeometricField copy constructor with additional BC handling. See #1620
Often we want to copy a field and replace boundary conditions, e.g. change type
to calculated for some patches.  This has typically been achieved by creating a
word list of new patch types which are then fed through to the fvPatchField::New
factory method.  This is OK for types that require no additional input (usually
from dictionary) but leaves other more complex types partially
constructed/usable.

The new constructor clones all BCs except those with indices specified, for
which the fvPatchField::New method is called for the supplied patch field type.
2020-03-11 15:26:46 +00:00
149c1b66f3 COMP: mpi: missing cast in debug message 2020-03-11 15:19:44 +00:00
a47fc3ded8 STYLE: polyMesh: remove duplicated code. 2020-03-11 13:54:09 +00:00
6ae359f662 Merge branch 'feature-pipecg' into 'develop'
ENH: lduMatrix: new matrix solvers: PPCG,PPCR

See merge request Development/openfoam!334
2020-03-11 13:53:04 +00:00
ab4bfaeee3 ENH: lduMatrix: new matrix solvers: PPCG,PPCR
PPCG is pipelined version of PCG, PPCR is conjugate
residual version.
2020-03-11 13:53:03 +00:00
2c4b639e1f ENH: 'mag' postOperation for surfaceFieldValue (#1622)
- support postOperation for volFieldValue as well
2020-03-11 11:59:04 +01:00
6f230a8b67 COMP: Corrections for icc compiler. Fixes #1608 2020-03-03 17:00:35 +00:00
ca28377642 BUG: Resolve circular call to ::write(Ostream&). See #1617 2020-03-03 11:17:11 +00:00
18e53c3c06 BUG: Fixes issue #1606
Proper counting of regime on faces of the patch
2020-02-28 11:56:06 -08:00
7e8a215506 Merge branch 'feature-analytic-eigen-small-offdiag' into 'develop'
ENH: improve analytic eigen for small off-diagonals

See merge request Development/openfoam!342
2020-02-28 10:50:50 +00:00
6576397e81 ENH: improve analytic eigen for small off-diagonals 2020-02-28 10:49:58 +00:00
b476dd92e6 ENH: improvements for nastran surface writer (#1571)
- avoid face copying.
  Maintain separate offsets/list for non tri/quad face decomposition,
  which eliminates copying for tri/quad types that represent the bulk
  of geometries

- report inappropriate use of PLOAD2 for higher-ranks only once per
  field instead of per face.  For this case, write its magnitude
  instead of 0.

- perform field output scaling prior to calling the write face
  function. This will make it easier to handle different per-field
  scaling in the future (#1612)

BUG: nastran quad written as "CTRIA3" instead of "CQUAD4"
2020-02-27 13:16:40 +01:00
fc26fb758d ENH: add stringListOps with whitelist/blacklist matching
- refactored from ensightMesh, foamToVTK, surfaceMeshExtract

STYLE: use wordRes matching() method instead of findString() function
2020-02-26 21:40:09 +01:00
a456e9ae92 STYLE: relocate nonCoupledBoundaryTree into meshSearcher
- use point::uniform in more places
2020-02-24 18:41:02 +01:00
3835734f6a DEFEATURE: remove further remnants of surfMesh samplers
- continuation of commit 57d2eabc6f (2019-02-22)
2020-02-24 18:17:56 +01:00
5ba2cbc54f CONFIG: improve prefix matching for system libraries (#1607)
- missed detection of system libraries when installed with multiarch
  paths like /usr/lib/x86_64-linux-gnu

CONFIG: improve handling of group/user config files (#928)

- changed bashrc handling of FOAM_CONFIG_NOUSER to use
  FOAM_CONFIG_MODE instead. Propagate into foamEtcFile to make this
  a stickier control.

  This change allows better control, but also enables cluster
  installations to define their own value within the OpenFOAM prefs.sh
  file to prevent users accidentally mis-configuring things if
  necessary.

- remove undocumented handling of an (a)ll mode in foamEtcFile to
  avoid potential pitfalls.

- add support for FOAM_CONFIG_ETC handling.
  This allows injection of an extra search layer when finding
  project etc files

ENH: improvements to foamConfigurePaths (#928)

- handle FOAM_CONFIG_ETC implicitly, or explicitly with the new
  -etc option.

STYLE: more explicit wording in foamConfigurePaths usage (#1602)

- document that an absolute path (eg, -scotch-path) overrides/ignores
  the equivalent ThirdParty setting (eg, -scotch)

- longer options -system-compiler and -third-compiler for -system
  and -third, respectively. Clearer as to their purpose.

- adjust the location sanity check to look for META-INFO directory.
2020-02-24 16:00:16 +01:00
083181cac4 ENH: handle entry alternatives outside of string expansion
- string expansions have supported "${var:-default}" syntax for
  several versions, but this did not apply plain dictionary expansions.

  Eg, the following did not parse

     massFlow  ${entry1:-100};

ENH: remove content and length restriction on '${..}' quoted variables

- allows this type of content:

     velocity2  ${velocity1:- ( 0 -100 10) };

- accept empty parameter strings for entries. This allows the
  following expansion to work as expected:

      hex (n1 n2..)  ${inletBlock:-} (10 10 10) simpleGrading (1 1 1)

  ie, optionally define the cellZone name for a given block

ENH: add single parameter dictionary writeEntry method.

- the dictionary knows its own name (dictName), which can be used
  when writing content
2020-02-21 14:37:11 +01:00
3c9c39e92a STYLE: use data/cdata instead of begin when accessing raw content 2020-02-21 12:32:12 +01:00
a054f31857 STYLE: remove dubious bool list initialization 2020-02-21 11:56:43 +01:00
4e6caf8d61 STYLE: return Switch by value, not const-reference 2020-02-21 11:44:29 +01:00
86fe2b7bc9 STYLE: remove dead code, refactor constructors in extrudePatchMesh 2020-02-21 11:13:22 +01:00
585ee0fe89 COMP: fix construct assignment from tmp (clang) 2020-02-21 10:08:47 +01:00
40e00fab01 STY: Updating multiphase tutorial settings 2020-02-20 09:04:11 -08:00
2892b78d72 CONFIG: support FOAM_EXTRA_CXXFLAGS (#1256)
- allows custom tuning of compilation parameters
2020-02-20 12:18:12 +01:00
fbbf9064b9 STYLE: remove trailing space, shell quoting
- emit "constant " and "uniform " as separate word/space combination
2020-02-20 10:11:23 +01:00
2d416a68a0 CONFIG: bump API to 2002
- changes in IOstreamOption, Switch, writeObject
2020-02-19 23:36:47 +01:00
5f93f20652 ENH: add stringOps::inplaceRemoveSpace()
Style changes:
  - use std algorithm for some stringOps internals
  - pass SubStrings iterators by const reference

ENH: special nullptr handling for ISstream getLine
  - pass through to istream::ignore to support read and discard
2020-02-19 23:36:46 +01:00
6b3b6bb99f ENH: add stream format options for surface writers (#1595)
- additional boundaryData options (header, binary, compression)

- remove vtkSurfaceWriter "writePrecision" keyword (1806 compatibilty)
  and use "precision" in format option sub-dictionary.
2020-02-19 21:30:55 +01:00
514751dcf7 STY: General clean up 2020-02-19 10:40:56 -08:00
83c06f1ace Merge branch 'feature.interPCFoam' into 'develop'
Feature.interPCFoam

See merge request Development/openfoam!338
2020-02-19 15:33:39 +00:00
1319144a72 STYLE: stefanProblem: cleanup. 2020-02-19 14:18:25 +00:00
31eb7c61b5 ENH: interfaceHeight: avoid tracking to corner point 2020-02-19 14:18:25 +00:00
4abb2153a1 STY: Updating headers for tutorial 2020-02-19 14:18:25 +00:00
499933dbab ENH: Adding features for phase change solvers
1) Adding interfaceHeight FO
2) Adding interfaceHeatResistance mass transfer model to
   interCondensatingEvaporatingFoam with spread source approach
3) Reworking framework for icoReactingMultiphaseInterFoam
2020-02-19 14:18:25 +00:00
2ee9315532 Merge branch 'feature-writeObject' into 'develop'
Feature write object

See merge request Development/openfoam!341
2020-02-19 09:26:35 +00:00
8498e3f516 ENH: reduce some overhead in fileOperations
- more consistent handling of file format (#1587)
2020-02-19 09:25:33 +00:00
42299dca22 ENH: use IOstreamOption for writeObject() calls.
- reduces the number of parameters that are being passed around
  and allows future additions into the IOstreamOption with mininal
  effort.
2020-02-19 09:25:33 +00:00
9be1772e0c BUG: surfaceInertia analytic eigendecomposition (fixes #1599)
- was missing cast to symmTensor
2020-02-19 10:14:57 +01:00
e3f681fa59 ENH: support use of IOstreamOption for IFstream/OFstream
- can be convenient to bundle IO options as a single parameter
2020-02-18 21:51:36 +01:00
f3106ec146 STYLE: use unique_ptr for Fstream resource management
STYLE: change return type of NewOFstream from Ostream to OSstream
2020-02-18 21:51:35 +01:00
3135dcf2a9 ENH: support IOstreamOption in abstract stream types
- expose the write IOstreamOption in Time
2020-02-18 21:51:35 +01:00
33f9ae5080 ENH: improvements to IOstreamOption
* Support default values for format/compress enum lookups.

  - Avoids situations where the preferred default format is not ASCII.
    For example, with dictionary input:

        format binar;

    The typing mistake would previously have caused formatEnum to
    default to ASCII. We can now properly control its behaviour.

        IOstream::formatEnum
        (
            dict.get<word>("format"), IOstream::BINARY
        );

    Allowing us to switch ascii/binary, using BINARY by default even in
    the case of spelling mistakes. The mistakes are flagged, but the
    return value can be non-ASCII.

* The format/compression lookup behave as pass-through if the lookup
  string is empty.

  - Allows the following to work without complaint

      IOstream::formatEnum
      (
          dict.getOrDefault("format", word::null), IOstream::BINARY
      );

  - Or use constructor-like failsafe method

      IOstream::formatEnum("format", dict, IOstream::BINARY);

  - Apply the same behaviour with setting stream format/compression
    from a word.

       is.format("binar");

    will emit a warning, but leave the stream format UNCHANGED

* Rationalize versionNumber construction

  - constexpr constructors where possible.
    Default construct is the "currentVersion"

  - Construct from token to shift the burden to versionNumber.
    Support token as argument to version().

    Now:

        is.version(headerDict.get<token>("version"));

    or failsafe constructor method

        is.version
        (
            IOstreamOption::versionNumber("version", headerDict)
        );

    Before (controlled input):

        is.version
        (
            IOstreamOption::versionNumber
            (
                headerDict.get<float>("version")
            )
        );

    Old, uncontrolled input - has been removed:

        is.version(headerDict.lookup("version"));

* improve consistency, default behaviour for IOstreamOption construct

  - constexpr constructors where possible

  - add copy construct with change of format.

  - construct IOstreamOption from streamFormat is now non-explicit.
    This is a commonly expected result with no ill-effects
2020-02-18 21:51:35 +01:00
bb53e8adb3 ENH: adjustments to Switch
- align Switch more with Enum.
  Now have find(), found() static methods.
  Constructors with failsafe option.

  The find() method makes for clearer coding:

  OLD

     Switch sw(some_string, true); // NB: true = allowBad

     if (sw.valid()) ...

  NOW

     Switch sw = Switch::find(some_string);

     if (sw.good()) ...

  or

     if (Switch::found(some_string)) ...

- improve construct from dictionary to handle all valid token types.
  Previously just read in a word.

- Remove asText() method - replaced by c_str() and str() several
  versions ago.
2020-02-18 21:51:35 +01:00
ed4bd54846 STYLE: provide return value for IOstream::fatalCheck()
- allows reuse as base implementation for IOstream::check()
2020-02-18 17:02:45 +01:00
ac709da3ac STYLE: FatalError instead of warning for handling deprecated field format
- The warning in Field.C has been emitted since 2005.
- The warning in mappedPatchBase.C has been emitted since 2012.
2020-02-18 17:02:45 +01:00
2834193c27 STYLE: remove "originalVersion" face handling
- an old pre-OpenFOAM transitional feature (prior to 2004)
  for named faces.
2020-02-18 17:02:44 +01:00
9ee870e09c ENH: impose type-narrowing for Ensight output 2020-02-18 17:02:44 +01:00
fedcbff6f4 ENH: provide narrowFloat, narrowInt32 definitions
- underflow/overflow handling for type narrowing.
  Eg, double -> float, int64 -> int32
2020-02-18 17:02:44 +01:00
4e1bc2d2f1 COMP: incorrect placement of compiler attributes 2020-02-18 13:51:20 +01:00
d7969b1ba4 ENH: preserve tokenized directive and variable types 2020-02-18 13:51:20 +01:00
4307e1719f STYLE: adjust names, locations for fileFormats
- renamed 'core/' -> 'base/' to avoid gitignore masking when re-adding
  files

- rename 'nas/' to 'nastran/' for more clarity

- relocated OBJstream from surfMesh to fileFormats

STYLE: remove unused parseNASCoord. Was deprecated 2017-09
2020-02-18 13:51:20 +01:00
fbb371dda4 STYLE: avoid extraneous c_str() for OFstream construct 2020-02-18 13:51:20 +01:00
0e1c9b0af7 Merge branch 'feature-analytic-eigen' into 'develop'
ENH: Improve polynomial equations and analytical eigendecompositions

See merge request Development/openfoam!340
2020-02-18 12:23:46 +00:00
55e7da670c ENH: improve analytical eigendecompositions
- `tensor` and `tensor2D` returns complex eigenvalues/vectors
  - `symmTensor` and `symmTensor2D` returns real eigenvalues/vectors
  - adds new test routines for eigendecompositions
  - improves numerical stability by:
    - using new robust algorithms,
    - reordering the conditional branches in root-type selection
2020-02-18 12:21:01 +00:00
6a53794e0a STYLE: reorder global funcs and opers in Tensor types
- In the course of time, global funcs/opers of Tensor types expanded
    leaving funcs/opers unordered.

  - Therefore, by following the order designated in Matrix class, the order
    of global funcs and global opers are reordered:
    - oper+ oper- oper* oper/ inner-product double-inner-product outer-product
2020-02-18 12:21:01 +00:00
66b02ca5ca ENH: improve funcs and opers in Tensor types
- ensures each Tensor-container operates for the following base types:
    - floatScalar
    - doubleScalar
    - complex

  - adds/improves test applications for each container and base type:
    - constructors
    - member functions
    - global functions
    - global operators

  - misc:
    - silently removes `invariantIII()` for `tensor2D` and `symmTensor2D`
      since the 3rd invariant does not exist for 2x2 matrices
    - fixes `invariantII()` algorithm for `tensor2D` and `symmTensor2D`
    - adds `Cmpt` multiplication to `Vector2D` and `Vector`
    - adds missing access funcs for symmetric containers
    - improves func/header documentations
2020-02-18 12:21:01 +00:00
8ca724fffa ENH: improve stability in polynomialEqns
- replaces floating-point equal comparisons in
    `linearEqn`, `quadraticEqn`, and `cubicEqn`,
  - ensures `quadraticEqn` and `cubicEqn` can return `complex` roots,
  - reorders if-branches in `quadraticEqn` and `cubicEqn` to avoid
    zero-equal comparison,
  - adds Kahan's cancellation-avoiding algorithm into `quadraticEqn` and
    `cubicEqn` for the numerically-sensitive discriminant computation,

  - adds/improves `polynomialEqns` tests:
    * adds Test-linearEqn.C
    * adds Test-quadraticEqn.C
    * improves Test-cubicEqn.C
2020-02-18 12:21:01 +00:00
97bdd5bc04 Merge branch 'feature-ensight-parts' into 'develop'
Feature ensight parts

See merge request Development/openfoam!339
2020-02-18 11:10:42 +00:00
a97628121c ENH: overhaul ensight handling (#1579)
- includes restructuring and simplification of low-level ensight part
  handling and refactor of backends to improve code reuse.

foamToEnsight
-------------

  * new cellZone support.
    This was previously only possible via a separate foamToEnsightParts
    utility that was not parallelized.

  * support for point fields.

  * `-nearCellValue` option (as per foamToVTK)

  * data indexing now uses values from the time index.
    This is consistent with the ensightWrite function object and
    can help with restarts.

  * existing ensight directories are removed, unless the -no-overwrite
    option is supplied

foamToEnsightParts
------------------
  * now redundant and removed.

ensightOutputSurface (new class)
--------------------------------
  * a lightweight wrapper for point/face references that is tailored
    for the ensightSurfaceWriter. It uses compact face/point information
    and is serial only, since this is the format requirements from the
    surfaceWriter class.

ensightMesh (revised class)
---------------------------
  * now only holds a polyMesh reference, which removes its dependency
    on finiteVolume and allows it to be relocated under fileFormats
    instead of conversion.

Removed classes: ensightParts, ensighPartFaces, ensightPartCells

- these were used by foamToEnsightParts, but not needed anymore.
2020-02-18 11:09:43 +00:00
c7e8f22baf ENH: improve ensightFile output support (#1579)
- indirect lists, lists of labels
- writeString() methods to avoid any ambiguities

- support handling of mixed element/node data in ensightCase
2020-02-18 11:09:43 +00:00
79cf72d573 BUG: foamListTimes does not remove collated directories (fixes #1588)
- also now report any verbosity on stderr

- fix similar collated directories issue for foamRestoreFields
2020-02-14 17:44:49 +01:00
a65b9fdd7c BUG: file format mangled by collated format (fixes #1587)
- incorrectly set BINARY format in the construction of the received
  data (a side-effect of the parameter ordering).

  Now use the same default parameters as IFstream and set the correct
  filename subsequent to construction.
2020-02-13 09:04:13 +01:00
92214eb4af CONFIG: misedit of csh mpi settings with foamConfigurePaths 2020-02-12 21:28:30 +01:00
4fea7b3bb4 BUG: SPDP: PrecisionAdaptor copies input list. Fixes #1590. 2020-02-12 17:27:41 +00:00
09db19c3f0 Merge remote-tracking branch 'origin/master' into develop 2020-02-12 17:13:34 +00:00
80b5d3a1a0 ENH: blockMesh: protect face projection from misses. Fixes #1591. 2020-02-12 17:13:11 +00:00
ec3de7128c STYLE: adjust logic names for point-values in foamToVTK 2020-02-12 18:03:50 +01:00
ff19bedbc3 BUG: SPDP mode: guaranteeing initial value. Fixes #1590.
In differing precisions the PrecisionAdaptor will copy
the input array element by element and this can trigger
NaN detection.
2020-02-12 16:54:05 +00:00
f90de02159 ENH: openfoam shell session - improved and relocated
- '-c' option (as per shell), '-Dkey[=value]' option to provide
  preferences via the command-line. For example,

      etc/openfoam -DWM_COMPILER=Clang -int64  ./Allwmake -j -s -l

  These can also be combined with other options. Eg,

      etc/openfoam -DWM_COMPILER=Clang \
          -c 'wmake -show-path-cxx -show-cxxflags'

- relocated from bin/tools/ => etc/ for easier access

- bin/tools/openfoam.in : for autoconfig-style installation

- Auto-detect if the shell script was executed with openfoam and
  interpret accordingly.

  Simple example,

      --------------
      #!/usr/bin/openfoam
      cd "${0%/*}" || exit   # Run -*-sh-*- from this dir

      blockMesh
      simpleFoam
      --------------

   Note it is NOT currently possible to provide any other parameters
   this way. Eg,

      `#!/usr/bin/openfoam -sp` (NOT)

   This will either fail to run, or result in infinite recursion.
2020-02-12 17:48:09 +01:00
d483123cef STYLE: limit foamEtcFile -show-api to querying the META-INFO/api-info
- simplifies code, covers most cases.
  Can use wmake -show-api or wmakeBuildInfo to query the make rules.

STYLE: Allwmake script adjustments

- use bin/foamEtcFile instead of relying on PATH.
  The make environment may not have the OpenFOAM bin/ in it.

- simpler shell syntax
2020-02-12 17:48:09 +01:00
8ab37e13e2 ENH: foamFormatConvert: leave boundary intact. Fixes #1358. 2020-02-12 15:04:05 +00:00
8e63f084b1 ENH: improve type consistency for HashTable iterators (#1563) 2020-02-11 11:00:30 +01:00
beebe4e214 STYLE: fix shell syntax 2020-02-10 17:02:30 +01:00
49e63378f8 TUT: corrected link to online case. Fixes #1584 2020-02-10 11:44:20 +00:00
531f6d9ea2 TUT: add inner-region cellZone to simpleFoam/motorBike
- useful for post-processing and data conversion tests
2020-02-07 17:00:20 +01:00
553c01d52e CONFIG: bin/tools/query-versions
- Query the etc/config.sh values for ThirdParty software.
  Usable without an active OpenFOAM environment.
2020-02-07 17:11:49 +01:00
739bc3c4af COMP: add -pthread compile/link dependency for std::thread (#614) 2020-02-07 11:06:06 +01:00
9da83a3e4f ENH: snappyHexMesh: allow cellZone erosion in parallel. See #1528.
Issues:
- neighbouring processors use different ray since always from
owner cc to nbr cc
- growing cellZones did not correctly unmark intersections
- stand-alone baffles now always removed (if inside 'grow' region,
i.e. within 1 cell of cellZone)
2020-02-06 12:40:34 +00:00
01c14532bd ENH: checkMesh: write cellZone, faceZone info. See #1543. 2020-02-06 12:36:26 +00:00
1b47034e24 ENH: Pstream: use native reduce in SPDP mode. Fixes #1574. 2020-02-06 12:36:26 +00:00
92a148e9e5 CONFIG: provide separate default settings for clang/gcc (fixes #1566)
- the foamConfigurePaths script is quite simplistic and aggressive in
  what it changes. This was particularly evident when using it to
  change gcc/clang versions.

  Restructured the corresponding compiler settings to define default
  versions (eg, "default_gcc_version") that limits the scope of
  changes performed by foamConfigurePaths and makes it easier to
  understand if changing manually.
2020-02-06 12:36:26 +00:00
53dec91cc2 COMP: add -help-man for Test-dummyLib (minimal packaging tests) 2020-02-06 10:06:20 +01:00
e693f21d69 STYLE: use ListOps::appendEqOp instead of local version
BUG: bad buffer size in globalMeshData::sharedPoints()

- introduced by vector::zero -> Zero replacement (commit 683cfb9d97)
2020-02-06 08:39:46 +01:00
a100b49606 BUG: csh ignores additional parameters (fixes #1582) 2020-02-05 10:27:38 +01:00
44e3860888 BUG: regression in FixedList find() method (from 8629755f69) 2020-02-03 16:07:42 +01:00
e53419c025 ENH: Pstream: use native reduce in SPDP mode. Fixes #1574. 2020-02-03 11:29:06 +00:00
81015889f2 CONFIG: provide separate default settings for clang/gcc (fixes #1566)
- the foamConfigurePaths script is quite simplistic and aggressive in
  what it changes. This was particularly evident when using it to
  change gcc/clang versions.

  Restructured the corresponding compiler settings to define default
  versions (eg, "default_gcc_version") that limits the scope of
  changes performed by foamConfigurePaths and makes it easier to
  understand if changing manually.
2020-02-03 11:05:04 +01:00
0bc59af983 ENH: snappyHexMesh: allow cellZone erosion. Fixes #1528. 2020-02-03 09:29:10 +00:00
87b3006566 STYLE: backslash doxygen commands, email address, typos in error messages 2020-01-31 17:06:30 +01:00
8629755f69 STYLE: code consistency in find/rfind methods 2020-01-31 17:05:57 +01:00
822d052e32 ENH: added IndirectSubList
- provides an indirect access to a sub-section of a list that is
  somewhat less efficient than a Foam::SubList, but supports the
  following:
    * adjustment of its addressing range after construction
    * recovery of the original, underlying list at any time

  This can be more convenient for some coding cases.
  For example,

      template<class Addr>
      void renumberFaces(IndirectListBase<face, Addr>& faces, ...);

  which can be called for

      * Specific faces:
        UIndirectList<face>(mesh.faces(), facesToChange)

      * A sub-range of faces:
        IndirectSubList<face>(mesh.faces(), pp.range())

      * All faces:
        IndirectSubList<face>(mesh.faces())

CONFIG: added IndirectListsFwd.H with some common forwarding
2020-01-31 17:01:22 +01:00
9c85d40cc6 Merge remote-tracking branch 'origin/master' into develop 2020-01-31 16:53:36 +01:00
d18a5be82d CONFIG: specify OpenQBMM module url with ".git" ending 2020-01-31 14:04:09 +01:00
d3bcc71b64 COMP: avoid -Wstringop-truncation warning
- the gcc c++/9 includes now inline strncpy, which obliterates
  the previous method of suppressing the warning.
  Now simply allocate additional space for the nul character.

COMP: silence some icc warnings
2020-01-31 13:32:24 +01:00
7da7907eac Merge branch 'comp-generated-methods' into 'develop'
Generated methods

See merge request Development/openfoam!335
2020-01-30 12:39:48 +00:00
4ecc6ccfca ENH: declare generated methods for vector-space, primitives
- make read construct from Istream explicit

BUG: sph(const SymmTensor2D<Cmpt>&)

- had incorrect constant, but the 2D routines still need more attention
 (#1575)
2020-01-30 12:38:28 +00:00
6953760460 ENH: declare generated methods for containers 2020-01-30 12:38:28 +00:00
b2713d2324 ENH: declare generated methods for lagrangian and thermo/functions 2020-01-30 12:38:27 +00:00
370d1a4589 CONFIG: bump patch level 2020-01-29 18:35:01 +01:00
9a4851268e GIT: update reference for modules/adios (stale tag at time of release) 2020-01-29 18:32:37 +01:00
f62a86575b Merge branch '1912-generated-methods' into 'master'
COMP: backport of updates for gcc-92 compilation

See merge request Development/openfoam!336
2020-01-29 16:54:16 +00:00
c83cc8cb35 STYLE: lagrangian: debug to Pout, not Info 2020-01-29 14:58:43 +00:00
f7d4e8a8e8 BUG: searchableExtrudedCircle: incorrect search sphere. Fixes #1567. 2020-01-29 14:58:43 +00:00
fdece1d7dd Merge branch 'tutorial-review.kbc' into 'develop'
TUT: cleanup compressible tutorials

See merge request Development/openfoam!337
2020-01-29 12:42:39 +00:00
cee3dab140 TUT: cleanup compressible tutorials
- for all tutorial cases:
     - correct/uniformize dict-style
     - rm redundant dict entries

 - compressible.overRhoPimpleDyMFoam.twoSimpleRotors: rm redundant file: pointDisplacement
 - compressible.overRhoSimpleFoam.hotCylinder
 - compressible.rhoCentralDyMFoam.movingCone
 - compressible.rhoCentralFoam.forwardStep: activate purgeWrite=10
 - compressible.rhoCentralFoam.LadenburgJet60psi: rm redundant files: mapFieldsDict & sample
 - compressible.rhoCentralFoam.shockTube: rm redundant file: sample; command: cleanSample
 - compressible.rhoPimpleFoam.laminar.sineWaveDamping: rm redundant file: V; activate purgeWrite=10
 - compressible.rhoPimpleFoam.LES.pitzDaily: activate purgeWrite=10
 - compressible.rhoPimpleFoam.RAS.aerofoilNACA0012: activate purgeWrite=10
 - compressible.rhoPimpleFoam.RAS.angledDuct: add Allclean
 - compressible.rhoPimpleFoam.RAS.mixerVessel2D: add Allclean; rm makeMesh
 - compressible.rhoPimpleFoam.RAS.angledDuctLTS: add Allclean
 - compressible.rhoPimpleFoam.RAS.TJunctionAverage
 - compressible.rhoPorousSimpleFoam.angledDuct
 - compressible.rhoSimpleFoam.aerofoilNACA0012
 - compressible.rhoSimpleFoam.angledDuctExplicitFixedCoeff
 - compressible.rhoSimpleFoam.squareBend
 - compressible.rhoSimpleFoam.gasMixing.injectorPipe
 - compressible.sonicDyMFoam.movingCone: rm redundant file: cuttingPlane
 - compressible.sonicFoam.laminar.shockTube
 - compressible.sonicFoam.RAS.nacaAirfoil
 - compressible.sonicFoam.RAS.prism
2020-01-29 12:26:36 +00:00
f55da4b690 ENH: allow datToFoam writing points dict directly
- refactors the corresponding tutorial by removing redundant files and items:
    compressible/rhoCentralFoam/biconic25-55Run35
2020-01-29 12:26:36 +00:00
e252ec46dc COMP: backport of updates for gcc-92 compilation 2020-01-28 16:09:18 +01:00
21de95bb81 COMP: exprResultGlobals typo in FULLDEBUG 2020-01-28 16:09:14 +01:00
ae40bd9f9b STYLE: use guards for dictionary lookup() 2020-01-28 11:57:23 +01:00
500a3b62ca STYLE: declare generated methods for blockDescriptor
- remove stray, unused file
2020-01-28 11:57:23 +01:00
056fb32f8f SUBMODULE: update OpenQBMM, visualization 2020-01-28 11:57:22 +01:00
9338f0b860 ENH: adjust wrapping routines for new vtkCellArray definition
- the vtkCellArray internal structure was still largely oriented on
  the VTK legacy format, but has now been revised.
  https://gitlab.kitware.com/vtk/vtk/merge_requests/5682

  The `VTK_CELL_ARRAY_V2` define from vtkCellArray.h indicates
  that the newer version is being used.

* In VTK-8.2.0 and older, sizes are interwoven (prefixed) in the
  connectivity.

  Connectivity: [n1, verts..., n2, verts... ]

  When using these in vtkUnstructuredGrid, also needed a secondary
  list of offsets for each of the starting locations.

* The update version now resembles a CompactListList. For example

  Connectivity: [verts..., verts... ]
  Offsets:      [0, n1, n1+n2, n1+n2+n3... ]

  The offsets are properly handled within vtkCellArray, and dropped as
  an additional input for vtkUnstructuredGrid.
2020-01-28 11:57:22 +01:00
3be7610710 BUG: incorrect Nastran surface output and segmentation faults #1571
- indexing error in the output of values resulted in uniform output in
  most cases.

- allocation error for on-the-fly triangulation

ENH: changed decomposed storage from DynamicList to plain faceList for
clearer allocation control and better overhead
2020-01-27 12:34:41 +01:00
f4ee841c6d STYLE: adjust code format for trackingData
- rationalized some layout and comments
2020-01-23 17:10:39 +01:00
0a9295b219 Merge branch 'enh-streams' into 'develop'
ENH: stream adjustments

See merge request Development/openfoam!332
2020-01-23 15:43:56 +00:00
0ff0271392 ENH: stream adjustments
- make stream constructors explicit

- remove "using std::ifstream", "using std::iofstream" statements
  for a cleaner namespace.

* copy/move assignments for ITstream

* IStringStream: default construct and construct from std::string
  instead of Foam::string

- reduce some overhead in masterOFstream

- simplify Pstream handling of string variants (#1525)
2020-01-23 16:34:43 +01:00
2270f649d7 Merge branch 'submodule-visualization' into 'develop'
Submodule visualization

See merge request Development/openfoam!331
2020-01-23 14:24:31 +00:00
449ba56750 CONFIG: bump API to 2001 2020-01-23 14:22:27 +01:00
7cec644ea2 SUBMODULE: added visualization submodule
- this submodule (https://develop.openfoam.com/modules/visualization)
  consolidates VTK-related visualization routines:

    * catalyst
    * paraview-plugins
    * runTimePostProcessing

  A benefit of this is make it easier to mix and match
  different combinations of VTK/ParaView versions and capabilities
  (Eg, MESA, MPI etc).

The catalyst submodule is now obsolete
2020-01-23 14:22:27 +01:00
ae5c7dab36 DEFEATURE: remove runTimePostProcessing (migrate to submodule) 2020-01-23 14:22:26 +01:00
de57d2da7e DEFEATURE: remove paraview reader modules (migrate to submodule) 2020-01-23 14:04:23 +01:00
858f0f2ccc GIT: remove leading "modules/" qualifier on the OpenQBMM module name 2020-01-23 13:59:13 +01:00
a48d258ab8 Merge branch 'submodule-openqbmm' into 'develop'
SUBMODULE: added OpenQBMM submodule - see #1522

See merge request Development/openfoam!330
2020-01-23 12:39:55 +00:00
54f8098014 SUBMODULE: added OpenQBMM submodule - see #1522
OpenQBMM is a suite of solvers to simulate polydisperse multiphase flows using
Quadrature-Based Moment Methods (QBMM).  For more information, please see
https://www.openqbmm.org/

Main author: Alberto Passalacqua
2020-01-23 12:36:53 +00:00
42c8bbf6d3 GIT: update submodule references 2020-01-23 13:15:18 +01:00
860e7df50b ENH: use DetailInfo for fileOperation I/O information
- allows suppression when the banner is suppressed
2020-01-22 20:46:37 +01:00
16e8d29476 CONFIG: handle different paraview (paraFoam) module names
For example,
  - ParaFoamReader     = (paraview >= 5.7)
  - libParaFoamReader  = (paraview < 5.7) and (OPENFOAM > 1912)
  - libPVFoamReader_SM = (OPENFOAM <= 1912)
2020-01-22 17:29:37 +01:00
59ed3ba18d ENH: consistency improvements for interpolationTable, table readers
- avoid stealing autoPtr in interpolationTable copy operations

- improve local memory requirements of readers

- make OpenFOAM table reader default constructible

- more code alignment between csvTableReader and Function1::CSV
  (fix #1498 for csvTableReader as well)
2020-01-21 15:17:04 +01:00
835c392dd5 Merge branch 'bug-1560-kEpsilonPhitF' into 'master'
BUG: add switch for nu:DphitEff in kEpsilonPhitF (fixes #1560)

Closes #1560

See merge request Development/openfoam!329
2020-01-21 12:28:09 +00:00
c234acf1ed BUG: add switch for nu:DphitEff in kEpsilonPhitF (fixes #1560)
Including `nu` in `DphitEff` even though it is not present in (LUU:Eq. 17)
    provided higher level of resemblance to benchmarks for the tests considered,
    particularly for the peak skin friction (yet, pressure-related predictions
    were unaffected). Users can switch off `nu` in `DphitEff` by using
    `includeNu` entry in `kEpsilonPhitFCoeffs` in order to follow the
    reference paper thereat. `includeNu` is left `true` by default.
    See GitLab issue #1560,

  LUU: Laurence, D. R., Uribe, J. C., & Utyuzhnikov, S. V. (2005).
2020-01-21 12:20:12 +00:00
ee96dba0cf STYLE: simplify Random constructors
COMP: use generated methods in a few more places
2020-01-21 12:12:44 +01:00
d7c18a328c STYLE: simplify/shorten some token names 2020-01-20 10:15:50 +01:00
21456b8cdc BUG: verbatim token output strips type (#1497)
- use os::write(token) for verbatim string to preserve its type
2020-01-20 10:09:58 +01:00
5d33586864 STYLE: use constexpr for static const char strings 2020-01-17 10:15:57 +01:00
f0be8679f6 ENH: provide defaultName() static method for patches, zones
- consistent way of writing "patch" + Foam::name(id) etc.
2020-01-16 13:24:23 +01:00
2a98c4e665 ENH: consistency improvements for surface patch handling (fixes #483)
- remove (unused) Istream constructors, prune some unused methods,
  rationalize write() vs writeDict().
  Deprecate inconsistent construction order.

- handle empty names for ".ftr" surface patches (for plain triSurface
  format) with double-quoted strings for more reliable streaming.
  Written on a single line.

  This is _backward_ compatible, but if users have been parsing these
  files manually, they will need to adjust their code.

Previously:
```
  (
  frt-fairing:001%1
  empty

  windshield:002%2
  empty
  ...
  )
```

Updated (with example handling of empty name):
```
  (
  frt-fairing:001%1 empty

  windshield:002%2 ""
  ...
  )
```
2020-01-16 10:07:26 +01:00
9dbf94777c GIT: relocate geometricSurfacePatch, geometricSurfacePatchList
- was in surfMesh/triSurface/patches/
  now in OpenFOAM/meshes/Identifiers/surface/

This places the code closer to other identifier classes,
which aids in maintaining consistency
2020-01-15 17:21:22 +01:00
5979078ede STYLE: avoid copy in fieldSelection 2020-01-13 17:14:45 +01:00
f62d6d96aa BUG: reactingOneDim - corrected DiNum calc for parallel running. Fixes #1552 2020-01-13 09:44:58 +00:00
eb125303c0 Merge branch 'bug-bound-sensitivities' into 'master'
BUG: wrong bounding of sensitivity contituents in case of many control boxes (Fixes #1549)

Closes #1549

See merge request Development/openfoam!325
2020-01-09 21:04:40 +00:00
ed63d9b2c6 BUG: wrong bounding of sensitivity contituents in case of many control boxes (Fixes #1549)
When more than one volumetric B-Splines control boxes are present, the
sensitivity constituents corresponding to the non-active design
variables were not bounded(zeroed) correctly. The resultant
sensitivities, used in the optimization, were bounded correctly, so this
was more a bug pertaining to the output file of the sensitivities rather
than a functional one.
2020-01-09 20:26:41 +02:00
b5b55fbd86 STYLE: noexcept specification instead of throw()
- make IOerror constructors explicit
2020-01-09 12:38:53 +01:00
669f3de327 TUT: file cleanup 2020-01-17 08:11:05 +01:00
596e4aef3f STYLE: remove trailing space, tabs 2020-01-22 10:00:03 +01:00
f172309956 BUG: Fix sigmap for scatter particle radiation 2020-01-21 14:10:22 -08:00
00a88f2cab Merge branch 'feature-shm-faceZoneRegions' into 'develop'
ENH: shm: support for automatic faceZones

See merge request Development/openfoam!327
2020-01-16 12:22:02 +00:00
b8c2c0acf6 ENH: shm: support for automatic faceZones 2020-01-16 12:22:02 +00:00
0c7140c967 Merge branch 'feature-regIOobject-store' into 'develop'
ENH: regIOobject store() now also registers the object

See merge request Development/openfoam!326
2020-01-13 15:42:53 +00:00
b0072bfab8 ENH: regIOobject store() now also registers the object
- previously the store() method just set the ownedByRegistry flag.
  Now ensure that it is indeed registered first.

- support register/store of tmp<> items.
  The tmp parameter is not cleared, but changed from PTR to CREF
  to allow further use.

  The implicit registration allows code simplification using the
  GeometricField::New factory method, for example.

  Old Code
  ========
      volScalarField* ptr = new volScalarField
      (
          IOobject
          (
              fieldName,
              mesh.time().timeName(),
              mesh,
              IOobject::NO_READ,
              IOobject::NO_WRITE,
              true  // Register
          ),
          mesh,
          dimless,
          zeroGradientFvPatchField<scalar>::typeName
      );
      ptr->store();

  New Code
  ========
      auto tptr = volScalarField::New
      (
          fieldName,
          mesh,
          dimless,
          zeroGradientFvPatchField<scalar>::typeName
      );
      regIOobject::store(tptr);

  or even
      regIOobject::store
      (
          volScalarField::New
          (
              fieldName,
              mesh,
              dimless,
              zeroGradientFvPatchField<scalar>::typeName
          )
      );
2020-01-13 15:37:25 +00:00
12bd45673a BUG: coded: preserve VERBATIMSTRING. Fixes #1497. 2020-01-13 15:10:07 +00:00
9b67ffaf74 COMP: update lemon to 2019-12-19 version 2020-01-13 13:56:23 +01:00
8fdb9b2f70 COMP: robuster storage of pv/vtk sentinel files with out-of-source builds 2020-01-13 13:56:23 +01:00
b1a866c37c BUG: collated: correctly handle ascii writing. See #1545.
The collated container ('decomposedBlockData') is always binary
but the 'payload' might be ascii so use that header information
instead of the decomposeBlockData header.
2020-01-13 11:23:30 +00:00
4e73d0e40e Merge remote-tracking branch 'origin/master' into develop 2020-01-10 10:02:08 +00:00
a1fbe8283c Merge branch 'misc-kbc-jan-1' into 'develop'
TUT: misc cleanup in various tutorials

See merge request Development/openfoam!324
2020-01-10 09:54:55 +00:00
a68333d695 TUT: simplify basic/overPotentialFoam/cylinder
BAKW: ensures bitwise backward compatibility
2020-01-10 09:44:38 +00:00
b81106f837 TUT: enable purgeWrite in driftFluxFoam tuts to avoid numerous write-outs 2020-01-10 09:44:38 +00:00
8504c813d0 TUT: remove redundant white-spaces in interFoam/motorBike 2020-01-10 09:44:38 +00:00
152890d288 TUT: change residuals FO remnants to solverInfo FO (#1290) 2020-01-10 09:44:38 +00:00
bda695d97a TUT: simplify basic/overLaplacianDyMFoam/heatTransfer
BAKW: ensure bitwise backward compatibility
2020-01-10 09:44:33 +00:00
c399a4b3fb TUT: simplify basic/laplacianFoam/flange
BAKW: ensure bitwise backward compatibility
2020-01-09 17:19:36 +00:00
45a0f70a28 ENH: shortestPathSet: snappyHexMesh leak detection. Improved walking. 2020-01-09 11:37:40 +00:00
c186c884b2 ENH: collated: pass through label/scalar size. Fixes #1545. 2020-01-09 10:23:26 +00:00
8bbf26f197 Merge remote-tracking branch 'origin/master' into develop 2020-01-08 09:50:39 +00:00
8e78a27822 BUG: pressure FO - resolved hydrostatic contribution for incompressible cases. See #1544 2020-01-07 16:17:25 +00:00
0fc4b79dde ENH: checkMesh: write minPyrVol. Fixes #1543. 2020-01-06 13:59:16 +00:00
28eb349a30 BUG: checkMesh: handling of unsorted points. Fixes #920. 2020-01-06 11:22:34 +00:00
1270024273 ENH: SemiImplicitSource - simplified handling of enums 2020-01-03 17:06:05 +00:00
be38f5fb11 Merge remote-tracking branch 'origin/master' into develop 2020-01-03 15:09:00 +00:00
1b07bb6505 Merge branch 'misc-kbc-v2f' into 'develop'
DEFEATURE: deprecate v2f model in favour of kEpsilonPhitF

See merge request Development/openfoam!319
2020-01-03 09:41:18 +00:00
e34a6e7df0 TUT: change output tag 'hill' to more consistent 'bump' 2020-01-03 09:40:58 +00:00
ab0dd1f1a8 DEFEATURE: deprecate v2f model in favour of kEpsilonPhitF
- kEpsilonPhitF is a kEpsilon-based model which originated
    from (Durbin, 1995)’s v2-f methodology. However, the majority of
    v2-f model variants proved to be numerically stiff for segregated
    solution algorithms due to the coupled formulations of v2 and f fields,
    particularly on wall boundaries.

    The v2-f variant (i.e. OpenFOAM’s v2f model) due to
    (Lien and Kalitzin, 2001) reformulated the original v2-f model to enable
    segregated computations; however, a number of shortcomings regarding
    the model fidelity were reported in the literature.

    To overcome the shortcomings of the v2-f methodology, the v2-f approach
    was re-evaluated by (Laurence et al., 2005) by transforming v2 scale into
    its equivalent non-dimensional form, i.e. phit, to reduce the numerical
    stiffness.
    This variant, i.e. kEpsilonPhitF, is believed to provide numerical
    robustness, and insensitivity to grid anomalies while retaining the
    theoretical model fidelity of the original v2-f model.

    Accordingly the v2f RANS model is deprecated in favour of the variant
    kEpsilonPhitF model.
2020-01-03 09:40:58 +00:00
0bbf94fb9b Merge branch 'bug-updateMethod-restart' into 'master'
BUG: continuation of updateMethods with empty activeDesignVariables (#1540)

See merge request Development/openfoam!322
2020-01-03 09:38:41 +00:00
254d38d772 BUG: continuation of updateMethods with empty activeDesignVariables
When activeDesignVariables are not set explicitly, all design variables
are treated as active. These were allocated properly when starting from
0 but not when starting from an intermediate optimisation cycle
(e.g. running 5 optimisation cycles, stopping and restarting).

TUT: added a new tutorial including the restart of an optimisation run
to help identify future regression
2020-01-03 09:38:11 +00:00
60efde8c09 Merge branch 'bug-writeMorpherCPs-IO' into 'master'
BUG: writeMorpherCPs expects a controlBoxes entry (#1538)

See merge request Development/openfoam!321
2020-01-03 09:37:16 +00:00
c413ec5009 BUG: writeMorpherCPs expects a controlBoxes entry
The controlBoxes wordList was removed from NURBS3DVolume in the
pre-release phase but writeMorpherCPs was not updated accordingly.

TUT: added the invocation of writeMorpherCPs in one of the tutotials to
help identify future regression
2020-01-03 09:36:51 +00:00
227a0f5d43 Merge branch 'bug-wrong-FatalIOError-message' into 'master'
BUG: Wrong FatalIOError message in displacementMethod and optMeshMovement (#1537)

See merge request Development/openfoam!320
2020-01-03 09:36:06 +00:00
fed6a9efd4 BUG: Wrong FatalIOError message in displacementMethod and optMeshMovement
- The core of the FatalIOError message was not printed due to exiting
  with FatalError instead of FatalIOError
- Changed the TypeName in all derived classes of displacementMethod so
  that the toc printed by the FatalIOError corresponds to what the user
  should add in dynamicMeshDict
2020-01-03 09:35:14 +00:00
122e496590 BUG: Fix issue 1535 in turbulentTemperatureRadCoupledMixed.
When a contact resistance is used the T field on each coupled
    patch is different due to the thermal resistance. Thus, instead
    of solving for a unique Tw at the wall, we solve for Tw1 at one side
    then, the Tnbr internal becomes Tw2, which is the T of the nbr
    patch.
2020-01-02 12:43:38 -08:00
0ff953411b BUG: Fix issue 1535 in turbulentTemperatureRadCoupledMixed.
When a contact resistance is used the T field on each coupled
patch is different due to the thermal resistance. Thus, instead
of solving for a unique Tw at the wall, we solve for Tw1 at one side
then, the Tnbr internal becomes Tw2, which is the T of the nbr patch.
2020-01-02 12:34:45 -08:00
bbb4b01910 CONFIG: reset version to com 2019-12-23 14:51:27 +00:00
f3950763fe REL: Updated bashrc|cshrc version to v1912 2019-12-23 09:49:24 +00:00
ae2ab06312 REL: Release preparations 2019-12-23 09:49:23 +00:00
8b77946c67 BUG: Patch interaction models - correct container type introduced by c1b07cd103 2019-12-23 09:48:38 +00:00
22693fa2be Update Build.md 2019-12-20 23:23:21 +00:00
a51bf0bed6 BUG: Updated production term regression introduced in b7aa89e177 2019-12-20 16:28:21 +00:00
630f7f7ff6 BUG: Fixing debug flag and write L in Bromley 2019-12-20 07:33:30 -08:00
4107eeefcd ENH: added foamCalc (applications/tools)
Many possibilities:
- use as a simple calculator with vectors, tensors etc.
- test validity of expression syntax

As a calculator:

    foamCalc  '(vector(1,2,3) ^ vector(4,5,6)) * sqrt(34)'

The same, but with debugging:

    foamCalc -debug-switch fieldExpr=6 \
        'mag((vector(1,2,3) ^ vector(4,5,6))) * sqrt(34)'
2019-12-19 22:18:10 +01:00
dd465052fe CONFIG: report compiler path and version from top-level build
- previously just reported gcc/clang versions, but these are not
  necessarily the ones actually being used (eg, clang-9 vs clang).
  Now use the path from `wmake -show-path-cxx` to improve the accuracy,
  and also support other compiler types.
2019-12-19 22:17:53 +01:00
1d931f9aaf Merge branch 'integration-interTrackFoam' into 'develop'
Integration inter track foam

See merge request Development/openfoam!310
2019-12-19 15:34:01 +00:00
df5a056fd3 GIT: interfaceTracking: relocate library 2019-12-19 15:32:34 +00:00
e5ede7e8c5 TUT: interTrack tutorials in incompressible pimpleFoam 2019-12-19 15:32:34 +00:00
79588b9b53 ENH: Adding interTrack code
1) New skewCorrectedSnGrad for non-orthogonal and skewness corrector
2) New freeSurfacePressure and freeSurfacePressure working with
   interfaceTrackingFvMesh
3) New interfaceTrackingFvMesh
2019-12-19 15:32:34 +00:00
3a5bcde5ab ENH: waveMaker boundary condition - updated for backwards compatibility 2019-12-19 13:17:04 +00:00
7757a9b897 STYLE: extrudeModel: missing space 2019-12-19 13:01:06 +00:00
74b12c6afd ENH: improved separation of scanner/parser debug selection
- now use debug 2 for scanner and debug 4 for parser.
  Provided better feedback about what is being parsed (debug mode)

- relocate debug application to applications/tools/foamExprParserInfo
2019-12-19 13:16:26 +01:00
9ab75c5c3b STYLE: weightedFlux: adapt for word input 2019-12-19 09:21:32 +00:00
d092f42928 Merge branch 'feature-vof-turbulence-correction' into 'develop'
New VOF multiphaseStabilizedTurbulence fvOption

See merge request Development/openfoam!316
2019-12-19 08:46:50 +00:00
b7aa89e177 ENH: Turbulence models - ensure unlimited nut used in production terms 2019-12-19 08:45:54 +00:00
ea4130707e ENH: Added new multiphaseStabilizedTurbulence fvOption
See GL #1433

Applies corrections to turbulence kinetic energy equation and turbulence
viscosity field for incompressible multiphase flow cases.

Turbulence kinetic energy is over-predicted in VOF solvers at the phase
interface and throughout the water column in nearly-potential flow regions
beneath surface waves.

This fvOption applies corrections based on the references:

    Buoyancy source term in turbulence kinetic energy equation:

        Devolder, B., Rauwoens, P., and Troch, P. (2017).
        Application of a buoyancy-modified k-w SST turbulence model to
        simulate wave run-up around a monopile subjected to regular waves
        using OpenFOAM.
        Coastal Engineering, 125, 81-94.

    Correction to turbulence viscosity field:

        Larsen, B.E. and Fuhrman, D.R. (2018).
        On the over-production of turbulence beneath surface waves in
        Reynolds-averaged Navier-Stokes models
        J. Fluid Mech, 853, 419-460

Example usage:

    multiphaseStabilizedTurbulence1
    {
        type            multiphaseStabilizedTurbulence;
        active          yes;

        multiphaseStabilizedTurbulenceCoeffs
        {
            // Optional coefficients
            lambda2         0.1;   // A value of 0 sets the nut correction to 0
            Cmu             0.09;  // from k-epsilon model
            C               1.51;  // model coefficient from k-omega model
            alpha           1.36;  // 1/Prt
        }
    }

Thanks go to the Turbulence Technical Committee, and the useful discussions
with and code testing by Bjarke Eltard-Larsen and David Fuhrman (Technical
University of Denmark).
2019-12-19 08:45:54 +00:00
88f357fc39 ENH: fvOptions - added 'log' helper for verbose output 2019-12-19 08:45:54 +00:00
7d89b72e26 TUT: Using rPolynomial Eq of State for water 2019-12-18 12:08:22 -08:00
58009f652e COMP: Resolved some clang compiler warnings 2019-12-18 17:48:11 +00:00
4dd5adacba Merge branch 'misc-kbc-dec' into 'develop'
MISC: RANS model, TUT, BUG, DOC changes

See merge request Development/openfoam!315
2019-12-18 16:16:11 +00:00
ea94834022 DOC: fix turbulentInlet BC header (#1100)
STYLE: add getOrDefault(), missing doc dashes
2019-12-18 15:47:19 +00:00
7d252fa900 TUT: update velocityDampingConstraint header (#942)
STYLE: add getOrDefault(); const specifiers to velocityDampingConstraint
2019-12-18 15:47:19 +00:00
a3b5299b09 BUG: fix no-U/P iteration issue in TUT/simpleFoam/turbineSiting (#1114) 2019-12-18 15:47:19 +00:00
ba6ba1ea0f ENH: add grid-line option into foamMonitor (#1197)
foamMonitor -g
    foamMonitor -grid
2019-12-18 15:47:19 +00:00
e6238a5c62 TUT: add kEpsilonPhitF RAS model example to bump2D
- STYLE: remove redundant whitespaces
2019-12-18 15:47:19 +00:00
e38e5d6717 ENH: new RAS model: kEpsilonPhitF
ENH: modify fWallFunction for kEpsilonPhitF model

    The k-epsilon-phit-f turbulence closure model for incompressible and
    compressible flows.

    The model is a three-transport-equation linear-eddy-viscosity turbulence
    closure model alongside an elliptic relaxation equation:
      - Turbulent kinetic energy, \c k,
      - Turbulent kinetic energy dissipation rate, \c epsilon,
      - Normalised wall-normal fluctuating velocity scale, \c phit,
      - Elliptic relaxation factor, \c f.

    Reference:
    \verbatim
        Standard model (Tag:LUU):
            Laurence, D. R., Uribe, J. C., & Utyuzhnikov, S. V. (2005).
            A robust formulation of the v2−f model.
            Flow, Turbulence and Combustion, 73(3-4), 169–185.
            DOI:10.1007/s10494-005-1974-8
    \endverbatim

    The default model coefficients are (LUU:Eqs. 19-20):
    \verbatim
        kEpsilonPhitFCoeffs
        {
            Cmu         0.22,    // Turbulent viscosity constant
            Ceps1a      1.4,     // Model constant for epsilon
            Ceps1b      1.0,     // Model constant for epsilon
            Ceps1c      0.05,    // Model constant for epsilon
            Ceps2       1.9,     // Model constant for epsilon
            Cf1         1.4,     // Model constant for f
            Cf2         0.3,     // Model constant for f
            CL          0.25,    // Model constant for L
            Ceta        110.0,   // Model constant for L
            CT          6.0,     // Model constant for T
            sigmaK      1.0,     // Turbulent Prandtl number for k
            sigmaEps    1.3,     // Turbulent Prandtl number for epsilon
            sigmaPhit   1.0,     // Turbulent Prandtl number for phit = sigmaK
        }
    \endverbatim

Note
    The name of the original variable replacing 'v2' is 'phi' (LUU:Eq. 14).
    However, the name 'phi' preexisted in OpenFOAM; therefore, this name was
    replaced by 'phit'
2019-12-18 15:47:19 +00:00
427f92215c BUG: foamFormatConvert: missing 'faces' file. Fixes #1529. 2019-12-18 15:00:50 +00:00
4dc9c9dca2 Merge branch 'feature-ihc-wavemodels' into 'develop'
Feature ihc wavemodels

See merge request Development/openfoam!317
2019-12-18 13:59:41 +00:00
634e5329d8 INT: Added tutorial cases showcasing new multi-paddle wave maker extensions 2019-12-18 13:57:41 +00:00
2f07d4c1bc INT: Consistency updates for updated waveMaker condition 2019-12-18 13:57:41 +00:00
d0c5662172 INT: Initial IHCantabria update for waveMaker BC
Adds support for paddles to generate 3-D waves
2019-12-18 13:57:29 +00:00
4818af3bef TUT: Changing combustion models for fireFoam tutorial cases.
Changing to Eddy Dissipation Model the combustion casese
for fireFoam
2019-12-17 16:02:24 -08:00
553fd1e26d Merge branch 'integration-foundation' into 'develop'
INT: openfoam.org code integration

See merge request Development/openfoam!312
2019-12-17 22:25:42 +00:00
6e8f0dbe76 INT: org integration
1) rPolynomial Eq of State
2) externalForce and softWall in rigidBodyDynamics

INT: Several minor bug fixes plus
2019-12-17 22:23:00 +00:00
5c74b709b1 BUG: setting to zero qem and qin in radiativeIntensityRay.
qem and qin were not set to zero for the wideBand model BC.
qin was used in the grey model BC to calculate Ir(the total
incoming heat flux). As it is now set to zero, the grey model
loops over the incoming rays to calculate Ir instead of relaying
on qin stored in radiativeIntensityRay.
2019-12-17 12:37:56 -08:00
ea1b531ab3 Merge branch 'adjointOptimisation-fixes' into 'develop'
ENH: Adjoint optimisation fixes

See merge request Development/openfoam!314
2019-12-17 19:57:29 +00:00
e591cf130c ENH: objectiveDict is appended with objective name
to allow for continuation with averaging, line search and multiple
objectives
2019-12-17 19:56:14 +00:00
d496d6536d BUG: meritFunction file was not written in SQP 2019-12-17 19:56:14 +00:00
78bc63ffa4 ENH: added function in NURBS3DVolume
returning number of design variables per direction when symmetry is
applied
2019-12-17 19:56:14 +00:00
22ac759d12 ENH: NURBS3DVolumeCylindrical: added an origin vector
to parameterize regions not centered in (0,0,0)
2019-12-17 19:56:14 +00:00
c9aec64fb9 BUG: NURBS3DVolume was getting a wrong set of points
findPointsInBox was receiving points in the Cartesian system,
not local coordinate system
2019-12-17 19:56:14 +00:00
4e4c681c14 BUG: add missing fvMesh::solve(sphericalTensor) forward (closes #1526)
- got lost with overset changes
2019-12-17 15:17:24 +01:00
7c70125b92 COMP: remove masked OTstream::write(token&&) method (#1525) 2019-12-17 15:17:14 +01:00
bc0b02c651 CONFIG: permit an empty value for WM_COMPILE_OPTION, WM_COMPILER_TYPE
- an empty WM_COMPILE_OPTION is treated internally (in make rules)
  like "Opt"

- an empty WM_COMPILER_TYPE is treated like "system" (system compiler)
2019-12-17 15:17:14 +01:00
e0d555ccdb Merge branch 'feature-PDRsetFields' into 'develop'
ENH: add PDRsetFields utility

See merge request Development/openfoam!265
2019-12-17 10:07:41 +00:00
1cf795a40f ENH: use exprString expansions for #eval
- follows the principle of least surprise if the expansion behaviour
  for #eval and expressions (eg, exprFixedValue) are the same.  This
  is possible now that we harness the regular stringOps::expand()
  within exprString::expand()
2019-12-17 09:47:51 +01:00
c1b07cd103 BUG: post-processing of parcels on patch interaction models
Adding check for p.active at the end of KinematicParcel::move.
    p.hitFace() is called only for active parcels.

    Setting to zero the initialization for stored lists of stick and
escape parcels
    in LocalInteraction and StandardWallInteraction models

    NOTE: KinematicParcel::hitPatch counts overall system escaped
    parcels and mass based on polyPatch type and not on type of
    patchInteractionModel. Thus, if a patch is a Wall for fluid
    but escape for parcel the overall report will be wrong but
    the local report for each patch is correct
2019-12-16 14:57:28 -08:00
f45c7fb7bd Merge branch 'feature-appyBoundaryLayer-writeTurbulenceFields' into 'develop'
ENH: applyBoundaryLayer - optionally write turbulence fields

See merge request Development/openfoam!313
2019-12-16 22:18:38 +00:00
9d63a1e7c4 TUT: examples for PDRsetFields 2019-12-16 21:50:58 +01:00
a60fe9c7b0 ENH: PDRsetFields utility (#1216)
- the PDRsetFields utility processes a set of geometrical obstructions
  to determine the equivalent blockage effects.

  These fields are necessary inputs for PDRFoam calculations.

  After setting up the geometries, the -dry-run option can be used to
  generate a VTK file for diagnosis and post-processing purposes.

- this is an initial release, with improvements slated for the future.

NOTE
  - the field results may be less than fully reliable when run in
    single-precision. This howver does not represent a realistic
    restriction since the prepared fields target a combustion
    application which will invariably be double-precision.
2019-12-16 21:50:47 +01:00
1a3b50f635 GIT: stray line 2019-12-16 16:26:17 +01:00
eaa138443a STYLE: library functions using std::string 2019-12-16 16:16:53 +01:00
83e0501a77 Merge branch 'develop' of https://develop.openfoam.com/Development/openfoam into develop 2019-12-16 13:40:35 +00:00
193b7dba22 CONFIG: relocate WM_PROJECT definition in bashrc, cshrc
- locate where the user is less tempted to change it (#1515).
  It really should be considered an invariant environment variable.

STYLE: wmake -help information to stdout, die errors to stderr
2019-12-16 14:34:36 +01:00
da06067213 ENH: surfaceDistance: FO to calc distance-to-surface field. Fixes #1523. 2019-12-16 12:18:34 +00:00
9edaf8bfa5 CONFIG: default compilation is 'Opt' in Makefiles
- only include compiler-family rules for C++ once

STYLE: minor cleanup of wmake/src Makefile
2019-12-16 11:22:16 +01:00
1a16207e0d COMP: compilation of Test-QRMatrix (clang, int64)
- remove unused local functions from volumeExprDriver
2019-12-16 11:22:15 +01:00
c614388ddb BUG: Tensor2D derives from VectorSpace, not MatrixSpace 2019-12-15 19:02:18 +01:00
3176b3a5de ENH: add wmake -show-path-{c,cxx} | -help-full
- The wmake -show-path-{c,cxx} options return the fully qualified
  paths to the respective compilers. This can be useful when verifying
  that the correct compiler is indeed configured.

- The -help-full to display the "advanced" options, but in the normal
  case just show the basic options.
2019-12-15 17:19:05 +01:00
3b514140dc COMP: constructor used assignment operator 2019-12-15 13:37:37 +01:00
624591b886 COMP: ignore unused-const-variable in generated scanner code 2019-12-15 13:28:24 +01:00
77a5e574af COMP: fully qualify IListStream parameter (fixes #1521)
- stops clang-9 error of List being constrained by private inheritance
2019-12-15 12:53:28 +01:00
b601d7bfb9 Merge branch 'integration-feature-numerics' into 'develop'
Integration feature numerics

See merge request Development/openfoam!308
2019-12-14 15:34:14 +00:00
75ba4a07ef STYLE: consistent quoting for 'cd' 2019-12-14 13:34:48 +01:00
84095ef631 ENH: Adding solarBeamWithTrees tutorial 2019-12-13 16:40:32 -08:00
33e0c4ba88 ENH: improve expression string expansions
- reuse more of stringOps expansions to reduce code and improve the
  syntax flexiblity.

  We can now embed "pre-calculated" values into an expression.
  For example,

       angle       35;
       valueExpr   "vector(${{cos(degToRad($angle))}}, 2, 3)";

  and the ${{..}} will be evaluated with the regular string evaluation
  and used to build the entire expression for boundary condition
  evaluation.

  Could also use for fairly wild indirect referencing:

       axis1   (1 0 0);
       axis2   (0 1 0);
       axis3   (0 0 1);
       index   100;
       expr   "$[(vector) axis${{ ($index % 3) +1 }}] / ${{max(1,$index)}}";
2019-12-14 00:11:28 +01:00
b63721f8bc Merge branch 'feature-proudmann-fo' into 'develop'
ENH: Added new function object to compute the Proudman acoustic power

See merge request Development/openfoam!303
2019-12-13 20:04:26 +00:00
ad82e9c429 Merge branch 'feature-limitFields-FO' into 'develop'
ENH: Added new limitFields function object

See merge request Development/openfoam!304
2019-12-13 20:04:05 +00:00
69a8369541 COMP: add note about gcc-9 and deprecated-copy 2019-12-13 20:54:28 +01:00
b87ea76fc1 ENH: relocate findMinData/findMaxData to FieldOps namespace 2019-12-13 17:04:20 +01:00
6ce3e0bd67 BUG: expression BCs missing their variables on output 2019-12-13 15:49:25 +01:00
db8a840459 COMP: BFGS and SR1 failed to compile with SP
- Failed due to double*Matrix<float> multiplication.

Style changes

- use SquareMatrix with Identity on construction

- use Zero in constructors

- remove trailing space and semi-colons
2019-12-12 11:40:01 -05:00
8ece5f7aae BUG: string expand swallowing '$(..)' construct
- this regression caused dynamic code with includes to fail since they
  often have -I$(LIB_SRC)/...  content
2019-12-13 14:17:32 +01:00
7aa2bf832f STYLE: header format 2019-12-13 12:33:23 +01:00
17d9969ae5 ENH: stringOps::findTrim helper
- finds beg/end indices of string trimmed of leading/trailing whitespace
2019-12-13 12:10:53 +01:00
b61d4ab488 STYLE: adjust deprecations for OSspecific
- skip processing OSspecific/MSwindows since this can cause duplicate
  doxygen entries

STYLE: adjust formatting in code templates

STYLE: use std::string methods without extra qualifications
2019-12-13 11:08:12 +01:00
370c8a39af ENH: additional feedback about controlled mesh motion update type
- ensure that the updateControl is "non-sticky" on re-read,
  even if we do not support runtime-modifiable here

STYLE: add syntax example (wingMotion), but with updateInterval 1
2019-12-13 10:53:56 +01:00
49ed79d537 ENH: improve some timeControl handling
- synchronize the scalar interval value with the integer version.
  This ensures that the interval() method returns the correct
  representative value.

- added clear() method to reset to 'always' (pass-through)
2019-12-13 10:53:56 +01:00
b502086a29 Revert "string trim"
This reverts commit 677e314279.
2019-12-13 10:53:40 +01:00
677e314279 string trim 2019-12-13 10:05:28 +01:00
373ad6df0e ENH: additional feedback about controlled mesh motion update type
- ensure that the updateControl is "non-sticky" on re-read,
  even if we do not support runtime-modifiable here

STYLE: add syntax example (wingMotion), but with updateInterval 1
2019-12-13 10:02:57 +01:00
e90de78cac ENH: add timeControl clear() method to reset to 'always' (pass-through) 2019-12-13 10:02:41 +01:00
042c529f9f Merge branch 'feature-adjoint-shapeOptimisation' into 'develop'
ENH: New adjont shape optimisation functionality

See merge request Development/openfoam!307
2019-12-12 14:18:20 +00:00
b863254308 ENH: New adjont shape optimisation functionality
The adjoint library is enhanced with new functionality enabling
automated shape optimisation loops.  A parameterisation scheme based on
volumetric B-Splines is introduced, the control points of which act as
the design variables in the optimisation loop [1, 2].  The control
points of the volumetric B-Splines boxes can be defined in either
Cartesian or cylindrical coordinates.

The entire loop (solution of the flow and adjoint equations, computation
of sensitivity derivatives, update of the design variables and mesh) is
run within adjointOptimisationFoam. A number of methods to update the
design variables are implemented, including popular Quasi-Newton methods
like BFGS and methods capable of handling constraints like loop using
the SQP or constraint projection.

The software was developed by PCOpt/NTUA and FOSS GP, with contributions from

Dr. Evangelos Papoutsis-Kiachagias,
Konstantinos Gkaragounis,
Professor Kyriakos Giannakoglou,
Andy Heather

[1] E.M. Papoutsis-Kiachagias, N. Magoulas, J. Mueller, C. Othmer,
K.C.  Giannakoglou: 'Noise Reduction in Car Aerodynamics using a
Surrogate Objective Function and the Continuous  Adjoint Method with
Wall Functions', Computers & Fluids, 122:223-232, 2015

[2] E. M. Papoutsis-Kiachagias, V. G. Asouti, K. C. Giannakoglou,
K.  Gkagkas, S. Shimokawa, E. Itakura: ‘Multi-point aerodynamic shape
optimization of cars based on continuous adjoint’, Structural and
Multidisciplinary Optimization, 59(2):675–694, 2019
2019-12-12 14:17:29 +00:00
a8ab9b8796 CONFIG: prefer use of ParaView_MESA_DIR in runTimePostProcessing
- when using VTK from ParaView sources it can better to tag them as
  such, but simultaneously not mask the ParaView with hardware
  rendering.

  The additional ParaView_MESA_DIR variable allows this.
  The balance of library and path setup is unaffected by this.

DOC: update doc/BuildIssues
2019-12-12 14:29:59 +01:00
455c619edc STYLE: typo in doc 2019-12-12 14:07:17 +01:00
ff995c5d53 COMP: Resolved compiler warning in evalEntry 2019-12-12 12:39:47 +00:00
58b02969c0 Merge branch 'misc-kbc' into 'develop'
ENH|BUG: Misc

See merge request Development/openfoam!305
2019-12-12 11:30:35 +00:00
8225733399 BUG: fix kkLOmega model - omegaWallFunction inconsistency (#1484)
- `Pkt` was directed to `GName` to allow wall functions
     are usable by kkLOmega model
  - `Pkt` was changed to a non-const object, so that omegaWallFunc
    can modify `Pkt` at the wall, if need be.
  - Elementwise backward compatibility was checked by
    pimpleFoam/RAS/ellipsekkLOmega
  - New implementation was checked by changing omega:hole boundary
    in pimpleFoam/RAS/ellipsekkLOmega to omegaWallFunction
2019-12-12 11:24:47 +00:00
af0e454ccf BUG: fix QRMatrix (#1261, #1240)
QRMatrix (i.e. QR decomposition, QR factorisation or orthogonal-triangular
    decomposition) decomposes a scalar/complex matrix \c A into the following
    matrix product:

    \verbatim
        A = Q*R,
    \endverbatim

    where
     \c Q is a unitary similarity matrix,
     \c R is an upper triangular matrix.

Usage
    Input types:
     - \c A can be a \c SquareMatrix<Type> or \c RectangularMatrix<Type>

    Output types:
     - \c Q is always of the type of the matrix \c A
     - \c R is always of the type of the matrix \c A

    Options for the output forms of \c QRMatrix (for an (m-by-n) input matrix
    \c A with k = min(m, n)):
     - outputTypes::FULL_R:     computes only \c R                   (m-by-n)
     - outputTypes::FULL_QR:    computes both \c R and \c Q          (m-by-m)
     - outputTypes::REDUCED_R:  computes only reduced \c R           (k-by-n)

    Options where to store \c R:
     - storeMethods::IN_PLACE:        replaces input matrix content with \c R
     - storeMethods::OUT_OF_PLACE:    creates new object of \c R

    Options for the computation of column pivoting:
     - colPivoting::FALSE:            switches off column pivoting
     - colPivoting::TRUE:             switches on column pivoting

    Direct solution of linear systems A x = b is possible by solve() alongside
    the following limitations:
     - \c A         = a scalar square matrix
     - output type  = outputTypes::FULL_QR
     - store method = storeMethods::IN_PLACE

Notes
    - QR decomposition is not unique if \c R is not positive diagonal \c R.
    - The option combination:
      - outputTypes::REDUCED_R
      - storeMethods::IN_PLACE
      will not modify the rows of input matrix \c A after its nth row.
    - Both FULL_R and REDUCED_R QR decompositions execute the same number of
      operations. Yet REDUCED_R QR decomposition returns only the first n rows
      of \c R if m > n for an input m-by-n matrix \c A.
    - For m <= n, FULL_R and REDUCED_R will produce the same matrices
2019-12-12 11:22:14 +00:00
3afc352757 ENH: add threshold for the number of warnings in MatrixTools::equal() 2019-12-12 11:22:14 +00:00
3a5ad7eed7 ENH: add identity matrix constructor to RectangularMatrix 2019-12-12 11:22:14 +00:00
64614cfce8 ENH: add new funcs into SquareMatrix
- query func `symmetric()`
    - query func `tridiagonal()`
    - `resize()`
    - `labelpair` identity constructor

    STYLE: add `#if(0 | RUNALL)` to improve test control in Test-Matrix
2019-12-12 11:22:13 +00:00
f9e5392171 BUG: fix tut regression for potentialFoam (#1518) 2019-12-12 11:22:13 +00:00
64242fc096 TUT: generalise planarPoiseuille for all laminar models (#1509) 2019-12-12 11:22:13 +00:00
be235787cf DOC: add missing tags into Stokes.H (#1509)
STYLE: add missing comment dashes, DOI
  DOC: add DOI into WatersKing.C
2019-12-12 11:22:13 +00:00
55c880b7dc Merge branch 'feature-mesh-update-controls' into 'develop'
Feature mesh update controls

See merge request Development/openfoam!306
2019-12-12 11:03:02 +00:00
280be6312c ENH: update handling of "writeTime" in timeControl class
- handle zero or negative values as being identical to 1.
  As per timeStep control and what the comments suggested.

- drop old outputTime enumeration, since this is covered by the
  writeTime enumeration and a corresponding Enum name.

- support construction of a "pass-through" control object that always
  executes and add some method to test for these conditions and be able
  to output some meaning full information.
  Eg,

     if (ctrl.execute())
     {
         if (!ctrl.always())
         {
             Info<< "Sampling executed based on " << ctrl.type() << nl;
         }
         ...
     }

     To produce "Sampling executed based on runTime"
2019-12-12 09:09:50 +01:00
30fe28ee8e ENH: Added new function object to compute the Proudman acoustic power
Calculates the acoustic power due to the volume of isotropic turbulence
using Proudman's formula

The acoustic power \f$ P_A \f$ [W/m3] in terms of turbulence \f$ k \f$
and \f$ \epsilon \f$ is given as:

    \f[
        P_A = alpha_\epsilon \rho \epsilon M_t^5
    \f]

where \f$ alpha_\epsilon \f$ is a constant (0.1) and

    \f[
        M_t = \frac{\sqrt{2 k}}{a_0}
    \f]

with \f$ a_0 \f$ the speed of sound.  The acoustic power is also output in
dB using:

    \f[
        L_P = 10 \log \frac{P_A}{P_ref}
    \f]

where \f$ P_ref \f$ is a constant (1e-12 W/m3)

Usage
    Example of function object specification to calculate the Proudman acoustic
    power

    proudmanAcousticPower1
    {
        type        proudmanAcousticPower;
        libs        ("libfieldFunctionObjects.so");
        ...

        // Required additional entries for incompressible calculations
        rhoInf      1.225;
        aRef        340;
    }

    Where the entries comprise:
        Property     | Description                 | Required   | Default value
        type         | type name: proudmanAcousticPower         | yes        |
        rhoInf       | Freestream density for incompressible cases  | no |
        aRef         | Reference spped of sound for incompressible cases | no |
        alphaEps     | Model coefficient           | no         | 0.1

Note
- The freestream density and reference speed of sound are only necessary
  when a thermodynamics package is unavailable, typically for incompressible
  cases.
2019-12-11 21:37:39 +00:00
87bba9ae14 ENH: add selectable update control/interval to pimpleFoam, rhoPimpleFoam
- Allows user-defined control of when the mesh motion occurs,
  which can be especially useful in situations where the mesh motion
  is much slower than any of the fluid physics.

  For example, in constant/dynamicMeshDict:

      updateControl   runTime;
      updateInterval  0.5;

  to have mesh motion triggered every 1/2 second.

  Note that the _exact_ time that the mesh motion actually occurs may
  be slightly differently since the "runTime" triggering is fuzzy in
  nature. It will trigger when the threshold has been crossed, which
  will depend on the current time-step size.
2019-12-11 20:25:18 +00:00
fa57b4e45e ENH: adjust dynamicFvMesh to support controllable mesh motion updates 2019-12-11 20:12:49 +00:00
89fb73d2a3 COMP: disable some compiler warnings
- The -Wno-deprecated-copy flag for gcc-9.2.0

  In the future we may indeed wish to explicitly request default
  generated constructors and assignment operators, but at the moment
  these are still acceptable.

- The -Wno-alloc-size-larger-than flag for mingw compilations

  Related to differences in PTRDIFF_MAX vs SIZE_MAX on the target.
  Several issues related to this can be found in the gcc bug reports
  and on stackoverflow etc.
2019-12-11 20:42:11 +01:00
eb4fec371a ENH: unified some common parser static methods
COMP: delay evaluation of fieldToken enumeration types

- lazy evaluation at runTime instead of compile-time to make the code
  independent of initialization order.
  Otherwise triggers problems on gcc-4.8.5 on some systems where
  glibc is the same age, or older.
2019-12-11 13:32:36 +01:00
622808c7d0 ENH: add empty() member for Enum 2019-12-11 13:18:01 +01:00
e247e06381 ENH: ITstream single token append method
- remove/fully deprecated newElmt in next release
2019-12-11 10:21:22 +01:00
1847bd16be TUT: use fast topological search for channel395DFSEM blockMesh
- same result, but approx 4x faster for this case
2019-12-11 09:45:54 +01:00
d1d567a90f STYLE: flush newline in blockMesh feedback 2019-12-11 09:43:47 +01:00
bc51349d75 CONFIG: bump API to 1912 (pre-release)
- update repository links
2019-12-11 09:19:32 +01:00
ef59289405 Merge branch 'feature-bcs-scaledFixedValue' into 'develop'
ENH: Added new scaledFixedValue boundary condition

See merge request Development/openfoam!302
2019-12-11 10:45:30 +00:00
0c5ff2efe8 Merge remote-tracking branch 'origin/master' into develop 2019-12-11 00:13:46 +01:00
71bc3510d6 Merge branch 'feature-particle-patch-postpro-filtering' into 'develop'
Feature particle patch postpro filtering

### Summary

Adds options to write particle-patch interactions to file, and to select particle fields to post-process for the `patchPostProcessing` cloud function object


### Resolved bugs (If applicable)

none


### Details of new models (If applicable)

Cloud patch interaction models:
Optionally write patch interaction statistics, e.g. number and mass of particles that stick, escape etc. to file using the optional `writeToFile` entry, e.g.

```
    localInteractionCoeffs
    {
        patches
        (
            "(walls|cyc.*)"
            {
                type        rebound;
            }

            "inlet|outlet"
            {
                type escape;
            }
        );

        // New optional entry
        writeToFile     yes;
    }
```

Cloud function objects:
New `fields` optional entry can be used to select which particle fields to post-process; if empty or the entry is not given all fields are written (to provide backwards compatibility)

```
    patchPostProcessing1
    {
        type            patchPostProcessing;

        // Optional new entry
        fields          (position "U.*" d T nParticle);

        maxStoredParcels 20;
        patches
        (
            cycLeft_half0
            cycLeft_half1
        );
    }
```

See the `$FOAM_TUTORIALS/lagrangian/reactingParcelFilm/filter` tutorial for an example


### Risks

Low risk

See merge request Development/openfoam!301
2019-12-10 15:53:13 +00:00
1b17784a1f Merge branch 'feature-expressions' into 'develop'
Feature expressions

### Summary

This branch represents an implementation of what is considered to be the most useful aspects of swak4Foam ([Swiss-Army-Knife for FOAM](https://openfoamwiki.net/index.php/Contrib/swak4Foam)) from Bernhard Gschaider, namely the ability to use text-based expressions instead of coding in C++ for the following cases:
- expression-based boundary conditions (also known as _groovy_ boundary conditions)
- expression-based setFields (also known as _funky_ set fields)

The idea of what we currently term *expressions* was pioneered by
(Bernhard Gschaider) and is now firmly established in `swak4Foam`.
Among other things, expressions attempt to bridge the gap between
using standard, predefined boundary conditions and writing dedicated,
special-purpose ones. Although part of this gap is now covered within
OpenFOAM by using dynamically compiled user coding (eg, coded boundary
conditions), there remains substantial areas where it can be
significantly more convenient to have a series of predefined functions
and expression sytax with some access to base OpenFOAM field
functionality that enables rapid deployment of boundary conditions, or
custom-defined `setFields` without writing code.
A significant portion of `swak4Foam` expressions has been adapted for
direct integration into OpenFOAM. During the integration and rewrite,
we have tried to pare things down to a smaller subset with the aim of
covering 90% or more of the common cases. The remaining cases are left
to be reassessed for extending the *expressions* functionality in the
future, but they also may be better served with other approaches (eg,
with coded conditions) that were not available when `swak4Foam` was
originally conceived.

To the greatest extent possible, the integrated *expressions* have
been designed to avoid name clashes with `swak` so it should remain
possible to use the most recent versions of `swak` without problem.


### Risks

- New functionality, so low chance of regression.
- The scope of the functionality will be revised in the future

### Naming (for `swak4Foam` users)

The following are the *expressions* correspondences to `swak`:

- The `exprFixedValue` and `exprGradient` boundary conditions are
  roughly equivalent to the _groovy_ boundary conditions.

- The utilities `setExprFields` and `setExprBoundaryFields` are
  roughly equivalent to the _funky_ utilities of similar name.

The naming of the boundary conditions and utilities not only reflects
the slightly different input requirements, but simultaneously seeks to
avoid any potential name-clash with `swak4Foam` in a mixed
environment.

The names for the boundary condition dictionary entries tend be
shorter and slightly different (eg, `valueExpr` vs `valueExpression`)
to serve as a small reminder that the *expressions* syntax is slightly
different than the *groovy* equivalents. It also allows the user to
fashion dictionary entries that are sufficient for **both** boundary
condition variants and quickly toggle between them simply by changing
the boundary condition `type`.

See merge request Development/openfoam!300
2019-12-10 12:10:26 +00:00
44304e07d6 TUT: simple tutorial with expression boundary conditions and setExprFields 2019-12-10 13:09:22 +01:00
2923daab65 ENH: setExprFields and setExprBoundaryFields
- these are the expressions equivalent of funkySetFields and
  funkySetBoundaryFields
2019-12-10 13:09:22 +01:00
749f4b5d11 ENH: boundary conditions with expressions 2019-12-10 13:09:22 +01:00
20589430f4 ENH: driver/parser/scanner for volume expressions 2019-12-10 13:09:21 +01:00
82a1e32526 ENH: driver/parser/scanner for patch expressions 2019-12-10 13:09:21 +01:00
019fe7deff ENH: base fvMesh driver for expressions 2019-12-10 13:09:21 +01:00
6709f3ef6f ENH: Added new limitFields function object
Limits fields to user-specified min and max bounds

Usage
Example of function object specification:

    limitFields1
    {
        type        limitFields;
        libs        ("libfieldFunctionObjects.so");
        ...
        fields      (U);
        limit       max;
        max         100;
    }

Where the entries comprise:
    Property     | Description                 | Required | Default
    type         | type name: limitFields      | yes |
    fields       | list of fields to process   | yes |
    limit        | bound to limit - see below  | yes |
    min          | min limit value             | partly |
    max          | max limit value             | partly |

The "limit" entry can take the value:
- min : specify a minimum value
- max : specify a maximum value
- both : specify a minimum value and a maximum value
2019-12-10 11:04:20 +00:00
7e275838ad ENH: more flexible naming for ensightPartCells, ensightPartFaces
- make ensightParts parallel-aware when handling zones and patches

STYLE: use of serial/parallel more evident in write templates
2019-12-10 10:46:14 +01:00
98b79faddb STYLE: avoid potential deadlock when resizing from zero-sized list
- not yet triggered by any code, but avoid anyhow
2019-12-10 09:54:53 +01:00
e1a7c0ed1d ENH: Particle PatchPostProcessing - enable users to filter particle property output
The optional 'fields' entry can be used to limit which particle fields are
written to file.  If empty/not specified, all properties are written to
maintain backwards compatibility.

    patchPostProcessing1
    {
        type            patchPostProcessing;
        maxStoredParcels 20;
        fields          (position "U.*" d T nParticle);
        patches
        (
            cycLeft_half0
            cycLeft_half1
        );
    }
2019-12-09 23:31:01 +00:00
6748f10d5d ENH: Lagrangian - added particle output to stream functions 2019-12-09 23:21:53 +00:00
deeb27896c ENH: Added option to write particle patch interactions to file
File writing is off by default; to activate, add to the patch interaction model
coeff dictionary

    writeToFile yes;
2019-12-09 22:31:09 +00:00
c2123452b1 ENH: generalize string expression evaluation
- replace stringOps::toScalar with a more generic stringOps::evaluate
  method that handles scalars, vectors etc.

- improve #eval to handle various mathematical operations.
  Previously only handled scalars. Now produce vectors, tensors etc
  for the entries. These tokens are streamed directly into the entry.
2019-12-09 19:44:23 +01:00
f84ebb9ad3 ENH: driver/parser/scanner for plain field expressions 2019-12-09 19:44:22 +01:00
17f5560cb9 ENH: base driver for expressions 2019-12-09 19:44:21 +01:00
3e76ef7b5b DOC: update repository links 2019-12-09 14:54:25 +01:00
b576f9dcc7 ENH: subModelBase - added localPath() helper function for file writing 2019-12-06 22:05:02 +00:00
07ff2a2828 ENH: Added new scalarFixedValue boundary condition
This condition applies a scalar multiplier to the value of another
boundary condition.

Usage
    Property     | Description             | Required    | Default value
    scale        | Time varing scale       | yes         |
    patch        | patchField providing the raw patch value | yes |

Example of the boundary condition specification to scale a reference
velocity of (15 0 0)  supplied as a fixedValue by a table of values
that ramps the scale from 0 to 1 over 1 second:

    <patchName>
    {
        type            scaledFixedValue;

        scale table
        (
            (    0   0)
            (  1.0 1.0)
            (100.0 1.0)
        );

        patch
        {
            type            fixedValue;
            value           uniform (15 0 0);
        }
    }
2019-12-06 21:15:56 +00:00
f8577a3423 ENH: applyBoundaryLayer - optionally write turbulence fields
- The previous option 'write-nut' controlled the writing of turbulence
  nut, but other turbulence fields were always written.
  These have been shown to be a source of instability for many cases.

  This commit replaces the 'write-nut' option by a 'writeTurbulenceFields'
  option that controls the writing of all turbulence fields.
  If not set, only the velocity field is written.

  For compatibility, the old 'write-nut' option is still recognized
  but is redirected to 'writeTurbulenceFields'.
2019-12-06 20:43:43 +00:00
5d7d24df94 GIT: Housekeeping 2019-12-06 17:43:08 +00:00
ae3a595b60 ENH: consistent and less ambiguous naming for fileStat 2019-12-06 17:43:04 +00:00
3a816006dc COMP: support m4 include directories for wrap-lemon
Set the m4 -I include accordingly to have the folllowing:
  - the directory of the parser.
  - include/ in the top-level source tree of the current target
    (eg, src/finiteVolume/include-m4/ when compiling libfiniteVolume)
  - include/ from OpenFOAM

Additional -dry-run option for makeParser, wrap-lemon for expanding m4
only.

Extend m4 wrapping support to include bison as well.
2019-12-06 16:15:07 +01:00
4030ed4543 ENH: strip C/C++ comments from expressions by default 2019-12-06 16:15:07 +01:00
ec2c014980 ENH: improve space handling for removeComments
- include the trailing newline for the "// comment" form, but also add
  in leading space removal. This ensure that we do not introduce odd
  indentation, while also eliminating lines that are solely C++
  comments.
2019-12-06 16:15:07 +01:00
7e8fb96d33 STYLE: output consistency for exprResult entry 2019-12-06 16:15:07 +01:00
68de05285a ENH: suppress keyword indentation when keyword is empty (List, Field)
- output the "uniform", "nonuniform" Field entry tags as words instead
  of raw character strings, which can help for direct tokenization or
  when sending/receiving via Pstreams.
2019-12-06 16:15:07 +01:00
dac0dd137e ENH: relocate/rename expression-related ops to exprOps 2019-12-06 16:15:07 +01:00
9a7adf3606 Merge branch 'master' into develop-v1906 2019-12-06 12:05:32 +00:00
d7aac83971 ENH: add general m4 lemon macros for expressions
- include some specialization for zip/unzip fields
2019-12-03 12:34:29 +01:00
38089b7ffb BUG: incorrect template parameter for FieldOps 2019-12-09 10:07:00 +01:00
1786974705 ENH: improve exprResult handling
- some support for "uniform" bool fields. Calculating an averaged
  value for a boolField does not work very well, but we simply define
  that the field average is 'true' when more than 1/2 of its values
  are true. Not exactly true, but allows templated definitions to work
  smoothly.

- additional output method writeValue().
  This outputs the single (uniform) value or the first value of the
  field.
2019-12-06 14:02:35 +01:00
9fd696e1ae ENH: add ITstream append and seek methods.
- ITstream append() would previously have used the append from the
  underlying tokenList, which leaves the tokenIndex untouched and
  renders the freshly appended tokens effectively invisible if
  interspersed with primitiveEntry::read() that itself uses tokenIndex
  when building the list.

  The new append() method makes this hidden ITstream bi-directionality
  easier to manage. For efficiency, we only append lists
  (not individual tokens) and support a 'lazy' resizing that allows
  the final resizing to occur later when all tokens have been appended.

- The new ITstream seek() method provides a conveniently means to move
  to the end of the list or reposition to the middle.
  Using rewind() and using seek(0) are identical.

ENH: added OTstream to output directly to a list of tokens

---

BUG: List::newElem resized incorrectly

- had a simple doubling of the List size without checking that this
  would indeed be sufficient for the requested index.

  Bug was not triggered since primitiveEntry was the only class using
  this call, and it added the tokens sequentially.
2019-12-06 17:23:59 +01:00
6b5da70602 ENH: add scalarOps with divide-by-zero protection
- add functor versions of floor/ceil/round for scalar
2019-12-07 16:55:18 +01:00
cc16bc9338 STYLE: comments, spelling in token.H 2019-12-07 16:46:49 +01:00
b7c54bc00c ENH: snappyHexMesh: proximity check
This adds automatic deletion of cells inside small gaps. This is
generally used to avoid having excessive numbers of cells in irrelevant
areas of a geometry. It is nearly the opposite of automatic gap refinement
 - that refines cells to resolve the gap; this functionality removes cells
to not mesh the gap.

The proximity handling will remove those cells which are inside 'thin' gaps
where 'thin' is defined as a distance of 2*'blockLevel'
It will
- detect surfaces which have the new 'blockLevel' specification
- convert this to a minimum gap distance
- detect cells which are inside this gap
- remove these cells and add exposed faces to the nearest 'real' patch
2019-12-09 14:29:21 +00:00
a956926c37 GIT: update submodule references 2019-12-06 20:36:30 +01:00
c684b51152 Merge remote-tracking branch 'main-1906/master' into develop 2019-12-06 19:33:52 +01:00
ae1b77ee36 STYLE: force bool context for xorOp 2019-12-03 07:45:21 +01:00
f654b7fac6 BACKPORT: accept argList::get() methods as per 1912 2019-12-02 13:51:38 +01:00
1b017938c3 ENH: be more forgiving when reading ensight surface files (#1511)
- The case files may contain #... comment lines
- The geometry file may contain an optional "extents" entry
- Properly handle element id specifications (off|assign|ignore|given).

- Partially handle node id specifications (off|assign|ignore|given).
  Treat "given" like "ignore", since results in the lightest amount of
  coding and in many cases the "given" node ids are in fact 1-based
  contiguous values and thus no different than "ignore" for our
  purposes.
2019-12-02 09:42:52 +01:00
76de104daa ENH: fileModificationSkew: add polling. Fixes #1472. 2019-11-27 14:13:01 +00:00
1310e85225 ENH: support 'get()' for retrieving argList options
- previously only had 'opt<..>()' for options, but 'get<..>()'
  provides more similarity with dictionary methods.
  The 'opt<..>()' method is retained.
2019-11-26 21:07:11 +01:00
29ccc00c7d COMP: incorrect specialization namespace 2019-11-26 07:39:52 +01:00
925b9af20d CONFIG: csh syntax 2019-11-26 07:26:12 +01:00
f30b0895e8 CONFIG: prevent bash completions from examining the description notes 2019-11-25 18:38:39 +01:00
6dd3cd0e51 ENH: add clear/append method to Enum and std::ostream output
- allows use of Enum in more situations where a tiny Map/HashTable
  replacement is desirable. The new methods can be combined with
  null constructed for to have a simple low-weight caching system
  for words/integers instead of fitting in a HashTable.
2019-11-25 18:15:31 +01:00
29faf6da89 BUG: ensightReadFile ignores binary string limits (#1511)
ENH: downgrade error on type-mismatch to a warning

- Ensight data files generated by OpenFOAM will start with the name of
  the data type (Eg, "scalar", "vector" etc), but this convention may
  fail for data files that have been generated elsewhere.
2019-11-25 15:37:00 +01:00
efebc5db3f BUG: arrarySet: incorrect index->location. Fixes #1506 2019-11-20 13:57:57 +00:00
daac96f165 ENH: addition of expressions::exprResult
- polymorphic field/result
2019-11-18 11:29:53 +01:00
241dee29b2 ENH: add transformPoints -time option (issue #1510) 2019-11-25 10:55:05 +01:00
2e57f329f2 ENH: extend topoSetSource::sourceType to support bitmasks
- improves usability in other contexts

ENH: expose topoSet::findIOobject as public
2019-11-22 19:37:51 +01:00
492705b0cf COMP: provide dummy methods and operations for pointPatchField
- since pointPatchField is not derived from Field, methods such as
  negate() or a unary min(), max() are missing.

  These have apparently not been needed thus far, but are used
  indirectly via GeometricField.
2019-11-22 19:20:09 +01:00
7c3ec88bca ENH: additional GeometricField::New static constructors
STYLE: split off into separate file
2019-11-22 11:31:22 +01:00
73425eb119 ENH: add FieldOps with conditionals (assignment, ternary) 2019-11-20 20:35:55 +01:00
fae91edd85 ENH: basics for expression string handling 2019-11-20 16:32:32 +01:00
42a9a6ae5a ENH: add generator class for uniform/gaussian random numbers
- can be used in combination with std::generate, or as a substitute
  unary operator to supply random numbers for std::transform.
2019-11-21 09:40:00 +01:00
cc138b0d82 COMP: make Random constructor explicit 2019-11-21 12:01:23 +01:00
cd366b60cc ENH: add explicit flipBoolOp, tighten access on pass-through (noOp) version
- the noOp now returns const reference, noexcept
2019-11-20 19:48:09 +01:00
2d7bad2d2e COMP: add value_type to pointPatchField 2019-11-20 20:35:44 +01:00
f964bb301c ENH: isoSurfaceTopo: ignore ACMI polyPatch. Fixes #1508. 2019-11-21 09:37:56 +00:00
06361f3f05 STYLE: additional notes for IOobject, regIOobject 2019-11-20 11:55:47 +01:00
83d6aa424a ENH: add move reset and move assignment for tmp, tmpNrc
- improves similarity to autoPtr. Simplifies coding.

  Example,

    tmp<volScalarField> tfield;

    // sometime later...

    tfield.reset
    (
        volScalarField::New("myfield", mesh, dimensionedScalar(Zero))
    );

- as per tmp, disallow tmpNrc assignment from literal nullptr

- as per autoPtr, allow explicit test as bool (same as valid).
2019-11-19 20:21:42 +01:00
a3d399a550 DOC: adjust wording and version information 2019-11-19 16:15:01 +01:00
9e6683f7bc ENH: add conditionals to #eval (string to scalar)
Example,

     ($radius > 10) ? sin(degToRad(45)) : cos(degToRad(30))

- protect division and modulo against zero-divide.

- add scanner/parser debugging switches in the namespace,
  selectable as "stringToScalar". For example,

    debug parser:  foamDictionary -debug-switch stringToScalar=2
    debug scanner: foamDictionary -debug-switch stringToScalar=4
    debug both:    foamDictionary -debug-switch stringToScalar=6
2019-11-19 14:22:03 +01:00
a5a222f7cf ENH: support scalar tokens when testing #if, #ifeq
- this allows use of #eval results in the tests
2019-11-19 09:00:00 +01:00
0838d121c6 ENH: allow env variables when expanding for the #eval function
- this makes it behave more like other dictionary components.
2019-11-19 08:57:19 +01:00
0597172940 ENH: Allow explicit construct Switch from float/double
- can be useful when a scalarField has been used to store booleans and
  we need to recover a bool directly and deal with potential rounding
  issues.

ENH: support "any" as a Switch counterpart to "none"
2019-11-19 08:26:43 +01:00
cf917b4103 STYLE: consistent declarations for oneField, zeroField etc 2019-11-19 09:38:52 +01:00
2d080ff331 Feature single precision solve type 2019-11-19 11:10:07 +00:00
f2eb3e1cee BUG: incorrect test for triangulate/filtering in sampledIsoSurfaceTopo 2019-11-19 07:20:13 +01:00
7c2ad98834 ENH: improve missing entry message for Function1 or PatchFunction1
- now indicate that the dictionary entry is missing, not that it is
  an unknown function type.

STYLE: adjust PatchFunction1New.C to have logic structure look similar
2019-11-18 15:34:52 +01:00
bc8343f702 STYLE: align foamUpdateCaseFileHeader with Foam::IOobject::writeBanner()
- handle quoted format statement (m4)
2019-11-18 12:37:01 +01:00
53a617b829 TUT: use foamDictionary without runApplication wrapper
- avoids generating a log file, which is missing an "End" tag that
  allows the test loop to identify the completion status
2019-11-18 12:18:43 +01:00
4d18fea8e1 ENH: add value_type to dimensioned type. Add Switch::name(bool) 2019-11-18 09:13:58 +01:00
3003356898 BUG: RASModelVariables::SpalartAllmaras cannot be combined with an fvMotionSolver diffusivity which depends on wall distances (fixes #1501) 2019-11-15 19:43:25 +02:00
4ae61e621f BUG: adjointSolverName not set correctly in adjointWallVelocityLowRe (fixes #1502) 2019-11-15 20:17:56 +02:00
27956330ac COMP: declare template specialisation (gcc 4.8.5) 2019-11-19 06:58:38 +01:00
b40d1d8e4f BUG: decomposePar fails with csv table in binary (fixes #1498) 2019-11-18 16:59:51 +01:00
311f29947d CONFIG: update scotch and compiler versions 2019-11-15 17:49:12 +01:00
2a8669b3f8 ENH: add zip/unzip for GeometricField 2019-11-15 17:29:50 +01:00
a3d0a7d049 STYLE: add documentation to GeometricField::New
- also use tmp::New forwarding internally
2019-11-15 15:54:37 +01:00
cf2b84ef32 ENH: add zip/unzip for FieldField 2019-11-15 13:32:27 +01:00
6882ed35a4 ENH: add zip/unzip for vector and tensor fields
- the full tensor also supports zip/unzip rows/cols
  and unzipRow, unzipCol, unzipDiag
2019-11-15 12:56:23 +01:00
39a1191bd5 ENH: add zip/unzip functions for complexField and vector2DField 2019-11-15 11:26:45 +01:00
a23e8bf540 STYLE: remove unused vector 'zip' function and unused .C files 2019-11-15 10:41:00 +01:00
a400bfae21 ENH: add rows/cols setters to Tensor, Tensor2D
- also support transposed construction when given a set of vectors
2019-11-15 09:18:52 +01:00
0d71607bab STYLE: remove extraneous descriptions from misc IOList.C files 2019-11-13 19:18:02 +01:00
6798c61047 ENH: add boolIOField to allow registering 2019-11-13 18:54:10 +01:00
98467036b3 STYLE: regularize quoting and exit on failed 'cd' 2019-11-13 13:19:16 +01:00
297adc8764 CONFIG: add build-info to archives
- save in META-INFO/build-info for later re-compilation without git.
  This improves tracking beyond simply referring to the the patch level.

  The information is tagged with an underscore to distinguish from
  "real" build information when git is available.

STYLE: improved shell syntax, pushd/popd guards etc.
2019-11-13 10:23:30 +01:00
f41b2db8c8 BUG: correct delta:turbulentDFSEMInlet from 2 to 1 (#1459) 2019-11-14 14:06:44 +00:00
80681eeb2b TUT: reorganise the scripts and dicts in turbulentInflow 2019-11-14 10:09:36 +00:00
87250cb770 ENH: ensure consistent default mapping in turbulentDFSEMInlet
- Previously, the default mapping method was `planarInterpolation` which was
    silently suppressed by the default 'interpolate{R,U,L}=false'.

  STYLE: changes:
            `0` to `Zero`,
            `lookupOrDefault` to `getOrDefault`
         improves header documentation
2019-11-13 11:50:17 +00:00
69640bd3d8 BUG: fix decomposition issue | turbulentDFSEMInlet | mapFields (#1108) 2019-11-13 11:48:53 +00:00
61d2408e1e BUG: polyMesh: update instead of delete. Fixes #1490. 2019-11-11 15:36:02 +00:00
47e1d13655 CONFIG: allow configurable package, version separator (foamPackRelease) 2019-11-12 17:15:38 +01:00
7e9a417fca STYLE: adjust member ordering to improve packing (of bools) 2019-11-12 16:57:45 +01:00
cb53ce3678 COMP: improvements to selection table helper classes
-  make constructors explicit, delete unused constructors
2019-11-12 14:29:53 +01:00
3238a63a10 DOC: add description text for AMIWeights, fieldsExpression 2019-11-12 14:26:41 +01:00
3b0d532614 STYLE: restore referenced source file name removed by ea5401c7 2019-11-11 20:29:28 +01:00
7c1190f0b1 ENH: rationalize some string methods.
- silently deprecate 'startsWith', 'endsWith' methods
  (added in 2016: 2b14360662), in favour of
  'starts_with', 'ends_with' methods, corresponding to C++20 and
  allowing us to cull then in a few years.

- handle single character versions of starts_with, ends_with.

- add single character version of removeEnd and silently deprecate
  removeTrailing which did the same thing.

- drop the const versions of removeRepeated, removeTrailing.
  Unused and with potential confusion.

STYLE: use shrink_to_fit(), erase()
2019-11-11 18:50:00 +01:00
ea214727a5 ENH: 'set' instead of 'insert' std::initializer_list to HashTable
- Duplicate entries are handled by overwriting, which corresponds more
  closely to the notion of assignment
2019-11-11 17:07:30 +01:00
148317ab68 CONFIG: bump patch level 2019-11-11 09:08:27 +01:00
3768773eb8 COMP: add version information to wmake
- wmake -version, --version option (alias for -show-api)
  for consistency with standard system tools
2019-11-10 11:24:07 +01:00
1c94105574 BUG: surfaceFieldValue interpolate on sampled surface fails (fixes #1488) 2019-11-11 08:54:05 +01:00
b63a6edb24 STYLE: Corrected option description 2019-11-01 11:27:48 +00:00
e9219558d7 GIT: Header file updates 2019-10-31 14:48:44 +00:00
b47f4b1737 CONFIG: bump patch level 2019-11-03 10:55:13 +01:00
528ceff836 BUG: genericPointPatchField removed "value" entry (fixes #1474) 2019-11-03 10:47:44 +01:00
186b0350f9 ENH: Pressure function object - added optional inclusion of hydrostatic pressure
Example - create p-rgh from p:

    pressure-p-rgh
    {
        type            pressure;
        libs            (fieldFunctionObjects);
        writeControl    writeTime;
        mode            static;
        rho             rhoInf;
        rhoInf          1;
        hydrostaticMode subtract;
        g               (0 -9.81 0);
        hRef            0;
    }

- the hydrostaticMode entry is optional - setting is shown during construction
- g and/or hRef values are retrieved from the database if not specified
2019-10-22 15:54:13 +01:00
671519d2d9 ENH: Function objects - runTimePostProcessing - updated and exposed culling options 2019-11-01 11:03:30 +00:00
9bf48db7fd STYLE: spurious #warning emitted in JobInfo 2019-11-11 14:32:44 +01:00
713595f0c0 COMP: adjust common paraview library name to vtkPVFoamCommon
- similar prefixing as the dependent readers, making it easier to
  identify

- add FOAM_API information as server module version
2019-11-11 11:21:45 +01:00
8495e8e92c COMP: provide separate get_pvplugin_api function 2019-11-11 11:16:54 +01:00
bab110350b CONFIG: adjust adios and paraview versions 2019-11-11 10:37:06 +01:00
3a964c04f3 COMP: report locations of build tools (such as flex, m4 etc)
- can assist diagnosing when things have gone wrong
2019-11-10 11:24:07 +01:00
17d159d76d COMP: add version information to wmake
- wmake -version, --version option (alias for -show-api)
  for consistency with standard system tools
2019-11-10 11:24:07 +01:00
52d2643994 BUG: surfaceFieldValue interpolate on sampled surface fails (fixes #1488) 2019-11-11 08:54:05 +01:00
71de630722 ENH: tune efficiency of stringOps::trim
- move left/right positions prior to substr
2019-11-10 10:50:49 +01:00
60155bd90d TUT: add (disabled) surfaceFieldValue interpolate (#1488) 2019-11-09 16:51:31 +01:00
e230e9c5e6 TUT: add missing relax entry in reactingTwoPhaseEulerFoam/RAS/wallBoiling 2019-11-09 16:51:31 +01:00
060a14394f STYLE: use dictionary findEntry instead of csearch
- fix typo
2019-11-09 16:41:42 +01:00
5e50800e2f ENH: improve missing entry message for Function1 or PatchFunction1
- now indicate that the dictionary entry is missing, not that it is
  an unknown function type.
2019-11-09 16:39:15 +01:00
aaa27eaeec CONFIG: openfoam session must use /bin/bash, not /bin/sh (fixes #1461) 2019-10-17 09:29:42 +02:00
d7c0676f62 STYLE: mention scalar/label size in README 2019-10-16 14:40:00 +01:00
3b6ba059c3 TUT: verificationAndValidation for weightedFlux scheme (#1388) 2019-10-10 12:59:39 +02:00
d04de0d481 ENH: modified laplacianFoam to use dimScalar or volScalar for DT (#1388) 2019-10-07 12:59:39 -07:00
0968408736 STYLE: correct executable permissions and shebang on tutorial files
- triggers rpmlint warnings
2019-10-01 15:47:29 +02:00
940a5a2bc3 ENH: overset: check non-local donors to see if 'better'. See #1183 2019-10-18 17:11:37 +01:00
adb83ad6d2 ENH: patchSet: wrong logic to compress points. See #1453. 2019-10-03 11:44:24 +01:00
386cafd8a7 ENH: patchSet: merge collocated points. Fixes #1453. 2019-10-03 10:51:29 +01:00
a563db323f CONFIG: bump patch level 2019-10-01 14:01:58 +02:00
b0cc93ecc8 BACKPORT: openfoam shell wrapper (interactive or 'one-shot' use) 2019-09-25 17:36:10 +02:00
58f6258d7a BUG: Correcting delta in fa consistent with fv.
Solve issue 1431 Gitlab. delta() calculation on the patch is consistent
with not applying non-orthogonality on the patch.
2019-09-27 15:16:00 -07:00
92f288ca36 BUG: Correcting issue 1441. Reading cAlphas entry for multiphase 2019-09-27 14:24:05 -07:00
01b4519f27 ENH: added weightedFlux interpolation scheme (#1388)
- This scheme is useful to calculate the face interpolation values for
  the Gauss gradient when the diffussion coefficient is discontinuous
  across a face. This sheme is used for Gauss grad.
2019-09-24 10:52:01 +02:00
a1fa05f1ed BUG: Fixing psib at the boundary
Fix gitlab #1423
2019-09-18 13:03:04 -07:00
e1fb615f87 BUG: Fixing psib to use products mixture.
Fix Gitlab issue #1423
2019-09-18 09:22:35 -07:00
4265fc2459 BUG: overset: use correct normalisation. Fixes #1437. 2019-09-12 13:42:38 +01:00
e753125669 ENH: writeFile - refactoring and added constructor 2019-09-09 09:21:56 +01:00
31aad2159f STYLE: writeFile - renamed writeTime to writeCurrentTime to avoid conflicts 2019-09-09 09:19:38 +01:00
a3f3ec81f8 BUG: randomDecomp: added non-mesh decomposition. Fixes #1428. 2019-09-05 14:25:15 +01:00
76c156a667 CONFIG: bump patch level 2019-08-28 17:23:46 +02:00
b6eeaf5155 BUG: missing foamExec causes foamJob failure (#1309, #1411)
- foamExec was removed as part of commit 6c68c34e1a but
  overlooked the fact that it is partly still needed by foamJob.
  When running in parallel, it is used to source the etc/bashrc env.

  Reinstated a stripped down form, which has been relocated to
  bin/tools directory (it should not be directly called by the user).

  The previous version switching functionality has nonetheless be
  dropped since it only worked only when a rigid naming convention for
  OpenFOAM installations was followed.

ENH: add foamJob log=, -log-app, -no-log options, improved coding quality
2019-08-28 17:19:11 +02:00
87330972d8 ENH: interpolationTable improvements
- reduce code duplication, support returning multiple interpolations
  as a Field
2019-08-23 15:57:22 +02:00
784d3ad5d4 BUG: sourced incorrect LogFunctions location
- cleanup the run script syntax
2019-11-08 13:14:14 +01:00
cc5fac8299 STYLE: snappyHexMesh: excess declarations 2019-11-07 13:25:33 +00:00
979a12e521 TUT: fix Allrun script for bump2D
- use sed instead of foamDictionary and avoid log file

- ensure consistent behaviour with plot script

GIT: added missing 0/k field : inlet values still need adjustment
2019-11-07 09:35:10 +01:00
46d7db79aa TUT: consistent calling of m4 2019-11-06 11:50:42 +01:00
e6dfb39c66 STYLE: remove unnecessary stdout, stderr /dev/null redirects
- no stderr redirect needed:
    * 'command -v'

- no stdout/stderr redirect needed:
    * 'rm -f'

STYLE: consistent spacing after redirects
2019-11-06 10:44:36 +01:00
ec7e3c88e4 ENH: test for WM_PROJECT_DIR being set/unset in scripts 2019-11-06 09:18:51 +01:00
e5916fd9ba ENH: use findMinMax instead of findMin, findMax separately 2019-11-05 13:10:23 +01:00
e8fa46230a ENH: add min/max compare/reduction operators for Tuple2 first()
- min/max ops that only compare the first element
2019-11-05 13:08:21 +01:00
b0c88dff58 ENH: treat self-assignment as no-op instead of a Fatal (#1473)
- this can help if using std algorithms that return a const reference
  such as std::min() does.
2019-11-05 11:10:49 +01:00
883752cfb9 COMP: restructure paraview reader files, add paraview-5.7 guards
- building plugins with paraview-5.7 is quite different
2019-11-05 09:14:37 +01:00
675dbc4333 ENH: use wordHashSet instead of hashedWordList in PV readers
- we don't need the GUI sort order of the values.
2019-11-04 18:29:29 +01:00
a6c442bf3f COMP: support install for paraview-versioned cmake 2019-11-05 09:06:33 +01:00
e3b9bbab11 STYLE: mark facePointPatch::patch() as virtual, remove unused functions 2019-11-04 18:05:53 +01:00
7aa83ea939 ENH: postProcess - updated app to update on mesh change instead of full clear out 2019-11-12 15:38:52 +00:00
fdf8d10ab4 Merge commit 'e9219558d7' into develop-v1906 2019-12-05 11:47:19 +00:00
ee7bb0459b ENH: dimensionSet::clear() - reset exponents to be dimensionless 2019-11-04 16:37:57 +01:00
96d260713e CONFIG: openfoam session must use /bin/bash, not /bin/sh (fixes #1461) 2019-10-17 09:29:42 +02:00
5d8b18d452 STYLE: mention scalar/label size in README 2019-10-16 14:40:00 +01:00
ad5be0586b TUT: define slip boundaries in building motion tutorial
- define nut conditions explicitly, without fallback definition
2019-11-02 19:46:12 +01:00
f084309b37 ENH: add refCast variant with an index to convey the context
- can be helpful, for example, when the refCast has been used on a
  boundary patch. Knowing which patch index triggered the problem
  helps with isolating the issue.
2019-11-02 19:46:12 +01:00
5577606997 ENH: generalise bump2D Allrun and plot scripts
STYLE: renamed periodicHill createPlots -> plot for consistency

TUT: use nutLowReWallFunction for bump2D

- required for the new nutWallFuncs hierarchy
2019-11-01 16:08:24 +00:00
d13df0e4da CONFIG: ensure cleanCase removes postProcessing-dry-run (#1475) 2019-11-01 17:43:01 +00:00
a753f0ac0b STYLE: alignment and capitalization of website address 2019-11-01 19:28:57 +01:00
177f4b79fe ENH: use direct scanning mode when lexing #eval expressions 2019-11-01 19:13:50 +01:00
42308ea1f3 CONFIG: improve robustness of paraview lib detection 2019-11-01 17:55:50 +01:00
5ac91a713e ENH: provision for listing debug/info/optimisation switches individually 2019-10-30 14:21:28 +01:00
b9e0ca1d1b ENH: add Enum single-parameter operator() to resemble a unary function 2019-10-30 12:54:52 +01:00
c5ed28d0e3 STYLE: extraneous space in template parameter 2019-10-30 12:54:06 +01:00
fd4ffc8a27 ENH: use PrecisionAdaptor in kahipDecomp 2019-10-29 11:42:55 +01:00
328513fcaa ENH: use List instead of UList for internal decomposition implementation
- enables future use of precision adaptors
2019-10-29 10:46:33 +01:00
4e706c2625 COMP: add createCode helper scripts 2019-10-29 10:46:15 +01:00
56d5ba9982 STYLE: fix typo 2019-10-29 10:45:59 +01:00
97c2a62536 COMP: silence gcc 8.2 memcpy warnings
- we know they have already protected by an is_contiguous check,
  so the class-memaccess warning/error can be suppressed.
2019-10-28 16:57:47 +01:00
4de1215b44 STYLE: use default for constructors/destructors 2019-10-28 16:13:42 +01:00
80daea6017 CONFIG: update lemon code to version from 2019-09-11 2019-10-28 14:30:05 +01:00
07ac8aa916 CONFIG: update kahip=2.12 scotch=6.0.8
- adjust known gcc/clang compiler versions
2019-10-28 12:55:15 +01:00
da33222970 ENH: add flexible command options for setting Debug and Info switches #1467
For example,

   $ someSolver -info-switch writeOptionalEntries

- note that values changed via the command-line are changed after the
  etc/controlDict entries, but *before* any case-local
  system/controlDict entries.

  However, in many testing cases the command-line options eliminate
  the need for such local file modifications.

ENH: cleanup handling of local debug switches in Time

- add as methods directly on simpleObjectRegistry to avoid code
  duplication

STYLE: adjust internal naming of ITstream parameters
2019-10-25 15:03:11 +02:00
b0a999ca59 ENH: improve reporting for optional dictionary entries (#1468)
- now reports the dictionary, entry, default. For example,

  Dictionary: <case>/0/nut.boundaryField.wall Entry: Cmu Default: 0.09
  Dictionary: <case>/0/nut.boundaryField.wall Entry: kappa Default: 0.41
  Dictionary: <case>/0/nut.boundaryField.wall Entry: E Default: 9.8

- suppress reporting for debug, optimisation switches since this
  generates extremely noisy output
2019-10-25 11:03:25 +02:00
e3d4d79300 ENH: add InfoErr stream. Same as Info, but with stderr instead of stdout 2019-10-25 10:45:07 +02:00
5213a4aa9d ENH: replace DictionaryBase toc with sortedToc version (#1467)
- cannot rely on the entries having a keyword method

STYLE: apply consistent hash table sizing for debug objects
2019-10-24 17:54:45 +02:00
9f11d892f5 ENH: Update of alphaBoiling BC, Bromley and tutorial 2019-10-28 12:30:53 -07:00
9449d92fb9 STYLE: shm: improved debug messages 2019-11-07 11:03:47 +00:00
fb7698f6a1 ENH: streamLine: add bidirectional tracking. Fixes #1466. 2019-10-23 16:52:27 +01:00
88ebf110ff STYLE: snappyHexMesh: added comment 2019-10-23 16:44:54 +01:00
848a63572a BUG: nearWallFields: incorrect sampling location. Fixes #1464.
It was tracking to find the wanted sampling location. This tracking
was using the offsetted seed point instead of the offsetted wanted
sampling point.
2019-10-23 16:26:22 +01:00
c9c3912e8d CONFIG: support pkg-config for PETSc detection 2019-10-23 15:10:12 +02:00
371e861d29 STYLE: remove erroneous and unused setcompression IO manipulator
- cannot change stream compression after construction.
2019-10-23 10:24:20 +02:00
9bfc06ed99 COMP: remove const type qualifier from static_cast<char> - gcc 8.3 2019-10-22 19:17:21 +02:00
4260b8bf0b STYLE: mixed BC should mention refGradient instead of refGrad 2019-10-22 12:57:35 +02:00
1f49dfe088 STYLE: meshToMesh: typo, cached version. 2019-10-18 17:19:40 +01:00
64ceecc4c9 ENH: postProcess - update function objects on mesh change rather than clear 2019-10-10 20:56:36 +01:00
eb5b6fd7e4 ENH: mapPolyMesh - added construct from mesh 2019-10-10 20:55:35 +01:00
36af9f615a ENH: Added utility functions to polyBoundaryMesh 2019-10-10 20:54:37 +01:00
f64125c6d9 ENH: redistributePar: handle -overwrite. Fixes #1450. 2019-10-17 13:27:55 +01:00
1ddcdb083e ENH: add support for m4 filtering of lemon grammars 2019-10-11 09:24:04 +02:00
28a9cde028 ENH: add boolField specializations: negate(), component()
ENH: added scalarField hypot() function
2019-10-10 13:13:20 +02:00
b465592ee2 ENH: added access to get/set a Tensor diagonal 2019-10-10 10:44:29 +02:00
7b42931a7b TUT: use nutkWallFunction 2019-10-10 07:35:16 +02:00
6b5492e3bd ENH: code simplification, improvements for reading dictionary variables
- Now accept '/' when reading variables without requiring
  a surrounding '{}'

- fix some degenerate parsing cases when the first character is
  already bad.

  Eg, $"abc" would have previously parsed as a <$"> variable, even
  although a double quote is not a valid variable character.

  Now emits a warning and parses as a '$' token and a string token.
2019-10-08 18:43:38 +02:00
f164292e89 STYLE: adjust parser entry point
- avoid the name eval(), since this collides with the identical
  macro name if m4 is used sometime in the future
2019-10-09 09:58:46 +02:00
f2c4d7b81b CONFIG: report parser stats with wmake/scripts/makeParser 2019-10-08 18:58:32 +02:00
e81fda7924 STYLE: make local buffer sizes constexpr 2019-10-08 18:44:15 +02:00
fa95e30176 STYLE: remove ununsed include 2019-10-08 18:43:38 +02:00
6b0e77ce00 STYLE: adjust doxygen for token, add DOLLAR as punctuation char 2019-10-08 18:43:38 +02:00
92c0ab4ed8 STYLE: use std::string for parameters in ISstream internal members 2019-10-08 13:03:45 +02:00
46225279c0 ENH: improvements to stringOps::expand operations
- add toScalar evaluation, embedded as "${{EXPR}}".

  For example,

    "repeat ${{5 * 7}} times or ${{ pow(3, 10) }}"

- use direct string concatenation if primitive entry is only a string
  type. This prevents spurious quotes from appearing in the expansion.

     radius  "(2+4)";
     angle   "3*15";
     #eval   "$radius*sin(degToRad($angle))";

     We want to have
         '(2+4)*sin(degToRad(3*15))'
     and not
         '"(2+4)"*sin(degToRad("3*15"))'

ENH: code refactoring

- refactored expansion code with low-level service routines now
  belonging to file-scope. All expansion routines use a common
  multi-parameter backend to handle with/without dictionary etc.
  This removes a large amount of code duplication.
2019-10-07 08:27:19 +02:00
d9d29e5a8f STYLE: split off Test-string2 2019-10-04 17:52:08 +02:00
bd35981feb ENH: stringOps::toScalar improvements
- add floor/ceil/round methods
- support evaluation of sub-strings

STYLE: add blockMeshDict1.calc, blockMeshDict1.eval test dictionaries

- useful for testing and simple demonstration of equivalence
2019-10-04 17:50:55 +02:00
61e95b8471 ENH: improvements to SubList and SubField
- SubField and SubList assign from zero
- SubField +=, -=, *=, /= operators

- SubList construct from UList (as per SubField)

  Note: constructing an anonymous SubField or SubList with a single
  parameter should use '{} instead of '()' to avoid compiler
  ambiguities.
2019-10-04 14:21:18 +02:00
f75e01c8c2 CONFIG: adjustments for CMake files
- drop plugin support for Qt4 (old paraview)

- handle upcoming changes in VTK version naming in CMake files
  * VTK_MAJOR_VERSION becomes VTK_VERSION_MAJOR etc.
2019-10-04 11:48:03 +02:00
c816ab7e03 CONFIG: update 3rd party versions (adios2=2.5.0 scotch=6.0.7) 2019-10-02 16:58:42 +02:00
2c2034f9ba COMP: add placeholder header files 2019-10-02 10:15:31 +02:00
5cbfe44d6b TUT: add Allclean script into bump2D 2019-10-02 18:32:13 +01:00
458738f095 ENH: Subtle renovations in wall function documentation and input
- Improves header file documentations
  - Adds const specifier to various objects
  - Allows various model constants to be user-defined
  - Changes from lookupOrDefault() to getOrDefault()
  - Consistent namespace usage:
    - If the WF belongs to only Foam:: namespace, use Foam:: explicitly
    - If the WF belongs to more than one namespaces, put the WF in namespace
      parentheses
  - Adds the missing dashes in comments required by Doxygen
  - Corrects capitalisation in comments
  - The terminology 'viscous sublayer' was preferred over 'laminar sublayer'
    due to the fact that the sublayer is not laminar.
  - The order of initialisation of fields is changed to be the same across all.
2019-10-02 12:58:20 +01:00
ce9ea1ca08 ENH: Integrated OpenFOAM.org developments for wall functions
OpenFOAM.org commits for
  src/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions
were reviewed.

The parts of the commits made by OpenFOAM.org removing various code
duplications across wall functions were picked up by keeping the remaining
functionalities the same.

The duplications were mainly due to:
  - wall function model coefficients
  - yPlusLam(), checkPatch(), write() methods

The duplications were united under the base nutWallFunction.
2019-10-02 11:39:55 +01:00
6532f27547 ENH: add support for alpha field in temperatureCoupledBase 2019-10-01 19:16:43 +02:00
9b1b024f02 DEFEATURE: remove explicit regionCoupled methods
- did not perform as well as desired. Slated for replacement with a
  different approach.
2019-09-30 18:35:37 +02:00
cd503cdb98 SUBMODULES: upgrade from deprecated dictionary lookupEntry 2019-10-02 11:48:19 +02:00
f5a5830779 STYLE: update license text in a few files (were still GPL-2) 2019-10-02 10:28:59 +02:00
51099548ed COMP: remove ignored qualifiers 2019-10-02 09:42:29 +02:00
e9f96b25c9 STYLE: mark FixedList data(), first(), last() as noexcept
- since a zero-sized FixedList is disallowed, the accessors to the
  first/last elements are always known.

  This allows Pair second() to be noexcept as well (as per Tuple2)
2019-10-02 09:34:07 +02:00
de11575e1e STYLE: mark containers empty() and size() as noexcept 2019-10-02 09:04:20 +02:00
2c11d875ad CONFIG: bump API to 1909 to reflect #eval directive 2019-10-01 14:27:16 +02:00
e2d3d0125b STYLE: fix merge artifacts 2019-10-01 14:25:35 +02:00
518fb0858d CONFIG: support -prefix for openfoam wrapper 2019-10-01 13:42:58 +02:00
8f1844fff0 TUT: remove cr-nl endings
- use git show --ignore-space-change when examining
2019-10-01 12:39:10 +02:00
93422f1a72 TUT: use simpler syntax for motionSolverLibs entries 2019-10-01 10:58:53 +02:00
e7f380dcd5 TUT: use #eval instead of #calc where possible 2019-10-01 10:14:55 +02:00
02914539f7 TUT: consistent use of scale in blockMeshDict 2019-10-01 09:33:38 +02:00
3625d0ecd1 TUT: remove duplicate ;; in dictionaries 2019-10-01 10:39:40 +02:00
336b9ebd0b STYLE: only report use of #eval in FULLDEBUG mode (less clutter) 2019-10-01 10:43:37 +02:00
7ce2bdfce7 ENH: report the age of blockMesh 'convertToMeters' keyword
- was superseded by 'scale' in OCT-2008
2019-10-01 09:32:18 +02:00
f8539f8b46 ENH: use default zero (opaque) "transmissivity" in radiation lookup
- improves input compatibility with existing setups
2019-10-01 08:54:15 +02:00
836d3a849f ENH: add stringOps::toScalar and dictionary #eval directive
- the #eval directive is similar to the #calc directive, but for evaluating
  string expressions into scalar values. It uses an internal parser for
  the evaluation instead of dynamic code compilation. This can make it
  more suitable for 'quick' evaluations.

  The evaluation supports the following:
    - operations:  - + * /
    - functions:  exp, log, log10, pow, sqrt, cbrt, sqr, mag, magSqr
    - trigonometric:  sin, cos, tan, asin, acos, atan, atan2, hypot
    - hyperbolic:  sinh, cosh, tanh
    - conversions:  degToRad, radToDeg
    - constants:  pi()
    - misc: rand(), rand(seed)
2019-09-30 16:40:32 +02:00
bd9992d0d5 STYLE: reduce some file clutter for zero/one/nullObject
- more consistent location for oneField, oneFieldField inline definitions

- eliminate nullObjectI.H for more transparency
2019-09-30 12:42:22 +02:00
ba8f237b21 STYLE: use default destructor for ldu interfaces 2019-09-30 11:51:57 +02:00
dcff32ea65 STYLE: use move insert in featurePointConformer 2019-09-30 09:40:59 +02:00
a1727f4ba5 BUG: collated ensight writer dropping entries (#1451)
- regression as a result of changed time-handling from #1418.
  Now cache the fields information internally.
2019-09-29 18:06:59 +02:00
4a5569776e ENH: add cmptMagSqr for scalars, VectorSpace, Fields (#1449) 2019-09-29 16:53:42 +02:00
bc9295ee04 ENH: adjust HashTable iterator access
- previously allowed mapped value modification with a const iterator.
  However, this can lead to incorrect access patterns.

  Now tie the constness of the mapped value to that of the iterator.

- Remove deprecated iterator object() method.
  Was only used internally and was superseded by the val() method
  in an earlier version.

ENH: change isPointer to isPointerLike

- can distinguish between real pointers and wrapped pointers
2019-09-25 12:21:54 +02:00
b931e267fe SUBMODULES: updated HashTable iterator pointer derefencing 2019-09-29 18:11:47 +02:00
b6bf9129f6 DEFEATURE: pointer dereferencing for HashTable iterator
- this largely reverts 3f0f218d88 and 4ee65d12c4.

  Consistent addressing with support for wrapped pointer types (eg,
  autoPtr, std::unique_ptr) has proven to be less robust than desired.
  Thus rescind HashTable iterator '->' dereferencing (from APR-2019).
2019-09-27 19:45:54 +02:00
fc461a1cc6 TUT: use writeControl "adjustable" (alias for "adjustableRunTime") 2019-09-27 15:50:06 +02:00
4cc7bf1468 ENH: support writeControl 'none' (#1448)
- for special cases when normal writing is to be completely disabled
  and replaced with alternate means (eg, via a function object).

- support "adjustable" as "adjustableRunTime" alias to reduce typing
  for writeControl or outputControl
2019-09-27 15:46:26 +02:00
0840bfdcb8 STYLE: adjustments to HashSet, HashTable
- use HashTable emplace instead of insert to avoid unneeded argument
  (for HashSet).

- use emplace when generating zero-initialized values for
  HashTable::operator()

- drop unused parameter from Detail::HashTableSingle,
  adjust templates parameter names

- forward HashTable::operator[] to the semantically identical
  HashTable::at() to avoid code duplication
2019-09-27 14:52:52 +02:00
8a75bdb12f ENH: add dictionary method subDictOrAdd (related to #1442) 2019-09-25 17:25:16 +02:00
f1ed0a617b COMP: add lemon parser and skeleton code 2019-09-27 11:09:40 +02:00
4a6cd8f194 COMP: update make rules for lemon, add helper infrastructure for ragel 2019-09-27 11:05:35 +02:00
f7528a2ac5 COMP: fix inconsistent bison make rule
- generated C++ files, but didn't use C++ compiler
2019-09-26 10:41:16 +02:00
fb0057ea72 STYLE: accept lowercase -sp/-dp/-spdp for foamConfigurePaths 2019-09-25 18:20:32 +02:00
043d55e382 ENH: add wrapper for starting OpenFOAM as an interactive bash session
- call also be used non-interactively for simple 'one-shot' use of
  OpenFOAM utilities or solvers

STYLE: use dash instead of brackets for '- see www.OpenFOAM.com'

- less cluttered in combination with API information
2019-09-25 17:36:10 +02:00
fd7fe96e9f SUBMODULES: updated HashTable iterator names 2019-09-25 15:16:19 +02:00
2259fd845c STYLE: add const_cast when deleting pointers in objectRegistry
- makes the intention clearer, allows for future tightening of
  iterator access rules.
2019-09-25 13:30:25 +02:00
a1ee14690b STYLE: add source directory structure for lumpedPointMotion 2019-09-24 14:54:02 +02:00
38b53e5346 STYLE: use default destructor in header definitions 2019-09-24 12:14:36 +02:00
310c5d934e STYLE: spacing and punctuation 2019-09-24 11:04:17 +02:00
60a8f7b634 ENH: allow alternative delimiter for getLine. Default: '\n' 2019-09-24 09:31:28 +02:00
13967565a6 ENH: stringOps removeComments and inplaceRemoveComments
- useful for manual handling of string with comments
2019-09-24 08:25:32 +02:00
603849383d BUG: incorrect dictionary name for subOrEmptyDict (fixes #1442) 2019-09-24 07:36:49 +02:00
5382ce775f ENH: allow alternative delimiter for fileName::concat. Default: '/' 2019-09-24 07:06:03 +02:00
e3b05494f7 COMP: relocate regionProperties to meshTools 2019-09-20 14:06:30 -07:00
5447220e6f BUG: Add writeDivider to foamDictionary (#1444) 2019-09-23 14:14:48 +01:00
79dff5d8fe ENH: add col/row access methods for Tensor2D (#1430) 2019-09-23 14:40:47 +02:00
61dfa9b544 ENH: checkMesh: do not create wallDist unless in fvSchemes. See #71 2019-09-19 14:37:38 +01:00
88c1626b5b ENH: indexedOctree: print max leaf size 2019-09-12 13:54:26 +01:00
356995bf07 TUT: Update radiation tutorials radiation BC's for transmissivity 2019-09-16 10:05:55 -07:00
60fe4f9f0f ENH: Adding collimate beam source to fvDOM and multiBandZoneAbsorption 2019-09-13 10:37:08 -07:00
35d77aaec0 ENH: mapFields FO - mapping now on call to execute 2019-09-12 10:40:19 +01:00
df2db077cf COMP: use cast to avoid clang compiler error 2019-09-05 09:53:15 +01:00
d724e303ac BUG: add a warning in star4ToFoam for .cel files containing only shell entries (#1425) 2019-09-04 14:59:57 +01:00
603badd196 ENH: advectionDiffusion: avoid recursion. See #71.
Does not fix the tolerance issue.
2019-09-03 12:34:43 +01:00
43f938291e ENH: polyMesh: better warning message 2019-09-03 12:32:04 +01:00
1307836caa ENH: checkMesh: write wall distance. See #71 2019-09-02 12:40:22 +01:00
50eb262c51 ENH: improve time-handling for collated ensight surface writer (#1418)
- now maintains a correct list of geometry instances, without assuming
  contiguous file numbering. However, if the numbering is contiguous,
  the more compact case representation will be used.
2019-08-31 21:51:27 +02:00
8037b8d6a8 ENH: allow invariant surfaces for sampling (#1418)
- an advanced feature, for example when sampling on a static patch
  while some motion occurs elsewhere. [use with caution]

- If the sampled surface dictionary is modified during run-time, the
  ensight file indexing for the geometry will become out of sync.
  This is addressed in a subsequent commit.
2019-08-30 15:46:07 +02:00
880d81475b TUT: use simpler syntax for libs entries 2019-08-30 16:45:45 +02:00
6eaa326cec ENH: support additional command-line loading of libraries (#1414)
- this can be useful for preloading of libraries, or for utilities
  that don't use system/controlDict.

  The additional libraries can be specified individually:

      myUtil -lib lib1 -lib lib2 -lib lib3

  When specified like this, the options add up.

  Or as a 'captured' list using OpenFOAM's standard arg list handling:

      myUtil -lib '(' lib1  lib2 lib3 ')'
      myUtil -lib \( lib1  lib2 lib3 \)

  or as single argument list:

      myUtil -lib '("lib1" "lib2" "lib3")'

  When specified as a single argument, would normally take advantage
  of the transparent handling of word vs fileName and omit the string
  quotes:

      myUtil -lib '(lib1 lib2 lib3)'

ENH: dlOpen error messages now propagated into dlLibraryTable

- this makes the context more relevant and also avoids the previous
  annoyance of double warnings (one from the POSIX loader, and one
  from dlLibraryTable)

STYLE: mark -noFunctionObjects and -withFunctionObjects as 'advanced'

- reduces clutter. Still visible with -help-full
2019-08-30 15:33:29 +02:00
7443011217 BUG: Fixing solid specie index in omega function 2019-08-21 11:47:10 -07:00
785241178f BUG: Correct div(u*p) for Teqn in compressibleInterFoam .Gitlab 1400. 2019-08-21 11:34:18 -07:00
8fe96e5dee ENH: Changing tolerance overlap. Taking out filter by small overlap 2019-08-19 13:38:36 -07:00
894645f9e1 CONFIG: update wmake rules for parsers
- include ragel and lemon

- rename pre-generated files to ".cc" so that they are more
  recognizable as being different from regular file content.
2019-08-16 10:06:08 +02:00
9bb48cc37a ENH: also accept reading fileName as wordToken
- should have been part of commit 9d36d3c08a
  which allows us to upcast a word to a fileName.
2019-08-30 12:50:45 +02:00
07fb19e9d8 ENH: add construct dimensionedType from primitiveEntry
- allows direct reading of a single entry with token checking
2019-08-28 21:16:19 +02:00
3e9562f781 ENH: merging faces: generalise to disallow any constraints. Fixes #1352. 2019-08-29 10:56:06 +01:00
a19a71c0b7 ENH: FDICSmoother: solveScalar support. Fixes #1410. 2019-08-27 10:14:43 +01:00
5201999a38 STYLE: adjust comments in SortableList (#1401) 2019-08-27 14:40:27 +02:00
508277d0f8 COMFIG: update flex make rules to use '-f' for C-code as well
- add additional rule (ending '.ll') for the combination of
  flex for C-code but compiling the result as C++.
  This can be needed for re-entrant parsers.

- update bison rule to handle renaming of skeleton files.
  Use a wrap-bison script to manage this.
2019-08-23 17:34:25 +02:00
54eab4f2e8 CONFIG: link known C/C++ file extensions in wmakeLnInclude 2019-08-27 12:40:01 +02:00
e14713c6be STYLE: remove momentOfInertia postscript and example files 2019-08-27 12:31:17 +02:00
27a0a073e5 ENH: Adding div schemes for div(phi,p) 2019-08-22 09:11:27 -07:00
8d7b8043a4 ENH: add time ramping to surfaceNormalFixedValue (#1407)
- alternatively can use uniformNormalFixedValue with PatchFunction1
  specification and temporal ramping.

TUT: add ramped example for simpleCar
2019-08-22 12:28:30 +02:00
de487f0f0a STYLE: improve some descriptions (#1405) 2019-08-22 12:28:04 +02:00
ccaad99f52 STYLE: initialize debug switches with int instead of bool 2019-08-22 10:20:36 +02:00
a6581d3082 STYLE: group bool members together for better packing 2019-08-22 10:12:49 +02:00
922ef9b879 BUG: Fixing solid specie index in omega function 2019-08-21 11:49:04 -07:00
70b0013cac STYLE: adjust wording in some documentation (#1406) 2019-08-21 15:44:26 +02:00
c8ab912823 ENH: use foamVersion::api instead of OPENFOAM compiler define
- This improves consistency for warnAboutAge and build information
  when the API level changes
2019-08-20 14:32:17 +02:00
c8df98cc2a STYLE: simplify the writeFile constructor 2019-08-21 14:46:02 +02:00
2ca4792734 TUT: add coded example for sampling cellZoneId (#1383) 2019-08-21 12:13:51 +02:00
c0fce5c762 ENH: refactor some function entries to reduce code duplication 2019-08-21 11:19:54 +02:00
3f06722a07 ENH: suppress IOerror newlines if file name is empty
- compacter messages in some cases

STYLE: simplify output handling of line numbers
2019-08-20 21:51:33 +02:00
c9cb4ce34f ENH: minor improvements, cleanup of token class
- relax casting rules
  * down-cast of labelToken to boolToken
  * up-cast of wordToken to stringToken.
    Can use isStringType() test for word or string types

- simplify constructors, move construct etc.

- expose reset() method as public, which resets to UNDEFINED and
  clears allocated storage etc.

DEFEATURE: remove assign from word or string pointer.

- This was deprecated 2017-11 and now removed.
  For this type of content transfer, move assignment should be used
  instead of stealing pointers.
2019-08-20 17:48:31 +02:00
b5342c166c ENH: handle keyType type (literal/regex) as enum instead of bool
- makes its use somewhat clearer and allows more future options
2019-08-20 13:48:05 +02:00
dade6957c8 ENH: checkMesh report num global patches and min-max 2019-08-19 14:11:31 +02:00
9815d37db3 BUG: corrupt extrudeToRegionMesh boundary patches in parallel (fixes #1295)
- new patches were added to the end of existing patches, which placed
  them _after_ the processor patches. This is incorrect.
2019-08-16 01:07:00 +01:00
c072000dca ENH: add edit for ADIOS2 settings in foamConfigurePaths
CONFIG: remove adios1 config files
2019-08-16 09:17:18 +02:00
edbb6a122b STYLE: use foamVersion::api instead of OPENFOAM define for string output 2019-08-14 20:39:14 +02:00
7a75b9c0d4 STYLE: remove legacy OPENFOAM_PLUS and provisional OPENFOAM_COM defines
- OPENFOAM_PLUS was last used in OpenFOAM-v1712 and provided as a
  transition from OpenFOAM-v1806 until OpenFOAM-v1906

- OPENFOAM_COM was never used
2019-08-14 20:27:41 +02:00
ba69505225 ENH: add ITstream::toString() method
- creates a std::string with space-delimited tokens, which can be sent
  to another application or even re-parsed into tokens
2019-08-14 19:29:02 +02:00
771410e546 ENH: Adding tutorial for overset and multi motion solvers 2019-08-16 12:36:18 -07:00
d96ad1cd09 ENH: Add components to allow overset with multiple motion solvers
1) Add softWall rigidBody restrain
2) Add linearSpringDamper sixDoF restrain to work as soft rope
3) dynamicMotionSolverListFvMesh changed to dictionary based input
4) Add Time reference access to sixDof restraints
5) Add drivenLinearMotion to solidBodyMotionFunctions.
2019-08-16 11:27:59 -07:00
31bfd40001 ENH: globalMeshData - added else branch so that in the case of a cyclic baffle
edge it sets the globalEdgeOrientation

See #1367
2019-08-14 12:05:52 +01:00
60517236fd CONFIG: bump API to 1908 to reflect is_contiguous handling 2019-08-13 16:26:30 +02:00
dec8216835 CONFIG: bump patch level 2019-08-13 16:24:03 +02:00
e2269663aa BUG: edge sync fails with cyclic baffles (fixes #1397)
- synchronization, reduction only makes sense on processor-coupled
  patches. Since cyclic baffles are within a single processor domain,
  they are not reduced. So need to skip the sanity test for these.
2019-08-13 16:09:52 +02:00
a49fc7acf2 SUBMODULE: cfmesh update for is_contiguous 2019-08-13 13:10:10 +02:00
9510cdd1be CONFIG: improve build against paraview on headless nodes
- the use of 'paraview --version' can be fail if the build host
  doesn't have the necessary graphics. For this case, try to obtain
  the ParaView API number from the associated include directory.
2019-08-13 10:25:02 +02:00
212174064c CONFIG: robuster paraview detection 2019-08-09 14:22:30 +02:00
1c1b1874ea CONFIG: accept 'system' for foamConfigurePaths -paraview 2019-08-07 18:36:08 +02:00
38f81f1c4d DOC: Added missing endverbatim and minor tidying 2019-08-07 13:03:48 +01:00
b86f9944d7 ENH: handle some miscellaneous mixed input types (#1378) 2019-08-06 16:57:29 +02:00
f2fe35405c CONFIG: bump patch level 2019-08-06 16:02:38 +02:00
65be1b0e29 BUG: incorrect binary read of injectedParticle (fixes #1393)
- the read offset missed the tag_ member entirely and thus the entire
  particle information would be corrupt (incorrectly interpreted) as
  well as potential violation of adjacent (trailing) memory locations.
2019-08-06 10:30:07 +02:00
005abee368 STYLE: clarify comments in etc/colourTables 2019-07-31 12:02:13 +02:00
f95b67b565 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2019-07-30 08:49:57 -07:00
962e6f6318 ENH: Small editing to fvSchemes and alphatWallBoilingWallFunction 2019-07-30 08:49:15 -07:00
39834d8f45 ENH: add readContiguous detail (#1378)
- allows some internal handling for reading dissimilar storage types.
  Eg, scalars written as float (WM_SP), but read as double (WM_DP)

- reading binary parcel coordinates with dissimilar storage types is
  still pending
2019-07-29 12:01:34 +02:00
1d79c0452c ENH: additional contiguous traits (#1378)
- change contiguous from a series of global functions to separate
  templated traits classes:

    - is_contiguous
    - is_contiguous_label
    - is_contiguous_scalar

  The static constexpr 'value' and a constexpr conversion operator
  allow use in template expressions.  The change also makes it much
  easier to define general traits and to inherit from them.

  The is_contiguous_label and is_contiguous_scalar are special traits
  for handling data of homogeneous components of the respective types.
2019-07-29 11:36:30 +02:00
3c07a1bb6f ENH: Foam::name() of memory address
- returns the memory address formatted in hexadecimal, which can be
  useful for detailed information
2019-08-12 10:46:29 +02:00
3870b1d43c ENH: add longer method names for accessing Matrix num rows/cols (#1391)
- in addition to m() and n(), provide Matrix mRows()/nRows(), nCols()
  methods.  These provide unambiguous access names.

  'mRows()' == for internal consistency with MatrixSpace.
  'nRows()' == a commonly used naming.
2019-08-12 09:14:42 +02:00
9a3daeca23 STYLE: provide boolField and labelField typedefs in Field.H
- as per boolList, labelList typedefs in List.H
2019-08-09 17:39:54 +02:00
09e3441440 ENH: renamed attachedToCell to haloToCell and fix parallel consistency
- was added for #1394
2019-08-09 11:01:29 +02:00
188f4bd184 ENH: more flexible topoSetSource addOrDelete 2019-08-09 11:00:47 +02:00
13169cf8e3 ENH: improve syncTools handling of bitSet/PackedList types
- additional support for face sync/swap of boundary values.
  This allows use of bitSet instead of boolList in more places
2019-08-09 10:07:28 +02:00
45d527853d ENH: additional xorOp, bitXorOp, xorEqOp, bitXorEqOp reduction operators 2019-08-09 10:05:14 +02:00
b0eb74c142 SUBMODULE: added adios submodule (ADIOS2) and control files 2019-08-07 16:50:47 +02:00
e95ab402fd DOC: refer string::expand documentation to stringOps::expand 2019-08-07 14:45:06 +02:00
22cefff4a8 ENH: add toopSet attachedToCell (#1394)
- grows or shrinks a cellSet based on its external perimeter.
  Not yet working across coupled boundaries.
2019-08-07 12:33:23 +02:00
1dde76c8dd ENH: add bitSet::begin(pos) to provide alternative start for indexing 2019-08-07 13:49:48 +02:00
d4a0dc631c CONFIG: relax requirement on C compile option
- with 1906, OpenFOAM is purely C++ code and the last toolchain bits C
  code have been avoided. Thus relax the wmake C rule for including
  WM_COMPILE_OPTION. This makes it much easier to add different
  compiler options with fewer files.

  For example, for Broadwell-specific options:

      cd wmake/rules/linux64Gcc
      cp c++Opt c++OptBdw

      edit this file and then use WM_COMPILE_OPTION=OptBdw

- ensure that WM_COMPILE_OPTION is always non-empty
2019-08-07 09:22:09 +02:00
0395fa2122 SUBMODULES: avoid deprecated dictionary methods 2019-08-06 16:11:34 +02:00
b9594c47e1 STYLE: clarify comments in etc/colourTables 2019-07-31 12:02:13 +02:00
094336adab ENH: add mixed reading for lagrangian types (#1378) 2019-08-06 12:26:35 +02:00
ffbb0710fd ENH: add cloud::readObjects(const objectRegistry&)
- this can be use for situations where the cloud data has been
  provided by a non-file transport.
2019-08-02 18:30:12 +02:00
1d8ea9182b ENH: add basic zero-initialized constructors for particle classes
- for the most basic level construction with mesh and position only.
2019-08-02 17:23:00 +02:00
037be8dbb0 STYLE: use default constructors/destructors for base cloud classes
- use cloud::defaultName instead of "defaultCloud" string literal
2019-08-02 17:22:00 +02:00
e90eafcf18 ENH: rationalize cloud method inheritance
- a top-level cloud::nParcels() virtual, which is overloaded by the
  first level of Cloud inheritance. This permits quick determination of
  cloud sizes, even when retrieved from registry with the base level.
  Eg,
      cloud* cldPtr = mesh.cfindObject<cloud>("myCloud");
      label nParcels = (cldPtr ? cldPtr->nParcels() : 0);

- make writeLagrangianPositions on by default unless explicitly
  disabled in the InfoSwitches.

  Flag output errors (where neither coordinates nor positions are
  written) with Fatal.

- additional IOField helper functions in cloud

STYLE: simplify iterator inheritance
2019-08-02 17:20:18 +02:00
0cfd019b92 STYLE: add data/cdata to VectorSpace for consistency with FixedList etc 2019-08-06 12:00:56 +02:00
c28d785a73 STYLE: adjust name, default count for readRawLabel/readRawScalar (#1378) 2019-08-06 11:54:14 +02:00
7b2931272f ENH: potentialFoam - phi output now controlled by the -writephi command line option 2019-08-05 09:49:18 +01:00
492c30c34e ENH: mapFields FO - read schemes and cache mapped fields by default. See #1390 2019-08-05 09:48:25 +01:00
ef9bb4ae16 ENH: add low-level readRawLabels, readRawScalars (#1378)
- these use the additional byte-size checks in IOstream to handle
  native vs non-native sizes
2019-07-29 16:01:34 +02:00
b0ffdbcfb1 STYLE: relocate typeOfRank partial specialization to products.H 2019-07-29 16:00:59 +02:00
4c91d068fa ENH: added Time::New factory method
- creates a dummy time, which is useful when a local object registry
  is needed
2019-08-02 12:44:47 +02:00
e400725675 CONFIG: add sourcing hints for adios2, petsc 2019-08-02 12:17:39 +02:00
89bc42ddcb ENH: support search options on more dictionary methods
- can now specify literal matches for sub-dictionary methods:

    isDict(key, keyType::REGEX)
    optionalSubDict(key, keyType::REGEX)
    subDict(key, keyType::REGEX)
    subOrEmptyDict(key, keyType::REGEX, mandatory)

There is no change in behaviour of the methods, just the search option
is now exposed as an optional parameter.

NOTE: minor breaking change for subOrEmptyDict()

  old: subOrEmptyDict(key, bool=false)
  new: subOrEmptyDict(key, keyType::option=keyType::REGEX, bool=false)

  This affects code that previously explicitly set the bool parameter.
  Within OpenFOAM itself, this only affected a single file:

      KinematicCloud.C
2019-08-01 17:58:07 +02:00
8b3d77badc ENH: make OSstream indentation adjustable
- this is principally for cases where reduced indentation is desired,
  such as when streaming to a memory location. If the indentation size
  is zero or one, only a single space will be used to separate the
  key/value.

  This change does not affect the stream allocation size, since the
  extra data falls within the padding.

ENH: relocate label/scalar sizes from Istream to IOstream.

- could allow future use for output streams as well?

  Due to padding, reorganization has no effect on allocated size
  of output streams.

STYLE: add read/write name qualifier to beginRaw, endRaw

- removes ambiguity for bi-directional streams

STYLE: fix inconsistent 'const' qualifier on std::streamsize

- base Ostream was without const, some derived streams with const
2019-07-31 12:51:54 +02:00
6f8da834a9 ENH: add OListStream::swap(DynamicList<char>&)
- allows full recovery of allocated space, not just addressable range.

  This can be particularly useful for code patterns that repeatedly
  reuse the same buffer space. For example,

      DynamicList<char> buf(1024);

      // some loop
      {
          OListStream os(std::move(buf));
          os << ...

          os.swap(buf);
      }

   Can read back from this buffer as a second operation:

      {
          UIListStream is(buf);
          is >> ...
      }
2019-07-31 11:31:40 +02:00
b0d32ce1b4 STYLE: use 'operator>>' instead of readLabel and readScalar 2019-07-30 14:52:46 +02:00
743311df7d STYLE: consistent access for particle sizeofFields, particle iterators 2019-07-30 14:22:56 +02:00
3d0ed07fff DEFEATURE: remove particle PropertyTypes (revert of #109)
- data types were used for initial adios interface, but this proved
  difficult to manage and maintain.
2019-07-30 11:47:46 +02:00
7420bf2c57 ENH: Updated particle relocate 2019-08-02 10:07:11 +01:00
34c48982a2 ENH: Updated particle relocate 2019-08-02 10:05:54 +01:00
4631d3272f ENH: Adding multiband absorptivity and solar load working with FVDOM 2019-08-07 15:36:22 -07:00
5382c2f590 STYLE: fix namespace documentation for CGAL-related content 2019-07-30 18:15:48 +02:00
1b4b127af5 CONFIG: harmonize adios1, adios2 config files. Add to setup. 2019-07-31 13:21:52 +02:00
59b867b7af ENH: improvements for handling update of build information
- When building OpenFOAM for different platform combinations
  (single/double, int32/int64) the build information that is compiled
  into the OpenFOAM lib can become out of sync.

  This is because the update trigger (wmakeBuildInfo -check) is
  independent of the targetted platform. The added file
  'src/OpenFOAM/Alltouch' provides a direct means of forcing a rebuild
  of the version information. Eg,

      src/OpenFOAM/Alltouch
      wmake src/OpenFOAM

  Also provide an additional 'wmakeBuildInfo -remove' to forcibly
  remove META-INFO/build-info, if that is desired.
2019-07-30 09:54:02 +02:00
d4454ab6b4 TUT: binary output for windAroundBuildings 2019-07-30 11:42:00 +02:00
c41843e4f9 TUT: New AMI tutorial case for pimpleFoam - rotatingFanInRoom 2019-08-01 08:29:45 +01:00
80fb4da9ca STYLE: inconsistent use of readBeginList()
- use readBegin() when the only delimiters are '()' and not '({})'
2019-07-29 11:22:57 +02:00
bdc1c9bfb6 ENH: support low-level reading of raw binary blocks (#1378)
- symmetric with writeRaw() etc for the output stream. These are
  methods that are not required by normal users, but which provide
  a finer granularity for reading.

- additional information about the current stream position when
  endList fails. This may help when tracing errors.

STYLE: change return type of beginRaw()/endRaw() to bool

- was of type Ostream& for output, but return value was unused.
  Having bool may be better for encapsulating logic

STYLE: remove unused Istream::readEndBegin() function
2019-07-29 10:52:30 +02:00
8dd3c7f2bc CONFIG: add postProcessing/fields/lambVector template (fixes #1386) 2019-07-29 10:06:26 +02:00
78ce269a52 ENH: add field operations for complex (#1365) 2019-07-28 21:19:43 +02:00
53392d5a05 ENH: improve wmake handling of directory when given a source file 2019-07-28 21:09:11 +02:00
6a7954fda1 COMP: make mass transfer rates mutable
- in InterfaceCompositionPhaseChangePhaseSystem, the mass transfer
  rates are updated as a side-effect of the massTransfer() method,
  which makes these fields non-const.
2019-07-26 15:10:38 +02:00
1ccddd04ef ENH: more stringent check before adding 'lib' prefix (OSspecific)
- only prefix 'lib' for names without a path

STYLE: add more OSspecific debug output for library loading
2019-07-26 14:50:00 +02:00
b2f6e60a11 CONFIG: bump patch level 2019-07-24 09:52:18 +01:00
5767a77732 TUT: remove trailing space
- use git show --ignore-space-change when examining
2019-07-24 09:52:18 +01:00
b0a1a3fd0b BUG: quaternion - corrected construction from rotation tensor. Fixes #1348 2019-07-24 09:37:38 +01:00
6789e7477b BUG: adjointSolverManager - corrected indexing. Fixes #1381 2019-07-23 12:26:06 +01:00
09b91bbd97 ENH: Small editing to alphatWallBoilingWallFunction 2019-07-30 08:51:06 -07:00
c07ab24556 BUG: EP:1070. Adding check for coupled patches in faceReflecting 2019-07-22 15:14:46 -07:00
186edcfd8c COMP: resolve Int64 ambiguity 2019-07-19 18:14:39 +02:00
9e7ad6e511 ENH: improvements for isoSurfaceTopo erosion (#1374)
- adapted openfoam.org code.  Original commit message:

  Instead of adapting tet base points cell-by-cell, the dangling
  points are pre-computed and then the adaptations to the base points
  are made face-by-face. This correctly adapts faces which have
  different dangling points relative to the owner and neighbour cells.
2019-07-19 13:33:26 +02:00
2689202a3d ENH: support isoSurfaceTopo with cell subsets (#1374)
- treat the faces that would be exposed on a subset as boundary faces
  for the erosion algorithm

STYLE: adjust code for consistency between isoSurfaceCell and isoSurfaceTopo
2019-07-19 12:26:31 +02:00
3eb966d0ed ENH: consistent handling of isoSurface regularise/filtering (#1374)
- previously only had "regularise" as a bool value, now support
  enumerations too
2019-07-19 11:00:57 +02:00
6e17bf616e ENH: add global identity cartesian and cylindrical systems (#863) 2019-07-19 08:33:04 +02:00
55b1c57275 ENH: adjust displacementLayered framework
- add patch-point tracking to structured walk

- provision for cylindrical interpolation scheme

STYLE: more efficient use of bitSet
2019-07-18 15:54:55 +02:00
18984f6c27 COMP: remove constexpr from NullObject members 2019-07-18 10:39:05 +02:00
c0fad3be09 BUG: fix suspicious ordering in polyTopoChange::getCellOrder (#1376) 2019-07-18 10:28:40 +02:00
2f983f3f6f ENH: imbue input streams with label/scalar sizes (#1378) 2019-07-18 10:22:12 +02:00
d25b19f6aa ENH: add Barycentric2D outside() test 2019-07-18 09:59:58 +02:00
f94be1bebb ENH: use FatalIOErrorInLookup instead of FatalErrorInLookup 2019-07-16 10:26:51 +02:00
5d0f1788e1 ENH: minor improvements to printTable(List<wordList>, ..)
- return Ostream&
- make header separation optional
2019-07-15 19:25:22 +02:00
0ccc005fe6 ENH: add no-op methods to Nullobject
- empty(), size(), toc(), sortedToc()
2019-07-15 19:25:22 +02:00
fb09f56aba ENH: use FatalErrorInLookup macros (#1362) 2019-07-12 18:00:00 +02:00
1d86fc4f6b ENH: add single-parameter sortedOrder() function 2019-07-17 11:08:40 +02:00
5788fe056c STYLE: missing -postProcess option on basic solvers (#1375) 2019-07-16 12:09:00 +02:00
615565ad40 STYLE: relocate bashrc,cshrc projectDir detection as (advanced / legacy)
- makes the standard config variables more visible
2019-07-15 10:58:55 +02:00
4862cb4603 GIT: add forgotten file (commit 4ee65d12c4) 2019-07-15 08:36:05 +02:00
481661dabe CONFIG: bump API to 1907 to register any changes in keywords 2019-07-14 19:25:30 +02:00
bb35d784a2 BUG: distanceSurface has gaps in mesh (#1374)
- need to be more generous when prefiltering the cell selection
2019-07-12 16:38:04 +02:00
658d660333 BUG: incorrect blocked face synchronisation crashes regionSplit (#1370)
- now catch these and emit a warning.
  Still need to investigate the root cause in the caller(s) or regionSplit.
2019-07-12 13:29:20 +02:00
d2db25ad81 CONFIG: Updated pressure FO config wrappers. See #1356 2019-07-10 13:22:19 +01:00
e03c0977f5 ENH: support Foam::mv overwrite of existing files on windows (#1238)
- the behaviour of std::rename with overwriting an existing file is
  implementation dependent:
    - POSIX: it overwrites.
    - Windows: it does not overwrite.

- for Windows need to use the ::MoveFileEx() routine for overwriting.

  More investigation is needed for proper handling of very long names.
2019-07-09 18:52:06 +02:00
eda4cbd55c CONFIG: always allow spaces in fileName for Windows (#1238)
- this cannot be left as a configurable value (on windows), since it
  needs to be enabled even prior to reading the etc/controlDict file,
  in case the OpenFOAM installation path itself contains spaces.
2019-07-09 18:04:23 +02:00
7805fb45cf ENH: support different iso-algorithms (#1374)
- add an 'isoAlgorithm' keyword to distance surface and cutting plane
  to advance further testing of the isoSurfaceTopo algorithm.

  Does not yet handle the full spectrum of bound boxes, cellZones etc.
2019-07-09 12:46:40 +02:00
ba3f0734c0 ENH: added FatalErrorInLookup, FatalIOErrorInLookup macros (#1362)
- to simplify/unify error handling

STYLE: use NotImplemented instead of longer notImplemented(...)
2019-07-12 18:00:00 +02:00
bbc2d4a8b0 ENH: HashTable and HashSet improvements
- unfriend HashSet, HashTable IO operators

- global min(), max(), minMax() functions taking a labelHashSet and an
  optional limit. For example,

      labelHashSet set = ...;

      Info<< "min is " << min(set) << nl;
      Info<< "max (non-negative) " << max(set, 0) << nl;

- make HashTable iterator '->' dereferencing more consistent by also
  supporting non-pointer types as well.

- read HashTable values in-situ to avoid copying
2019-07-12 18:00:00 +02:00
ca5e7a5224 ENH: properly trap incorrect enumerations (#1372)
- the Enum::readEntry() method was previously as bit sloppy with
  respect to the enumeration that it accepted. If the input was
  non-mandatory, typos would go unnoticed. Now tighten things so that
  if an enumeration is found, it must also be valid.

STYLE: remove unused/deprecated Enum::lookupOrFailsafe() method

- this was only used in a few places internally in 1712 and 1806 but
  has since then been superseded by getOrDefault() with an optional
  'failsafe' flag.
2019-07-12 18:00:00 +02:00
1fb9e68d63 DEFEATURE: remove the now unused Xfer class
- previously deprecated and slated for removal in 2018-03
2019-07-12 18:00:00 +02:00
488f8938b2 ENH: add invert (inverse mappings) for bitSet 2019-07-12 12:00:00 +02:00
f1a48a3c2f ENH: accept bitSet for MeshedSurface::subsetMesh
- add triSurface::subsetMesh single-parameter variant
2019-07-12 08:54:34 +02:00
4380349f45 ENH: add vtk::writeIdentity() and optional repeat value for vtk::write()
- An identity is often useful when generating connectivity and offset
  information.

- The optional repeat value for vtk::write() allows it to also be used
  as a fill method.
2019-07-11 13:42:02 +02:00
4b8fabaa4b STYLE: relocate Allwmake-scan to src/
- reduced clutter. Mostly only need to scan source tree.

- 00-dummy: use wmake/src/Allmake to get native (not cross-compiled)
  wmake toolchain binaries
2019-06-28 09:55:25 +02:00
5bd7c4b5bb BUG: pressure FO - corrected handling of enumeration in calcPressure function. See #1356 2019-07-09 11:44:52 +01:00
1159aaa810 CONFIG: bump patch level 2019-07-08 14:04:49 +02:00
54ef9beab7 COMP: silence spurious GCC -Wstringop-truncation warning in ensightFile 2019-07-08 13:53:06 +02:00
ff3b9501d9 COMP: erroneous double definition for long IO on windows (#1360, #1238)
- mingw uses 32-bit long regardless of -m32 or -m64 setting
2019-07-08 13:34:16 +02:00
eaacf0a20a BUG: questionable findInstance handling of constant (related to #1112)
- when searching for a file that may not actually exist,
  the short-cut optimization could lead to the 'constant' directory
  being ignored.

STYLE: simplify logic in points0MotionSolver::points0IO
2019-07-05 11:04:06 +02:00
79bf4fafb6 CONFIG: do not touch LD_PRELOAD contents at all (#1357) 2019-07-05 10:29:18 +02:00
53947016fa BUG: metis PrecisionAdaptor used ref() instead of constCast() - closes #1354
- the scotch interface still uses non-const pointers when passing in
  values. For the ConstPrecisionAdaptor this means that we need to cheat
  with a constCast(). Using ref() will rightly trigger complaints about
  trying to modify a const object.
2019-07-04 17:07:48 +02:00
7d7a3a78a8 BUG: DimensionedField - register new field if it does not have the same name as the copy - see #1348 2019-07-02 10:22:50 +01:00
10a03ceba2 STYLE: relocate Allwmake-scan to src/
- reduced clutter. Mostly only need to scan source tree.

- 00-dummy: use wmake/src/Allmake to get native (not cross-compiled)
  wmake toolchain binaries
2019-06-28 09:55:25 +02:00
1ffda6facb STYLE: set owner as root/root for manifest.txt in tarfile (for consistency) 2019-07-12 14:19:23 +02:00
b7d3607716 STYLE: remove uncompressed tar file after -tgz output 2019-07-10 20:34:40 +02:00
c54c4c8c62 ENH: improve overwrite behaviour of tutorials/Alltest (#1364)
Modifications to help avoid inadvertent overwriting of tutorialsTest:

- new '-force' option to overwrite existing directory

- generate a 'tutorialsTest/Alltest' script that disallows the
  possibilty of self-recursion
2019-07-09 12:06:41 +02:00
d6d95c33bc ENH: return scalar for surface uniformity (#1363) 2019-07-08 19:21:40 +02:00
b8ccbbdf67 ENH: improved treeDataPoint subset handling (#1359)
- reverse mapping for the original point ids. This can be useful
  when searching a subset of points, but needing to store access to
  the original point index.

- move constructor.

- Allow use/not-use subset as an optional constructor argument for
  more convenient caller logic.
2019-07-08 11:20:44 +02:00
84bc1cc8a8 TUT: use simpleGrading vs simplegrading
- add PDRblockMeshDict example for cavity
2019-06-28 10:30:58 +02:00
e3fa92055a STYLE: use autoPtr get() instead of operator->()
- don't need extra nullptr check for some cases. Less clutter.
2019-06-28 09:06:26 +02:00
1fed2bc2b2 STYLE: can use objectRegistry::checkOut() directly with a pointer 2019-06-27 19:24:54 +02:00
def4e2b7fd STYLE: remove unneeded regIOobject release (#1276)
- changed for 1906 to have a regIOobject always cleanup its
  objectRegistry entry. No need to explicitly 'release' ownership
  for this to now happen.

- doxygen formatting for MeshObject
2019-06-27 19:09:22 +02:00
1b7b9eab35 CONFIG: add compiler config for gcc-9
Caveat: The -Wdeprecated-copy produces many, many compiler warnings
2019-06-27 19:03:32 +02:00
7e935bd191 COMP: avoid ref to synchronization for non-MPI VTK build (fixes #1349) 2019-06-27 14:59:14 +02:00
7b02c0fa19 CONFIG: Reset WM_PROJECT_VERSION 2019-06-27 13:30:14 +01:00
96e7dd8da6 Merge branch 'develop' 2019-06-27 13:27:57 +01:00
ed08f3d006 TUT: tutorial update 2019-06-26 11:54:12 +01:00
43febddda1 BUG: Removed Debug statements 2019-06-26 11:53:41 +01:00
15a763b931 COMP: Resolved some name clashes for #ifdef statements 2019-06-26 11:52:15 +01:00
469c9ff078 COMP: Added some volatile statements for clang
TODO: need to revisit
2019-06-26 11:55:22 +01:00
3800ed8dd7 GIT: Removed unused file 2019-06-25 13:20:44 +01:00
be44dcaf1f RELEASE: Version clean-up for release 2019-06-25 11:51:19 +01:00
c997b16db4 TUT: add '-n' when linking tutorial directory 2019-06-26 13:59:45 +02:00
51bb4e0037 STYLE: remove trailing spaces 2019-06-26 11:36:49 +02:00
a9bfef33bf CONFIG: update completion cache (csh) 2019-06-26 11:29:12 +02:00
f7a707e00e STYLE: allow '=' option separators in some bin/tools scripts 2019-06-26 11:27:53 +02:00
ff81ec8cf3 CONFIG: add -no-patch option for foamPackRelease
- if desired to create a tar-file without a _patch value in its name.
2019-06-26 00:57:49 +02:00
369484869d Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-25 08:51:10 -07:00
d286951008 BUG: Fix thermos templates for Lee model 2019-06-25 08:50:07 -07:00
3a65840993 CONFIG: set umask 0022 when packing tar files for release 2019-06-25 17:24:39 +02:00
1b2708226e TUT: Tutorial updates 2019-06-25 09:59:20 +01:00
be7d7e7dbe SUBMODULES: catalyst with updated keywords/syntax in tutorial 2019-06-25 08:09:22 +02:00
47f375887e CONFIG: adjust bin/tools/foamConfigurePaths
- add a '-SPDP' option

- remove the '-archOption' for forcing a '-m32' build on 64-bit
  architecture, which is now considered too obscure.
  Must edit files manually if this option is really required.
2019-06-25 07:48:33 +02:00
e6270d127b DOC: update build and config information 2019-06-24 18:42:39 +02:00
5dd8b73933 STYLE: use foamEtcFile instead of wmakeBuildInfo when reporting api 2019-06-24 18:19:59 +02:00
016526baee Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-24 08:13:47 -07:00
1bd2ef7c21 ENH: Adding Lee thermos for icoReactingMultiphaseInterFoam 2019-06-24 08:12:58 -07:00
e990c48bee COMP: Resolved a couple of compiler warnings 2019-06-24 13:52:57 +01:00
40401ccbd0 TUT: tutorial script updates 2019-06-24 13:51:15 +01:00
fa8ab2d5b4 STYLE: add Test-copyFile 2019-06-24 14:46:38 +02:00
53cf9e2182 STYLE: pressure FO - provided feedback re: which calculation mode is applied 2019-06-24 12:11:53 +01:00
49864ba7d7 TUT: generalize scripts for turbulentInflow 2019-06-24 12:29:19 +02:00
9b0ff60320 STYLE: simplify return statement 2019-06-24 09:29:56 +02:00
945d80f10a Merge branch 'feature-digitalFilterFvPatchInlet' into 'develop'
Digital-Filter Based Synthetic Turbulence Generation Method for LES/DES Inflow

See merge request Development/OpenFOAM-plus!235
2019-06-21 13:10:49 +01:00
74ec94281e TUT: Tuorial updates 2019-06-21 10:53:13 +01:00
f0a7a30780 ENH: patchSetSet: new sampledSet. Fixes #1346. 2019-06-20 13:44:08 +01:00
5215aab719 ENH: averageCondition - result now 'false' if no fields were processed 2019-06-20 12:10:12 +01:00
8e3df10069 STYLE: overBuoyantPimpleDyMFoam: consistent directory naming 2019-06-20 10:26:24 +01:00
67c8b07021 ENH: derivedFields: fields created without timeName. Fixes #1345.
Please enter the commit message for your changes. Lines starting
2019-06-20 09:35:19 +01:00
14a2a8bf55 TUT: add new tutorial case for turbulent inflow BCs
The following three synthetic turbulence inflow boundary conditions are
examined through single-cell-domain smooth-wall plane channel flow setup:

- turbulentDFSEMInlet
- turbulentDigitalFilterInlet variant=digitalFilter
- turbulentDigitalFilterInlet variant=reducedDigitalFilter

The examinations are performed in terms of the first-/second-order turbulence
statistics provided by (Moser et al., (1999)) doi.org/10.1063/1.869966
from smooth-wall plane channel flow direct numerical simulations at Re=395.

Serial executing:

./Allrun

Parallel (decompositionMethod=scotch) executing:

./Allrunparallel
2019-06-19 19:23:53 +01:00
a78e527a1a ENH: GAMGSolver: less debug info 2019-06-19 15:09:18 +01:00
cd71fe008e Merge branch 'integration-adjoint' into 'develop'
Integration adjoint

See merge request Development/OpenFOAM-plus!269
2019-06-19 22:06:59 +01:00
7354af5dff STYLE: Updated FO output 2019-06-19 20:53:24 +01:00
32bd3800b1 ENH: Improved backwards compatibility for pressure FO 2019-06-19 15:02:58 +01:00
355d6c4c4f ENH: scotch: make repeatable. Fixes #1274. 2019-06-19 08:45:48 +01:00
3f955cac07 STYLE: Updated header documentation 2019-06-19 11:32:53 +01:00
c901f9bc7f ENH: runTimeControl - updated time for maxDuration and minTimeStep conditions 2019-06-19 09:57:11 +01:00
12afb3d34a ENH: Refactored pressure function object 2019-06-19 09:00:14 +01:00
56547863c1 ENH: {simple|pimple}Control - output on construction controlled by a 'verbose' flag 2019-06-18 14:20:55 +01:00
e184e1e72c ENH: Updated function object reading and output messages 2019-06-18 13:55:16 +01:00
ecc1fb5efb CONTRIB: New adjoint optimisation and tools
A set of libraries and executables creating a workflow for performing
gradient-based optimisation loops. The main executable (adjointOptimisationFoam)
solves the flow (primal) equations, followed by the adjoint equations and,
eventually, the computation of sensitivity derivatives.

Current functionality supports the solution of the adjoint equations for
incompressible turbulent flows, including the adjoint to the Spalart-Allmaras
turbulence model and the adjoint to the nutUSpaldingWallFunction, [1], [2].

Sensitivity derivatives are computed with respect to the normal displacement of
boundary wall nodes/faces (the so-called sensitivity maps) following the
Enhanced Surface Integrals (E-SI) formulation, [3].

The software was developed by PCOpt/NTUA and FOSS GP, with contributions from

Dr. Evangelos Papoutsis-Kiachagias,
Konstantinos Gkaragounis,
Professor Kyriakos Giannakoglou,
Andy Heather

and contributions in earlier version from

Dr. Ioannis Kavvadias,
Dr. Alexandros Zymaris,
Dr. Dimitrios Papadimitriou

[1] A.S. Zymaris, D.I. Papadimitriou, K.C. Giannakoglou, and C. Othmer.
Continuous adjoint approach to the Spalart-Allmaras turbulence model for
incompressible flows. Computers & Fluids, 38(8):1528–1538, 2009.

[2] E.M. Papoutsis-Kiachagias and K.C. Giannakoglou. Continuous adjoint methods
for turbulent flows, applied to shape and topology optimization: Industrial
applications. 23(2):255–299, 2016.

[3] I.S. Kavvadias, E.M. Papoutsis-Kiachagias, and K.C. Giannakoglou. On the
proper treatment of grid sensitivities in continuous adjoint methods for shape
optimization. Journal of Computational Physics, 301:1–18, 2015.

Integration into the official OpenFOAM release by OpenCFD
2019-06-17 12:59:11 +01:00
146948ceaf COMP: Added option for clang 8.0.0 2019-06-17 12:35:24 +01:00
1ac4a0fa64 COMP: lduMatrix: fix solveScalar compilation 2019-06-17 17:51:48 +01:00
cd36562d92 ENH: externalLoadSolar: cleanup - avoid multiple registrations 2019-06-17 17:03:23 +01:00
c97b23e253 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-17 07:44:28 -07:00
6bd3cee682 TUT: Adjusting controlDict and fvSolution for SandiaD_LTS tutorial 2019-06-17 07:42:42 -07:00
e7b8b7d6ed ENH: GAMGSolver: specify coarsest level solver. Fixes #1342. 2019-06-17 10:15:24 +01:00
ed10b19a2c COMP: randomDecomp - resolved compiler warnings 2019-06-14 17:01:30 +01:00
3937c8804d COMP: Updated deprecated warning messages 2019-06-14 16:47:09 +01:00
d4314bda69 COMP: Resolved compiler warning 2019-06-14 16:46:42 +01:00
14fba293f9 CONFIG: update completion cache 2019-06-14 15:52:40 +02:00
16784c6b06 CONFIG: reduce reliance on WM_ARCH_OPTION (#517)
- now only needed when specify compiling -m32 on a 64-bit system.

  Internally use the __SIZEOF_LONG__ compiler macro (gcc, icc, llvm)
  to define when long is actually an int32_t.
2019-06-14 14:47:35 +02:00
f0a4f8ee48 COMP: skip reactingEulerFoam compilation on mingw (#1238)
- pending resolution of cyclic dependencies
2019-06-14 13:58:37 +02:00
fd6af75475 CONFIG: disable runtimePostProcessing titleHack by default
- a leftover from much older VTK versions that had poor handling of
  the scalar bar text.
2019-06-14 12:27:59 +02:00
f1394e9ce3 STYLE: use data() instead of begin() when passing metisDecomp raw data 2019-06-14 11:08:31 +02:00
f7f08fce4b ENH: alternative Euler rotation orders for lumpedPointState (#1341) 2019-06-14 10:36:38 +02:00
17de75b073 ENH: waveMaker boundary condition - provide time offset for patch motion
- also enables smooth restart for solitary waves
2019-06-14 13:04:54 +01:00
aa1a0a85fa ENH: Forces function object - updated header documentation 2019-06-14 11:38:06 +01:00
afb9c1d9d9 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-13 13:26:24 -07:00
3c8e99e4f2 TUT: Setting fvSolution for mixerVessel2D 2019-06-13 13:25:51 -07:00
7bf9ca876b Merge branch 'tut-lambvector' into 'develop'
TUT: pimpleFoam/channelDFSEM395 - added example use of Lamb vector

See merge request Development/OpenFOAM-plus!267
2019-06-13 21:21:39 +01:00
01ea3cc790 ENH: metis: use PrecisionAdaptor to support 64 bit indices 2019-06-13 20:52:48 +01:00
da07aa9ac0 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-13 12:13:04 -07:00
50cdddf46a ENH: New solidThermo to ReactingMultiphaseInterFoam 2019-06-13 12:11:09 -07:00
f863925112 STYLE: use uintptr_t instead of long 2019-06-13 19:37:27 +02:00
4e0222f887 DOC: relocated OpenFOAM etc/README.md to doc/Config.md
- relocated BuildIssues.txt -> doc/BuildIssues.md
2019-06-13 18:43:07 +02:00
f05ff81722 CONFIG: bump API to 1906 (pre-release)
- adjust copyright dates for manpages
2019-06-13 18:22:10 +02:00
b01611a126 CONFIG: make default for allowSpaceInFileName platform dependent
- enable by default on Windows, disable by default on non-Windows.
2019-06-13 14:01:08 +02:00
96ed604849 ENH: motorBike: enable residual control. See #1328. 2019-06-13 15:00:22 +01:00
966ba1dba5 Merge branch 'feature-functionObject-forceCoeffExtension' into 'develop'
ENH: functionObject: refactored co-ordinate system usage and new forceCoeffs members

See merge request Development/OpenFOAM-plus!246
2019-06-13 15:47:09 +01:00
e716d1c073 ENH: surfactantFoam: run cleanly. See #1328
- do not write 0/ directory
- clean case in ./Allclean
2019-06-13 14:24:58 +01:00
8b2e61faf0 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-12 10:37:51 -07:00
b1563dc03e ENH: Handling of phaseProperties in temperatureCoupledBase.
Adding poly solid thermo to InterfaceCompositionModel for use
on icoReactingMultiphaseInterFoam
2019-06-12 10:35:49 -07:00
5137c1f420 STYLE: typo 2019-06-12 16:51:57 +01:00
beffb00612 TUT: Mangrive tutorial update 2019-06-13 12:08:16 +01:00
3ef37ce188 BUG: fileMonitor: do not allow used watch also in free watches.
See #1328.
2019-06-12 12:27:28 +01:00
fc58d517f0 STYLE: dictionary: use get() method 2019-06-12 12:27:06 +01:00
dd9bf745fe TUT: pimpleFoam/channelDFSEM395 - added example use of Lamb vector 2019-06-12 11:47:09 +01:00
1fdc886672 COMP: Allwmake: turbulentFluidThermoModels already in compressible turb 2019-06-12 10:23:34 +01:00
3a1178ff12 BUG: Fixing problem with parallel DTRMParticle 2019-06-11 16:12:36 -07:00
1db1815b54 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-11 15:11:33 -07:00
58312bf850 INT: Back-tracking multiphaseSystem 2019-06-11 15:10:55 -07:00
a1f9256829 ENH: extend header documentation for forceCoeffs 2019-06-11 16:19:37 +01:00
dd437aa667 INT: Clean-up and integration of wave BC updates 2019-06-11 15:29:15 +01:00
7d9f3c8a0d INT: waveMaker boundary condition - added dynamic wave paddle of a solitary wave
Based on Goring et al., 1980
2019-06-11 14:55:51 +01:00
65f3faa203 WIP: Refactored forces/Coeffs to always use a co-ord system and simplified inputs [UNCHECKED] 2019-06-11 11:57:22 +01:00
bb9225f3f7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-10 10:17:00 -07:00
fa61775768 ENH: Small changes on overBuoyantPimpleFoam tutorial 2019-06-10 10:16:08 -07:00
533410aab4 COMP: phaseSystemModels: few compilation fixes 2019-06-10 13:59:26 +01:00
09c67d90de BUG: mpi: use system openmpi by default 2019-06-10 13:05:54 +01:00
53b88d99a3 COMP: only compile wmake toolchain for host when cross-compiling
- no use having wmkdepend on the target architecture when it will only
  be needed on the host architecture.
2019-06-09 19:21:27 +02:00
e02ed85637 DOC: fix links 2019-06-09 19:17:34 +02:00
50bbc2bd6b DOC: cross-reference readme/build/requirements 2019-06-07 13:43:27 +02:00
21599f0365 DOC: added Build and Requirements information 2019-06-07 13:30:10 +02:00
b46992f66b COMP: compile wmake toolchain for host when cross-compiling 2019-06-07 10:32:37 +02:00
137130e437 ENH: reduce wmake bootstrap dependencies
- remove make target for wmdep (flex-based scanner), which eliminates
  a bootstrap dependency on flex.

  As of OpenFOAM-v1806, wmdep has been superseded by wmdepend
  (ragel-based scanner).

- replace dirToString binary with shell/awk equivalent for simpler
  maintenance. The utility is very rarely used (auto scanning to
  create Make/files) so there is no performance difference.
2019-06-07 09:51:18 +02:00
2e544489bf Merge branch 'feature-VOF-updateSolvers' into 'develop'
Feature vof update solvers

See merge request Development/OpenFOAM-plus!266
2019-06-07 09:38:35 +01:00
8170f2ad92 INT: Org integration of VOF, Euler phase solvers and models.
Integration of VOF MULES new interfaces. Update of VOF solvers and all instances
of MULES in the code.
Integration of reactingTwoPhaseEuler and reactingMultiphaseEuler solvers and sub-models
Updating reactingEuler tutorials accordingly (most of them tested)

New eRefConst thermo used in tutorials. Some modifications at thermo specie level
affecting mostly eThermo. hThermo mostly unaffected

New chtMultiRegionTwoPhaseEulerFoam solver for quenching and tutorial.

Phases sub-models for reactingTwoPhaseEuler and reactingMultiphaseEuler were moved
to src/phaseSystemModels/reactingEulerFoam in order to be used by BC for
chtMultiRegionTwoPhaseEulerFoam.

Update of interCondensatingEvaporatingFoam solver.
2019-06-07 09:38:35 +01:00
0628bfb017 CONFIG: remove legacy tools, update foamPackRelease/foamUpdateCaseFileHeader 2019-06-06 16:45:57 +02:00
88e042afd9 COMP: resolved compiler warning 2019-06-06 14:23:12 +01:00
c7e5f4a9e7 BUG: surfaceWriter pointData merging fails on single processor
- if surface is only on a single processor, no point merging occurs
  and the pointsMap is empty.
2019-06-06 14:36:53 +02:00
0d8601f273 TUT: rhoSimpleFoam/squareBend - added example use of isentropic pressure 2019-06-06 12:18:10 +01:00
bf9d74ba8b ENH: increase robustness of PrecisionAdaptor
- overload the ref() method to allow modification of the referenced
  (non-const) field directly. Same as constCast(), but less typing
  and less prone to error.

- construct ConstPrecisionAdaptor from tmp for improved efficiency.
2019-06-06 09:46:31 +02:00
255e47356c BUG: surface writer for surfaceNoise was not Time-aware
- the updated surface writers must be explicitly tagged as being
  Time-aware (useTimeDir) to have them splice Time (in this case freq)
  into the output path.

  The older writers worked in the opposite way. They extracted a time
  value from the naming of the output directory (which was fragile).
2019-06-05 16:17:33 +02:00
a2906d4302 ENH: improve handling of font sizes for scalarBar 2019-06-05 15:31:49 +02:00
4c25755202 Merge branch 'feature-single-precision' into 'develop'
Feature single precision

See merge request Development/OpenFOAM-plus!234
2019-06-05 14:55:59 +01:00
24371a1d84 BUG: set the oriented flag - see #1324 2019-06-05 14:12:51 +01:00
289a7acf76 ENH: p field for potentialFoam now registsered 2019-06-05 14:11:50 +01:00
a31d0c834e ENH: overset: add value field. Fixes #1334. 2019-06-05 11:38:06 +01:00
1de2f30545 COMP: fixes for label=64, scalar=32 2019-06-05 09:13:08 +02:00
5c58b07f5a ENH: Adding overBuoyantPimpleFoam and tutorial 2019-06-04 12:18:13 -07:00
aaf5d7be6d Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-06-04 11:06:35 -07:00
c8cf4b21c4 STYLE: suppress output of solveScalar when identical to scalar size 2019-06-04 15:16:46 +02:00
ca724b2e1a TUT: cleanup postProcessing in planeTransport finiteArea tutorial 2019-06-04 15:11:05 +02:00
298cb46572 BUG: fix spurious time indexing in collated ensight output (#1333)
- need additional tolerance when comparing time values to those
  stored in the fieldDict (both less and equal operators)
2019-06-04 15:04:09 +02:00
b65a6d32f5 Merge branch 'fix-GL1276' into 'develop'
ENH: improved handling of regIOobject deletion (#1276)

See merge request Development/OpenFOAM-plus!263
2019-06-04 14:32:30 +01:00
0329a9044e Merge branch 'feature-functionObjects-lambVector' into 'develop'
ENH: FO: Lamb vector and its divergence

See merge request Development/OpenFOAM-plus!245
2019-06-04 12:44:59 +01:00
6cb7e80d7d ENH: FO: Lamb vector
- If applied:
      This commit allows the user to compute:
        - the Lamb vector (https://en.wikipedia.org/wiki/Lamb_vector),
        - on-the-fly or via postProcess utility
        - for a given volVectorField (one per functionObject entry)

  - Why:
      The motivation is the literature-reported quantitative connection
      between the Lamb vector (divergence) and the spatially localised
      instantaneous fluid motions, e.g. high- and low-momentum fluid
      parcels, which possess considerable level of capacity to affect
      the rate of change of momentum, and to generate forces such as drag.

  - Verification:
      - Smooth-wall plane channel flow case (Moser et al. 1999) by
          # Curtis et al. (2008) On the Lamb vector divergence
            in Navier–Stokes flows, doi:10.1017/S0022112008002760

  - What's next:
      - The verification-show case
      - Extended code guide entry titled "Lamb vector"
2019-06-04 12:42:06 +01:00
e120df0923 ENH: improved handling of regIOobject deletion (#1276)
- remove registration and ownership before deleting a regIOobject
  from within objectRegistry to avoid possible recursion.

- regIOobject destructor now removes any registered object from
  registry regardless if ownedByRegistry or not. It also removes
  always removes the ownership flag to avoid possible recursion.

- the regIOobject::checkOut() now unconditionally clears file watches.
  These will only be there if the object is registered (a no-op for an
  unregistered object), but this additional safety is needed to manage
  case where the registration has been modified elsewhere (eg, by the
  objectRegistry).
2019-06-04 12:29:55 +02:00
073e0a7f5d Merge branch 'feature-complex-cleanup' into 'develop'
Feature complex cleanup

See merge request Development/OpenFOAM-plus!264
2019-06-04 11:25:26 +01:00
52df9a2fee TUT: use mpiexec instead of mpirun for msmpi in RunFunctions (#1238) 2019-06-04 11:22:21 +02:00
e42cc287de BUG: incorrect scalar/complex division (#1331)
ENH: define addition/subtraction operations for scalar and complex

- required since construct complex from scalar is explicit
- additional tests in Test-complex
2019-06-04 09:08:42 +01:00
663b422587 ENH: optional parameter on regIOobject::release (#1276)
- can additionally relinquish the registered state as well as
  ownedByRegistry state
2019-06-03 15:11:10 +02:00
ef88919ef5 STYLE: incorrectly documented wmake option 2019-06-04 09:11:37 +02:00
9d593adc98 ENH: relax the (zeroGradient, ddt2) replacement token requirement (#1330)
- when a single (non-regex) source field is specified, it is now
  possible to specify the result name without any '@@' substitution
  tokens
2019-06-04 08:45:46 +02:00
2ce1ca48a8 BUG: objectRegistry: two-pass deletion. See #1276. 2019-06-03 13:58:51 +01:00
5dd6a04ff8 BUG: attach/detach: correctly change modified faces. Fixes #1329. 2019-06-03 11:07:05 +01:00
fc11c40841 ENH: add wmake -debug option
- forces c++DBUG='-DFULLDEBUG -g -O0' for the compilation, to allow
  localized debugging during development without file editing and
  while retaining the WM_COMPILE_OPTION (eg, Opt)

  Note that switching between 'wmake' and 'wmake -debug' will not
  cause existing targets to be rebuilt. As before, these are driven by
  the dependencies. An intermediate wclean may thus be required.
2019-06-03 10:16:31 +02:00
e1bd3400ef ENH: allow selective disabling of parallel VTK rendering
- in case an individual geometry element has render issues in parallel

- additional debug information
2019-06-03 09:46:49 +02:00
be35426f85 SUBMODULES: cfmesh with updated argList methods 2019-05-31 18:57:29 +02:00
d28267520f ENH: nutWallFunctions - provided option to specify alternative velocity field 2019-05-31 15:56:46 +01:00
9988e549e0 STYLE: writeDictionary - updated output messages 2019-05-31 15:04:15 +01:00
b991188329 BUG: scalarBar range ignored in runTimePostProcessing
- was missing range setting for the colour lookup table
2019-05-30 12:02:56 +02:00
76d1fb0118 GIT: Updated bug issue template 2019-06-14 10:11:17 +01:00
911d029bb1 CONFIG: bump patch level 2019-05-31 16:08:24 +02:00
0581a9d884 ENH: new forceCoeffs functionObject output
- additional coefficients:
    - Side force coefficient: direction in curl(lift,drag),
    - Yaw moment coefficient: rotation axis in dir(lift)
    - Roll moment coefficient: rotation axis in dir(drag)

Order of output
    - forces(drag,side,lift)
    - moments(roll,pitch,yaw)

Note
   - For force coeffs, front and rear axles' contributions are computed
2019-05-26 21:38:00 +01:00
1523160c16 ENH: Added new hydrostatic pressure function object
Calculates and outputs the pressure fields p_rgh and ph_rgh based on the
option that was previously hard-coded in the fireFoam solver

Usage
    Example of function object specification to calculate hydrostatic pressure:
    \verbatim
    hydrostaticPressure1
    {
        type        hydrostaticPressure;
        libs        ("libinitialisationFunctionObjects.so");
        ...
    }
    \endverbatim

    Where the entries comprise:
    \table
        Property     | Description             | Required    | Default value
        log          | Log to standard output  | no          | yes
        p_rgh        | Name of p_rgh field     | no          | p_rgh
        ph_rgh       | Name of ph_rgh field    | no          | ph_rgh
        pRef         | Name of pressure ref field | no       | pRef
        rho          | Name of density field   | no          | rho
        U            | Name of velocity field  | no          | U
        gh           | Name of gravity*height volume field  | no | gh
        ghf          | Name of gravity*height surface field | no | ghf
        nCorrectors  | Number of correctors when solving ph_rgh | no | 5
    \endtable

Note
    Calculates the hydrostatic pressure on construction/re-initialisation;
    the execute and write functions are not used.
2019-05-23 16:08:06 +01:00
db0678bf0e TUT: incorrect regex escaping in fvSchemes
- error trapped by C++11 regex
2019-05-30 14:26:15 +02:00
be3efed44b BUG: scalarBar range ignored in runTimePostProcessing
- was missing range setting for the colour lookup table
2019-05-30 12:02:56 +02:00
4f93bc3b5e ENH: support LLTMatrix, QRMatrix solve of indirect lists (#1220) 2019-05-29 11:49:08 +02:00
96d0a8f2af ENH: harmonize matrix constructors (#1220)
- generalize identity matrix constructors for non-scalar types

- add constructors using labelPair for the row/column sizing information.
  For a SquareMatrix, this provides an unambiguous parameter resolution.

- reuse assignment operators

STYLE: adjust matrix comments
2019-05-29 09:50:46 +02:00
2bdcd5b80d STYLE: prefix indexing, loop spacing in Matrix types 2019-05-23 12:47:54 +01:00
745624c024 ENH: partial overhaul of Matrix type (#1220)
- additional operators:
  + compound assignment
  + inner product: operator&
  + outer product: operator^

- additional functions:
   - MatrixBlock methods: subColumn, subRow, subMatrix
   - L2 norms for matrix or column
   - trace, diag, round, transpose

- MatrixBlock methods: col(), block() are deprecated since their
  access patterns with (size, offset) are unnatural/unwieldy.

- verifications by test/Matrix/Test-Matrix
2019-05-23 11:32:45 +01:00
3de7cd5207 STYLE: use dictionary checking methods in runTimePostProcessing
- make parallelProjection default (was previously mandatory)
2019-05-31 15:28:57 +02:00
7e29e165d7 STYLE: remove duplicate entries in annotated runTimePostProcessingDict 2019-05-31 12:02:56 +02:00
2413d4d898 STYLE: consistent brackets for Enum construction 2019-05-31 10:44:23 +02:00
2793cc652b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-05-13 13:13:55 -07:00
d44a72a1dd ENH: Moving reactingHeterogenousParcelFoam tut 2019-05-13 13:13:18 -07:00
4bbd0294bb ENH: add -excludePatches option for surfaceMeshExtract (#1315)
- simplify faceZone selection in surfaceMeshExtract
2019-05-10 17:11:47 +02:00
d63b031264 TUT: add "libfvMotionSolvers.so" to lumpedPointMotion tutorial
- uniformFixedValue was relocated from lib OpenFOAM
2019-05-10 13:12:33 +02:00
6c8f6a2f50 ENH: support all 12 Euler rotation orders (#1292)
- adjust naming of quaternion 'rotationSequence' to be 'eulerOrder'
  to reflect its purpose.

- provide rotation matrices directly for these rotation orders in
  coordinateRotations::euler for case in which the rotation tensor
  is required but not a quaternion.
2019-05-10 11:20:21 +02:00
2eeaa326d6 Revert "COMP: combine twoPhaseProperties library into interfaceProperties"
Modified revert of commit 6c6f777bd5.

- The "alphaContactAngleFvPatchScalarField" occurs in several
  places in the code base:

    - as abstract class for two-phase properties
    - in various multiphase solvers

  To resolve potential linking conflicts, renamed the abstract class
  as "alphaContactAngleTwoPhaseFvPatchScalarField" instead.

  This permits potential linking of two-phase and multi-phase
  libraries without symbol conflicts and has no effect on concrete
  uses of two-phase alphaContactAngle boudary conditions.
2019-05-08 18:48:52 +02:00
6630fb2b69 STYLE: adjust wording in compilation notes 2019-05-08 16:51:14 +02:00
e91ec2573c Merge branch 'feature-porting-mingw' into 'develop'
Feature porting mingw

See merge request Development/OpenFOAM-plus!258
2019-05-08 14:37:23 +01:00
0f1fcb97b5 ENH: additional MinMax span() and zero_one() methods 2019-05-08 12:12:00 +02:00
ac317699d8 ENH: additional HashTable emplace/insert/set methods (#1286)
- support move insert/set and emplace insertion.

  These adjustments can be used for improved memory efficiency, and
  allow hash tables of non-copyable objects (eg, std::unique_ptr).

- extend special HashTable output treatment to include pointer-like
  objects such as autoPtr and unique_ptr.

ENH: HashTable::at() method with checking. Fatal if entry does not exist.
2019-05-06 08:34:39 +02:00
e30dc962b3 STYLE: unnecessary read-check in ccm::writer 2019-05-07 20:39:20 +02:00
4b39c9f19b Merge branch 'feature-dynamicCode' into 'develop'
Feature dynamic code

See merge request Development/OpenFOAM-plus!255
2019-05-07 17:33:32 +01:00
23e5d43e4e ENH: add colour for x3d surface writer (#1057)
- can be used for outputing sampled surfaces in x3d format for direct
  import in other rendering tools.
2019-05-06 17:13:22 +02:00
3089a11647 STYLE: comments and parameter names for coordinateRotations::euler 2019-05-03 13:31:00 +02:00
675aa8053a ENH: support pointer cast from autoPtr 2019-05-03 09:59:53 +02:00
8b6f4a4bcf STYLE: use iterator for mutable access in masterUncollatedFileOperation 2019-05-03 11:27:23 +02:00
1dbe897930 Merge branch 'feature-MUSCS-SurfaceReact' into 'develop'
Reacting heterogeneous cloud

See merge request Development/OpenFOAM-plus!242
2019-05-02 19:40:26 +01:00
912009c458 ENH: overset: insert remote interpolation into lduMatrix
All remote contributions to interpolation stencils now
get added as 'processor' type lduInterfaces. This guarantees
a consistent matrix, e.g. initial residual is normalised to 1.

Second change is the normalisation of the interpolation discretisation
which uses the diagonal from the unmodified equation. This helps
GAMG.
2019-05-02 16:49:48 +01:00
c924a3639c ENH: GAMG: enable debug printing 2019-05-02 13:28:01 +01:00
d2462d4d37 ENH: use areaAverage instead of average for -func patchAverage (#1303)
- this corresponds more closely to the expected behaviour of a
  patch-average value being independent of the local face
  discretization
2019-05-02 13:15:49 +02:00
5507d11bdd Merge branch 'feature-reflectiveSolarLoad' into 'develop'
Feature reflective solar load

See merge request Development/OpenFOAM-plus!243
2019-05-02 10:45:45 +01:00
af9334631f INT: Updates for radiation modelling for integration into the develop branch 2019-05-02 10:40:16 +01:00
6f17d46b71 BUG: avoid memory leak caused by IOobjectList::filterObjects (#1286) 2019-05-01 17:22:52 +02:00
a85c55bbb5 ENH: ensure that content changes in coded objects are noticed (#1293)
- for codedFunctionObject and CodedSource the main code snippets
  were not included in the SHA1 calculation, which meant that many
  changes would not be noticed and no new library would be compiled.

  As a workaround, a dummy 'code' entry could be used solely for the
  purposes of generating a SHA1, but this is easily forgotten.

  We now allow tracking of the dynamicCodeContext for the coded
  objects and append to the SHA1 hasher with specific entries.
  This should solve the previous misbehaviour.

  We additionally add information about the ordering of the code
  sections. Suppose we have a coded function object (all code
  segments are optional) with the following:

      codeExecute "";
      codeWrite   #{ Info<< "Called\n"; #};

  which we subsequently change to this:

      codeExecute #{ Info<< "Called\n"; #};
      codeWrite   "";

  If the code strings are simply concatenated together, the SHA1 hashes
  will be identical. We thus 'salt' with their semantic locations,
  choosing tags that are unlikely to occur within the code strings
  themselves.

- simplify the coded templates with constexpr for the SHA1sum
  information.

- Correct the CodedSource to use 'codeConstrain' instead of
  'codeSetValue' for consistency with the underlying functions.
2019-05-01 14:00:54 +02:00
36112db110 ENH: modernize SHA1 classes (#1301)
- localize some functionality, std::array for digest internals.
  Additional append sub-string methods, pass-through write of digest
  etc.
2019-05-01 12:14:09 +02:00
83d26d19b5 ENH: replace processorFvPatchField specialization with 'if...' (#1304)
- only apply component-wise transformCoupleField for non-scalar types
2019-05-01 14:20:08 +02:00
c96a84e653 STYLE: use std::is_arithmetic in contiguous and ListPolicy 2019-05-01 11:25:34 +02:00
1d5e0a4e0e ENH: unify dlSym handling
- amalgamate dlSym() and dlSymFound() into a single dlSymFind() backend
  with optional 'required' argument. This makes it possible to
  query and assign at once.
2019-04-30 14:27:12 +02:00
26a391b1e9 ENH: no string quotes when using OSHA1stream (#1301)
- previously would have different SHA1 depending on whether the
  string was a C-string, a C++-string or if the SHA1 was calculated
  directly or via the OSHA1stream.

    - SHA1("string")
    - OSHA1stream << "string";
    - OSHA1stream << string("string");

  By avoiding string quoting on output, they now all deliver the same
  result. This also means that the following will no longer change the SHA1
  content, since it does not add anything:

    osha<< string() << string() << string() << string();

  This would have previously add a pair of double quotes each time!
2019-04-30 12:43:59 +02:00
e7a046858e COMP: avoid some implicit linkage (#1238) 2019-04-30 11:28:23 +02:00
06b2aa6849 COMP: skip CGAL rules when -DNO_CGAL is defined for surfaceBooleanFeatures 2019-04-30 10:33:01 +02:00
4a51239820 STYLE: restrict posix and ieee754 random tests (non-portable) to linux 2019-04-30 10:05:53 +02:00
d8e8306bbc BUG: interIsoFoam nAlphaSubCycles, nOuterCorrectors issue (fixes #1300)
- failed when nAlphaSubCycles > 1 and nOuterCorrectors > 1.
  Fixed thanks to Henning Scheufler (DLR Bremen).
2019-04-30 10:59:32 +02:00
ed6b26ba45 BUG: had clang++ instead of armclang++ 2019-04-29 21:10:14 +02:00
1ff33d0f9b GIT: adjust commits for modules 2019-04-29 19:47:39 +02:00
25e0182fca COMP: label64: fixes #1297. 2019-04-29 14:23:05 +01:00
897528da1a ENH: streamline handling of static/dynamic libs in detection scripts 2019-04-29 10:04:44 +02:00
beefee48d4 COMP: adjust compilation order with updated interdependencies
- Eg, with surface writers now in surfMesh, there are fewer libraries
  depending on conversion and sampling.

COMP: regularize linkage ordering and avoid some implicit linkage (#1238)
2019-04-28 14:44:33 +02:00
a54aff9d26 COMP: add wmake rules for mingw (#1238) 2019-04-28 13:36:50 +02:00
4941213880 COMP: combine twoPhaseProperties library into interfaceProperties
- avoids unnecessary cyclic dependency
2019-04-26 20:55:46 +02:00
59da4cf56d STYLE: use uintptr_t cast instead of long when reporting addresses 2019-04-29 08:15:48 +02:00
4a1208ed30 ENH: add handling of exe file extensions in wmake/src/Makefile (#1238)
- change internal naming from 'EXE_EXT' to 'EXT_EXE' for symmetry with
  'EXT_SO'
2019-04-26 14:20:01 +02:00
ffcff46f18 ENH: support trapping of IOerror exceptions in parallel (#1296)
- continuation of commit 0e7954c22b

ENH: downgrade abort() to exit() in some places (#1238)
2019-04-26 13:55:37 +02:00
849dffedb8 COMP: define processorFvPatchField<scalar> with scoping 2019-04-26 14:35:55 +02:00
6146667284 Merge branch 'feature-indirect-lists' into 'develop'
Feature indirect lists

See merge request Development/OpenFOAM-plus!253
2019-04-29 10:48:17 +01:00
ca2b94d1ac ENH: add simple profiling of MPI communications
See merge request Development/OpenFOAM-plus!254
2019-04-29 10:08:30 +01:00
5e01152779 ENH: Pstream: use commsType to decide whether reduce or all-to-all 2019-04-29 09:23:43 +01:00
70b12e0bd0 ENH: handle cellSet/cellZone updates in fvMeshSubsetProxy (#1294)
- now also track if the cellSet or cellZone has changed on point
  motion.
2019-04-26 13:34:00 +02:00
180a284814 ENH: add '==' and '!=' operators for PackedList/bitSet
- also available as equal() member function
2019-04-26 13:01:39 +02:00
e1609d16d1 STYLE: use degToRad() instead of pi/180 2019-04-26 11:48:27 +02:00
5f40a738d3 STYLE: adjust comments in quaternion
- make I/O operators global (non-member)
2019-04-26 10:27:53 +02:00
661d1f53df ENH: additional rotation tests (#1292) 2019-04-25 20:22:06 +02:00
bc53e50c90 CONTRIBUTION: gmshToFoam: support version 4 mesh format. Fixes #1155.
Patch contributed by Gavin Ridley.
2019-04-25 16:33:17 +01:00
d80198ec09 STYLE: use modern iterator access (proximity check) 2019-04-25 17:44:52 +02:00
828f8e8504 ENH: add simple profiling of MPI communications 2019-04-25 15:33:51 +02:00
53be19989b CONTRIBUTION: overset: handling patch interactions. See #1288.
- in case of cell overlapping a patch : set cell to hole always
- in case of cell changing from hole to calculated: set to hole
  and continue. Do so before 'flood filling' holes.
Patch supplied by Nicolas Edh.
2019-04-25 11:00:32 +01:00
bf30779b64 ENH: add partial sorting to SortableList 2019-04-24 19:03:00 +02:00
3a1a353483 STYLE: remove UList operator[] taking std::initializer_list
- unnecessary. Can deduce labelRange from the pair of labels.
  These are all the same:

      list[labelRange(18,3)] = 100;
      list[labelRange{18,3}] = 100;
      list[{18,3}] = 100;

  Removing the run-time handling of std::initializer_list in favour of
  compile-time deduction allows the future use of sliceRange as well.
  Eg,

     list[sliceRange{18,3,2}] = 100;
     list[{18,3,2}] = 100;
2019-04-24 18:26:57 +02:00
cad37cf603 BUG: magneticFoam: add orientation information. Fixes #1291. 2019-04-24 15:40:52 +01:00
2c72724393 STYLE: add sub-directories in OSspecific/POSIX 2019-04-24 13:15:54 +02:00
88cf93c4e7 BUG: missing guard for empty list (see b2bc1d6546) 2019-04-24 12:28:40 +02:00
391afe7854 STYLE: report read/write options as integers (see fb5940131e) 2019-04-24 12:28:40 +02:00
4d215d8e0d ENH: simplify access and caching logic for gradScheme (#1276) 2019-04-24 12:02:23 +02:00
ef0d15546a ENH: support checkIn/checkOut with pointers (#1276) 2019-04-24 10:26:41 +02:00
887236a155 CONTRIBUTION: Parallel: optimisation of exchange. See #1268.
- Enhancements provided by Y. Inoue at RIST (http://www.hpci-office.jp)
- Use allToAll to only swap local data (excludes master processor; saves memory)
- Memory saving is noticeable >= 4000 cores
2019-04-18 15:43:40 +01:00
606ef0dbde BUG: MeshObject: revert 17fe55a7c9.
This fixed the MeshObject on Time but produced problems for the
non-regIOobject MeshObjects.
2019-04-17 14:17:28 +01:00
f3eaf29ed1 COMP: resolved build error due to change in commit 02598d0e36 - need to revisit 2019-04-17 11:32:25 +01:00
9d6a4931c2 COMP: resolved compiler warning 2019-04-17 11:31:17 +01:00
159ee1d95f ENH: solverInfo - separated execute and write functionality 2019-04-17 09:24:54 +01:00
a6acce45b6 ENH: Added debug info 2019-04-17 09:18:18 +01:00
0f00ac2d8c ENH: mesh Vsc() calc - not using sub-cycle volume for steady cases 2019-04-17 09:14:58 +01:00
8b81dacfc4 ENH: Only store previous time name if it is not at the current head 2019-04-17 09:13:44 +01:00
e6ddde737a ENH: solutionControl - made dict() function virtual 2019-04-17 09:11:39 +01:00
29f40170de BUG: Sf field ignored for sumDirection operation (fixes #1287) 2019-04-16 18:32:07 +02:00
922c3c57d5 BUG: Sf field ignored for sumDirection operation (fixes #1287) 2019-04-16 18:32:07 +02:00
b3fa961991 ENH: add Ostream output for std::vector
- convenient when using data structures from other codes
2019-04-16 18:00:20 +02:00
2d7c266d37 STYLE: formatting in makefiles, config files
- fix typo in makefiles/info that affected wmake -show-compile-c

- additional safeguard in src/OpenFOAM/Make/options against self-linking.
  This is not normally required unless PROJECT_LIBS has been added into
  the link stage.
2019-04-16 12:39:25 +02:00
d14f181529 ENH: add tracking of label/scalar size when reading IOobject header
- extracts values from the arch "LSB;label=32;scalar=64" header entry
  to provision for managing dissimilar primitive sizes.

  Compensate for the additional IOobject members by narrowing the types
  for the (objectState, readOption, writeOption) enumerations
2019-04-16 12:23:01 +02:00
c2c00b121e ENH: add backslashes handling, UNC descriptors in fileName (#1008, #1238) 2019-04-16 12:18:20 +02:00
f0a68bfa58 BUG: MeshObject: do not release in destructor. Leave to regIOobject. Fixes #1276. 2019-04-15 15:06:57 +01:00
cd7748f8e4 BUG: bad '#line' directives for dynamicCode (fixes #1282)
- now suppress any '#line' if the input number number is invalid
  (ie, an empty set of tokens)
2019-04-15 12:42:29 +02:00
53d01c8a0a ENH: construct axisAngleRotation from x/y/z axis enumeration (#863)
- can be helpful for handling rotations within global planes
2019-04-15 09:55:43 +02:00
b6161f413f ENH: residuals: change FO name. See #1203 2019-04-15 10:01:35 +01:00
501662ebaa BUG: dry-run-write: avoid overwriting mesh 2019-04-15 09:43:14 +01:00
8928ac54bd COMP: use standard compiler macros when distinguishing the OS
- replace (darwin) with (__APPLE__)
- replace (solarisGcc) with (__sun__ && __GNUC__)
- instead of 'darwin' -> '__APPLE'

- cease with passing a -D$(WM_ARCH) define since this adds no useful
  additional information and isn't used anywhere.

Reference
http://nadeausoftware.com/articles/2012/01/c_c_tip_how_use_compiler_predefined_macros_detect_operating_system

--

COMP: Extend size disambiguation on long (#1238)
2019-04-12 18:42:30 +02:00
8d827f99a9 DEFEATURE: remove old IRIX code for floating-point-exceptions 2019-04-12 18:35:18 +02:00
32fe94063e CONFIG: eliminate compiler/linker enviroment variables (#517)
- with the changes added in #1256 and corresponding updates to
  ThirdParty we can stop exporting these variables:

  WM_CC WM_CFLAGS WM_CXX WM_CXXFLAGS WM_LDFLAGS
2019-04-12 15:48:06 +02:00
c320892aa2 COMP: use '-n' instead of '-np' for runParallel (#1238)
- options '-n' and '-np' are synonymous, but some mpiexec versions may
  only recognize '-n' and not '-np'
2019-06-04 17:51:20 +02:00
03de501310 STYLE: fix file permissions, inconsistent Test files 2019-06-04 17:50:18 +02:00
ee4300b0a1 CONFIG: wmake -show-xyz in more places (issue #1256) 2019-04-12 11:02:30 +02:00
787325a916 COMP: manage cpu architecture with cARCH, c++ARCH internal make variables
- allows better separation from compiler settings

- use -fPIC instead of legacy -KPIC for intel compiler
2019-04-12 12:59:11 +02:00
09cf9d9963 CONFIG: adjust settings for solaris and darwin
solaris:
  - rename WM_ARCH from SunOS to solaris64 for consistency with wmake/rules
  - drop non-64 solaris from wmake/rules
  - remove automatic selection of FJMPI. This should be done in the bashrc
    or prefs.sh file instead.
  - remove old (likely inaccurate) exported flags, rely on wmake -show-xyz
    or user config instead

darwin:
  - remove '-Ddarwin' from the exported WM_CFLAGS, WM_CXXFLAGS.
    Not used elsewhere (ThirdParty)
2019-04-12 11:06:45 +02:00
78e72563e3 BUG: inconsistent emissivity for externalWallHeatFlux (fixes #1280)
- the emissivity was ignored for 'hpTa' when there is no solid resistance

STYLE: adjust debug statement in externalWallHeatFlux
2019-04-12 10:24:38 +02:00
0a23ad3944 COMP: add safePrintStack in dummyPrintStack 2019-04-11 20:51:10 +02:00
0fab8abc76 COMP: adjust compilation order. Can compile OSspecific before Pstream
STYLE: report MPI flavour (WM_MPLIB) when making mpi-related libraries
2019-04-11 18:22:33 +02:00
40e4f8a293 STYLE: use labelUList instead of labelList for ListOps::identity 2019-04-11 16:20:53 +02:00
cf91655422 STYLE: remove unneeded, rarely used construct/assign List from BiIndirectList
- the only code location using BiIndirectList are debug sections
  within polyTopoChange.

  No need to construct/assign directly from a BiIndirectList since
  the '()' method provides a simple alternative.
2019-04-11 16:20:53 +02:00
3e1ee52c31 ENH: overset: overlap communications 2019-04-11 18:01:55 +01:00
765493b69f ENH: generalize indirect lists and support new types
- use an IndirectListBase class for various indirect list types.

- new SortList type

  In some places the SortList can be used as a lightweight alternative
  to SortableList to have the convenience of bundling data and sort
  indices together, but while operating on existing data lists.
  In other situations, it can be useful as an alternative to
  sortedOrder.  For example,

        pointField points = ...;

        labelList order;
        sortedOrder(points, order);

        forAll(order, i)
        {
            points[order[i]] = ...;
        }

   Can be replaced with the following (with the same memory overhead)

        pointField points = ...;

        SortList<point> sortedPoints(points);

        for (point& pt : sortedPoints)
        {
            pt = ...;
        }

- new SliceList type (#1220), which can be used for stride-based
  addressing into existing lists
2019-04-11 15:24:33 +02:00
64ed81b78f BUG: gmsh: skip empty lines. See #1155.
Fix provided by Gavin Ridley.
2019-04-11 11:07:28 +01:00
7cc9961ff2 BUG: gmsh: skip empty lines. See #1155.
Fix provided by Gavin Ridley.
2019-04-11 11:07:28 +01:00
f76733711b ENH: reorganize cpuTime into C++ and POSIX versions (#1238) 2019-04-11 11:00:28 +02:00
b56fbc4377 ENH: replace OSspecific clockValue with std::chrono version (#1278)
- aids with portability and maintenance (#1238)
2019-04-11 10:07:54 +02:00
51aae5f34d CONFIG: bump API to 1904 for changes in interaction with external MPI 2019-04-10 18:00:04 +02:00
eb6ccdf7b1 CONFIG: adjust adios config paths 2019-04-10 16:08:21 +02:00
e79cdf9f8f Merge branch 'feature-pstream-initialize' into 'develop'
better cooperation with external MPI initialize / finalize

See merge request Development/OpenFOAM-plus!252
2019-04-10 14:42:11 +01:00
29f9a3db27 ENH: make gravity mesh object unmovable and properly registered (#1276)
- change from UpdateableMeshObject to TopologicalMeshObject

- change inheritance order to have MeshObject be registered first
  and mark the IOobject descriptor as unregistered
2019-04-10 12:54:32 +02:00
b4f1092b3a BUG: snappyHexMesh: attraction distance mapping. Fixes #941. 2019-04-10 10:34:50 +01:00
805cc59543 ENH: force clearing of Time objectRegistry on destruction (#1276)
- the objectRegistry destructor seems to be called too late.
  Explicitly clear the objectRegistry within the Time destructor to
  ensure that it always happens.
2019-04-10 11:30:31 +02:00
eea4eb89c9 ENH: cellVolumeWeight: removed printing. 2019-04-10 11:05:25 +01:00
139222604f BUG: snappyHexMesh: attraction distance mapping. Fixes #941. 2019-04-10 10:34:50 +01:00
cbc3953f26 Revert "BUG: snappyHexMesh: attraction distance mapping. Fixes #941."
This reverts commit 708e650990.
2019-04-10 10:32:18 +01:00
181e0b75d3 GIT: restore submodule indices accidentally changed by 708e650990 2019-04-09 09:08:54 +02:00
bff4962dc5 ENH: add PDRblock::null() member - reference to NullObject 2019-04-09 09:05:38 +02:00
0db59d392e Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2019-04-08 09:09:46 -07:00
72bf9a3558 ENH: Reducing tolerance for the cellVolumeWeight search 2019-04-08 09:08:07 -07:00
d8d95a6c95 BUG: ensight writer using incorrect first mesh time (fixes #1273)
- used fallback of 0 instead of the results time.
  This discrepancy caused the case file to have two timesets that
  only differed by the first (incorrect) entry.
2019-04-08 16:58:47 +02:00
f79f79421c BUG: ensight writer using incorrect first mesh time (fixes #1273)
- used fallback of 0 instead of the results time.
  This discrepancy caused the case file to have two timesets that
  only differed by the first (incorrect) entry.
2019-04-08 16:58:47 +02:00
7cd40afa3a BUG: snappyHexMesh: attraction distance mapping. Fixes #941. 2019-04-08 13:19:41 +01:00
eb0c35dc6a STYLE: drop use of objToVTK conversion in viewFactors 2019-04-08 12:20:56 +02:00
f0f4af16d2 Merge remote-tracking branch 'origin/master' into develop 2019-04-08 12:05:24 +02:00
8ab09daad0 BUG: foamToVTK writes to undecomposed case (closes #1271)
- when running in serial but within a processor directory,
  argList::globalPath() is to be used instead of Time.globalPath()
  For other cases there is no difference.
2019-04-08 11:53:50 +02:00
45e716f790 COMP: class/struct consistency between forward declaration and definition
- silence clang warnings
2019-04-06 16:15:29 +02:00
39c91d8440 ENH: support HashTable iterator pointer dereference 2019-04-06 16:00:21 +02:00
d4eb17a9ff ENH: new sliceRange class
- this is somewhat like labelRange, but with a stride.
  Can be used to define slices (of lists, fields, ..) or as a range specifier
  for a for-loop. For example,

      for (label i : sliceRange(0, 10, 3))
      {
          ...
      }
2019-04-06 15:07:53 +02:00
06e709c26f ENH: added labelRange += and -= operators
- removed unused decrement() and increment() methods, which provided
  identical functionality as the ++, +=, --, -= operators.
2019-04-06 15:07:53 +02:00
a9747b90b1 ENH: Correcting order of the compressibleContErr.H in comp solvers.
Adding pMin,Pmax pressure control to buoyantPimple and
chtMultiReagion
2019-04-05 14:15:17 -07:00
e05b85fa4e ENH: adding total isentropic pressure option 2019-04-05 09:43:28 -07:00
312c97b47f Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-04-05 09:23:04 -07:00
a57574a8b2 ENH: Reducing tolerance used in the search for cellVolumeWeight 2019-04-05 09:21:05 -07:00
968b95d0cf ENH: Bounding htc for qDot close to zero 2019-04-05 09:20:09 -07:00
63a1826211 ENH: provide 'sanitized' values for wmake -show compiler information (#1256)
- with the wmake rules we may have some compiler options bound to the
  internal compiler variable. For example,

     CC  = g++ -std=c++11 -m64

     c++FLAGS = ...

  So shift any flags from CC to CXXFLAGS for the output of
  'wmake -show-cxx', 'wmake -show-cxxflags', etc.

  This makes it much easier to handle the values correctly elsewhere.
  Eg,

      CXX="$(wmake -show-cxx)" CXXFLAGS="$(wmake -show-cxxflags)" \
         ./configure
2019-04-05 15:30:30 +02:00
cd91a252ac ENH: improve handling of pt-scotch headers/libraries
- provide dedicated detection 'have_ptscotch' function that can be
  used after the 'have_scotch' function.

  It sets the PTSCOTCH_ARCH_PATH, PTSCOTCH_INC_DIR, PTSCOTCH_LIB_DIR
  and helps when the serial and parallel versions are located with
  different logic.
2019-04-05 13:10:53 +02:00
693afb5408 BUG: surfaceWriter::expire() should not affect the expected nFields() count
- the writer nFields() is a separate type of accounting (currently
  only needed by VTK legacy) and is independent of the geometry.
2019-04-05 12:03:41 +02:00
a2bd63869d CONFIG: incorrect location for site appbin, libbin (fixes #1270)
- still had old WM_PROJECT_VERSION settings instead of FOAM_API
  for FOAM_SITE_APPBIN and FOAM_SITE_LIBBIN locations.
2019-04-03 23:55:49 +02:00
49ba6a8e94 ENH: Updating overRhoSimpleFoam and overSimpleFoam to use
oversetInterpolationSuppressed dict.
2019-04-03 12:55:33 -07:00
07ec741e2a ENH: add OSspecific/MSwindows (#1238) 2019-04-03 19:00:06 +02:00
ae94509f42 ENH: wrap internal POSIX directory reading as an iterator class 2019-04-03 17:34:56 +02:00
273da720cd CONFIG: bump patch level 2019-04-03 16:44:32 +02:00
af0dc60fa1 STYLE: reduce indentation in mkDir, minor logic simplication 2019-04-02 16:56:00 +02:00
c24fbfd7e3 ENH: improve code isolation for signal-handling
- file-local static for saving the old action, which moves system
  dependencies out of the header files.

- set/reset of signals as file-local functions

STYLE: use csignal header instead of signal.h
2019-04-02 11:38:09 +02:00
36fae9fd98 ENH: open standard file streams with ios_base::binary
- this improves overall consistency and is independent of higher level
  tagging as ASCII or BINARY for IFstream, OFstream etc.
2019-04-02 22:05:13 +02:00
567fced30b ENH: add pTraits<complex> (#1247) 2019-04-04 19:00:29 +02:00
fe71bbd013 STYLE: use constexpr for pTraits rank 2019-04-04 17:40:06 +02:00
1c4e32fb6a ENH: add iterators to VectorSpace (#1265)
- this adds support for various STL operations including

    * sorting, filling, find min/max element etc.
    * for-range iteration

STYLE: use constexpr for VectorSpace rank
2019-04-04 17:14:27 +02:00
f3670521cd STYLE: use std:: qualifier on ::abort, ::exit
- consistent with use of <cstdlib> and makes for a stronger distinct
  from Foam::abort etc.
2019-04-03 20:24:30 +02:00
dd9b7d3d7e STYLE: make some OSspecific constructors explicit 2019-04-02 15:36:16 +02:00
332cf3345a ENH: emit "constant" for uniform constant field (#1269)
- this improves overall consistency and makes re-reading as a generic
  patch field behave properly when the underlying patch has zero size.
2019-04-04 16:23:41 +02:00
c53459d4a2 STYLE: simplify if nesting in generic patch fields (#1269)
- use git show/diff -w when viewing
2019-04-04 12:41:09 +02:00
939144233c STYLE: adjusted wording and messages for wmake
- add an additional test for wmake pre-processing
2019-04-03 08:57:01 +02:00
baaf8d6bc9 ENH: add fileName::concat static method
- similar to the global '/' operator, but taking raw strings and not
  performing any stripping.

  Was previously a local function within POSIX.C, but it is useful enough
  to be in fileName itself.
2019-04-05 09:42:25 +02:00
d5c01f1aa4 ENH: support external MPI initialize / finalize (#1266) 2019-04-01 18:44:23 +02:00
cb250f59f3 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-04-01 08:30:41 -07:00
1a13cd273b ENH: Adding new Gaussian power profile for laser 2019-04-01 08:29:56 -07:00
89245fa796 ENH: allow space char in fileName is now configurable (#1008)
- having whitespace in fileName can be somewhat fragile since it means
  that the fileName components do not necessarily correspond to a
  'Foam::word'. But in many cases it will work provided that spaces
  are not present in the final portion of the simulation directory
  itself.

    InfoSwitches
    {
        // Allow space character in fileName (use with caution)
        allowSpaceInFileName    0;
    }

- now use doClean=true as default for fileName::validate(). Was false.

  Unlike fileName::clean() this requires no internal string rewrite
  since the characters are being copied.  Also handle any path
  separator transformations (ie, backslash => forward slash) at the
  same time. This makes it resemble the std::filesystem a bit more.
2019-04-01 16:40:22 +02:00
54c10e651d STYLE: gravity: whitespace 2019-04-04 14:52:04 +01:00
9cd72b2bb8 BUG: uniformFixedValue: fix tutorials. See #1046. 2019-04-04 09:24:42 +01:00
a01b05b8c4 ENH: renumberMesh: renumber refinement data. Fixes #1241. 2019-04-01 09:48:23 +01:00
51bf7af8ae ENH: support wmake -show options for compiler information (#1256)
- can be useful for retrieving the compilation flags for use with other
  make systems (eg, cmake)

  * wmake -show-compile   (C++ not C)
  * wmake -show-cxx
  * wmake -show-cxxflags
2019-04-01 09:03:48 +02:00
4f052ac95f STYLE: missing inline specifier (#1263) 2019-04-01 07:51:54 +02:00
baddaee77b STYLE: missing inline specifier (#1263) 2019-04-01 07:51:54 +02:00
23c8bbe0c5 TUT: include samples instead of cuttingPlane (closes #1254) 2019-03-29 12:32:21 +01:00
ba8e5c0ffc TUT: include samples instead of cuttingPlane (closes #1254) 2019-03-29 12:32:21 +01:00
37819905c2 ENH: add some function support for complexField (#1247)
- operators are still incomplete, as are dimensioned fields,
  field-fields etc.

- split complexFields into separate complexField, complexVectorField files
2019-03-29 11:57:02 +01:00
fcba64913a ENH: conversion and function improvements for complex (#1247)
- add construction from and conversion to std::complex, which allows
  easier wrapping of functions

- add Foam:: functions for complex versions of sin, cos, ...
2019-03-29 11:03:48 +01:00
9be923fc56 BUG: PBiCGStab: check minIter. Fixes #1052. 2019-03-27 16:29:52 +00:00
9cf085a68c ENH: add min/max method to PDRblock::location (#1216)
- grid(i,j,k) method for returning the grid point at an i-j-k location
2019-03-27 14:43:44 +01:00
5ab1021211 ENH: overset: move to oversetInterpolationSuppressed. Part of #1041. 2019-03-28 15:17:13 +00:00
06a4d424eb BUG: PBiCGStab: check minIter. Fixes #1052. 2019-03-27 16:29:52 +00:00
83e321d3e4 ENH: snappyHexMesh: allow cross-patch merging of patch faces. Fixes #1255. 2019-03-27 15:04:48 +00:00
bc487d1c81 STYLE: remove deprecated bitSet::used() method
- The 'used()' method was for transitional compatibility with the now
  defunct PackedBoolList.

  The canonical method name for returning a labelList of 'on' bits is
  toc().
2019-03-27 09:04:13 +01:00
56b7145a2f STYLE: move bitSet '~' member operator to be a global operator instead 2019-03-27 08:46:10 +01:00
1788bce0a2 ENH: changed definition of complex::one (#1247)
- was historically defined as (1 1), but it is more consistent with
  the concept of one to have a real component only.

  Now defined as (1 0):  1+0i

STYLE: remove obscure '!' operator for complex conjugate

- either use the member function or the '~' operator
2019-03-27 08:24:03 +01:00
f513f8bec6 ENH: extrudeMesh: -dict. See #1253 2019-03-27 10:39:35 +00:00
33894bf893 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2019-03-26 10:58:14 -07:00
c787edc846 ENH: Delete unused Qin_ variable on laserDTRM.H 2019-03-26 10:57:45 -07:00
44d7dc8545 BUG: dereference invalid autoPtr in XiEngineFoam (fixes #1250) 2019-03-26 09:42:27 +01:00
b319e058e2 ENH: Adding Function1 functionality to rpm in swirlFanVelocityFvPatch 2019-03-25 10:13:00 -07:00
409072ce59 Merge branch 'snappyHexMesh-proximityCheck' into 'develop'
Snappy hex mesh proximity check

See merge request Development/OpenFOAM-plus!249
2019-03-25 16:49:50 +00:00
6c3f2f4df1 Snappy hex mesh proximity check 2019-03-25 16:49:50 +00:00
1561a46927 ENH: limitedSnGrad: added debug writing 2019-03-25 15:42:29 +00:00
a1999bc92c ENH: additional construct/assignment methods for complex (#1247)
- construct/assign from Zero
2019-03-25 15:17:58 +01:00
a33f1787b7 ENH: globalIndex: helper function to get remote values 2019-03-21 17:55:05 +00:00
ae719b87b5 ENH: exact: use parallel decomposition method 2019-03-20 15:29:47 +00:00
d0f1198b73 TUT: add reconstructPar for interIsoFoam/iobasin (issue #1244) 2019-03-22 17:42:36 +00:00
6301866a9c STYLE: use 'statusDone' keyword for coupling (#1243) 2019-03-22 08:00:01 +01:00
ac646d48b7 ENH: make external file coupling status= configurable (#1243) 2019-03-21 17:26:16 +01:00
a48dc227d4 STYLE: fix comment 2019-03-21 09:49:56 +01:00
f679ab4300 STYLE: adjust some internal variables names in hierarchGeomDecomp 2019-03-20 12:02:42 +01:00
4bb2b8a06a STYLE: docs for activePressureForceBaffleVelocity 2019-03-19 13:36:16 +01:00
5a10b1e2d2 ENH: support VTK multi-piece output for surfaces 2019-03-19 10:03:14 +01:00
123087bb32 ENH: support VTK output of uniform field 2019-03-19 09:45:52 +01:00
0a03ed43bb ENH: add transfer for simple MeshedSurface components 2019-03-18 18:17:22 +01:00
a828af280d GIT: update completion_cache 2019-03-15 17:38:57 +01:00
4995fc5997 ENH: add findCell for PDRblockMesh 2019-03-14 16:24:20 +01:00
ace1491df3 STYLE: narrow represention for boundBox bits enums
- add boundBox::directionBit enum which contains the same values as the
  treeBoundBox::octantBit enum, but without the attached meaning
2019-03-15 16:23:10 +01:00
cdb36e08e9 COMP: provision for non-existence of bessel functions
- These are not defined in the C++ standard for cmath, so allow for
  compilation without them. Will need to provide replacements in the
  future or rework.
2019-03-15 11:19:15 +01:00
5f0714fe5b COMP: use intptr_t instead of long for hashing pointers 2019-03-15 10:03:12 +01:00
a9096858f6 COMP: update endian macros. More universal syntax, less clutter. 2019-03-15 09:10:21 +01:00
487877377d ENH: reorganize regular expressions and add C++11 regex support
- new regExpCxx wrapper for C++11 regex support with drop-in
  compatibility with existing code.

- regExpPosix (was regExp), for future phase out in favour of regExpCxx.

- The regExp header will continue to be used for defining an
  appropriate typedef corresponding to the preferred implementation.
2019-03-14 13:24:23 +01:00
e0e0414726 STYLE: relocate endian from OSspecific to OpenFOAM/primitives
- this information is more related to processor, not OS
2019-03-14 12:12:16 +01:00
931bd1d6d1 STYLE: consistent handling of fileName concatenation (POSIX) 2019-03-14 11:48:53 +01:00
d2eb50832c ENH: add handling of lib/exe file extensions in makefile (#1238)
- relocates some logic from makefiles/general into platform-specific
  overrides
2019-03-14 10:42:57 +01:00
5f527c28aa ENH: rhoPimpleAdiabaticFoam: unused code 2019-03-14 12:45:02 +00:00
7d077626d3 ENH: moveDynamicMesh: add -overwrite option. Fixes #1233. 2019-03-13 15:43:38 +00:00
98e8b7ffed STYLE: correct documentation for fanFvPatchField (#1229)
- for more clarity, make read/write of rpm and mean-diameter contingent
  on nonDimensional == true
2019-03-14 08:19:15 +01:00
8bd6568d05 ENH: added areaWrite function object (#1237)
- write finiteArea meshes and fields to standard surface output
  formats (Ensight, VTK, etc).
2019-03-13 19:44:51 +01:00
9e57e2120b STYLE: make some sampledSurfaces methods protected
- less used bookkeeping/convenience methods that may be phased out
  in the future
2019-03-13 17:27:33 +01:00
ef1df59fcf STYLE: checkIndex for bitSet, PackedList only on FULLDEBUG (#1235) 2019-03-13 14:40:38 +01:00
1a35a3ef0f ENH: surface writers now track their own write status
- instead of deciding beforehand if a surface format requires a separate
  geometry file (or if a geometry file should be written if no fields were
  written) now determine afterwards if something was written.

  This improves the overall reliability (consistency) and is more
  convenient for the caller as well.
2019-03-13 14:13:04 +01:00
47b0de6d68 STYLE: fix doxygen comment for vtkWrite 2019-03-13 12:54:44 +01:00
9149b3579a ENH: PtrList and PtrListOps improvements
- PtrDynList support for move append list:
  can be used to concatenate pointer lists into a single one

- include resize in PtrDynList squeezeNull as being a natural
  combination

- support sorting operations for pointer lists (PtrListOps)
2019-03-13 10:53:28 +01:00
c2f59af036 ENH: minor improvements for plane
- comparison operator, for sorting based on the position of the origin.

- allow modification of the origin.

- zero-initialise for null constructor: base components are vectors
  and cheap to initialise.

- 'unfriend' the output operator: it uses public access methods
2019-03-13 08:00:39 +01:00
a2fb1d0bdd COMP: add wmake rules for Pgi compiler (#1234) 2019-03-11 15:56:40 +01:00
8b63d63444 COMP: rename variable to avoid confusion with 'restrict' keyword
- considered an error by the PGI compiler
2019-03-11 17:52:02 +01:00
46a853bc80 ENH: add bar/Pa conversions 2019-03-11 18:37:18 +01:00
0983eae192 COMP: OSspecific dependency on pthread no longer exists (#614) 2019-03-11 15:56:40 +01:00
e46b241378 CONFIG: bump API version number to 1902 to register changes in surface writers 2019-03-11 15:28:55 +01:00
bbd8b15437 BUG: incorrect return type for T() method. Regression from 3019f30b12 2019-03-11 15:27:36 +01:00
773ec00d4b ENH: improved consistency of surface writers (#1232)
- remove writeGeometry() in favour of write() and make it pure virtual
  so that all writers must explicitly deal with it.

- establish proxy extension at construction time and treated as an
  invariant thereafter. This avoids potentially surprising changes in
  behaviour when writing.
2019-03-11 15:09:03 +01:00
7a5e72978a COMP: runTimePostProcessing build with VTP+MPI fails (#1231)
- incorrectly uses paraview include dirs instead of the more universal
  vtk include dirs for the MPI test.
2019-03-11 11:04:18 +01:00
5d445f4ed6 ENH: suppress cell/patch/proc ids for foamToVTK (#1230)
- reduces output size, consistent with vtkWrite function object

STYLE: mark some foamToVTK options as advanced (ie, visible with -help-full)
2019-03-11 11:02:58 +01:00
aafbca93b2 ENH: old-time field: avoid reading in postprocessing mode. Fixes #1228. 2019-03-06 11:35:16 +00:00
aacb7b0c35 BUG: faMesh: support for multi-region moving meshes. See #1170. 2019-03-04 11:00:52 +00:00
ebb6a0272e BUG: faMesh: support for multi-region moving meshes. See #1170. 2019-03-04 11:00:52 +00:00
ce947eeb09 STYLE: relocate -mcpu into compiler instead of compiler-flags (#1225) 2019-03-01 18:34:05 +01:00
ec93384c1d COMP: adjust ARM compilation flags (#1225)
- with -mcpu=native for automatic detection and -armpl for linking in
  the performance libraries

STYLE: relocate -mcpu into compiler instead of compiler-flags (#1225)
2019-03-01 18:20:41 +01:00
f01849ffd4 COMP: adjust ARM compilation flags (#1225)
- with -mcpu=native for automatic detection and -armpl for linking in
  the performance libraries
2019-03-01 18:20:41 +01:00
12adfe13fa ENH: update empty sampled surfaces storage (#1217)
- also store empty sampled surfaces, otherwise we miss geometry updates.
2019-03-01 14:50:54 +01:00
97be0673dc ENH: additional constructors for IjkField 2019-02-27 08:01:19 +01:00
8a459cdba6 ENH: use 0.0-value instead of -value for inv(dimensionSet)
- the automatic rounding avoids generation of negative zero values.
  For other exponent values it has no effect.
2019-02-26 22:43:56 +01:00
d50c5ce86f ENH: DEShybrid - added robustness for case that nuEff goes negative (typically from negative denisty in compressible cals). See #1224 2019-03-01 11:30:20 +00:00
f330921c74 GIT: remove backup file 2019-03-01 08:05:13 +01:00
f37942b388 ENH: potentialFoam: add region functionality. Fixes #1223.
Also implements combination of -region and -dry-run
2019-02-28 17:04:46 +00:00
a3c239af84 BUG: snappyHexMesh: deal with non-compact regions. Fixes #1221. 2019-02-28 15:09:32 +00:00
71e6e10458 ENH: use cellPoint interpolation directly for surfaceFieldValue (#1212)
- prior to sampledSurface supporting different interpolation schemes a
  workaround means was used to simulate cellPoint -> face
  interpolation, with averaging of vertex interpolation.

  We instead now use cellPoint interpolation directly for the face
  values when 'interpolate=true'.
2019-02-25 18:40:35 +01:00
8a7d8e74fe BUG: dereference invalid autoPtr in XiEngineFoam (fixes #1250) 2019-03-26 09:42:27 +01:00
f200fc1363 ENH: improve findInstance handling of negative times (#1112)
- normally findInstance will 'bottom out' with the constant directory
  while doing its reverse time search. This mechanism however fails
  when searching for negative start values (if there are none in the
  list). Add additional logic for this so that constant will also be
  used in these situations.

Note: to have decomposePar work for all times, may need the -constant option
to trigger the proper time list.
2019-03-26 09:16:57 +01:00
a1fe76e749 STYLE: add 'coeffs' to annotated decomposeParDict 2019-03-26 08:27:33 +01:00
c4a13897a1 STYLE: minor adjustments for fan tables (#1229) 2019-03-26 08:17:53 +01:00
c0e5f77e4f STYLE: avoid nullptr when writing fan RPM 2019-03-26 07:59:44 +01:00
b1bbd50fe4 ENH: additional constructor and methods for PDRblock (#1216)
- construct from positions

- reset positions, minEdgeLen, find grid index

ENH: add accessor for obtaining the size of a single i-j-k dimension

- eg, obtain the 'i' dimension with any of these methods:

      ijkAddr.size(vector::X)
      ijkAddr.sizes().x()
      ijkAddr.sizes()[0]
2019-03-25 12:53:45 +01:00
b675d13490 STYLE: consistent polyMesh owner/neighbour note
- had different spacing depending if defined from faces or shapes

- reinstates commit f7413b27b7 from history repository
2019-02-25 13:11:33 +01:00
c9549ba6a4 GIT: added PDRblockMesh to Allwmake 2019-02-25 07:46:21 +01:00
4d499d3c20 ENH: basic i-j-k Field container (#1216)
- this is a simple container for fields with i-j-k addressing.

  It does not support field operations directly, but is primarily
  intended to be used when assembling field information with i-j-k
  logic. After assembly, the field can be transferred to a regular
  field for normal operations.  Eg,

      IjkField<scalar> assemble({15, 16, 200});

      // .. fill in i-j-k fields

      Field<scalar> final(std::move(assemble));
      assemble.clear();   // be pedantic
      ...
2019-02-24 18:16:17 +01:00
e9323ecbbb STYLE: use finiteVolume in Make/options placeholder 2019-02-24 17:32:13 +01:00
84270ed667 ENH: new PDRblockMesh mesh generation utility (issue #1216)
- While a rectilinear mesh can be created with blockMesh, not every mesh
  created with blockMesh will satisfy the requirements for being a
  rectilinear mesh.

  This alternative to blockMesh uses a single block that is aligned
  with the xy-z directions and specifications of the control points,
  mesh divisions and expansion ratios. For example,

    x
    {
        points  ( -13.28 -0.10 6.0 19.19 );
        nCells  (  10  12 10 );
        ratios  ( 0.2   1  5 );
    }

    y { ... }
    z { ... }

  With only one block, the boundary patch definition is simple and the
  canonical face number is used directly. For example,

    inlet
    {
        type    patch;
        faces   ( 0 );
    }
    outlet
    {
        type    patch;
        faces   ( 1 );
    }

    sides
    {
        type    patch;
        faces   ( 2 3 );
    }

    ...

- After a mesh is defined, it is trivial to retrieve mesh-related
  information such as cell-volume, cell-centres for any i-j-k location
  without an actual polyMesh.

STYLE: remove -noFunctionObjects from blockMesh

- no time loop, so function objects cannot be triggered anyhow.
2019-02-23 15:45:32 +01:00
94a3d0249b STYLE: mention -doc-source option under -help-full instead of under -help 2019-02-24 11:40:09 +01:00
33edea3ea4 ENH: add directory support for foamCleanTutorials 2019-02-23 19:59:04 +01:00
5de5ae35ba ENH: add labelVector2D definition
- can be useful for 2D mesh dimensioning or possibly for matrices
2019-02-22 18:11:00 +01:00
bdf57fb44e ENH: support addPatches with PtrList 2019-02-22 18:11:00 +01:00
7795adfcb4 ENH: additional PtrList constructor and memory management method
- PtrList::release() method.

  Similar to autoPtr and unique_ptr and clearer in purpose than
  using set(i,nullptr)

- Construct from List of pointers, taking ownership.

  Useful when upgrading code. Eg,

     List<polyPatch*> oldList = ...;
     PtrList<polyPatch> newList(oldList);
     ...

BUG: incorrect resizing method names (PtrDynList) in previously unused code
2019-02-22 15:55:17 +01:00
683817bcab BUG: incorrect increment introduced by c508da8f37 2019-02-22 13:36:39 +01:00
57d2eabc6f DEFEATURE: remove surfMesh samplers - superseded by sampledSurfaces
- this functionality was originally added to allow sampling of volume
  fields onto a surface in order to perform calculations on them.

  However, the sampling framework essentially mirrored the
  sampledSurface, but was less complete.

  It is now possible to store sampled surfaces on a registry and
  do calculation with their fields. This is the preferred method,
  and thus removing the surfMeshSample duplicate code.
2019-02-22 13:06:34 +01:00
647a86b7d1 ENH: avoid updating sampled surfaces unless necessary 2019-02-22 12:51:23 +01:00
e2228aab8a ENH: avoid references to temporaries in surfaceWriter
- previously wrapped raw points/faces with a meshedSurfRef on input,
  but now handle the raw -> meshedSurf logic directly within
  surfaceWriter to avoid holding references to temporaries

  Since the updated meshedSurfRef is now modifiable, it can be used
  directly as a redirection mechanism within surfaceWriter.

- add explicit close() in destructor
2019-02-22 11:40:58 +01:00
0ca95ac0cf ENH: additional constructors and methods for meshedSurfRef
- construct null, clear() and reset() methods
2019-02-22 11:10:53 +01:00
e322894476 STYLE: pass points, faces instead of meshedSurfRef in surfaceFieldValue
- removes a layer of opacity and may help with future restructuring
2019-02-22 11:08:07 +01:00
680ca78897 BUG: new surface writer loses serial/parallel preference (fixes #1214) 2019-02-22 10:21:01 +01:00
dcdc9e68f8 STYLE: improved layout and bool vs Switch for some CloudFunctionObjects
- add output verbosity in debug mode
2019-02-22 09:29:08 +01:00
8760f6c9a9 ENH: minor improvements to fvMeshDistribute (#1211)
- sorted field names for consistency, remove some local variables
2019-02-20 15:02:59 +01:00
7da0b5bee1 ENH: trap negative blockMesh expansions and treat as their inverse
- A negative expansion ratio is geometrically invalid and will
  normally cause issues (FatalError).
  However, we can trap this type of input and interpret it as the
  inverse expansion ratio - ie, the expansion ratio in the opposite
  direction. This can be especially convenient when generating a blockMesh
  with a symmetrical expansion. It permits using the same expansion
  ratio (with a sign change) instead of providing the reciprocal values
  manually.

COMP: revert demand-driven point creation in blockMesh (db9b35b50d)

- appears to have caused a dangling reference on some systems

ENH: add a lightweight ijkAddressing class

- it can be used for an i-j-k to linear lookup of meshes or fields,
  where applicable.
2019-02-21 19:04:22 +01:00
1dc9e7c4f4 BUG: Fixing entry consistency in PhaseMixtureEThermo.C
and reading dpdt in one basicThermo constructor
2019-02-20 16:45:12 -08:00
4b1eea0cf1 Merge branch 'feature-postpro' into 'develop'
Feature postpro

See merge request Development/OpenFOAM-plus!236
2019-02-20 19:43:43 +00:00
58471a332b ENH: Forces function object - more feedback at run-time for user field selections 2019-02-20 12:37:17 +00:00
17260280a4 ENH: Forces function object - user can now select bin limits 2019-02-20 12:36:37 +00:00
c83f3eda02 ENH: hydrostaticPressure FO - updated handling of pRef 2019-06-14 09:53:49 +01:00
7322f73a31 Merge branch 'feature-isoAdvectorWithMorphingMeshes' into 'develop'
Introduced changes required to make isoAdvector and interIsoFoam work with...

See merge request Development/OpenFOAM-plus!257
2019-06-13 21:35:20 +01:00
61c87b5552 Introduced changes required to make isoAdvector and interIsoFoam work with morphing meshes: 1) In the alphaEqn.H U is made relative to mesh motion before the interface advection step, 2) in isoAdvection::advect() alpha must be multiplied by Vsc0()/Vsc(). Implementation tested and verified with 1) a spherical interface in a cubic domain with no flow, where the domain walls are squeezed together and 2) a spherical interfacee inside the sloshingCylinder, again with no flow, so the sphere should stay spherical, which it does. 2019-04-30 16:07:48 +02:00
33ef139ac1 ENH: Digital-Filter Based Synthetic Turbulence Generation Method for LES/DES Inflows
Velocity boundary condition generating synthetic turbulence-alike
    time-series for LES and DES turbulent flow computations.

    To this end, two synthetic turbulence generators can be chosen:
    - Digital-filter method-based generator (DFM)

    \verbatim
    Klein, M., Sadiki, A., and Janicka, J.
        A digital filter based generation of inflow data for spatially
        developing direct numerical or large eddy simulations,
        Journal of Computational Physics (2003) 186(2):652-665.
        doi:10.1016/S0021-9991(03)00090-1
    \endverbatim

    - Forward-stepwise method-based generator (FSM)

    \verbatim
    Xie, Z.-T., and Castro, I.
        Efficient generation of inflow conditions for large eddy simulation of
        street-scale flows, Flow, Turbulence and Combustion (2008) 81(3):449-470
        doi:10.1007/s10494-008-9151-5
    \endverbatim

    In DFM or FSM, a random number set (mostly white noise), and a group
    of target statistics (mostly mean flow, Reynolds stress tensor profiles and
    length-scale sets) are fused into a new number set (stochastic time-series,
    yet consisting of the statistics) by a chain of mathematical operations
    whose characteristics are designated by the target statistics, so that the
    realised statistics of the new sets could match the target.

    Random number sets ---->-|
                             |
                         DFM or FSM ---> New stochastic time-series consisting
                             |           turbulence statistics
    Turbulence statistics ->-|

    The main difference between DFM and FSM is that the latter replaces the
    streamwise convolution summation in DFM by a simpler and a quantitatively
    justified equivalent procedure in order to reduce computational costs.
    Accordingly, the latter potentially brings resource advantages for
    computations involving relatively large length-scale sets and small
    time-steps.
2019-02-18 20:12:48 +00:00
350fe1a2d8 ENH: add query function isAdjustTimeStep() 2019-06-14 16:48:28 +01:00
ca0bdb6ff2 COMP: Updated for 64 bit labels 2019-02-18 11:20:40 +00:00
8a576b27ae COMP: Added randomProcesses-based function objects to build 2019-02-18 11:20:18 +00:00
c04963c41e CONFIG: missing semicolon in config file (fixes #1246) 2019-03-22 09:08:35 +01:00
77b2c8482d BUG: faMesh: processors without faMesh. See #1090.
pointNormals calculation gets triggered through processorfvPatches
so on processors that don't have these bypass this. This leads
to the global reduction hanging.
2019-03-04 10:56:41 +00:00
48e3590bc8 ENH: minor blockMesh improvements
- avoid potential ambiguities in naming of mesh faces/edges
  vs. block faces/edges

- additional methods characterizing the number of faces
  (internal, boundary, total) associated with a blockDescriptor

- cellLabel() accessor and checkIndex() methods

- restore demand-driven behaviour of block, cache the calculated cells
  and refactor generation of block boundary faces to improve potential
  reuse.
2019-02-17 19:29:22 +01:00
fe445ac516 ENH: support VTK output of point ids
- can be useful for diagnosing mesh internals and the locations of
  decomposed cells.
2019-02-17 15:09:36 +01:00
9cb6338c58 STYLE: declare edge::operator[]
- already available from the FixedList inheritance, but provide
  explicitly in edge to allow future adjustment of the inheritance
  (#1205)
2019-02-16 16:21:59 +01:00
041be829fc ENH: improvements to label/scalar ranges
- construct from MinMax, optional start index for identity factory
  method to match Foam::identity()

- use GREAT instead of VGREAT in inverted scalarRange.
  Consistent with boundBox - to reduce the potential of overflow
  if calculating the span.

- add min()/max() methods to labelRange
2019-02-16 16:08:43 +01:00
17a579bf92 ENH: exact: new patchDistMethod 2019-02-18 15:31:42 +00:00
48055b2dea ENH: distributedTriSurfaceMesh: auto-decomposition; inside/outside support 2019-02-18 13:29:01 +00:00
d4a97ecd01 COMP: Removed unused variable 2019-02-18 12:42:38 +00:00
27973d7ab5 COMP: Updated for 64 bit labels 2019-02-18 11:20:40 +00:00
c4242efde4 COMP: Added randomProcesses-based function objects to build 2019-02-18 11:20:18 +00:00
9144b122cb GIT: turn off fvsPatchField debug
- seems to have slipped into an earlier commit
2019-02-15 16:36:46 +01:00
471e39bdbe GIT: missing tutorial file 2019-02-15 16:17:47 +01:00
ef0fcfdd07 ENH: added foamGetDict utility (#1074)
- adapted from the 'foamGet' utility authored by Chris Greenshields
2019-02-15 14:47:46 +01:00
7d4d26bea4 SUBMODULES: catalyst updated to use vtk::Tools::Vertices 2019-02-15 12:20:00 +01:00
42fbf6d38c ENH: extended runTimePostProcessing (#1206)
- Extended runTimePostProcessing to include access to "live"
  simulation objects such a geometry patches and sampled surfaces
  stored on the "functionObjectObjects" registry.

- Add 'live' runTimePostProcessing of cloud data.
  Extracts position and fields from the cloud via its objectRegistry writer

- For the "live" simulation objects, there are two new volume filters
  that work directly with the OpenFOAM volume fields:
      * iso-surface
      * cutting planes
  Both use the VTK algorithms directly and support multiple values.
  Eg, can make multiple iso-levels or multiple planes parallel to each
  other.

- When VTK has been compiled with MPI-support, parallel rendering will
  be used.

- Additional title text properties (shadow, italic etc)

- Simplified handling of scalar-bar and visibility switches

- Support multiple text positions. Eg, for adding watermark text.
2019-02-13 11:22:46 +01:00
03e6aa1a6d ENH: replace surfMesh/fields support with polySurface/fields support (#1206)
- fits better into the general sampling framework, improves flexibilty
  and allows code reduction.

ENH: include surface fields on sampledSurfaces that support it
2019-02-12 13:54:02 +01:00
d7a8a2056d STYLE: Updated bug report template 2019-02-12 09:09:32 +00:00
5615d1f256 BUG: Corrected debug output for solarLoad. Fixes #1195 2019-02-11 12:19:39 +00:00
262faabd7c ENH: mixed precision solver infrastructure (#1086)
- lduSolver: solveScalar for coarse-level solve; normFactor etc

- lduMatrix: have smoother natively use solveScalarField
2019-02-10 14:53:13 +00:00
1ed1b4d5b6 ENH: use magType for sumMag() functions
- use outerProduct for sumSqr() for consistency with sqr()
2019-06-04 20:32:13 +02:00
dc32b20a5c ENH: add magType to pTraits and arithmetic primitives 2019-06-04 19:30:35 +02:00
375fd3d9d3 STYLE: remove unused overset lduInterfaces code (commit 33db2dd3e2) 2019-05-30 17:22:24 +02:00
181c974b11 ENH: improved sample surfaces and surface writers (#1206)
- The writers have changed from being a generic state-less set of
  routines to more properly conforming to the normal notion of a writer.
  These changes allow us to combine output fields (eg, in a single
  VTK/vtp file for each timestep).

  Parallel data reduction and any associated bookkeeping is now part
  of the surface writers.
  This improves their re-usability and avoids unnecessary
  and premature data reduction at the sampling stage.

  It is now possible to have different output formats on a per-surface
  basis.

- A new feature of the surface sampling is the ability to "store" the
  sampled surfaces and fields onto a registry for reuse by other
  function objects.

  Additionally, the "store" can be triggered at the execution phase
  as well
2019-02-07 18:11:34 +01:00
ba26175198 BUG: foamCreateModuleInclude ignores -output option (fixes #1190)
ENH: add -prefs option to pass in a preferences configuration file
2019-02-04 14:48:03 +01:00
46bc808261 ENH: add primitives support for mixed precision (#1086)
- add vsmall pTraits for scalars
- report the solve scalar in buildArch information
2019-02-03 16:54:25 +00:00
f88708797f STYLE: provide labelPair typedef (a common type) within Pair.H itself 2019-05-28 14:49:53 +02:00
26a6533053 ENH: FieldFunctions reduce on returnType, not input type (#1327)
- for most functions the input type and return type are identical,
  but MinMax, sumMag are not.
2019-05-28 14:48:18 +02:00
7945ca739c ENH: correct sumProd return type (#1086)
- previously returned scalar, but now return pTraits cmptType
  which is the same as scalarProduct / outerProduct type.
2019-02-10 14:31:35 +00:00
aab644a3fc STYLE: eliminate complex constants that are duplications of pTraits
- eg pTraits<complex>::zero, pTraits<complex>::one instead.
  This is consistent with other primitives such as scalar, label etc.
2019-05-27 18:09:43 +02:00
46dcba1b44 STYLE: rename dense matrix multiply methods
- make names consistent with lduMatrix
    A*x  => Matrix::Amul
    AT*x => Matrix::Tmul  (same as x*A)
2019-05-27 17:13:05 +02:00
8e5e4180d3 ENH: foamGetDict avoids overwrite of existing files (-force to override) 2019-05-27 11:39:00 +02:00
5d8e8610c8 STYLE: relocated darwin, mingw information to wiki content 2019-05-27 11:13:06 +02:00
baf0cc2a78 STYLE: relocate deprecation scripts and coding guide to wiki content
- reduces installation clutter, allows easier cross-referencing

- remove older deprecated scripts (foamDebugSwitches, foamGraph*)
2019-05-27 10:33:08 +02:00
66a100997f COMP: force dlOpen for windows application binaries (#1238)
- when windows portable executables (.exe or .dll) files are loaded,
  their dependent libraries not fully loaded. For OpenFOAM this means
  that the static constructors which are responsible for populating
  run-time selection tables are not triggered, and most of the run-time
  selectable models will simply not be available.

Possible Solution
=================

  Avoid this problem by defining an additional library symbol such as
  the following:

      extern "C" void libName_Load() {}

  in the respective library, and tag this symbol as 'unresolved' for
  the linker so that it will attempt to resolve it at run-time by
  loading the known libraries until it finds it. The link line would
  resemble the following:

      -L/some/path -llibName -ulibName_Load

  Pros:
    - Allows precise control of forced library loading

  Cons:
    - Moderately verbose adjustment of some source files (even with macro
      wrapping for the declaration).
    - Adjustment of numerous Make/options files and somewhat ad hoc
      in nature.
    - Requires additional care when implementing future libraries and/or
      applications.

  - This is the solution taken by the symscape patches (Richard Smith)

Possible Solution
=================

  Avoid this problem by simply force loading all linked libraries.
  This is done by "scraping" the information out of the respective
  Make/options file (after pre-processing) and using that to define
  the library list that will be passed to Foam::dlOpen() at run-time.

  Pros:
    - One-time (very) minimal adjustment of the sources and wmake toolchain
    - Automatically applies to future applications

  Cons:
    - Possibly larger memory footprint of application (since all dependent
      libraries are loaded).
    - Possible impact on startup time (while loading libraries)
    - More sensitive to build failures. Since the options files are
      read and modified based on the existence of the dependent
      libraries as a preprocessor step, if the libraries are initially
      unavailable for the first attempt at building the application,
      the dependencies will be inaccurate for later (successful) builds.

  - This is solution taken by the bluecape patches (Bruno Santos)

Adopted Solution
================

  The approach taken by Bruno was adopted in a modified form since
  this appears to be the most easily maintained.

Additional Notes
================

  It is always possible to solve this problem by defining a corresponding
  'libs (...)' entry in the case system/controlDict, which forces a dlOpen
  of the listed libraries. This is obviously less than ideal for large-scale
  changes, but can work to resolve an individual problem.

  The peldd utility (https://github.com/gsauthof/pe-util), which is
  also packaged as part of MXE could provide yet another alternative.
  Like ldd it can be used to determine the library dependencies of
  binaries or libraries. This information could be used to define an
  additional load layer for Windows.
2019-05-25 19:10:14 +02:00
882d7310d1 ENH: silently add "lib" prefix and ".so" suffix for dlOpen'ed libraries
- reduces some dictionary clutter and probably looks less confusing
  than having an ending that may not correspond to the current OS.

  Eg, "fvOptions" instead of "libfvOptions.so", "libfvOptions.dylib" ...

- convenience dlOpen method for multiple files
2019-05-23 17:30:54 +01:00
d9cefeff99 STYLE: writeDictionary - updated output format 2019-05-23 12:55:32 +01:00
b521e4223b ENH: overset: change tag for communication 2019-05-23 11:28:08 +01:00
b8dc024444 BUG: incorrect IOobject instance for absolute windows path (#1238)
STYLE: remove unused local variables in edgeMeshFormat
2019-05-23 10:27:06 +01:00
1da01af305 COMP: place libz linkage at the end (#1238) 2019-05-22 15:31:10 +01:00
b5d775a691 STYLE: avoid deprecated lookup methods 2019-05-22 15:06:12 +01:00
0ae939e8f8 ENH: add matrix-vector, vector-matrix multiplication (#1220)
- the vector-matrix multiplication is treated as a row vector
2019-05-20 15:58:32 +01:00
061eb53fb5 ENH: improvements, modernization of matrix containers (#1220)
- add iterators, begin/end, empty() methods for STL behaviour.
  Use standard algorithms where possible
     * std::fill, std::copy
     * std::min_element, std::max_element

- access methods consistent with other OpenFOAM containers:
     * data(), cdata(), uniform()

- Use ListPolicy to impose output line breaks

- Can recover matrix storage for re-use elsewhere.
  For example, to populate values with 2D i-j addressing and later
  release it as flat linear storage.

- construct/assign moveable

- added minMax() function for Matrix

- additional inplace +=, -=, *=, /= operations

- add named methods at() and rowData() to Matrix.
  Allows a better distinction between linear and row-based addressing

- low-level matrix solve on List/UList instead of Field
2019-05-22 12:18:31 +01:00
f8a70115fd ENH: add sign(), csign() methods for complex
- use std::hypot for complex mag() instead of long-hand version

- Detail::conj() function for complex or non-complex
2019-05-21 11:18:12 +01:00
1544db3116 ENH: surfaceFieldValue - update selection on mesh changes 2019-05-22 08:15:19 +01:00
be84f4542b ENH: Removed misleading PSD13 output 2019-05-20 13:37:11 +01:00
5653e2b174 ENH: Compatibility updates for finiteArea 2019-05-15 08:35:07 +01:00
b886000eb3 Merge branch 'feature-dictionary-checking' into 'develop'
Feature dictionary checking

See merge request Development/OpenFOAM-plus!259
2019-05-22 10:29:41 +01:00
32916fa845 ENH: dictionary checking methods with predicates on the input values
- can be used to check the validity of input values.

Example:

    dict.getCheck<label>("nIters", greaterOp1<label>(0));
    dict.getCheck<scalar>("relax", scalarMinMax::zero_one());

- use 'get' prefix for more regular dictionary methods.
  Eg, getOrDefault() as alternative to lookupOrDefault()

- additional ops for convenient construction of predicates

ENH: make dictionary writeOptionalEntries integer

- allow triggering of Fatal if default values are used

ENH: additional scalarRange static methods: ge0, gt0, zero_one

- use GREAT instead of VGREAT for internal placeholders

- additional MinMax static methods: gt, le
2019-05-21 19:10:14 +01:00
515027b7ab ENH: uniformFixedValue: add library 2019-05-21 13:36:36 +01:00
80d2894219 ENH: overset: GAMG normalisation of hole cells 2019-05-21 13:21:27 +01:00
9cd9d879e7 ENH: GAMG: supress debug msg 2019-05-21 09:42:34 +01:00
4e58e355b8 BUG: off-by-one in Windows env and cwd sizing (#1238) 2019-05-20 17:41:27 +01:00
8345452484 STYLE: additional constructor for randomDecomp 2019-05-20 08:58:35 +01:00
d88b95697d STYLE: adjust fluxSummary documentation 2019-05-17 11:46:51 +01:00
722ebdb151 STYLE: update of 'mode' to 'type' keyword for radiation properties 2019-05-17 09:53:25 +01:00
b043be3063 STYLE: add notices for deprecated dictionary methods 2019-05-17 09:02:51 +01:00
3a00dd9b9a CONFIG: use C++11 regex instead of POSIX for newer compilers
BUG: The ok_ flag was not being updated in the regExpCxx::set() method
2019-05-21 12:29:52 +01:00
29e6c81af8 STYLE: add namespace qualifiers to interpolationWeights 2019-05-16 14:06:40 +01:00
e6a2083281 ENH: overset: allow use in non-dynamicMesh applications
This is to avoid overset interpolation in the calculation of the stencil
itself since this triggers a loop.
2019-05-16 10:30:55 +01:00
0adcd1ec47 ENH: timeInfo function object (#1320)
- records execution and wallclock times to postProcessing/
  which can be more convenient than parsing a log file.
2019-05-15 09:21:45 +01:00
0e5c9356a0 BUG: overset: out-of-range indexing. Fixes #1321 2019-05-15 11:43:34 +01:00
5f9b6d7a74 STYLE: parProfiling: no tabs 2019-05-15 10:01:54 +01:00
c46fe63b97 ENH: parProfiling: do not print on exit. Fixes #1298. 2019-05-15 08:30:06 +01:00
51f501b668 ENH: decomposition: added 'random' method for testing.
This will use a random-number generator to select for
each cell the processor. Useful for testing parallel/non-parallel
consistent behaviour.
2019-05-08 12:27:24 +01:00
9b8ac57e98 BUG: foamToEnsightParts reports the time value twice in log output 2019-01-30 15:41:06 +01:00
f7729d6f8c GIT: Added gitlab templates 2019-01-29 16:52:35 +00:00
473e000bed ENH: enable MPI library variants (#1153)
- in addition to managing different vendors and versions, it may also
  be necessary or desirable to have a particular variant
  (eg, profiling, release, etc).

  Devise a new meaningful name for the variant and create a
  corresponding wmake rule.

  Eg, SYSTEMOPENMPI-profiling with a corresponding
      "wmake/rules/linux64Gcc/mplibSYSTEMOPENMPI-profiling" file
  that has suitable content for your system.

CONFIG: intel-mpi use intel64/ paths only for config and wmake rules (#1153)

- previously adjusted the config files, but missed the changes
  required for the wmake rules too.

  Now simply migrate to using  "intel64/{include,bin,lib}"
  instead of the older naming  "{include,bin,lib}64"

  These changes work since at least intel-mpi 2015 (5.x), but possibly
  earlier as well
2019-01-28 19:19:09 +01:00
16bc63864e ENH: added polySurface storage with fields (#1206)
- This simple container provides a means of storing faces/points
  (ie, surfaces) with registered dimensioned fields.

  The main registry is used to hold face-based data, a secondary
  sub-registry is used to hold point-based data. This allows the same
  name for CellData and PointData fields without name collisions.
2019-01-24 00:03:26 +01:00
5b2300a8a1 BUG: thermalBaffleModel::New from thermalBafflePropertiesDict fails
- retrieved value for the modelType was masked by a local variable
2019-01-23 21:57:20 +01:00
aa4f81ff1b CONFIG: bump patch level 2019-01-23 21:14:02 +01:00
97ac486b58 BUG: registerCopy may fail for copy construct of regIOobject
- checkIn() was incorrectly conditional on the register state of the
  source object.

Partial patch from .org commit 6dc48b62d948
2019-01-23 13:25:18 +01:00
51bac480e1 BUG: missing return value for PtrDynList::set 2019-01-23 09:16:59 +01:00
659526101a ENH: Adding reflection capability to solar load radiation model
ENH: Several modifycations to avoid erroneuos rays to be shot
from wrong faces.

ENH: Updating tutorials and avoiding registration of the
coarse singleCellFvMesh

Adding solarLoad tutorial case simpleCarSolarPanel

ENH: Changes needed for the merge
2019-01-21 16:29:58 -08:00
efb4c6e7a6 CONFIG: drop config support for deprecated ensight reader library 2019-01-17 10:53:44 +01:00
63d8e7e576 ENH: make use of FOAM_API for environment as well (issue #1158)
- was WM_PROJECT_API in the environment and FOAM_API in dictionaries.

  Make these both consistently FOAM_API.
  This is a non-breaking change, since the value of WM_PROJECT_API
  (added in 1812) and/or FOAM_API is purely informative.
  For the current correct values, always use

    * foamEtcFile -show-api
    * wmakeBuildInfo -show-api
2019-01-10 12:21:19 +01:00
bae92919e5 ENH: provide config setup for mesa with llvm (issue #1164)
- If using a non-clang compiler suite (gcc, intel, etc) the additional
  lbraries required for mesa with llvm pipelines may not be found.

  Provide a mesa_llvm configuration with in the 'vtk' config file.
  Can use the usual types of settings

     * mesa_llvm=llvm-4.0.1
     * mesa_llvm=none
     * mesa_llvm=system
2019-01-10 11:50:09 +01:00
a8f08b31c1 BUG: snappyHexMesh: extrude non-local baffle. Fixes #1175. 2019-01-21 15:27:51 +00:00
29315f4644 DEP: Deprecated the ensightFoamReader 2019-01-17 09:35:04 +00:00
956b41ae28 BUG: vtk::internalWriter::writeProcIDs could block in parallel
- could be triggered if running in parallel, but requesting procIDs
  to be written with a non-parallel version of the writer.
2019-01-14 16:43:30 +01:00
cf8d500f8c ENH: export FOAM_API in dictionary (issue #1158)
- uses the value of foamVersion::api, which should be reliable.
2019-01-07 19:04:50 +01:00
62a7582d6d SUBMODULES: align git information with the respective master branches 2019-01-07 13:45:21 +01:00
0748a11fd6 COMP: no vtkDataArray::Fill() method prior to VTK-8 (fixes #1156) 2019-01-07 11:58:33 +01:00
170041aaf5 ENH: for-range, forAllIters() ... in applications/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
20da89f8f6 ENH: for-range, forAllIters() ... in genericPatchFields/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
534920b67f ENH: for-range, forAllIters() ... in lagrangian/molecularDynamics/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
f487333b57 ENH: for-range, forAllIters() ... in lagrangian/intermediate/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
4da4f40ded ENH: for-range, forAllIters() ... in lagrangian/ basic
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
6cbe89720d ENH: for-range, forAllIters() ... in thermophysicalModels/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
5f42b5df9f ENH: for-range, forAllIters() ... in OpenFOAM/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
a43eb01b7e ENH: for-range, forAllIters() ... in finiteVolume/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
bd78da22e7 ENH: for-range, forAllIters() ... in mesh/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
a766d38643 ENH: for-range, forAllIters() ... in sampling/, surfMesh/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
fd8379fdbe CONFIG: update MPICH and MVAPICH versions/rules
- Note: mpich now builds libmpi.so instead of libmpich.so

- define both -DMPICH_SKIP_MPICXX and -DOMPI_SKIP_MPICXX regardless of
  using openmpi or mpich. This simplifies the files and does not harm.
2019-02-14 18:09:37 +01:00
6b9fe33275 STYLE: remove static from functions in vtk::Tools namespace
- a leftover from the change from class to namespace
2019-02-14 16:58:28 +01:00
ec36e7a4b5 ENH: additional vtk::Tools methods for cloud-related meshes
- the Tools::Vertices() method for creating a vtkPolyData with the
  given points and a corresponding Verts for the points.
2019-02-14 14:42:56 +01:00
e143a5eaa5 ENH: HashSet::test() for method name compatibility with bitSet, boolList 2019-02-14 13:15:10 +01:00
95a33c2f68 ENH: wordRes::uniq() removes all duplicates
- previously just removed duplicate literals, but now remove any
  duplicates.

- Replace previous wordHashSet implementation with a linear search
  instead. The lists are normally fairly small and mostly just have
  unique entries anyhow. This reduces the overall overhead.
2019-02-14 11:03:04 +01:00
60c314150c ENH: ensure self-assignment and self-swapping are a no-op for string types
- simplifies their use when reordering lists etc.
  (word, fileName, keyType, wordRe)

- "unfriend" IO operators for string types. They require no internal access

- add compile/uncompile methods to keyType for symmetry with wordRe

- when outputting keyType/wordRe, be more explicit about them using
  writeQuoted()
2019-02-14 09:06:43 +01:00
df35627e69 ENH: controlDict: added entry for clarity. 2019-02-14 12:41:26 +00:00
482a1b08a7 ENH: scotchDecomp: check validity of processorWeights. Fixes #1207. 2019-02-14 12:40:25 +00:00
2833521576 ENH: for-range, forAllIters() ... in meshTools/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
24861f5158 ENH: for-range, forAllIters() ... in functionObjects/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
60234ab007 STYLE: reduced nesting on return branching 2019-02-13 08:06:36 +01:00
4bc3b2b9cb STYLE: minor adjustments for code formatting and comments 2019-02-12 20:18:06 +01:00
d1bc0d6e56 ENH: lazy evaluation of subRegion in regionFunctionObject (#1202)
- delay dereferencing of optional subRegion entries until an
  objectRegistry is required.

  This improves usabilty when reference objects do not yet exist
  at the time of construction.
2019-02-12 13:54:02 +01:00
4e7ba1800a ENH: delay evaluation of surfaces for fluxSummary (issue #1202)
- complete any pending initialisation on write().
  Allows lazier evaluation until when surfaces are actually available.
2019-02-12 12:39:49 +01:00
bfb0693bbe ENH: delay evaluation of surfaces for surfaceFieldValue (issue #1202)
- complete any pending initialisation on write().
  Allows lazier evaluation until when the surfaces are actually needed.
2019-02-12 12:39:49 +01:00
52101db781 SUBMODULES: catalyst updated to use vtk::vtuAdaptor 2019-02-12 17:56:11 +01:00
ff54ef8299 ENH: additional vtk::Tools methods for handling faces, points etc.
- includes initial relocation of low-level vtu handling.
  Extracted, refactored from the Catalyst function object.
2019-02-03 17:24:26 +01:00
966fc4c503 TUT: add missing fields 2019-02-12 16:46:40 +01:00
5c6b0989a4 ENH: for-range, forAllIters() ... in sampling/, surfMesh/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
655f7d1997 ENH: for-range, forAllIters() ... in parallel/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
45590671ac ENH: for-range, forAllIters() ... in dynamicMesh/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
f5163e50ff ENH: for-range, forAllIters() ... in genericPatchFields/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
8d5894174f ENH: for-range, forAllIters() ... in conversion/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
e3e0d7c8b9 ENH: add possibility to change const reference in tmp.
- previously it was only possible to reset a pointer, but not to
  change a const-reference directly (needed a swap() to do this).
2019-02-11 18:23:06 +01:00
de673f3bcf STYLE: consolidate 'clear' when initialising surfaceFieldValue 2019-02-11 15:59:14 +01:00
e6937f60de ENH: add Ensight output support for a labelField (treat like scalarField) 2019-02-11 16:03:10 +01:00
c137d3f823 ENH: derivedFields functionObject to create some predefined, calculated fields
- currently supports pTotal, rhoU.
2019-02-08 17:47:45 +01:00
e2754962cc ENH: add remove objects handling in timeFunctionObject and regionFunctionObject
- makes it easier to implement functionObject or field object removal
2019-02-08 17:47:45 +01:00
8f92fa016f ENH: write/clear on all components (issue #1199)
- use registry checkOut for removeRegisteredObject function object
2019-02-11 10:12:17 +01:00
f6d462a246 STYLE: make objectRegistry::cfindIOobject() protected instead of public 2019-02-11 10:58:18 +01:00
4e7ac82060 STYLE: derive surface sampling from fvMeshFunctionObject 2019-02-11 09:47:13 +01:00
75a691ecfa ENH: generic: add genericFvsPatchField 2019-02-11 17:02:14 +00:00
f2d735264f COMP: polyMeshTetDecomposition: vGreat vs VGREAT 2019-02-11 12:11:59 +00:00
12d9a159dc ENH: Function1: better error message. Fixes #1200. 2019-02-11 12:10:47 +00:00
9580a0e243 isoSurface: Fix for isoSurface 'eroding' surfaces down to nothing
The occurrence is from cells with vertices that are shared between two faces
only (these vertices can originate from hex refinement). Decomposing both faces
can occasionally produce triangles with identical vertices and this results in a
non-manifold edge which triggers the erosion procedure.

Avoided by detecting cells with these special vertices and making sure the tet-decomposition
never uses the same points on the faces using them.

Patch contributed by Mattijs Janssens
2019-02-08 14:45:54 +00:00
bb73eb63a3 STYLE: DFSEM inlet - updated messages when checking validity of the stress tensors 2019-02-11 10:23:45 +00:00
96b0bce80a ENH: forces function object - made user selection clearer when running 2019-02-11 09:22:26 +00:00
5610da9f95 STYLE: missing space in warning message 2019-02-08 18:53:27 +01:00
1e607ac62e TUT: use coarser grid for gasMixing tutorial and run in parallel 2019-02-08 18:43:08 +01:00
e5b3af9c05 ENH: add failsafe version of Enum::get() 2019-02-08 16:51:54 +01:00
27c58dde4c STYLE: provide boolList, boolUList typedefs directly in container
- move declaration of emptyLabelList (now deprecated) out of List.H
2019-02-08 16:35:53 +01:00
7904e4a73f COMP: resolved compiler warnings 2019-02-08 09:32:53 +00:00
e929a20921 STYLE: Header clean-up 2019-02-08 09:30:46 +00:00
9cb57f7fa8 ENH: restart: save/restore cumulative continuity error. See #1172. 2019-02-07 14:28:30 +00:00
e3008553e8 ENH: uniformFixedValue: adapt point bc. See #1046. 2019-02-07 14:08:03 +00:00
078e34746e ENH: code adjustments for updated NullObject
- can now safely use labelList::null() instead of emptyLabelList for
  return values. No special treatment required for lists.

  Possible replacements:

      if (notNull(list) && list.size())  ->  if (list.size())
      if (isNull(list) || list.empty())  ->  if (list.empty())

  The receiver may still wish to handle differently to distinguish
  between a null list and an empty list, but no additional special
  protection is required when obtaining sizes, traversing, outputting
  etc.
2019-02-07 13:04:24 +01:00
0800e021ad ENH: improved handling of zone allocation in surfMesh
- relocate zone IO from Detail::MeshedSurfaceIOAllocator into surfMesh
  directly to allow re-purposing of MeshedSurfaceIOAllocator

- provide meshedSurf::emptySurface zero-sized placeholder implementation

- add concrete implementation of meshedSurf::zoneIds() to simplify
  overloading
2019-01-22 09:44:18 +01:00
eaa3da72c5 ENH: extend size of NullObject for safer reinterpret cast
- previously had a single pointer/value zeros (8 bytes), this meant
  that the reinterpret cast to a List would yield a reference that
  could be unsafe under certain conditions.

  Eg,
     const labelList& myList = labelList::null();

     Info<< myList.size() << nl; // OK since size is the first parameter

     SubList<label>(myList, 0);  // Unsafe

  The SubList usage is unsafe since it passes in pointer and size into
  the underlying UList. However, the pointer from the labelList::null()
  will be whatever happens to be around in memory immediately after the
  NullObject singleton. This is mostly not a problem if the List size
  is always checked, but does mean that the data pointer is rather
  dubious.

- Increase the size of the nullObject singleton to 32 bytes of zeros
  to ensure that most reinterpret casting will not result in objects
  that reference arbitrary memory.

  The 32-byte data size is rather arbitrary, but covers most basic
  containers.
2019-02-07 11:13:13 +01:00
2016f88eba ENH: use vtk::surfaceWriter in shortestPathSet debugging 2019-02-07 09:45:13 +01:00
3a6e596a09 STYLE: indentation 2019-02-05 09:06:24 +01:00
7d023d035c ENH: PatchFunction1: work with points. See 1046. 2019-02-07 10:33:46 +00:00
ce7e921f21 ENH: restart: save/restore cumulative continuity error. See #1172. 2019-02-07 10:27:03 +00:00
c59d5c6213 Merge branch 'feature-object-registry-search' into 'develop'
Feature object registry search

See merge request Development/OpenFOAM-plus!232
2019-02-07 08:59:07 +00:00
154029ddd0 BOT: Cleaned up header files 2019-02-06 12:28:23 +00:00
4d82589841 ENH: exact restart. Fixes #1172. 2019-02-06 12:13:52 +00:00
6922deb9fb STYLE: relax working about patch level 2019-02-06 12:48:13 +01:00
97994734d2 CONFIG: bump API version number to 1901 to register recent changes
- objectRegistry search, erase methods
  - clip, minMax
  - function object triggering
  ...
2019-02-06 12:01:29 +01:00
6d6f43d72e ENH: refactored regIOobject searching in object registry
- The findObject() methods are template-typed and used to locate a
  particular Type/name combination.

  Eg,

      volScalarField* ptr = obr.findObject<volScalarField>("xyz");

- The findIOobject() methods are un-typed and use the name only.

  Eg,

      regIOobject* ptr = obr.findIOobject("xyz");

The typed versions will be most commonly used, but the un-typed lookup
can be useful in a templating.

- Simplified findObject* methods to use findIOobject* as the backend.
2019-02-06 12:01:29 +01:00
1b9576df0a ENH: support objectRegistry::checkOut(const word& name)
- similar to what erase() does, but as a mutable operation (#1180)

- replace basicThermo lookupAndCheckout (commit 880c98757d) with
  the new objectRegistry::checkOut() method.
2019-02-06 12:01:29 +01:00
8f572a5e71 ENH: improve volRegion handling of moving meshes (#1194)
- implemented as lazy evaluation with an additional update() method.
  This avoids unnecessary changes until the values are actually
  required.

- apply mesh motion changes for momentum, volFieldValue,
  specieReactionRates function objects
2019-02-06 10:25:47 +01:00
fb561daf7a ENH: avoid potential leaks with objectRegistry::erase (#1180)
- forwards to the underlying HashTable erase, but frees things owned
  by the registry as well (ie, performs a checkOut)
2019-02-06 09:09:31 +01:00
d0d83b0784 COMP: basicThermo: object instead of class name. See #1180. 2019-02-06 09:28:36 +00:00
cd8e32f603 TUT: consistent headers/formatting for chokedNozzle
- also removed some editing cruft from controlDict that should not
  have been there
2019-02-06 07:54:05 +01:00
6384896523 TUT: Corrected function object entry 2019-02-05 14:08:39 +00:00
b6c5fc0ada ENH: Added checks for input Reynolds stresses based on Lund coefficient constraints. Fixes #1124 2019-02-05 14:07:59 +00:00
edfd27f9e4 BUG: Corrected re-reading of time control function objects. Fixes #1192 2019-02-05 11:28:31 +00:00
427acc84b0 COMP: foamVtkTools: template specialization bug in gcc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56480
2019-02-04 16:39:01 +00:00
cc039d1356 GIT: tutorials: cleanup generated files 2019-02-04 12:29:26 +00:00
4db5c3657b COMP: Allwmake: also resolve link order: -lblockMesh needed when linking overset 2019-02-04 12:03:53 +00:00
cab94a5d0a Merge remote-tracking branch 'origin/master' into develop 2019-02-04 10:55:34 +00:00
d329087473 ENH: Added fieldMinMax function object default config 2019-02-04 10:50:28 +00:00
b3c9bd480b ENH: Updating interCondensatingEvaporatingFoam tutorial case 2019-02-01 15:12:08 -08:00
b3b9dd9b18 ENH: Changing energy Eq in interCondensatingEvaporatingFoam
from e to T. T proved to be more generic solution.
2019-02-01 15:10:16 -08:00
4435819a7a Merge branch 'feature-fieldLimits' into 'develop'
Add minMax and clip field functions

See merge request Development/OpenFOAM-plus!230
2019-02-01 16:54:36 +00:00
932666c408 ENH: add vtk::Tools::Patch faceCentres() method 2019-02-01 10:37:15 +01:00
8473fd0b2a COMP: template specialization in incorrect namespace
STYLE: avoid local variable name masking
2019-02-01 10:20:29 +01:00
b7fb6116c3 ENH: restructuring of ensight output files
- changed ensightOutput from a class solely comprising static methods to
  a namespace and added in sub-namespaces Detail and Serial.

  This makes it easier to "mix-in" functions at different levels.
  Refactored and combined some serial/parallel code where possible.

  The general ensightOutput namespace has now shifted to be in the
  fileFormats lib, while leaving volField outputs in the conversion lib
  and cloud outputs in the lagrangian-intermediate lib.

  The ensightCloud namespace is now simply folded into the new
  ensightOutput namespace.

  These changes clean up some code, reduce fragmentation and
  duplication and removes the previous libconversion dependency for
  sampling.

- use int for ensight nTypes constexpr

Note: issue #1176 is unaffected except for the change in file name:

   ensightOutputTemplates.C -> ensightOutputVolFieldTemplates.C
2019-01-29 15:18:17 +01:00
1982f1df89 Merge branch 'feature-solver-info' into 'develop'
Function object updates

See merge request Development/OpenFOAM-plus!231
2019-01-31 17:00:01 +00:00
14e6b198cc ENH: checkMesh: write correct faceWeights. Fixes #1099. 2019-01-31 15:28:01 +00:00
1370060da2 SUBMODULES: catalyst updated to use vtk::Tools as namespace 2019-01-31 13:45:11 +01:00
fe21c9c327 ENH: change vtk::Tools from a class to a namespace
- allows localized extension of functionality
2019-01-31 13:43:18 +01:00
acc66c217b ENH: add bitwise and/or ops 2019-01-31 12:35:34 +01:00
5ffd2e4fe1 CONFIG: add config hooks for gcc 6.5.0, gcc 7.4.0 2019-01-31 12:19:22 +01:00
70f7b7f632 COMP: Allwmake: build order 2019-01-31 10:13:15 +00:00
d685727469 GIT: fix previous dirty commit 2019-01-30 17:44:44 +01:00
70845a8838 ENH: code cleanup and improvement of ensight parts
- improved the selection mechanism to include using a bitSet
  cell selection (more efficient and convenient).

  Use templated implementation internally to remove the previous
  reliance on a NullObject.
2019-01-30 08:06:01 +01:00
8d12e080f6 ENH: new continuityError function object
Example usage:

    continuityError1
    {
        type        continuityError;
        libs        ("libfieldFunctionObjects.so");
        ...
        writeToFile yes;
        log         yes;
        phi         phi;
    }
2019-01-29 13:53:56 +00:00
94070f5ee7 STYLE: Renamed residuals FO -> solverInfo to reflect capabilities 2019-01-29 13:52:37 +00:00
216616638f BUG: fieldSelection - corrected selectionNames() 2019-01-29 14:38:36 +00:00
96bb43ae00 DOC: Updated cloudName -> cloud 2019-01-29 09:53:58 +00:00
86d462c0f5 ENH: add initial support for compile-time project paths (#1050)
Eg,
    #define FOAM_CONFIGURED_PROJECT_ETC "/usr/share/openfoam/etc"

This provides some easy to file patching locations, but is not yet
integrated in the build system at all.
2019-01-29 00:52:22 +01:00
a3f960e36f ENH: add 'default' as possible Switch state, but not as input/output
- in some circumstances we need to pass a bool value upwards to the
  caller and know if the true/false value was set based on real input
  or is a default value.

  Eg, in the object::read() we might normally have

     enabled_(dict.readIfPresent(key, true));

  but would lose information about why the value is true/false.

  We can change that by using

     enabled_(dict.readIfPresent<Switch>(key, Switch::DEFAULT_ON));

  After which we can use this information is testing.

      if
      (
          child.enabled().nonDefault()
        ? child.enabled()
        : parent.enabled()
      )
      { ... }

   And thus enable output if the parent requested it explicitly or by
   default and it has not been explicitly disabled in the child.

  No difference when testing as a bool and the text representation
  of DEFAULT_ON / DEFAULT_OFF will simply be "true" / "false".

ENH: add construction of Switch from dictionary (similar to Enum)
2019-01-28 23:18:21 +01:00
f34acb5679 COMP: add debug flag for repeating runTimePostProcessing rebuilds
- avoids removal of files and the dummy fallback
2019-01-28 19:06:07 +01:00
e05a62d329 COMP: Allwmake: work with -q 2019-01-28 11:56:57 +00:00
ea9fbafa92 GIT: chockedNozzle: rename to chokedNozzle 2019-01-28 11:56:24 +00:00
da29c4f0d0 Merge branch 'feature-snappyHexMesh-check' into 'develop'
Feature snappy hex mesh check

See merge request Development/OpenFOAM-plus!229
2019-01-28 08:57:46 +00:00
3b91160027 STYLE: centralize example dictionaries under etc/ (issue #1074)
- as well as being more convenient to find, this is necessary when the
  OpenFOAM installation is without sources or tutorials
2019-01-26 17:46:08 +01:00
dd23155d81 ENH: foamPackRelease tool for creating tar-files with submodule contents 2019-01-26 16:40:33 +01:00
b0fafd18fe STYLE: reorganize some legacy and less frequently used components
- older emacs tools into legacy
- old process tools

* Less frequently used scripts into bin/tools/

  - findEmptyMake
  - foamAllHC
  - foamUpdateCaseFileHeader

* Infrastructure file (only used by foamNewApp)

  - wmake/wmakeFilesAndOptions -> wmake/scripts/wmakeFilesAndOptions

* Merge wmakeRoot convenience as 'wmake -pwd'
* Remove obsolete wmakePrintBuild (superseded by wmakeBuildInfo)
* Remove unused mergeHistory file
2019-01-26 11:30:50 +01:00
a39ed60625 STYLE: limit foamCreateManpage to documented options
Previously silently accepted '-o' as being equivalent to '-output',
but the former could be misinterpreted meaning an output file (which
it is not) instead of an output directory.
2019-01-26 11:24:52 +01:00
ef6c2ef590 CONFIG: combine wmake rules for KNL architecture as a compile option
- instead of

      WM_COMPILER=GccKNL WM_COMPILE_OPTION=Opt

      -> linux64GccKNLDPInt32Opt

  now specify

      WM_COMPILER=Gcc  WM_COMPILE_OPTION=OptKNL

      -> linux64GccDPInt32OptKNL

This makes it easier (and more obvious) for adding different tweaks
without needing to generate too many files.
Eg,

    cd wmake/rules/linux64Gcc

    cp cOpt   cOptBdw
    cp c++Opt c++OptBdw

    edit these two files and then use WM_COMPILE_OPTION=OptBdw

CONFIG: provide some default c/c++ flags in General compiler rules

- can make is easier when deriving new compile options, and ensures
  that '-02' is enabled as an initial default.
2019-01-25 17:39:05 +01:00
3d98c3d593 ENH: add -root option for wmakeLnInclude (convenience)
- finds the correct root directory location before creating
  the lnInclude directory

  Eg,

  from within something like src/finiteVolume/fields/fvPatchFields/..

      wmakeLnInclude -update -root

  it backtracks to find the top-level directory with Make/
  and makes the lnInclude directory there:

    Using /home/mark/openfoam/OpenFOAM-plus/src/finiteVolume
        ln: /home/mark/openfoam/OpenFOAM-plus/src/finiteVolume/lnInclude
2019-01-25 16:20:58 +01:00
d4b495131f COMP: avoid autoPtr automatic cast conversion in more places
- Can result in inadvertent conversions where the user should really
  know or check if the pointer is valid prior to using.

- Still have several places to fix that are using the deprecated copy
  construct and copy assignment
2019-01-25 12:45:22 +01:00
fe6abf0f61 STYLE: remove NoConstructFromTmp conditional
- workaround for some old compilers many years ago, but no longer relevant
2019-01-25 12:22:38 +01:00
c45fad8362 ENH: add support for an output object registry for function objects 2019-01-25 12:15:46 +01:00
c4aebc3c8e ENH: avoid double write triggering in writeObjects functionObject
- in the previous version, a specification such as (U "U.*")
  would have selected the field name twice for writing
2019-01-25 12:04:23 +01:00
87523acad3 ENH: add ListOps find/found accepting a unary predicate (#1182)
- can also be used for other purposes.
  Eg,

      if (ListOps::found(list, matcher))
      {
         ...
      }

  vs.

      if (!findStrings(matcher, list).empty())
      {
         ...
      }
2019-01-25 11:45:03 +01:00
5ec44cd51f ENH: add range check on findIndices (#1182)
- add compile-time detection of deprecated findIndex() function

- replace occurrences of findIndex() with the equivalent container
  method
2019-01-25 10:47:34 +01:00
ad7f29466a ENH: added timeFunctionObject virtual class in inheritance hierarchy
- simply a functionObject with an additional Time reference, which is
  a combination frequently used by concrete functionObjects
2019-01-25 08:56:21 +01:00
8433ddee0e ENH: simplify coding in functionObjectList
- use for-range when iterating
- dictionary access/search methods
- autoPtr for memory management
2019-01-24 17:00:12 +01:00
f9eb16db2a STYLE: remove shadow variable name 2019-01-25 01:09:45 +01:00
c2debedd08 ENH: changeDictionary: allow removal of patches (!). Fixes #1179. 2019-01-24 12:40:46 +00:00
a0fe04976e STYLE: remove unused code from tutorials/Alltest 2019-01-24 11:36:59 +01:00
1910ebc0ad STYLE: used guarded read in runTimeControl 2019-01-24 10:03:33 +01:00
1c85c64984 STYLE: clarify input requirements for extrusion models (#1181)
- changed the sectorCoeffs keyword to 'point' from 'axisPt'
  for more similarity with other dictionaries.
  Continue to accept 'axisPt' for compatibility.
2019-01-24 09:40:12 +01:00
8b3a00efcc STYLE: fixup very old-style case headers 2019-01-24 08:44:41 +01:00
b2ae359c99 GIT: relocate ensight parts (from conversion -> fileFormats) 2019-01-24 00:53:29 +01:00
b967f2511e GIT: relocate surfMesh fields directory 2019-01-24 00:53:29 +01:00
3316055267 ENH: minor adjustments to Switch
- assignment operators return a value, for consistency with bool.

- partial revert of DEFAULT_TRUE, DEFAULT_FALSE, to reduce complexity.
2019-01-29 09:38:09 +01:00
73705d8290 BUG: decomposePar: incorrect indexing. Fixes #1189. 2019-01-30 11:48:35 +00:00
bfb72353eb ENH: nutUWallFunction: user defined tolerance on N-R. See #1172 2019-01-30 10:12:41 +00:00
e3b6195050 COMP: Allwmake: order 2019-01-30 08:42:17 +00:00
53e03b33df COMP: relocate vtk::surfaceWriter from meshTools -> fileFormats
- allows use in surfMesh library, which does not depend on meshTools
2019-01-24 00:19:22 +01:00
722ce91ae0 STYLE: combine if (log) ... Log statements 2019-01-23 22:55:50 +01:00
c5fd858c14 STYLE: avoid floating point comparison with uint8_t in DSMCCloud 2019-01-23 22:52:35 +01:00
5bdb6ddf9f STYLE: missing break 2019-01-23 22:48:46 +01:00
f9134a51a1 BUG: TRIReader point reading not order-independent 2019-01-23 22:47:14 +01:00
567ae55e8e STYLE: improve input check on gmshToFoam 2019-01-23 22:45:00 +01:00
856f45a910 Merge remote-tracking branch 'origin/master' into develop 2019-01-23 21:27:03 +01:00
812fa22dff Merge remote-tracking branch 'origin/develop' into develop 2019-01-23 21:22:10 +01:00
34ca554f15 Merge branch 'feature-run-time-control-triggers' into 'develop'
Feature run time control triggers

See merge request Development/OpenFOAM-plus!228
2019-01-23 14:59:18 +00:00
5878b6edc5 BUG: clearing objectRegistry can leak memory (#1180)
- now free anything owned by the registry when doing a clear.

- the myriad of other ways to remove items (and potentially leaking)
  have not yet been addressed:
  * set, erase, retain, filterKeys, filterValues, filterEntries
2019-01-23 15:52:43 +01:00
47d29b1cdd ENH: snappyHexMesh: user size limit. See #972. 2019-01-23 12:25:54 +00:00
f33061cc2a ENH: user-specified ref temperature for externalCoupled mixed T BC (#1072)
- Uses the user-specified value for the HTC calculation

  {
      type  externalCoupledTemperature;

      outputTemperture    fluid;  // or wall;
      htcRefTemperature   user;   // or cell (default)

      Tref    293.15;
  }
2019-01-23 13:24:01 +01:00
fafe1e564b BUG: nearWallFields: particles located outside mesh. See #947. 2019-01-23 12:11:30 +00:00
65e94fde66 DEFEATURE: remove wmakeScheduler (issue #1178)
- was for parallel compilation across multiple hosts, but less useful
  with modern CPUs with higher number of cores and/or hyperthreading.

  Fragile use and dependent on a 'lockfile' utility that is not often
  installed.
2019-01-23 12:43:41 +01:00
e6217dafd6 ENH: overset: various improvements to trackingInverseDistance. See #736. 2019-01-23 09:50:37 +00:00
1cda77e83d STYLE: duplicate assignment 2019-01-23 09:42:17 +01:00
a5cc0ffcad STYLE: use const reference for caught exceptions 2019-01-23 09:03:06 +01:00
a50c446853 STYLE: update notes about patch level on development branches
- previously stated that the patch level would be 0, but this would
  necessitate many revert commits after merging in the master branch.
  It is better to leave the meaning open.
2019-01-23 08:50:57 +01:00
4256da3291 GIT: fix merge/rebase artifact 2019-01-22 19:25:53 +01:00
8f8a4dc682 ENH: add foamDictionary -precision option (issue #1177)
- since foamDictionary doesn't use system/controlDict it will use the
  standard default precision. The '-precision' option allows adjusting
  that value.
2019-01-22 15:11:28 +01:00
789c5d00b0 ENH: use average value for ensight faceZone on proc boundary (#1176) 2019-01-22 12:49:50 +01:00
6b8f56efea ENH: support dictionary or list entry for sampled surfaces
- support for optional 'enabled' keyword to selectively disable a
  single sampled surface.

ENH: add sampledSurface::withSurfaceFields() method

- can be used to distinguish which samplers support surface fields.
  Currently this is only sampledPatch
2019-01-22 07:59:57 +01:00
c604adc0d1 ENH: runTimeControl - deactivate for -postProcess operation 2019-01-21 13:52:34 +00:00
27e3b1f9e6 STYLE: relocating files 2019-01-22 12:52:27 +00:00
452a281a00 ENH: fieldSelection - added checks for when fields are not found 2019-01-21 12:16:13 +00:00
9e202d141d TUT: Added example of field component specification 2019-01-21 12:01:11 +00:00
89438778aa STYLE: make meshedSurfRef copyable 2019-01-17 04:40:29 +01:00
03bd58ee3a CONFIG: update openmpi-1.10 minor 2019-01-21 13:40:06 +01:00
73e89f9332 ENH: add UPtrList method to squeeze out (remove) null pointers
- moves any nullptr to the end of the list where they can be
  eliminated in a second step with resize()
2019-01-21 09:51:02 +01:00
8e0bd4bf43 ENH: surfMesh constructor without AUTO_WRITE, as per polyMesh (#1147) 2019-01-18 18:36:09 +01:00
7724d5ccba GIT: relocate surZone files 2019-01-18 18:56:00 +01:00
ed94a2714d STYLE: use HashTable iterator 'val()' method instead of 'object()' 2019-01-18 16:26:50 +01:00
53efb24a8d STYLE: use ListOps::uniqueEqOp instead of local definition 2019-01-18 15:34:28 +01:00
1dd7362aed ENH: wmakeRoot for locating the root directory 2019-01-18 10:58:07 +01:00
3c81aec0e2 STYLE: fix doxygen-related typos 2019-01-18 09:32:36 +01:00
c0b11a5298 ENH: additional constructor for vtk::outputOptions 2019-01-18 09:03:07 +01:00
a8fa75246b COMP: Resolved compiler warning 2019-01-21 13:24:15 +00:00
6ccdc77468 BUG: trackingInverseDistance: fix trackingInverseDistance. Fixes #736. 2019-01-17 18:21:38 +00:00
56406493f6 ENH: pointToPoint: better checking. 2019-01-17 11:45:34 +00:00
268d6d9037 ENH: turbulence: better restart behaviour. Fixes #1172. 2019-01-17 11:42:15 +00:00
0abae185b7 STYLE: Updated output message 2019-01-15 15:05:56 +00:00
bc12ce2ac9 ENH: Updated fieldSelection dependent code 2019-01-21 11:56:53 +00:00
d11a5091a4 ENH: Extended equationInitialResidualCondition to use field components 2019-01-21 11:42:49 +00:00
2a386064e2 ENH: Extended fieldSelection to include field components 2019-01-21 11:35:36 +00:00
8fed88a2bf BUG: fvMesh: support for multi-region moving meshes. Fixes #1170. 2019-01-14 16:55:30 +00:00
7b64894853 CONFIG: drop config support for deprecated ensight reader library 2019-01-17 10:53:44 +01:00
361257d9f4 STYLE: enumerate Nastran PLOADs in NASCore 2019-01-17 03:10:31 +01:00
c44814c100 ENH: use globalIndex gather in patch merging 2019-01-17 00:38:18 +01:00
f498d09dbf ENH: add simplified gather methods for globalIndex with default communicator
- when combining lists in processor order this simplifies code and
  reduces memory overhead.

  Write this:
    ----
    labelList collected;

    const globalIndex sizing(input.size());
    sizing.gather(input, collected);
    ----

  OR

    ----
    labelList collected;
    globalIndex::gatherOp(input, collected);
    ----

  Instead of this:

    ----
    labelList collected;

    List<labelList> scratch(Pstream::nProcs());
    scratch[Pstream::myProcNo()] = input;
    Pstream::gatherList(scratch);

    if (Pstream::master())
    {
        collected = ListListOps::combine<labelList>
        (
            scratch,
            accessOp<labelList>()
        );
    }
    scratch.clear();
    ----
2019-01-16 21:33:06 +01:00
f19150cd32 STYLE: relocate identity() declaration to List.H (was in ListOps.H)
- remove unused and deprecated emptyList() casting function.

  This function is disllowed by many modern compilers and is no longer
  used within OpenFOAM - was deprecated 2018-07.
2019-01-16 21:00:22 +01:00
dfc838585c STYLE: expose List uniform() method as public 2019-01-16 10:15:30 +01:00
ac7a88034e STYLE: modernize code for concrete Fields (#1160)
- use forwarding tmp factory methods, auto types
2019-01-10 17:06:04 +01:00
7e48f2c6b3 STYLE: modernize code for GeometricFieldFunctions (#1160)
- use forwarding tmp factory methods, auto types
2019-01-10 17:06:04 +01:00
b002a232d6 STYLE: modernize code for FieldFieldFunctions (#1160)
- use forwarding tmp factory methods, auto types
2019-01-10 17:06:04 +01:00
6365560956 STYLE: modernize code for DimensionedFieldFunctions (#1160)
- use forwarding tmp factory methods, auto types
2019-01-10 17:06:04 +01:00
3019f30b12 STYLE: modernize code for FieldFunctions (#1160)
- use forwarding tmp factory methods, auto types
2019-01-10 17:06:04 +01:00
35fc2d1be2 STYLE: modernize code for tmp reuse functions (#1160)
- use forwarding tmp factory methods
2019-01-10 17:06:04 +01:00
fcf4c5fb22 ENH: wmake have_* script changes
- use local 'prefix' variable for easier override and more consistency
2019-01-10 20:14:46 +01:00
abf6d57ae8 ENH: include the selection volume in momentum output 2019-01-15 16:58:27 +01:00
52c337a667 ENH: add updateMesh(), movePoints() to volRegion 2019-01-15 18:32:35 +01:00
c6c30a0692 ENH: return const pointer instead of bool from PtrList::set(label)
- can still test as a bool or use to 'peek' at the content.
2019-01-15 16:37:15 +01:00
1ce8440cec ENH: downgrade error to warning in Alltest
- make adjustment of the DebugSwitches optional.
  Enable (the old behaviour) with -debug.
2019-01-15 10:37:50 +01:00
02ea8b1ce8 ENH: improve handling of etc/controlDict for Alltest
- only backup/modify controlDict if it contains a DebugSwitches entry

- add -no-debug option to suppress modification entirely
2019-01-15 09:36:15 +01:00
2a1d0f36ec ENH: new foamToVTK output option -processor-fields
- write values of processor boundaries only, for diagnostic purposes.

- parallel only, and non-legacy format only
2019-01-14 17:32:07 +01:00
9ccae1d37f ENH: support procIDs output for vtk::patchWriter 2019-01-14 16:56:55 +01:00
8a391b79b5 ENH: MinMax class for handling value ranges 2019-01-14 10:00:32 +01:00
a174f13f4b ENH: define accessOp<T> and emptyOp<T> in UList.H
- The dummy accessOp can be useful outside of ListListOps.
- New emptyOp for using as a filter predicate (for example).
2019-01-14 09:47:52 +01:00
57cfe2b5ef BUG: incorrect return type for (GeometricFields) unary reduction 2019-01-11 00:14:50 +01:00
34386291cb ENH: make List uniform() method consistent with Field
- this protected method was previously used directly for the list
  output and had the check for 2 or more elements in it. Now simply
  test the List content and handle the output preference separately.
2019-01-11 12:49:08 +01:00
6c419174e1 STYLE: writeEntry instead of writeKeyword + END 2019-01-11 11:03:36 +01:00
dcb6969361 BUG: missing space separator in chemkinToFoam file output
- generates dictionary-like content, but without a separator between
  keyword and list content.
2019-01-11 11:03:36 +01:00
cb5617e070 STYLE: fix some doxygen markup
- missing verbatim/endverbatim markers, missing "Foam::" prefix, typos
2019-01-11 08:22:02 +01:00
030877f8af ENH: add '-help-notes' as an advanced option
- emits the notes description only
2019-01-10 15:21:24 +01:00
00cbf5564b STYLE: add deprecated message to NamedEnum constructor
- this class really should not be used at all anymore.
  Add a message so people recognize can find any occurrences.
2019-01-10 14:49:18 +01:00
8071020518 ENH: make List output compile-time configurable (#1160)
- introduced a ListPolicy details to make the transition between
  a short list (space separated) and a long list (newline separated)
  more configurable.

  We suppress line breaks for commonly used types that often have
  short content: (word, wordRes, keyType).
2019-01-10 14:24:11 +01:00
bef508dedc ENH: make use of FOAM_API for environment as well (issue #1158)
- was WM_PROJECT_API in the environment and FOAM_API in dictionaries.

  Make these both consistently FOAM_API.
  This is a non-breaking change, since the value of WM_PROJECT_API
  (added in 1812) and/or FOAM_API is purely informative.
  For the current correct values, always use

    * foamEtcFile -show-api
    * wmakeBuildInfo -show-api
2019-01-10 12:21:19 +01:00
b6d87f56cd STYLE: foamDictionary does not need to set FOAM_API
- already done in argList
2019-01-10 12:00:11 +01:00
8609a0bb93 Merge remote-tracking branch 'origin/develop' into develop 2019-01-10 11:59:03 +01:00
7e3202f438 ENH: provide config setup for mesa with llvm (issue #1164)
- If using a non-clang compiler suite (gcc, intel, etc) the additional
  lbraries required for mesa with llvm pipelines may not be found.

  Provide a mesa_llvm configuration with in the 'vtk' config file.
  Can use the usual types of settings

     * mesa_llvm=llvm-4.0.1
     * mesa_llvm=none
     * mesa_llvm=system
2019-01-10 11:50:09 +01:00
3d6d6df566 BUG: incorrect dimensions for surfaceTensionForce
- accidentally introduced by 27c62303ad

STYLE: trial use of brace-initialized dimensionSet

- instead of writing

      dimensionedScalar(dimensionSet(1, -2, -2, 0, 0, 0), Zero);

  we can use C++11 brace-initialization to bundle the parameters
  for the dimensionSet construction and simply write

      dimensionedScalar({1, -2, -2, 0, 0, 0}, Zero);

  Note the following is incorrect syntax (extra brackets):

      dimensionedScalar(({1, -2, -2, 0, 0, 0}), Zero);
2019-01-10 10:17:36 +01:00
5c226864a8 ENH: add clip() method to GeometricField 2019-01-10 09:56:12 +01:00
9a7029004c ENH: minMax, minMaxMag as functions and field functions
- Global functions are unary or combining binary functions, which are
  defined in MinMax.H (MinMaxOps.H).

  There are also global reduction functions (gMinMax, gMinMaxMag)
  as well as supporting 'Op' classes:

  - minMaxOp, minMaxEqOp, minMaxMagOp, minMaxMagEqOp

  Since the result of the functions represents a content reduction
  into a single MinMax<T> value (a min/max pair), field operations
  returning a field simply do not make sense.

- Implemented for lists, fields, field-fields, DimensionedField,
  GeometricField (parallel reducing, with boundaries).

- Since the minMax evaluates during its operation, this makes it more
  efficient for cases where both min/max values are required since it
  avoids looping twice through the data.

  * Changed GeometricField writeMinMax accordingly.

ENH: clip as field function

- clipping provides a more efficient, single-pass operation to apply
  lower/upper limits on single or multiple values.

  Examples,

    scalarMinMax limiter(0, 1);

    limiter.clip(value)

       -> returns a const-ref to the value if within the range, or else
          returns the appropriate lower/upper limit

    limiter.inplaceClip(value)

       -> Modifies the value if necessary to be within lower/upper limit

  Function calls

    clip(value, limiter)

       -> returns a copy after applying lower/upper limit

    clip(values, limiter)

       -> returns a tmp<Field> of clipped values
2019-01-10 09:43:23 +01:00
000f704e08 ENH: FixedList empty(), size(), max_size() now constexpr static (#1160)
- this allows their use as templates parameters
2019-01-10 09:35:41 +01:00
c52d70cce3 STYLE: consistent ordering of is_same parameters 2019-01-10 07:55:53 +01:00
7720b59066 ENH: add dimensionSet provisioning for a dimensioned clip() method
- use file-local function to reduce some code clutter
2019-01-09 23:44:17 +01:00
d0bb3670a7 BUG: incorrect return type for dimensioned unary reduction 2019-01-09 21:01:09 +01:00
b3b404b206 BUG: snappyHexMesh: clear out old data. Fixes #1165. 2019-01-09 14:26:59 +00:00
888b70aaeb Merge branch 'feature-merge_foundation' into 'develop'
Feature merge OpenFOAM.org

See merge request Development/OpenFOAM-plus!226
2019-01-10 10:10:06 +00:00
e6f8dfecec Feature merge OpenFOAM.org 2019-01-10 10:10:06 +00:00
0027ba3226 STYLE: remove unused GeometricField method declarations 2019-01-09 13:43:19 +01:00
27c62303ad ENH: for-range, forAllIters() ... in applications/solvers
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
07a6e9d83d STYLE: use cbrt() instead of pow(..,1.0/3.0) in a few more places 2019-01-09 12:22:07 +01:00
95d7586b48 SUBMODULES: cfmesh updated to use areaNormal/unitNormal 2019-01-09 12:17:46 +01:00
c350a127cd STYLE: add compile-time deprecated message for face/triangle normal()
- in 1812 propagated through the distinction between areaNormal and
  unitNormal (issue #885).

  In older versions, the normal() always meant the area-normal for
  certain of these primitive.

  However, the .org version changed this to now return the unit-normal
  instead, but with the same method name. Thus add the deprecated
  message to avoid future inadvertent uses of normal() without being
  certain which one is being meant.
2019-01-09 10:32:25 +01:00
2067014079 ENH: minor consistency improvements for bounding box
- a valid() method (same as !empty() call) for consistency with other
  containers and data types

- a centre() method (same as midpoint() method) for consistency with
  other OpenFOAM geometric entities
2019-01-09 09:32:23 +01:00
a0a7da2edd ENH: Pair, Tuple2 improvements (#1160)
- move constructors, construct from std::pair
- input/output of std::pair

Makes it easier when using data structures for other codes.
2019-01-08 22:16:41 +01:00
08dc8d0e39 BUG: Tuple2 construct null with uninitialized value
Had this:

    Tuple2() {}

Instead of:

    Tuple2() : f_(), s_() {}

which is the same as

    Tuple2() = default;

This meant that Tuple2<scalar, scalar>() was not being zero-initialized
2019-01-08 21:58:08 +01:00
26d0d48fb5 STYLE: doxygen comments for min/max functions 2019-01-09 09:08:20 +01:00
907dd6d49f STYLE: consistent indentation and template parameters for FixedList 2019-01-08 21:50:12 +01:00
14a404170b ENH: for-range, forAllIters() ... in applications/utilities
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
1458b4f689 ENH: remove uniform compact output for FixedList (#1160)
- a FixedList is generally small so there is little advantage
  in a compact output form for uniform content.  Eg, "2{-1}"

  By avoiding this compact form we obtain output that is also
  consistent with Tuple2, for example.

- make FixedList construct from Istream explicit
2019-01-08 13:03:24 +01:00
8eefc7b347 ENH: partial reorganization of HashTable internals (#1160)
- relocate the pair_entry (HashTable) and unary_entry (HashSet) into
  the Detail namespace and add output handling.

  The output handling at this level removes the reliance on zero::null
  output (HashSet) and allows direct support of pointers.
  This means that the following now works

      HashTable<T*> tbl;
      os << tbl;

  It also means that we don't need to overload operator<< for
  HashPtrTable anymore.

- avoid delete/new when calling HashSet::set(). If the entry already
  exists there is no reason to remove it and add another one with the
  same content.

STYLE: HashTable iterators now have a val() method

- identical to the object() iterator method, but shorter to type.
2019-01-08 12:25:30 +01:00
9c74abb7d2 ENH: zero::null::dummy, when dereferencing and dummy assignment are needed 2019-01-08 10:51:24 +01:00
72eb55033a BUG: had readOpt() instead of writeOpt() in polyTopoChange.C (#1147) 2019-01-08 09:28:54 +01:00
000239a42e SUBMODULES: update for change in polyMesh constructor 2019-01-07 23:26:51 +01:00
74d9dc3f50 BUG: polyMesh constructor AUTO_WRITE flag, ignored readOpt (#1147)
- fixed some more places with an explicit AUTO_WRITE.

BUG: revert handling of the readOption. It should not be NO_READ.

  In cases where the user a IOobject without specifying read/write, it
  defaults to NO_READ anyhow. However, the move constructor can also
  be called with empty lists and a read option. This has the same
  signature, but obviously will not work with NO_READ.
2019-01-07 22:23:19 +01:00
620f5274d0 Merge remote-tracking branch 'origin/develop' into develop 2019-01-07 19:13:18 +01:00
c7350f3dd7 Merge remote-tracking branch 'origin/master' into develop 2019-01-07 19:13:11 +01:00
22b659d7c0 ENH: export FOAM_API in dictionary (issue #1158)
- uses the value of foamVersion::api, which should be reliable.
2019-01-07 19:04:50 +01:00
7339d6427e ENH: setToFaceZone: improved messages 2019-01-07 17:53:26 +00:00
a6a46d23b8 BUG: polyMesh: set AUTO_WRITE flag. See #1147. 2019-01-07 17:51:47 +00:00
e7fde1dbe0 STYLE: use std::initializer_list instead of const char*[] 2019-01-07 12:49:37 +01:00
3a374bf315 ENH: polyMesh: do not switch on auto-write. Fixes #1147. 2019-01-07 11:08:58 +00:00
573a313f46 STYLE: deprecate hashedWordList contains() method
- identical to found(), which should be used for more consistency.
  The contains() is a remnant from when hashedWordList was generalized
  from a speciesTable (OCT 2010)
2019-01-07 09:51:45 +01:00
0fa923d3d5 CONFIG: adjust intel-mpi paths (issue #1153)
- and support setting cmake_version within the paraview config files
2019-01-06 15:16:10 +01:00
d76dd0e1fe CONFIG: remove bash dependency from wmakeBuildInfo (fixes #1152)
- looks slightly messier without associative arrays, but improves
  portability. Should now also work with dash.

STYLE: support wmakeBuildInfo -cmp and -check options as equivalent
2019-01-06 10:50:37 +01:00
25575df60e ENH: new ReactingHeterogeneousCloud
- number of particles per parcel info to kinematic cloud

- added turbulent dispersion to basicHeterogeneousReactingParcel

- corrected dhsTrans in MUCSheterogeneousRate::calculate

- added cloud macro system to reactingParcelFoam and fixed calculation
  of average particles per parcel

- added progress variable dimension to reacting model (nF)

- added ReactingHeterogeneous tutorial
2019-01-04 17:08:53 -08:00
86e1933057 ENH: iterator method good() as a synonym for testing validity
- applies to HashTable and Linked-Lists

- deprecate the Linked-List iterator found() method, since this makes
  less sense (linguistically)
2019-01-04 14:07:01 +01:00
0dbd05daa4 STYLE: minor adjustment of test case 2019-01-03 19:16:13 +01:00
e596377179 STYLE: avoid flush when dictionary {} closing (issue #1145)
- a holdover from introducing the endBlock() method
2019-01-03 19:12:12 +01:00
c143c3a32c STYLE: columnFvMesh: typo 2019-01-03 14:37:37 +00:00
6a448016aa ENH: additional read guards for dimensionedType. input consistency (#762, #1148)
- provide a lookupOrDefault constructor form, since this is a fairly
  commonly used requirement and simplifies the calling sequence.

  Before

      dimensionedScalar rhoMax
      (
          dimensionedScalar::lookupOrDefault
          (
              "rhoMax",
              pimple.dict(),
              dimDensity,
              GREAT
          )
     );

  After

      dimensionedScalar rhoMax("rhoMax", dimDensity, GREAT, pimple.dict());

- read, readIfPresent methods with alternative lookup names.

- Mark the Istream related constructors with compile-time deprecated
  warnings.

BUG: read, readIfPresent methods not handling optional dimensions (#1148)
2019-01-03 13:34:11 +01:00
af310075a0 ENH: handle dimensions in dimensioned<Type>::lookupOrAddToDict (#1116) 2019-01-03 01:30:27 +01:00
488150cfb2 ENH: add FOAM_DEPRECATED macros 2019-01-03 00:36:30 +01:00
505b4b9c1c ENH: add guarded lookup for dimensionedSet
STYLE: use standard dimensionedSets
2019-01-02 16:53:41 +01:00
2ce944a748 STYLE: documentation/comment typo 2019-01-02 16:16:45 +01:00
e2bc0b55b9 COMP: use std::move() explicitly to avoid copying 2019-01-02 15:56:54 +01:00
f67f36c63a COMP: avoid some static analysis warnings 2019-01-02 13:49:39 +01:00
7bf25dbda1 ENH: add 'Scan' WM_COMPILE_OPTION (clang only)
- backend settings for scan-build
2019-01-02 11:49:49 +01:00
4ecdb2512d CONFIG: add llvm-7.0.1
STYLE: generalize rule for obtaining compiler stem
2019-01-02 11:08:21 +01:00
c13199d3ce STYLE: make chemistryReader private inheritance (issue #1144)
- The chemistryReader is only used during construction of reactingMixture
  and thus does not require public visibility.
2019-01-02 14:44:21 +01:00
10da897275 ENH: snappyHexMesh: limit printing in dry-run. See #972. 2018-12-24 08:55:42 +00:00
7f9ba23be1 STYLE: stage various foamPack* script as 'legacy' (#914)
- this scripts are largely pre-git era and not used much anymore.
  Relocate to a legacy/ sub-directory while we see if there are
  actually any still being used.
2018-12-21 18:52:17 +01:00
855faae858 STYLE: surfaceMeshTriangulate renamed to surfaceMeshExtract
- the utility had automatic triangulation removed some time ago, but
  never changed its name.

- catch old uses with a surfaceMeshTriangulate deprecated script
2018-12-21 18:37:39 +01:00
2c70dfc51d ENH: add pdf option to foamCreateManpage 2018-12-21 16:06:19 +01:00
603dd28fc8 GIT: update submodule refs after tagging and re-merging 2018-12-21 16:04:17 +01:00
3560884abe ENH: allow direct testing of HashTable iterator as a bool
- can be used as a more natural test on the iterator.
  For example, with

     HashTable<..> table;
     auto iter = table.find(...);

  Following are now all equivalent:

    1.  if (iter != table.end()) ...
    2.  if (iter.found()) ...
    3.  if (iter) ...
2018-12-20 18:03:16 +01:00
08335beb6f ENH: add get() accessor to tmp classes
- similar to autoPtr and unique_ptr. Returns the pointer value without
  any checks. This provides a simple way for use to use either
  an autoPtr or a tmp for local memory management without accidentally
  stealing the pointer.

  Eg,

     volVectorField* ptr;
     tmp<volVectorField> tempField;

     if (someField.valid())
     {
         ptr = someField.get();
     }
     else
     {
         tempField.reset(new volVectorField(....));
         ptr = tmpField.get();
     }

     const volVectorField& withField = *ptr;

STYLE: make more tmp methods noexcept
2018-12-20 17:29:51 +01:00
17419209a7 STYLE: return a pointer instead of bool for isA<>
- in some cases this means you could avoid an isA<> followed by
  second dynamicCast<>
2018-12-20 18:02:16 +01:00
2444e0f964 Merge branch 'release-v1812' 2018-12-20 16:12:59 +00:00
9231534efa STYLE: Updating version to v1812 2018-12-19 18:07:52 +00:00
756e00ac56 GIT: Removed file 2018-12-20 16:10:42 +00:00
7882f952f3 TUT: Added missing files 2018-12-20 15:15:30 +00:00
df58bb96a8 BUG: swirlFanVelocity: preserve pressure name. Fixes #1138. 2018-12-20 14:33:49 +00:00
e22606756b BUG: meanVelictyForce: missing correctBoundaryConditions. Fixes #1136. 2018-12-20 09:23:10 +00:00
c03c6bdea2 TUT: Corrections 2018-12-20 09:05:02 +00:00
9f97084605 STYLE: fvSolution: include unused file 2018-12-19 16:31:13 +00:00
b476b56afb BUG: meanVelictyForce: missing correctBoundaryConditions 2018-12-19 16:29:10 +00:00
4910dbc995 STYLE: particle: improved warning message 2018-12-19 11:31:44 +00:00
7ee1ec92ec STYLE: add usage information for subsetMesh argument 2018-12-19 15:15:28 +01:00
e8f25b1385 BUG: foamToVTK, vtkWrite stopped by processorCyclic (closes #1135)
- they had an isType<> instead of isA<>() check
2018-12-19 13:56:20 +01:00
cb152896b0 BUG: snappyHexMeshDict: illegal slip patch type 2018-12-19 09:56:33 +00:00
97fc516563 ENH: Added new periodicHill test case 2018-12-19 09:46:26 +00:00
79f9c3bb7d TUT: Added new bump2D case 2018-12-18 19:08:03 +00:00
485523eab5 ENH: Added new columnAverage function object
Averages columns of cells for layered meshes.

    For each patch face, calculates the average value of all cells attached in
    the patch face normal direction, and then pushes the average value back
    to all cells in the column.

    Useful for channel-like cases where we want to average fields in the
    spanwise direction.

    Example of function object specification:
    columnAverage1
    {
        type        columnAverage;
        libs        ("libfieldFunctionObjects.so");
        ...
        patches     (front side);
        fields      (U p);
    }

    Where the entries comprise:
    \table
        Property     | Description               | Required    | Default value
        type         | type name: fieldMinMax    | yes         |
        patches      | list of patches to collapse onto | yes  |
        fields       | list of fields to process | yes         |
    \endtable
2018-12-18 10:35:34 +00:00
e145034a6d STYLE: Code clean-up 2018-12-17 12:02:55 +00:00
4c14bc66ef STYLE: foamVersion alias should not change directory (closes #1131) 2018-12-19 07:54:35 +01:00
b0eeea8365 STYLE: fix doc for patchTo.. topo sources 2018-12-18 16:28:27 +01:00
7ee9c3b8c0 TUT: add vtkWrite to movingCone 2018-12-17 18:16:40 +01:00
a85fb097ef ENH: Allowing negative pressure drop in fan BC (EP 815) 2018-12-17 08:34:10 -08:00
1687a45419 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-12-17 08:21:04 -08:00
66ca352f5a ENH: Improvements to boatAndPropeller case 2018-12-17 08:20:31 -08:00
3f4289c238 COMP: scalarRanges construct null for gcc-48 2018-12-17 13:36:50 +01:00
919fa3a541 STYLE: ensure help for -dict matches its intended usage 2018-12-17 10:39:59 +01:00
146bfe2b56 STYLE: add comment about INTELMPI env variables 2018-12-17 10:11:12 +01:00
54ac451bf5 ENH: add -dict option for mirrorMesh 2018-12-17 09:51:29 +01:00
c4ec41218b ENH: allow "none" as time range specification (issue #1128)
- this corresponds to 'never match', which may be useful in combination
  with -constant selection.

  Eg,

      surfaceMeshTriangulate -constant -time none

  selects only the constant entry and suppresses any automatic time loop

STYLE: adjust help for the standard -times option

- indicate that times can be comma or space separated, since this is
  otherwise not apparent. Don't mention semicolon separators in the help
  since that just adds even more clutter.
2018-12-17 01:25:07 +01:00
c594d0ae91 STYLE: carp() method is const 2018-12-16 22:07:56 +01:00
f028c98025 TUT: renamed elipsekkLOmega to ellipsekkLOmega 2018-12-16 21:57:01 +01:00
7c556ec275 ENH: support text shadow, italic, opacity in runTimePostProcessing 2018-12-16 21:50:27 +01:00
c3507f74f2 ENH: improve file reader support for runTimePostProcessing (#1091)
- support .vtp format for geometry, surface, line, cloud.

- use native reader for handling vtk, vtp, obj, stl surface files.
  For other formats, use the MeshedSurface (the surfMesh lib) to
  handle reading and Foam::vtk::Tools::Patch to handle the
  conversion to vtkPolyData. This combination is more memory efficient.

- update tutorial case to include vtp surface geometry
2018-12-16 19:14:22 +01:00
b6983e6af5 STYLE: adjust comments and adjust surfaceMeshTriangulate code
- note that it does not actually triangulate unless necessary, should
  probably receive a new name.

- use newer constructs for handling processor/non-processor patch
  selection etc.
2018-12-16 16:16:00 +01:00
24c8f5a597 ENH: arbitrary face types for vtk::Tools::Patch::faces()
- the patch could use face or triFace (labelledTriFace)

- avoid trigger patch faceNormals unnecessarily
2018-12-16 13:52:16 +01:00
dc8179f5e0 ENH: add some storage queries to PrimitivePatch
- for quantities such as face area/normals etc, it can be useful to
  calculate directly and avoid the overhead of caching all the values.

STYLE: comments, use HashTable lookup() method in whichPoint()
2018-12-16 14:21:45 +01:00
d1caaa0529 ENH: build dummy runTimePostProcessing if VTK/ParaView are not available
- this allows more use of the runTimePostProcessing functionObject
  that will fail more gracefully if the proper version could not be
  built.

  The dummy functionObject simply emits a message that it is not available.
2018-12-15 18:08:51 +01:00
dd2c7c4894 ENH: add wmakeVersioned with tracking of ThirdParty dependencies
- primarily for handling cmake replacement libraries
2018-12-15 15:49:48 +01:00
9076f5b21b ENH: provide argList::envGlobalPath() static method
- this is identical to either of these solutions:

     * getEnv("FOAM_CASE")
     * stringOps::expand("<case>")

  but with a closer resemblance to argList or Time globalPath(),
  which makes the intent clearer.
  Avoids using raw strings in the caller, which improves compile-time checks.

  Used in situations where a class has no derivation path or other
  access to a time registry or command args.
2018-12-15 14:39:12 +01:00
455c8ef540 ENH: simplify use of case-relative paths
- provide relativePath() for argList and for Time.
  These are relative to the case globalPath().
  Eg,

     Info<< "output: " << runTime.relativePath(outputFile) << nl;
2018-12-15 13:26:55 +01:00
ce6cd338a8 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-12-14 16:41:07 -08:00
68e6cd79d7 ENH: Setting up boatPropeller tutorial 2018-12-14 16:39:40 -08:00
10132305e4 TUT: provisional runTimePostProcessing test with cutting planes (#1091) 2018-12-14 15:25:52 +01:00
2f9c511be5 ENH: make "file" property in functionObjects a relative path (issue #1125)
- partial solution for issue #1091

  This generates file properties that are case-relative,
  Eg,

      plane0
      {
          p
          {
              file "<case>/postProcessing/plane0/1/p_plane0.vtk";
          }
          U
          {
              file "<case>/postProcessing/plane0/1/U_plane0.vtk";
          }
      }

   This allows the case to be moved elsewhere and still find its files.

   This functionality was previously added for vtkCloud, but now also
   applies to streamLine, sampledSets and sampledSurfaces
2018-12-14 18:03:12 +01:00
2617c326d8 ENH: extend fileName::relative() method
- optionally replace stripped parent directory with the \<case\> shortcut

    "/this/path/and/subdirs/name"

    relative("/this/path")        -> "and/subdirs/name"
    relative("/this/path", true)  -> "\<case\>/and/subdirs/name"
2018-12-14 17:44:07 +01:00
db8ba80ae4 TUT: update old keywords 2018-12-14 11:20:31 +01:00
4696a96fec STYLE: option consistency for acousticDampingSource
- accept origin or centre, as per other geometric entities
2018-12-14 11:42:00 +01:00
e761570986 ENH: reduce number of warnings emitted by hierarchGeomDecomp
- it is sufficient to provide the total number of times that findBinary()
  failed instead of flooding the screen with messages

  Full verbose warnings still emitted when debugging is on.
2018-12-13 18:26:30 +01:00
d64a738d0f CONFIG: bump API version number to 1812 to register recent changes 2018-12-13 16:28:57 +00:00
e17f6073b9 CONFIG: bump API version number to 1812 to register recent changes 2018-12-13 15:23:04 +00:00
1d85fecf4d ENH: use Zero when zero-initializing types
- makes the intent clearer and avoids the need for additional
  constructor casting. Eg,

      labelList(10, Zero)    vs.  labelList(10, 0)
      scalarField(10, Zero)  vs.  scalarField(10, scalar(0))
      vectorField(10, Zero)  vs.  vectorField(10, vector::zero)
2018-12-11 23:50:15 +01:00
6e8cf684d1 STYLE: reduce else/if levels for return 2018-12-21 09:38:16 +01:00
a9f5f181c6 STYLE: remove extra '(' in usage information, doubled ';;' 2018-12-21 09:22:06 +01:00
a403e72277 TUT: tidying of periodicHill 2018-12-20 10:26:18 +01:00
2a51537d78 STYLE: reset WM_PROJECT_VERSION for the develop branch 2018-12-20 18:06:41 +00:00
69f257adc7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-12-11 13:55:14 -08:00
aaa041b3c7 Fixing reconstruction of lagragian fields for hopper 2018-12-11 13:53:54 -08:00
08b70bb222 STYLE: remove unused variable (vtm writer) 2018-12-11 16:40:14 +01:00
98158f5409 TUT: add End marker for tutorials 2018-12-11 16:25:28 +01:00
a1cc72f8ac SUBMODULES: update for -help usage 2018-12-11 16:26:45 +01:00
68ec561df8 STYLE: add usage notes to more utilities and solvers 2018-12-11 15:25:27 +01:00
ee5199cc65 STYLE: adjust manpage layouts 2018-12-10 22:40:53 +01:00
e7400ef271 TUT: split off an Allrun.pre for windAroundBuildings 2018-12-10 21:05:27 +01:00
27a705bb3f Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-12-10 12:04:31 -08:00
51fae75b8e STY: Deleting unused variable 2018-12-10 12:04:00 -08:00
199c857d65 ENH: check if MPI buffer really was attached before deattaching
- can occur if MPI has be initialized for communication but OpenFOAM
  itself is operating in serial mode and thus did not attach any
  MPI buffers.
2018-12-10 17:39:20 +01:00
f0fc2a2671 BUG: paraview target was tagged with ParaVIEW_MAJOR instead of PARAVIEW_API
- regression was introduced by 628b2445fc
2018-12-10 16:43:32 +01:00
fc13c20cc8 ENH: sampledPatch: access to patchIDs. 2018-12-10 15:21:48 +00:00
9103b199b9 TUT: remove unused default decomposition coeffs settings 2018-12-13 14:04:50 +01:00
2db0db3006 BUG: stringOps etc expansion fails for directories (issue #1121)
- now use findEtcEntry() instead to handle file or directory.

  Added findEtcEntries(), which provides provides a common code basis
  for findEtcDirs(), findEtcFiles() ...
2018-12-13 12:48:31 +01:00
3d95f56589 ENH: add optional checkGzip parameter to fileName::type(..) method
- this simplifies use of a unified test for directory or file.

      fileName::Type what = myfile.type(true, true);
      if (what == FILE) ...
      if (what == DIRECTORY) ...

- Use distinct bit values for fileName::Type, for possible use in
  the future.

- related to issue #1121, since we need a more flexible way of
  expanding file or directory.

  An alternative would be to add checkGzip to Foam::exists() and
  Foam::type() functions, but that would make the code there more
  confusing and in the fileHandler classes.
2018-12-13 09:40:54 +01:00
38de85cdf8 TUT: minor tutorial adjustments 2018-12-13 08:41:39 +01:00
78fd05051b STYLE: juggle some advanced/non-advanced options (foamToVTK, foamToEnsight) 2018-12-13 02:39:41 +01:00
5d9e278e92 ENH: consolidate handling of mandatory/optional command arguments
- for some special cases we wish to mark command-line arguments as
  being optional, in order to do our own treatment. For example,
  when an arbitrary number of arguments should be allowed.

  Now tag this situation with argList::noMandatoryArgs().
  The argList::argsMandatory() query can then be used in any further
  logic, including the standard default argument checking.

- with the new default check, can consolidate the special-purpose

      "setRootCaseNonMandatoryArgs.H"

  into the regular

      "setRootCase.H"

- revert to a simple "setRootCase.H" and move all the listing related
  bits to a "setRootCaseLists.H" file. This leaves the information
  available for solvers, or whoever else wishes, without being
  introduced everywhere.

- add include guards and scoping to the listing files and rename to
  something less generic.

     listOptions.H -> setRootCaseListOptions.H
     listOutput.H  -> setRootCaseListOutput.H
2018-12-13 01:45:09 +01:00
00ec58a141 ENH: extend flexibility of abort function object (#1119)
- Now also responds to the contents of the trigger file,
  processing action= contents similar to used with external coupling.

  Previously it only handled an action that was defined in the
  dictionary. With this update, the user can chose a diferent action
  simply by echoing the appropriate action string into the trigger
  file.
2018-12-12 15:39:49 +01:00
781246c26f TUT: consistent controlDict application value (#1120) 2018-12-12 14:26:02 +01:00
172c36c29a ENH: support search modes for etcFiles()
- similar to the foamEtcFile script -mode=... option, the specific
  search location (user/group/other) can now also specified for
  string expansions and as a numerical value for etcFile()

  For example, if searching for group or other (project) controlDict,
  but not wishing to see the user controlDict:

    1.  foamEtcFile -mode=go controlDict

    2.  fileName dictFile("<etc:go>/controlDict");
        dictFile.expand();

    3.  etcFile(controlDict, false, 0077);

  The default behaviour for searching all contexts is unchanged.

    1.  foamEtcFile controlDict

    2.  fileName dictFile("<etc>/controlDict");
        dictFile.expand();

    3.  etcFile(controlDict);
2018-12-12 13:45:32 +01:00
67140f6b07 STYLE: update documentation about central controlDict 2018-12-12 13:38:14 +01:00
29a5793b5b STYLE: argList::opt method instead of the longer argList::lookupOrDefault
- also replaced a few instances of readIfPresent with opt<> for
  constant values.
2018-12-12 12:10:39 +01:00
f38190213c ENH: support usage descriptions for command arguments 2018-12-12 11:58:56 +01:00
c3b6c787a7 BUG: sampledSurface::originalIds not virtual 2018-12-12 10:52:11 +01:00
a66e9c7468 ENH: adjust completion parser
- restrict to text between "^[Oo]ptions:" and "-help-full" to avoid
  potential issues when more text is introduced in the usage output.
2018-12-12 03:07:14 +01:00
d29388f1c5 STYLE: use foamVersion::api instead of OPENFOAM define
- for referencing the etc locations, or reporting the current API
  value.
2018-12-12 03:02:49 +01:00
99b85e3b3d COMP: disambiguate for 64-bit label 2018-12-11 19:36:23 +01:00
a93a1abec7 COMP: define Scotch and Zoltan include dirs before mpi directories
- the local third-party headers are to be searched before any MPI
  include directories. This stops the situation where an mpi-specific
  version of ptscotch.h is installed into the MPI directories.

  This "system" version may well have a different SCOTCH_Num size
  (32 bit vs 64 bit) from the third-party library etc.
2018-12-11 18:50:19 +01:00
170baf4d3b STYLE: use '&&', '||' instead of '-a' and '-o' for some shell commands 2018-12-10 15:13:15 +01:00
51a3f4e6e4 ENH: make foamToVTK faceZone writing explicit (closes #1117)
- change previous default (convert all faceZones unless -noFaceZones
  specified) with the default behaviour to only convert face zones on
  request.

- uses the '-faceZones' option as per foamToEnsight
2018-12-10 14:35:44 +01:00
5415991e79 ENH: argList::getList with optional parameter
- this allows it to work like readListIfPresent() but with a list as
  the return value, which can be useful for a const context.
2018-12-10 14:09:53 +01:00
a38b459ab0 CONFIG: use project api instead of version when finding config files 2018-12-10 14:04:01 +01:00
ba7b032687 STYLE: adjust comments in config setup 2018-12-10 13:15:31 +01:00
9f45518378 ENH: Added invertAlpha option to the setAlphaField utility. Fixes #1113 2018-12-10 11:33:57 +00:00
ef6eb77712 ENH: use vtp output for AMIWeights function object
- allows inclusion of the cyclicACMIPolyPatch mask in the same file
2018-12-10 11:26:11 +01:00
b6cb62a53f ENH: handle odd c-shell sourcing patterns
- the result of lsof, which is used in the etc/cshrc to locate the
  installation, may contain trailing information about host and mount
  point.

  There is also a moderate concern with people sourcing the
  file indirectly with their own version in the same directory.
  For example, a 'etc/cshrc-site' that actually sources 'etc/cshrc'.
  This leads to multiple matches in the lsof output, so we only take
  the first one, stop there and hope they didn't do something even
  trickier.
2018-12-10 10:34:11 +01:00
38c56c5c6b BUG: command-args overload ignored for etc/config.csh/paraview
- now needs local 'set' instead of 'setenv'

- fixed inconsistency in edit of ParaView_VERSION for csh version
2018-12-10 09:50:46 +01:00
69006ef0a7 ENH: adjust wmakeBuildInfo to work with older git versions as well 2018-12-10 09:49:45 +01:00
a44e59502f STYLE: additional information at end of top-level Allwmake
- report api, patch as well as the number of entries in the
  FOAM_APPBIN, FOAM_LIBBIN for a quick visual sanity check
2018-12-09 23:27:47 +01:00
438cdb083e Merge branch 'feature-AMIWeights-FO' into 'develop'
ENH: Added new AMIWeights function object

See merge request Development/OpenFOAM-plus!225
2018-12-10 09:55:03 +00:00
689db16064 ENH: add explicit doubleVector, doubleTensor typedefs
- the counterpart to floatVector, doubleTensor, which can be useful
  for connecting to programs that always expect double precision for
  the arguments, when using single-precision for OpenFOAM itself.

  Eg,
     doubleVector pos = ...;
     vtkcamera->SetPosition(pos.v_);
2018-12-09 17:44:12 +01:00
0a056fdbbf STYLE: use fallthrough for 'use' action in selections (#926)
- applyToSet() automatically handles NEW like ADD, so no need to do
  so explicitly
2018-12-09 11:51:13 +01:00
08bcee7a3f ENH: support 'use' action for selections in vtkWrite, ensightWrite (#926)
- have 'use' as the action appears more intuitive as the first entry
  instead of 'add'. Was previously also added to vtkCloud.
2018-12-08 22:16:58 +01:00
0e4ccd7cef ENH: improve build naming without git
- now defaults to the project-version when absolutely nothing else is
  known

STYLE: simplify internal calling in wmakeBuildInfo
2018-12-08 18:18:17 +01:00
c45ff8cefc BUG: WM_THIRD_PARTY_DIR not set in csh (bug noted in merge !222)
- local csh variable in foreach was masking the setenv
2018-12-08 18:01:44 +01:00
5e4d7386ec ENH: use foamVersion::api internally in etcFiles searching (#1010)
- prefer this to using the OPENFOAM define since this improves the
  internal consistency with the build information.

  The API information could change between builds without the
  etcFiles.C being recompiled whereas the value of
  Foam::foamVersion::api is force updated during the build (triggers
  recompilation of globals.Cver)
2018-12-08 17:42:31 +01:00
a4dc9966ed ENH: Added new AMIWeights function object
Reports the min|max|average AMI weights to text file and optionally
writes VTK surfaces of the sum of the weights, and mask field for
ACMI patches.

Example usage:

    AMIWeights
    {
        type            AMIWeights;
        libs            ("libfieldFunctionObjects.so");
        writeControl    writeTime;
        writeFields     yes;
    }
2018-12-07 17:24:13 +00:00
afc373d683 BUG: dimensioned<Type> - corrected handling of lookupOrDefault. Closes #1116 2018-12-07 11:45:47 +00:00
31642a7d88 ENH: residuals FO - extended writing to include solver name, initial
and final residuals, nIterations. See #1115.
2018-12-07 11:17:23 +00:00
f9116e9e40 TUT: Added interIsoFoam cases 2018-12-07 09:49:39 +00:00
0b5f681fb9 DOC: Updated header documentation 2018-12-06 23:09:10 +00:00
a16fd1fa9e TUT: Added new decay of isotropic turbulence case based on CBC data
Reference:
Comte-Bellot, G., and Corrsin, S., "Simple Eulerian Time Correlation of
Full- and Narrow-Band Velocity Signals in Grid-Generated, 'Isotropic'
Turbulence," Journal of Fluid Mechanics, Vol. 48, No. 2, 1971,
pp. 273–337.
2018-12-06 22:56:32 +00:00
a1558b88f5 ENH: Added new utility to create a box of isotropic turbulence 2018-12-06 22:28:43 +00:00
546de48ffe Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-12-06 09:06:31 -08:00
ff74469087 BUG: Correct division by zero when initial U = 0 in fvOption
source directionalPressureGradientExplicitSource
2018-12-06 09:04:08 -08:00
65475a7e40 Merge branch 'feature-isoSurfaceTopo' into 'develop'
ENH: isoSurfaceTopo: replacement for isoSurfaceCell.

See merge request Development/OpenFOAM-plus!224
2018-12-06 15:56:26 +00:00
7943603bf0 ENH: isoSurfaceTopo: replacement for isoSurfaceCell. 2018-12-06 15:56:26 +00:00
069dd14413 Merge branch 'feature-config' into 'develop'
ENH: update handling of versioning and make control (issue #1010)

See merge request Development/OpenFOAM-plus!222
2018-12-06 08:37:48 +00:00
6e32d05848 SUBMODULE: adjust for catalyst 2018-12-05 23:13:59 +01:00
a199fef957 STYLE: use globalPath() instead of path()/".." for parallel 2018-12-05 22:54:50 +01:00
d3a2544bfa STYLE: remove unused extractEulerianParticles::dictBaseFileDir() method 2018-12-05 22:25:44 +01:00
fc2f2e74d2 BUG: checkMesh, moveDynamicMesh checks not in postProcessing/ (fixes #1104)
- now placed under postProcessing/checkMesh and postProcessing/checkAMI,
  respectively.

  Output files are now also tagged with the id of the patch, in case
  there are multiple AMI patches in use.
2018-12-05 22:03:28 +01:00
e3e0e0557f BUG: unguarded use of globalIndex in vtk writers (fixes #1110)
- the problem occurred when running the writers in a parallel solver
  or utility but requesting output on the master only.

  Adjusted the logic to avoid globalIndex for these cases.
  Previously the if (parallel_) checks were happening later, after the
  globalIndex had already been created.
2018-12-05 21:27:29 +01:00
8d124355dc CONFIG: update config for VTK from 9.0.0 to 8.2.0
- the previous 9.0.0 was a premature change from ParaView 5.5 and
  still will not be reached for a while
2018-12-05 18:07:28 +01:00
1f9543802d ENH: code cleanup for vtk transcription
- use cellCentres() instead of volField equivalent for vtk conversion

- make looping variables more consistent

- centralize the transcription of OpenFOAM -> vtk tuples
2018-12-05 11:19:08 +01:00
2469f698e9 CONFIG: update completion_cache (for csh users)
- now consider options '-hostRoots', '-roots' to be advanced options
  that don't need to be in the cache
2018-12-05 08:50:38 +01:00
bff16a0ddc STYLE: additional comments in Test-decomposePar 2018-12-05 08:42:55 +01:00
274bb501bc STYLE: incorrect option name handling for foamCreateModuleInclude
- The usage claimed '-output=', but was using '--output=' for the
  output file.  Rectify to use single dash as documented.
2018-12-04 17:19:25 +01:00
93b5559c87 ENH: runTimeControl - execute function objects on end 2018-12-04 14:39:40 +00:00
124eb1c922 TUT: Added example of runTimeControl with triggers 2019-01-21 11:05:59 +00:00
088e46f2dd Merge branch 'functionObject-momentum' into 'develop'
ENH: momentum field function (issue #1105)

See merge request Development/OpenFOAM-plus!223
2018-12-04 14:26:43 +00:00
077910628e ENH: momentum field function (issue #1105)
Calculates linear/angular momentum, reporting integral values
    and optionally writing the fields.

Example
    momentum1
    {
        type        momentum;
        libs        ("libfieldFunctionObjects.so");
        ...
        writeMomentum   yes;
        writeVelocity   no;

        cylindrical     true;
        origin  (0 0 0);
        e1      (1 0 0);
        e3      (0 0 1);
    }
2018-12-04 15:16:03 +01:00
d842118994 ENH: add cellSet support for volRegion (#1106) 2018-12-04 13:22:59 +01:00
cacbcd98d9 SUBMODULE: minor catalyst and cfmesh updates 2018-12-04 01:40:54 +01:00
5252c70b46 STYLE: add OpenFOAM/include directory in CMakeLists
- eg for foamVersion.H
2018-12-04 01:38:46 +01:00
942a7f8565 STY:
Reducing running time in controlDict
2018-12-03 16:06:20 -08:00
9893e62386 ENH:
Adding reflecting fluxes to Solar load radiation model.
Adding functionality to the boundary radiation models and new
place holder for basic wall types such as transparent, opaqueDiffusive,
opaqueReflective,etc.
Changing radiation wall models to run time selectable.
Adding multi-band capabilities to VF model and improving the set up
for using solar loads in VF and fvDOM radiation models.
2018-12-03 13:51:40 -08:00
f3488c1220 ENH: writeFile - add option to (not)use user time. Fixes #1078 2018-12-03 16:58:40 +00:00
a8ff5b10e8 COMP: Resolved compiler warnings 2018-12-03 16:46:24 +00:00
798ede77ec ENH: Extended atmospheric BCs to use PatchFunction1s 2018-12-03 15:34:22 +00:00
8dc295bf01 ADMIN: Updated COPYING file 2018-12-03 15:33:45 +00:00
31a439dc99 ENH: freestream BC: allow inlet value to be specified by another patch
The freestreamFvPatchField previously employed a fixed value when supplying
the inlet values.  This commit extends the BC so that users can use another
patch to supply the values via the new freestreamBC entry, e.g. to set the
velocity to an atmospheric boundary layer profile:

    inlet
    {
        type            freestream;
        freestreamBC
        {
            type            atmBoundaryLayerInletVelocity;
            flowDir         (1 0 0);
            zDir            (0 0 1);
            Uref            20;
            Zref            20;
            z0              uniform 0.1;
            zGround         uniform 935;
        }
    }

The earlier specification is also maintained for backwards compatibility, e.g.

    inlet
    {
        type            freestream;
        freestreamValue uniform (300 0 0);
    }
2018-12-03 15:27:42 +00:00
b8c257d6ad CONFIG: adjustments to environment
- provide default WM_DIR if not already set, to improve robustness if a
  reduced environment is used

- add etc/ to WM_PROJECT_SITE search. This makes the site directory
  structure consistent with the OpenFOAM structure.
  Eg,

      WM_PROJECT_SITE/etc/..
      WM_PROJECT_SITE/bin/..
      WM_PROJECT_SITE/platforms/..

- Don't set/export WM_OSTYPE.  The default is POSIX and is properly
  defaulted throughout, including in CMakeLists-OpenFOAM.txt (also for
  Catalyst)
2018-12-03 09:50:48 +01:00
e917586574 ENH: triSurfaceMesh: improved error message. 2018-12-03 10:33:00 +00:00
6c68c34e1a ENH: update handling of versioning and make control (issue #1010)
- Use the OPENFOAM define (eg, 1806, 1812), which normally corresponds
  to a major release, to define an API level. This remains consistent
  within a release cycle and means that it is possible to manage
  several sub-versions and continue to have a consistent lookup.

  The current API value is updated automatically during the build
  and cached as meta data for later use, even when the wmake/ directory
  is missing or OpenFOAM has not yet be initialized.

  The version information reported on program start or with -help
  usage adjusted to reflect this. The build tag from git now also
  carries the date as being more meaningful to trace than a hash
  value.

- Update etc/bashrc and etc/cshrc to obtain the project directory
  directly instead of via its prefix directory. The value obtained
  corresponds to an absolute path, from which the prefix directory
  can be obtained.

  The combination of these changes removes the reliance on any
  particular directory naming convention.
  For example,

     With an 1812 version (API level):

     WM_PROJECT_VERSION=myVersion

     installed as /some/path/somewhere/openfoam-mySandbox

  This makes the -prefix, -foamInstall, -projectVersion, -version
  values of foamEtcFiles, and similar entries for foamConfigurePaths
  superfluous.

  WM_PROJECT_INST_DIR is no longer required or used

ENH: improve handling and discovery of ThirdParty

- improve the flexibility and reusability of ThirdParty packs to cover
  various standard use cases:

    1. Unpacking initial release tar files with two parallel directories
       - OpenFOAM-v1812/
       - ThirdParty-v1812/

    2. With an adjusted OpenFOAM directory name, for whatever reason
       - OpenFOAM-v1812-myCustom/
       - openfoam-1812-other-info/

    3. Operating with/without ThirdParty directory

  To handle these use cases, the following discovery is used.

  Note PROJECT = the OpenFOAM directory `$WM_PROJECT_DIR`
       PREFIX = the parent directory
       VERSION = `$WM_PROJECT_VERSION`
       API = `$WM_PROJECT_API`, as per `foamEtcFiles -show-api`

   0. PROJECT/ThirdParty
      - for single-directory installations

   1. PREFIX/ThirdParty-VERSION
      - this corresponds to the traditional approach

   2. PREFIX/ThirdParty-vAPI
      - allows for an updated value of VERSION (eg, v1812-myCustom)
        without requiring a renamed ThirdParty. The API value
        would still be '1812' and the original ThirdParty-v1812/
        would be found.

   3. PREFIX/ThirdParty-API
      - this is the same as the previous example, but using an unadorned
        API value. This also makes sense if the chosen version name also
        uses the unadorned API value in its naming
        (eg, 1812-patch190131, 1812.19W03)

   4. PREFIX/ThirdParty-common
      - permits maximum reuse for various versions, but only for
        experienced user who are aware of potential version
        incompatibilities

   Directory existence is checked as is the presence of an Allwmake file
   or a platforms/ directory. This reduces the potential of false positive
   matches and limits the selection to directories that are either
   with sources (has the Allwmake file), or pre-compiled binaries (has
   the platforms/ directory).

   If none of the explored directories are found to be suitable,
   it reverts to using a PROJECT/ThirdParty dummy location since
   this is within the project source tree and can be trusted to
   have no negative side-effects.

ENH: add csh support to foamConfigurePaths

- this removes the previously experienced inconsistence in config file
  contents.

REMOVED: foamExec

- was previously used when switching versions and before the
  bashrc/cshrc discovery logic was added. It is now obsolete.
2018-12-02 18:25:57 +01:00
7bf4bcf4ba ENH: snappyHexMesh: Size printing, formatting. See #972. 2018-11-29 10:56:38 +00:00
003e7ca06c ENH: leakpath: change format to ensight. 2018-11-29 09:19:40 +00:00
550e47629b ENH: configurable output temperature for externalCoupled mixed T BC (#1072)
- Uses the user-specified value for outputTemperature:

  {
      type  externalCoupledTemperature;
      outputTemperture  fluid;  // or wall;
  }

  Otherwises uses 'wall' as a default (for compatibility) and emits a
  warning.

  The T.out header now reflects the type of output. Eg,

     # Values: area Tfluid qDot htc
2018-12-02 17:35:48 +01:00
1116ba803a TUT: use defaultPatch for naming instead of explicit Default_Boundary_Region
- tutorials based on squareBend used Default_Boundary_Region explicitly
  defined since they predated the defaultPatch renaming (2008).
  The name 'Default_Boundary_Region' was for convenience as the default
  name when converting to PROSTAR or CCM formation, but can now be
  changed to something more generic.

- define wall boundary conditions for squareBend using a general regex
  to allow future splitting of wall types by name.
2018-12-02 11:14:04 +01:00
c5beee63f3 ENH: add isTrue function to RunFunctions
- check if the first argument corresponds to an OpenFOAM value for
  'true' (as per Switch).
  True == 't', 'y', 'true', 'yes', 'on'. Everything else is not true.

- when the first argument is '-dict', it initializes the value
  with a query via foamDictionary.
  Eg,
       isTrue -dict mydict -entry parallel

   ==> value=$(foamDictionary mydict -entry parallel -value)
       isTrue $value

   a missing entry is silently treated as false.

ENH: add getNumberOfPatchFaces function in RunFunctions

- simple extraction of nFaces from boundary file for given patch/region
2018-11-30 19:29:49 +01:00
f2e88645c2 STYLE: documentation typo 2018-12-02 13:39:12 +01:00
01a219119d STYLE: add some shell quoting in settings files 2018-11-29 23:30:11 +01:00
d587e2f03f ENH: append date to build info
- append the commit hash value with the commit date when creating
  the build string information and drop the version prefix.

  This provides an immediate overview of when the code was last
  changed. The prefixed version information can be dropped from
  the build string, since it is readily available in other forms.
2018-11-29 23:03:57 +01:00
4b7e11fc8b COMP: adjust headers for more detailed build info in the future (issue #1010)
- this splits a larger changeset for a gradual implementation
2018-11-29 21:01:01 +01:00
9e094f1f07 ENH: relocate WM_PROJECT_SITE default (issue #1050)
- was PREFIX/site, now PROJECT/site

  This avoids several issues when installing OpenFOAM in clusters
  without an intermediate OpenFOAM-specific installation prefix.

  The 'site' directory may have a reserved meaning in these situations
  and it is undesirable to 'leak' upwards into the parent directory to
  look for configuration files.

  Placing the default within the project directory avoids this.
  Alternative locations can be given via the WM_PROJECT_SITE variable.
2018-11-29 18:04:44 +01:00
be46f96862 STYLE: adjust wording, file-layout
- comments in bashrc, cshrc.
- about controlDict names for allowSystemOperations
2018-11-29 16:53:02 +01:00
3f7ea92efa SUBMODULE: catalyst with so versioning 2018-11-29 12:48:50 +01:00
d45d7ca8c3 STYLE: adjust looping parameter for _foamEval 2018-11-29 12:45:45 +01:00
628b2445fc ENH: improve setup for paraview
- removed reliance on ParaView_INCLUDE_DIR variable for conveying the
  major.minor version information when compiling. This can be somewhat
  fragile and also adds variable that is an unnecessary when running
  (only used when compiling).

  Instead use `have_pvplugin_support` function in paraviewFunctions
  wmake script to determine the maj.min from the PV_PLUGIN_PATH
  since we have already defined the output path there with paraview
  maj.min numbering.

  Can now build with paraview from the operating system,
  provided that it has develop headers available.

      ParaView_VERSION=system

  In the etc/config.sh/paraview setup, the maj.min is taken from
  the corresponding `paraview --version` output and used when
  defining the PV_PLUGIN_PATH.

  During the build, the include path taken from `paraview-config`
  for a system installation, from the guess installation root
  of the paraview binary, or ParaView_DIR otherwise.

NB: using a system ParaView for building runTimePostProcessing is unsupported.

- these types of builds appear to have various library resolution issues
  (eg, libexpat not being loaded). Additionally, the build logic does
  not yet cover this type of use case.
2018-11-29 01:48:00 +01:00
e4b8fedeb1 ENH: do not foamCleanPath on system directories (issue #1102)
- skip /, /bin, /usr/bin ... as potential filters.
2018-11-28 19:19:10 +01:00
f69f9f7ff6 TUT: adjustments in multiRegionHeater tutorials
- missing 'g' file, improve file consistency (fields, dictionaries)
2018-11-28 15:02:41 +01:00
dd0487ac2a STYLE: typo in comments 2018-11-28 12:35:34 +01:00
41a03f3790 ENH: add regular expressions for reconstructPar, mapFieldsPar -fields option
- improved flexibility

- reconstruction of Lagrangian positions/fields now handled as a class
  for better modularity
2018-11-28 08:36:17 +01:00
b81420e524 ENH: additional variants of IOobjectList findObject()
- cfindObject() for const pointer access.

- getObject() for mutable non-const pointer access, similar to the
     objectRegistry::getObjectPtr()

- cfindObject(), findObject(), getObject() with template type access
  to also check the headerClassName.

  For example,

      cfindObject("U")  ->  good
      cfindObject<volVectorField>("U") -> good
      cfindObject<volScalarField>("U") -> nullptr

  This allows inversion of looping logic.

    1) Obtain the names for a particular Type

       for (const word& objName : objs.sortedNames<Type>())
       {
           const IOobject* io = objs[objName];
           ...
       }

    2) Use previously obtained names and apply to a particular Type

       for (const word& objName : someListOfNames)
       {
           const IOobject* io = objs.cfindObject<Type>(objName);
           if (io)
           {
               ...
           }
       }
2018-11-28 11:28:38 +01:00
7477459186 STYLE: const-correctness on IOobject* access
- foamToEnsight, foamToEnsightParts, profiling
2018-11-28 08:00:53 +01:00
29e1d9e982 Merge remote-tracking branch 'origin/develop' into develop 2018-11-27 16:59:08 +01:00
9065346a05 ENH: additional handling of questionable bad FOAM_EXT_LIBBIN values
- if FOAM_EXT_LIBBIN is unset and some scripts set this to /usr/lib*
  as a fallback (eg, to avoid an undefined value) this will cause a
  system library to be found before appropriate *_ARCH_PATH entry.

  This was noticed during a scotch compilation without third-party:
  resulting in the system library (/usr/lib64/libscotch.so) to be found
  instead of the SCOTCH_ARCH_PATH location
  (/usr/lib64/mpi/gcc/openmpi/lib64/).

  Simply changing the search order doesn't work for use, since we wish
  to retain a preference for any dynamic libraries discovered in a
  real FOAM_EXT_LIBBIN.

  Circumvent these issues by only taking libraries from
  FOAM_EXT_LIBBIN if it also points to a location within ThirdParty.
2018-11-27 12:23:11 +01:00
38d3a36c2d TUT: update use of foamToVTK 2018-11-27 11:26:24 +01:00
17b03ba1ea Merge remote-tracking branch 'origin/develop' into develop 2018-11-27 12:58:14 +01:00
8f858af6c8 ENH: chtMultiRegionFoam - updated construction of g field 2018-11-27 11:47:16 +00:00
32c174f349 TUT: Moved g files - see 9abe97bb7b 2018-11-27 11:46:49 +00:00
6bb7cd9e16 TUT: Added files missed during commit cab7820fb3 2018-11-27 11:41:34 +00:00
ad88c551f9 Merge remote-tracking branch 'vtk/feature-vtm' into develop 2018-11-27 11:23:37 +01:00
b5d4d59ff1 TUT: add Alltest for IO/dictionary
- runs in non-verbose mode to avoid spurious detection of FatalError
2018-11-27 11:11:47 +01:00
61c1aa161c CONFIG: remove unused FOAM_EXT_LIBBIN references 2018-11-27 08:45:07 +01:00
46e2e71f28 STYLE: update dictionary documentation for topoSources (#1060) 2018-11-27 08:32:27 +01:00
0dc206be02 ENH: add unique source keyword for shapeToCell (#1060)
- using 'shape', to avoid potential name clash with 'type' (action
  type) when used without an optional sourceInfo sub-dictionary
2018-11-27 07:48:03 +01:00
0498d4e743 COMP: fix for clang compiler bug (?) 2018-11-26 14:17:24 +00:00
820b63e0b2 CONFIG: bump API version number to 1811 to register recent changes 2018-11-26 15:14:01 +01:00
0e5325bff9 ENH: snappyHexMesh: add -dry-run argument. See #972. 2018-11-26 12:23:01 +00:00
f8985566e9 BUG: snappyHexMesh: extrude non-local baffle. Fixes #1175. 2019-01-21 15:27:51 +00:00
3bdb0435f8 DEP: Deprecated the ensightFoamReader 2019-01-17 09:35:04 +00:00
1ee2b53bbf BUG: vtk::internalWriter::writeProcIDs could block in parallel
- could be triggered if running in parallel, but requesting procIDs
  to be written with a non-parallel version of the writer.
2019-01-14 16:43:30 +01:00
1905039d7b ENH: add non-const field access without triggering update counter (#1081)
- can now things like ref(), boundaryFieldRef(), primitiveFieldRef()
  with an optional argument that avoids triggering any update events

  Instead of

      Field<Type>& iF = const_cast<Field<Type>&>(fld.primitiveField());

  can now write

      Field<Type>& iF = fld.primitiveFieldRef(false);

  or simply

      auto& iF = fld.primitiveFieldRef(false);
2018-11-26 12:35:01 +01:00
d62b5251d6 ENH: improved argList output of compatibility options 2018-11-25 15:02:42 +01:00
f78aa8e342 ENH: added Ostream fill() methods and corresponding IOmanip setfill()
- useful when generating formatted output such as tables.
2018-11-25 14:17:55 +01:00
d8a55e46b6 ENH: align foamToEnsightParts internals with foamToEnsight
- add -region option and -fields filtering
2018-11-25 12:12:19 +01:00
b5432011fa ENH: improve option naming consistency in
- foamToVTK, foamToEnsight, foamToEnsightParts
2018-11-25 10:47:00 +01:00
a139543e9c ENH: add boundaryToCell, patchToCell topoSetCellSources (#1060)
- can be used, for example, to visualize all wall cells - for quality
  or other purposes - without requiring an intermediate faceSet for
  the selection. Request arising from pending merge !213.
2018-11-24 13:52:43 +01:00
ff18ab58c2 ENH: add 'use' action for parcel selection
- shortcut for "clear" + "add".

  At the end of the operation, only parcels matching that particular
  selection source will be used.
2018-11-24 13:34:02 +01:00
58dae2de43 ENH: improvements for dataCloud function object (issue #1044)
- now supports a parcel selection mechanism like vtkCloud,
  giving the ability to select a subset of parcels.
  For example, a given stride, or removal of parcels with a small
  diameter.

  Eg,
      dataCloud output Time: 3.2
      Applying parcel filtering to 994 parcels
      - add stride 4
      - subtract field U : (less 0.2)
      After filtering using 214/994 parcels

- add output precision control for dataCloud
2018-11-24 13:14:57 +01:00
05353da5f4 BUG: errors found in feature-vtm merge !213
- vtkWrite with moving mesh was not updated the subsets properly,
  which caused it to crash.

- foamToVTK -overwrite ignored for single region cases,
  was working for multi-region cases

- minor documentation changes
2018-11-23 14:04:07 +01:00
ea3c470a69 Merge branch 'issue-911' into 'master'
Issue 911

Closes #911

See merge request Development/OpenFOAM-plus!212
2018-11-20 14:40:43 +00:00
4a26fb758e ENH: Added new function object to calculate the energy spectrum
Description
    Calculates the energy spectrum for a structured IJK mesh

Usage
    Example of function object specification:
    energySpectrum1
    {
        type        energySpectrum;
        libs        ("libfieldFunctionObjects.so");
    }

    Where the entries comprise:
    \table
        Property     | Description               | Required    | Default value
        type         | type name: energySpectrum | yes         |
        log          | write info to standard output | no      | yes
    \endtable

    Output data is written to the file \<timeDir\>/energySpectrum.dat
2018-11-16 15:22:48 +00:00
925173d040 ENH: writeFile - enable file creation at a specified time. Fixes #1096 2018-11-16 15:20:26 +00:00
cab7820fb3 ENH: Refactored waveMaker BC to support piston and flap motions 2018-11-15 13:27:42 +00:00
6e1e854cbc INT: Initial commit of new wave-maker BCs based on mesh motion
waveMakerFlap: creates waves using a flapping motion
waveMakerPiston: creates waves using a piston motion
2018-11-15 08:29:54 +00:00
9abe97bb7b TUT: Updated location of gravity file. See #1094 2018-11-26 14:31:30 +00:00
d1bc53b77e ENH: Updated construction/retrieval of gravity field. See #1094 2018-11-14 21:49:32 +00:00
1a4fceec20 ENH: Updated general construction of gravity field for applications. See #1094
Note that the field is now registered on time as opposed to the mesh
2018-11-14 21:06:09 +00:00
1a83824c14 ENH: Added mesh object class to manage acceleration due to gravity. See #1094 2018-11-14 21:03:02 +00:00
031cd2ebbd ENH: objectRegistry - added thisDb() helper function 2018-11-14 20:58:38 +00:00
0a89ab81d0 ENH: Time - disambiguate call to name() 2018-11-14 20:57:00 +00:00
a824c7fe96 TUT: Corrected fvSchemes 2018-11-14 11:20:17 +00:00
0f48b89185 ENH: output filtering of vtkCloud by user selection (#1056)
- can filter by stride or field information.
  For example,

      selection
      {
          stride
          {
              // every 10th parcelId
              action  add;
              source  stride;
              stride  10;
          }
          Umin
          {
              // Remove slow parcels
              action  subtract;
              source  field;
              field   U;
              accept  (less 1e-3);
          }
          diam
          {
              // Only particular diameter ranges
              action  subset;
              source  field;
              field   d;
              accept  (greater 1e-3) and (less 1e-3);
          }
      }
2018-11-13 22:57:49 +01:00
aad4c607b5 TUT: Corrected tutorial name 2018-11-09 09:31:14 +00:00
22b265b482 ENH: block - added new constructor 2018-11-09 09:26:45 +00:00
712f8e0583 ENH: cellShape - added new constructor 2018-11-09 09:22:38 +00:00
692bf7f425 STYLE: Corrected error messages 2018-11-09 09:21:37 +00:00
2a3e2b2cfa ENH: fft - use fftw_malloc to create in/out arrays. Fixes #1095 2018-11-09 09:20:50 +00:00
584d6d066a ENH: totalFlowRateAdvectiveDiffusive BC - removed hard-coded LES model lookup. Fixes #1097 2018-11-05 09:14:59 +00:00
0446e73485 BUG: too many quotes on cleaned env variables
- Added quoting to handle spaces in environment values in commit 50852b33
  (#1007, #1008). However, quoting is only needed for eval mode.

  In regular mode, quoting should not be part of the output, instead it
  should be done on the caller side.
2018-11-25 09:21:42 +01:00
6b99ffe0a9 Merge branch 'feature-vtm' into 'develop'
Feature vtm/vtk

See merge request Development/OpenFOAM-plus!213
2018-11-26 10:30:39 +00:00
7964d31d03 STYLE: remove special '.' version handling in foamEtcFile
- this would automatically change openfoam<digits> into maj.min.rel
  values, thus transforming openfoam1806 into a version "1.8.0.6" !
2018-11-24 00:36:31 +01:00
b105f926b1 ENH: improvements to foamConfigurePaths tool (#1010)
- provide edit for adjusting the ThirdParty and fallback site variables.
  This is useful when packaging into a single directory, and possibly
  without any ThirdParty dependencies.

- support '-prefix' (similar to auotconfig) as an alternative to
  '-foamInstall'. Use this prefix to set the prefix directly.
  Bypasses and disables the bash sourcing magic.
2018-11-23 15:30:29 +01:00
57ea2ac3d2 STYLE: restructure argList usage format 2018-11-23 13:49:54 +01:00
1456a8ca1d STYLE: emit warning about using deprecated "~OpenFOAM" expansion
- Within strings it is preferable to use the "<etc>" instead.
  Most use cases for the old "~OpenFOAM" expansion have been obsoleted
  by the #includeEtc directive.
2018-11-23 13:12:33 +01:00
ac03307258 ENH: improve consistency in version handling (issue #1010)
- use std::string instead of c-string for the string constants

- centralize some definitions of resources into foamVersion.H

  Now expose some of the hard-coded values used in foamEtcFiles()
  so that they can be known or even overridden as required.

  Relocate to src/OpenFOAM/include as a constant location.
2018-11-23 11:08:36 +01:00
45d5d7bbc1 COMP: add minimal test application
- uses wmake, without OpenFOAM libraries.

  The application and libray serve as a minimal test case for wmake,
  but can also be used to generate a minimal library/executable pair
  target for testing of packaging etc.
2018-11-23 00:21:10 +01:00
8f4067015d STYLE: remove shebang from LogFunctions
- file is to be sourced, non-executable.

- remove stray .keep file from tutorial case
2018-11-22 17:31:34 +01:00
5277221063 GIT: file permissions 2018-11-22 16:44:17 +01:00
577babc72b ENH: reject bad time values for blockMesh -time (closes #1093) 2018-11-22 15:51:05 +01:00
343a3b958d ENH: guard against non-dictionary entries in changeDictionary (#1092) 2018-11-22 13:59:49 +01:00
85ffe4c648 ENH: improve consistency in version handling for foamEtcFile (issue #1010)
- Prefer the $WM_PROJECT_VERSION from the environment, since this
  is consistent with the foamEtcFile script, and matches better to
  user expectations.
2018-11-22 12:00:50 +01:00
083e9e9665 ENH: isolate version information in foamVersion names instead of globals
- For compatibility, access to the old global names is provided via
  macros
        #define FOAMversion     foamVersion::version
        #define FOAMbuild       foamVersion::build
        #define FOAMbuildArch   foamVersion::buildArch

- this isolation makes it easier to provide additional scoped methods
  for dealing with version related information.  Eg, printBuildInfo()
2018-11-22 11:50:24 +01:00
0cae54b3e1 COMP: juggle content between stdFoam.H and foamVersion.H
- foamVersion.H now includes stdFoam.H for consistent use
  of compatibility compiler defines.

- move forward declaration of Detail, Module namespaces to stdFoam.H

- doxygen documentation of Foam namespace in stdFoam.H
2018-11-22 10:52:56 +01:00
283801208e STYLE: doxygen format for constants 2018-11-22 10:46:37 +01:00
973a940028 COMP: provide Allmake script for wmake tools
- convenient when bootstrapping some systems
2018-11-22 09:35:17 +01:00
775c64c7cd SUBMODULE: updated catalyst (replaced deprecated methods) 2018-11-21 13:50:42 +01:00
e35ac89efb CONFIG: include static libraries in FFTW search (#1087) 2018-11-21 13:49:16 +01:00
5187aa13aa ENH: improve output formatting for usage information
- generalize output text wrapping, use for usage notes

- add -help-man option for generating manpage content for any OpenFOAM
  application or solver.

  bin/tools/foamCreateManpage as helper
2018-11-21 19:55:28 +01:00
6dcc46b187 ENH: improve error handling for foamHelp
- Catch any leading option (the incorrect location).
- Catch initialization error for cleaner result.
2018-11-21 20:18:39 +01:00
98b5914198 CONFIG: adjust MANPATH if an OpenFOAM doc/man1 directory exists 2018-11-21 11:07:40 +01:00
50ccb197dc BUG: fix bad environment parsing in foamCreateModuleInclude
- The changes in foamCleanPath introduced for issues (#1007, #1008)
  include quoted output of the cleaned environment variable.
  When used in foamCreateModuleInclude, the quotes make their way
  into the final environment. Avoid this by using the -sh-env
  eval format instead.

- add environment extraction of MANPATH changes
2018-11-21 11:02:58 +01:00
31c21031ea ENH: reduce intermediate text with generating completion options
- more filtering in the sed stage to remove non-essential text.
  Terminate parsing on first appearance of -help-full option.
2018-11-21 10:51:57 +01:00
481e83f007 STYLE: adjust shell syntax and usage output for paraFoam
- have -help-full as the last entry in the list of options.
  This permits some optimizations when generating shell completions.
2018-11-21 09:44:00 +01:00
253dd183f9 STYLE: include mpirun path information in top-level Allwmake
- provides some feedback about which mpi is being used
2018-11-21 08:39:26 +01:00
4a37e23ffa ENH: floatingBody: excess debug switches 2018-11-22 08:58:56 +00:00
9bfc010e64 ENH: faMesh: decompose zero-sized patches. Fixes #1090. 2018-11-21 16:38:33 +00:00
fa2971c17a BUG: cyclicACMI: ensure transformation tensors are valid. Fixes #1088. 2018-11-21 15:34:13 +00:00
ba86d90ffc ENH: single precision: various small fixes. See #1086. 2018-11-21 11:12:25 +00:00
6c568c61bf STYLE: Renamed source files to reflect solver names (issue #890) 2018-11-20 19:10:06 +01:00
100ec01c82 SUBMODULE: updated to avoid implicit construction of dimensionedType 2018-11-20 18:26:05 +01:00
5a9a2935ad ENH: modernize code in dimensionSet, dimensionSets
- 'unfriend' operators on dimensionSet, since they operate without
  requiring access to non-public members.

- add missing invTransform() function for dimensionSet.

- make inv(const dimensionSet&) available as
  operator~(const dimensionSet&), which can be used instead
  of (dimless/ds).
2018-11-20 18:16:17 +01:00
72c4b3186b ENH: added dimensionedType::writeEntry method
- writing of dictionary entry with the name of the dimensionedType
  suppressed if it is identical to the keyword.
  This corresponds to the input requirements.
2018-11-20 16:26:44 +01:00
dd87c98393 ENH: add read guard for dimensionedType constructors (#762)
- deprecate dimensionedType constructors using an Istream in favour of
  versions accepting a keyword and a dictionary.

  Dictionary entries are almost the exclusive means of read
  constructing a dimensionedType. By construct from the dictionary
  entry instead of doing a lookup() first, we can detect possible
  input errors such as too many tokens as a result of a input syntax
  error.

  Constructing a dimensionedType from a dictionary entry now has
  two forms.

  1.  dimensionedType(key, dims, dict);

      This is the constructor that will normally be used.

      It accepts entries with optional leading names and/or
      dimensions. If the entry contains dimensions, they are
      verified against the expected dimensions and an IOError is
      raised if they do not correspond. On conclusion, checks the
      token stream for any trailing rubbish.

  2.  dimensionedType(key, dict);

      This constructor is used less frequently.

      Similar to the previous description, except that it is initially
      dimensionless. If entry contains dimensions, they are used
      without further verification. The constructor also includes a
      token stream check.

      This constructor is useful when the dimensions are entirely
      defined from the dictionary input, but also when handling
      transition code where the input dimensions are not obvious from
      the source.

      This constructor can also be handy when obtaining values from
      a dictionary without needing to worry about the input dimensions.
      For example,

         Info<< "rho: " << dimensionedScalar("rho", dict).value() << nl;

      This will accept a large range of inputs without hassle.

ENH: consistent handling of dimensionedType for inputs (#1083)

BUG: incorrect Omega dimensions (fixes #2084)
2018-11-20 15:14:10 +01:00
efdbeae27e ENH: use dictionary::get<> instead of pTraits (#762)
- check Istream in readBool in operator>> variant (#1033)
2018-11-20 10:10:39 +01:00
b9b8c523f2 ENH: faceOnlySet: loosened tolerance. Fixes #1079. 2018-11-19 15:58:09 +00:00
04e95b93ec Merge remote-tracking branch 'origin/develop' into develop 2018-11-19 15:45:56 +01:00
698bf3f61d STYLE: usage order in foamConfigurePaths 2018-11-19 15:38:14 +01:00
d8ca517dc3 COMP: linkage, single precision 2018-11-19 12:05:28 +00:00
ad2baed5af ENH update use of bitSet in dynamicRefineFvMesh #1075 2018-11-16 10:30:02 +01:00
b4e26828d5 ENH: bitSet instead of boolList for dynamicMultiMotionSolverFvMesh (#1075) 2018-11-16 09:18:09 +01:00
683ff304ca ENH: update looping and use of bitSet for motionSmootherAlgo (#1075) 2018-11-16 09:18:09 +01:00
de2497461c ENH: dynamicRefineBalance: removed. 2018-11-15 15:03:19 +00:00
cbbafa7457 Mapping injected faces through interpolation
See merge request Development/OpenFOAM-plus!220

Code supplied by Daniel Rettenmaier rettenmaier@gsc.tu-darmstadt.de
2018-11-15 14:58:56 +00:00
8ceec6456a Mapping injected faces through interpolation 2018-11-15 14:58:56 +00:00
edf5cf4588 ENH: MeshObject: objectRegistry lookup only once. Fixes #1071. 2018-11-14 12:41:26 +00:00
a072d18380 ENH: add sync() for faceBitSet, faceBoolSet, pointBitSet (#1060)
- fix range checks
2018-11-14 11:55:38 +01:00
c599810533 ENH: code reduction in MeshObject (#1071)
- use forwarding templates for the factory method

- avoid double use of dynamic_cast.
  Don't need implicit use in isA<>, can use result directly

STYLE: updated iteration over HashTable of mesh objects
2018-11-15 13:06:12 +01:00
f269371dbc ENH: support cylindrical coordinates in fieldCoordinateSystemTransform (#1076) 2018-11-16 15:12:19 +01:00
4a53835f4b BUG: incorrect transform for fieldCoordinateSystemTransform (fixes #1076)
- was using coordinate-system and transform() which is the
  local-to-global mapping, whereas it should be invTransform() which
  is the global-to-local mapping
2018-11-16 12:23:41 +01:00
7996e9af8b ENH: add invTransform for fields (#1076) 2018-11-16 12:22:24 +01:00
f2de61f82c STYLE: add geometric constraint to decomposeParDict example (issue #921) 2018-11-15 11:45:18 +01:00
5c993cf009 STYLE: remove redundant return statement 2018-11-14 12:54:58 +01:00
5029d29ff6 ENH: support -gcc option for foamConfigurePaths
- simplifies things for legacyCompile
2018-11-15 13:55:21 +01:00
4bf4b89af4 ENH: support scalar predicates and lists of scalar predicates (#1056) 2018-11-13 14:12:53 +01:00
1883a872a1 STYLE: adds comments in empty Make/options files
- easier when making modifications

STYLE: spelling in topoSetSource comments
2018-11-13 15:21:13 +01:00
8752120ad5 COMP: use hard-coded values for fieldTypes (issue #1068)
- this seems to be the only reliable means of obtaining the values.

  Using typeName_() yields the wrong value.

  Using the typeName causes initialization issues
  (segfault when executing on some systems).
2018-11-12 16:39:55 +01:00
90dd4b30cd TUT: syntax typo (#1059) 2018-11-12 13:59:38 +01:00
2ac5df6f93 BUG: inconsistent field ordering in PDRMesh (fixes #1069) 2018-11-12 12:59:03 +01:00
b016b1664e COMP: use typeName_() accessors for building fieldTypes
- resolves better on some compilers.
2018-11-12 12:43:33 +01:00
9c993c8ebd Merge branch 'feature-ioobjectlist-registry' into 'develop'
Feature ioobjectlist registry

See merge request Development/OpenFOAM-plus!218
2018-11-12 11:39:01 +00:00
a89fedb2ec Merge branch 'feature-uniformFixedValue' into 'develop'
uniformFixedValue: avoid re-evaluation on reading or mapping

See merge request Development/OpenFOAM-plus!219
2018-11-12 10:49:28 +00:00
e9af742819 BUG: uniformFixedValue: do not evaluate upon reading. Fixes #1058. 2018-11-12 09:15:09 +00:00
9bc61e5f41 ENH: improve IOobjectList name filtering
- support name filtering by class based on <Type> or predicates.
  Eg,

      objects.sortedNames<volScalarField>(namePattern);
  vs  objects.sortedNames(volScalarField::typeName, namePattern);

  These can also be used directly for untyped name matching.
  Eg,
      objects.sortedNames<void>(namePattern);

  Can also use a predicate:

      objects.sortedNames(wordRe("vol.*Field"), namePattern);
      objects.sortedNames
      (
          [](const word& clsName){ return clsName.startsWith("vol"); },
          namePattern
      );
2018-11-12 08:55:45 +01:00
256042158f ENH: IOobjectList improvements
- add IOobjectList::count() methods

- lookupClass<Type>() to use types instead of class variables.

- additional helpers for parallel: allNames(), checkNames()

- provide filterClasses() and filterObjects(), prune_0() method
  forwarding to HashTable methods for easier access.
2018-11-12 01:01:58 +01:00
f94d724a93 ENH: add objectRegistry::count() methods
- can be useful for obtaining information about number of fields.
  Eg,

       nScalar = mesh.count<volScalarField>(wordre);
2018-11-11 19:00:54 +01:00
4965ea4988 ENH: simplify/extend objectRegistry code with templated predicates
- replace explicit use of wordRe, wordRes, wordHashSet as filters
  with a MatchPredicate.

- support filtering by class based on <Type> or predicates
2018-11-10 17:20:32 +01:00
f44e59fb55 ENH: add IOobject::isHeaderClassName() method
- in parameter form, check if it headerClassName() corresponds to the
  specified class name

- in templated form, check if headerClassName() corresponds to the
  Type:typeName value.
  Specialization for <void> always returns true (ie, no checks)
2018-11-10 16:54:19 +01:00
8562e5278f ENH: simplify/extend IOobjectList code with templated predicates
- replace explicit use of word, wordRe, wordRes, wordHashSet as filters
  with a MatchPredicate, since they all satisfy the requirements for
  use a predicate. This change reduces code duplication, allows other
  matcher types (eg, keyType) as well as lambda functions.

- add special treatment for a 'const char*' parameter
  for lookupClass() and the now-deprecated single item lookup() method
  to promote these parameters to 'word'.
2018-11-10 12:12:06 +01:00
faaa93fdb5 ENH: add IOobjectList::findObject() method
- naming similar to objectRegistry, with unambiguous resolution.
  The lookup() methods have different return types depending on the
  calling parameter.

STYLE: use IOobjectListTemplates.C for implementations

- previously included as local definition within IOobjectList.C,
  but will be adding more templated methods soon.

- adjust parameters (eg, matchName instead of matcher) to show their
  function

ENH: handle objectRegistry::names<void>(...)

- this is equivalent to no Type restriction, and can be used when
  filtering names. Eg,

     obr.names<void>(wordRe..);
2018-11-09 21:57:55 +01:00
ffec4c6fa7 STYLE: more consistent formatting for deprecated items
- Start brief descriptions with 'Deprecated(YYYY-MM)' so that it is
  readily visible in the short method description. Consistent date
  format (YYYY-MM), placed immediately after the \deprecated tag.
2018-11-11 17:17:33 +01:00
91cfe4c271 ENH: add wordRes::matching() method
- returns indices of matching entries.
2018-11-09 21:21:15 +01:00
dff2569c7f GIT: commit text missed in squashed merge
commit 3f9c7bf411
    commit 3cf177e759

====

ENH: add geometric decomposition constraint (issue #921)

- geometric decomposition constraints may be used to prevent the
  decomposition of regions of the mesh.

  The geometric constraint is applied according to the face centres,
  which define the connectivity between cells.

  Specified in decomposeParDict

    constraints
    {
        geometric
        {
            type    geometric;

            geometry
            {
                box1
                {
                    type    box;
                    min     (-10 -10 -10);
                    max     (1 1 1);
                }

                ball1
                {
                    type    sphere;
                    origin  (-2 -2 1);
                    radius  1;
                }
            }
        }
    }

ENH: add 'grow' option for geometric decomposition constraint (issue #921)

- the 'grow' option includes an additional check to include cell faces
  for any cell that already has two or more of its faces "unblocked".
  This could indicate a connection over a corner, but does not distinguish
  between connectivity introduced by the constraint and the connectivity
  defined by other constraints.

ENH: geometric decomposition constraint using topoSetFaceSource (issue #921)

- replaced use of searchableSurface with a more general and
  more efficient topoSetFaceSource instead.
  Since searchableSurface is also available as a topoSetFaceSource,
  there is no loss in functionality, but using topoSetFaceSource allow
  directly looping over the faces without creating of an additional
  List of volumeTypes.
2018-11-08 21:55:39 +01:00
3f9c7bf411 Merge branch 'wp09-geometric-constraint' into 'develop'
Work-package-09 geometric constraint

See merge request Development/OpenFOAM-plus!217
2018-11-08 20:50:47 +00:00
3cf177e759 Work-package-09 geometric constraint 2018-11-08 20:50:47 +00:00
69c3a6fb3b COMP: fix conditional for VTK legacy rendering.
- was deprecated for removal with VTK 8.1.0
  definitely removed in VTK 8.2.0
2018-11-08 21:28:26 +01:00
ab11a330e0 ENH: accept movable autoPtr for storage in regIOobject 2018-11-08 17:46:52 +01:00
6d906e52d3 COMP: fieldTypes: add to link line after the static symbols it uses
This fixes the static-initialisation order problem - fieldTypes.C
referes to labelIOField etc. which are after it in Make/files and
hence the link order.
2018-11-08 13:28:46 +00:00
258dd6eeea STYLE: polyMesh: corrected spelling 2018-11-08 10:46:25 +00:00
6f3471d5fb STYLE: protect and comment test of illegal access (#1066) 2018-11-08 14:46:35 +01:00
d7fc5f6f66 ENH: construct cylindrical from origin, axis (issue #863) 2018-11-08 13:12:23 +01:00
f426c510dd CONFIG: update for ParaView-5.6.0 2018-11-08 09:17:02 +01:00
9ebccb2e39 ENH: adjustments for ListOps subset, subsetList
- now takes a const UList<T> as input and returns a List<T>
  instead of trying to use the same ListType for both.

  This avoids previously encountered issues when a UList was passed in.

- add specialized bitSet handling within subset(), where we can benefit
  from faster traversal of sparse selections and have a better estimate
  of the final output size.
2018-11-08 08:47:31 +01:00
2c44ac299d ENH: add bitSet::operator() for predicate use (as per HashSet) 2018-11-08 11:34:02 +01:00
9c84753e02 DOC: Updated header - see #875 2018-10-16 15:26:55 +01:00
57910399e3 DOC: Added reference to header files. Fixes #1038 2018-10-16 15:24:28 +01:00
150b1d22bb ENH: Added warning if using an isotropic assumption with an anisotropic thermal conductivity 2018-10-16 15:04:38 +01:00
0d29257a6d STYLE: use vtk::surfaceWriter instead of sampleSurface version 2018-10-16 14:49:56 +02:00
c73dcc34f0 TUT: update foamToVTK usage 2018-11-12 01:42:20 +01:00
8bf5d2747d TUT: Cleaned some forceCoeffs usages 2018-10-16 08:40:23 +01:00
aafbb6723f BUG: wmkdepend sometimes throws (closes #1036)
- local token shifting was missing when getting the next file chunk
  (while in the middle of parsing that text).

  As well as adding the correct shifting, also tag the local buffer
  with nullptr when it is done. Be extra paranoid and check the
  raw buffer range before passing off to std::string.
2018-10-10 15:33:35 +02:00
2b42076d58 ENH: restructuring of foamToEnsight code
- align with foamToVTK code base
2018-10-09 21:28:53 +02:00
89cca8578c ENH: rewrite of foamToVTK to include parallel output (#926)
- Default format is now XML binary (base64) instead of legacy format.
  The old -xml option is redundant and ignored.
  The new -legacy option can be used to force legacy output instead.

- Polyhedral decomposition is now off by default (old -poly is ignored).
  The option -poly-decomp forces decomposition of polyhedrals into
  primitive shapes.

- reduced memory footprint by reading and converting fields
  successively.

- Creation of symlinks to processor files is no longer required or
  desired. The old -noLinks option is ignored.

- Ignore -useTimeName option. Always number according to timeIndex.
2018-10-09 20:00:55 +02:00
8cff734abc ENH: improvements for ensightWrite function object (issue #926)
- align input parameters and some of the behaviour with vtkWrite

  The output is now postProcessing/<name> for similar reasoning as
  mentioned in #866 - better alignment with other function objects, no
  data collision with foamToEnsight output.

- separate controls for internal and boundary meshes

- can restrict conversion based on zone names, enclosing volumes,
  bounding box.
2018-10-09 18:22:40 +02:00
4f2ec88d24 ENH: improvements to the parallelization of ensightCloud output
- communication mode is now selectable (default is blocking)

- eliminate serial-only version as being redundant
2018-10-10 10:32:14 +02:00
e4fac35d60 ENH: cleanup ensightMesh method names and handling of internal vs boundary
- this removes the old 'magically' means of suppressing the internal
  mesh in favour of specifying it directly.
2018-10-09 17:49:15 +02:00
42bb497084 ENH: improvements for vtkWrite function object (issue #926)
- parallel output.

  The output is now postProcessing/<name> for similar reasoning as
  mentioned in #866 - better alignment with other function objects, no
  collision with foamToVTK output.

- align the input parameters with those of vtkCloud so that we can
  specify the ASCII precision and the padding width for the output
  file names as well.

- emit TimeValue field, support file series generation

- support internal or boundary meshes, combining the result into a vtm
  file.

- can restrict conversion based on zone names, enclosing volumes,
  bounding box
2018-10-09 15:52:52 +02:00
4b7c21bc3c BUG: foamNewSource - corrected Make/options for app mode. Closes #1006 2018-10-09 09:47:54 +01:00
ac886d054f Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2018-10-08 15:40:45 -07:00
4c2af2bb1e BUG: Correct initialization for psi and mu for solidThermo 2018-10-08 15:40:12 -07:00
2fb382bf8a ENH: multiple zone selection for fvMeshSubsetProxy (#973)
- handle tmp fields in interpolate methods

- special method interpolateInternal() for creating a volume field
  with zero-gradient treatment for patches from an internal field.

  This method was previously also called interpolate(), but that
  masked the ability to subset the internal field only.

  Ensight output needs the volume field:
      uses interpolateInternal().

  VTK output has separate handling of internal and patch fields:
      uses interpolate().

ENH: added fvMeshSubset mesh() method for baseMesh or subMesh.

- simplies coding when the fvMeshSubset may or may not be in active use.

ENH: update foamToEnsight to use newer methods in wrapped form

- static interpolate functions with renaming for manual use with
  fvMeshSubset (when fvMeshSubsetProxy may be too limiting in
  functionality)
2018-10-02 17:06:44 +02:00
94951939d8 Merge remote-tracking branch 'origin/develop' into develop 2018-11-07 18:27:37 +01:00
b053c36a7b COMP: missing files 2018-11-07 18:27:13 +01:00
816674e9d6 ENH: More general approach to momentum source direction for
the actuation disk FO
2018-11-07 09:09:17 -08:00
1ea7aa45f5 STYLE: make dictionary error more descriptive (#1065) 2018-11-07 15:16:14 +01:00
5f556ffb4a ENH: make sourceInfo sub-dictionary optional for topoSet (#1060)
- helps reduce clutter in the topoSetDict files.

  Caveats when using this.

  The older specification styles using "name" will conflict with the
  set name. Eg,

    {
        name    f0
        type    faceSet;
        action  add;
        source  patchToFace;
        sourceInfo
        {
            name   inlet;
        }
    }

    would flattened to the following
    {
        name    f0
        type    faceSet;
        action  add;
        source  patchToFace;
        name   inlet;
    }
    which overwrites the "name" used for the faceSet.

    The solution is to use the updated syntax:

    {
        name    f0
        type    faceSet;
        action  add;
        source  patchToFace;
        patch   inlet;
    }
2018-11-07 10:33:36 +01:00
6090faedef ENH: additional topoSources, and consistency changes (#1060)
- faceBitSet, pointBitSet and faceBoolSet (similar to cellBitSet)
  * allows topo sources in a wider variety of places.
  * With copy or move constructors.

- cylinderToPoint, searchableSurfaceToFace, searchableSurfaceToPoint,
  sphereToFace, sphereToPoint sources

- optional innerRadius for sphere and cylinder sources to treat as hollow.

- support "sets" as well as "set" for cellToCell, faceToFace... sources.

  * convenience and avoids writing the set during processing.
2018-11-06 18:25:05 +01:00
644c0f4a86 ENH: make dictionary of topoSet box sources consistent with searchableBox 2018-11-06 13:25:56 +01:00
72ae121558 STYLE: make dictionary error more descriptive (#1065) 2018-11-07 15:16:14 +01:00
537e8bf9e0 ENH: consolidate OpenFOAM field names (#926)
- Standard known field types in Foam::fieldTypes namespace
2018-11-06 16:52:39 +01:00
414d78a32c STYLE: include gcc/clang version in top-level Allwmake 2018-11-06 17:13:49 +01:00
9b7ec7180f ENH: make checkITstream methods public (dictionary, entry)
- permits use of these checks for routines wishing to handle their own
  logic.
2018-11-06 10:06:25 +01:00
a7a346b206 STYLE: indentation for FatalIOErrorInFunction calls 2018-11-06 09:49:22 +01:00
2fc1a1692b CONFIG: adjust handling of PETSc environment (-force option) 2018-11-06 09:01:40 +01:00
f5baa9a583 ENH: extend globalIndex toGlobal methods
- now applicable to labelLists.

Note:
  in some situations it will be more efficient to use
  Foam::identity() directly. Eg,

     globalIndex globalCells(mesh.nCells());
     ...
     labelList cellIds
     (
         identity(globalCells.localSize(), globalCells.localStart())
     );
2018-11-05 16:23:33 +01:00
dfb652bcac ENH: findRefCell: initialise to -1 if not needed. Fixes #988. 2018-11-05 12:12:25 +00:00
c84390ab13 BUG: uniformFixedValue: missing autoMap, rmap. See #1059. 2018-11-05 11:33:16 +00:00
50baac3c45 ENH: construct string types from Istream now explicit (#1033)
- this helps for trapping unguarded dictionary lookups.
2018-11-03 20:24:34 +01:00
552682ec03 SUBMODULE: updated to avoid implicit construction of word/fileName etc 2018-11-03 20:32:39 +01:00
53b9961887 STYLE: remove unused variables 2018-11-03 17:51:02 +01:00
6043c9621d STYLE: accept "solver" or "motionSolver" without complaint
- The change from "solver" to "motionSolver" has not been
  applied consistently for all types of motion solvers.
2018-11-03 17:25:51 +01:00
aa0f2e0d9b STYLE: accept std::string for ISstream::getLine 2018-11-03 17:09:23 +01:00
fd54070c3a BUG: eof errors in the STARCD, VTK file reader (#1059)
- previously simply read files until the input stream went bad and no
  more lines could be read.  With the more stringent checking of
  values read (commit 0ce7e364a4) this approach causes problems.

  Use the underlying tokenizer instead to decide about termination.
2018-11-03 15:46:37 +01:00
1f9533ed5c COMP: avoid ternary mismatch in PatchFunction1
- SubField<vector> vs Field<vector>
2018-11-02 18:36:14 +01:00
b273241984 STYLE: Minor code formatting change 2018-11-02 11:23:04 +00:00
f5af16d968 ENH: extractEulerianParticles - refactoring and robustness improvements 2018-11-02 11:22:17 +00:00
8bf7a522e7 BUG: Corrected setting of cloud name 2018-11-02 11:20:07 +00:00
7cb51f5b98 ENH: limit vtk floatField range (fixes #1055)
- for space-savings the VTK fields are normally written as 'float'
  rather than double. When a double field contains very large values,
  these can result in a overflow when converted to float.

  Now trap these with the appropriate numeric limits.
  No warning when these values are clipped: it should be readily
  apparent from the output.

ENH: handle symmTensor component swapping directly on VTK output.

- use VTK output routines in vtkSurfaceWriter to benefit from the
  above changes
2018-11-01 17:58:36 +00:00
0ce7e364a4 ENH: improve read handling of bad streams #1033
- a failed attempt to read a value (eg, word, label, scalar) from a
  stream now always provokes a FatalIOError.
  This helps avoid some difficult to trace input errors.
2018-11-01 15:59:25 +00:00
3f017a01c0 TUT: syntax typo (#1059) 2018-11-01 14:42:37 +00:00
aa7cce912c STYLE: eliminate unnecessary DIY version of cellPoints(label) 2018-11-01 14:23:21 +00:00
3366a16b35 ENH: pass through format options from sampledSurface to proxy writers
- preliminary work to #1057

- add dictionary selectable format (ascii|binary) to
  VTKsurfaceFormat, VTPsurfaceFormat
2018-11-01 14:09:53 +00:00
30dcac006f COMP: Allwmake: make -q work 2018-11-01 14:12:52 +00:00
097e54a74f BUG: isoSurfaceCell: pre-filtering of cells misses lopping off a corner. Fixes #1062. 2018-11-01 13:06:06 +00:00
bde7d4bb6c Merge branch 'feature-topoSet-improvements' into 'develop'
Feature topo set improvements (issue #1060)

See merge request Development/OpenFOAM-plus!216
2018-11-01 11:12:12 +00:00
8937a808ed STYLE: allow "centre" for sphere without warnings 2018-11-01 09:57:22 +00:00
26f6f4257a STYLE: createBafflesDict: typo in comment 2018-10-31 13:55:06 +00:00
3cb12d2d9c ENH: PatchFunction1: have 'sampled' type.
type sampled is the equivalent of 'mappedField' bc
functionality - it samples a registered field on a
different region/patch/cells.
2018-10-31 13:37:11 +00:00
192e2eeb9d BUG: tutorials: fix tutorials for 1812. See #1059. 2018-10-31 12:08:55 +00:00
8b826a9b51 ENH: new searchableSurfaceToCell source (#1060) 2018-10-31 10:36:22 +00:00
fbd26c4fe0 ENH: new special purpose bitSet-based topoSet (#1060) 2018-10-31 10:36:22 +00:00
b3156b0d0f ENH: allow changing verbosity of topoSetSource (#1060)
- make topoSet set/unset methods virtual to allow overloading
2018-10-31 09:22:58 +00:00
5f91007d4a ENH: twoSimpleRotors: missing value field 2018-10-30 16:48:05 +00:00
0048b05fdf ENH: PatchFunction1: backwards compatibility. See #1046. 2018-10-30 15:13:23 +00:00
7325e3ac7d ENH: topoSetSource::SUBTRACT enum action (#1060)
- old 'DELETE' enum was easily confused with 'REMOVE', which removes
  the set, not the elements from the set.

- provide corresponding subtractSet() method

STYLE: HashSet set/unset instead of insert/erase methods in topoSetSource

- simplifies switching to/from bitSet storage
2018-10-30 15:09:44 +00:00
04a985ccb3 ENH: ConstantField: allow nonuniform. See #1046. 2018-10-30 13:37:54 +00:00
6f2376a649 ENH: ConstantField: allow 'constant' keyword. See #1046. 2018-10-30 13:26:23 +00:00
966eed302e BUG: subsetMesh: mapping topoSets. Fixes #1053. 2018-10-30 12:43:30 +00:00
f87496b35d ENH: mappedPatchBase: short circuit when sampling own mesh. Fixed when doing #1046. 2018-10-30 12:10:28 +00:00
9b638f9a71 ENH: distinguish between cell/face/point topoSetSource (#1060)
- add intermediate classes topoSetCellSource, topoSetFaceSource,
  topoSetPointSource and corresponding New() factories
2018-10-30 12:01:36 +00:00
9a87a043d6 ENH: consistency updates for patchToFace topoSetSource (#1060)
- Support specification with "patches" and "patch" keywords
  (similar to zone selection). Keyword "name" for compatibility.
2018-10-30 12:01:36 +00:00
de1832abdd ENH: consistency update for box topoSetSources (#1060)
- "boxes" has precedence over "box" (similar to treatment of "zones"
  vs "zone")
2018-10-30 12:01:36 +00:00
50fe195374 ENH: use "origin" for searchable sphere etc. (#1060)
- replaces "centre", using the same keyword as other objects
  (eg, plane, rotatedBox, coordinateSystem etc).
2018-10-29 15:51:05 +00:00
f2ef995113 ENH: checkMesh: pass by reference. See #755. 2018-10-29 15:08:52 +00:00
ccafd3cd30 ENH: overset: insert cellDisplacement into suppressed fields. See #1026. 2018-10-29 14:37:13 +00:00
c2e58dca64 ENH: support multiple zones for topo set sources (#1060)
- uses the keywords 'zones' and 'zone' to avoid potential conflicts
  with a named topoSet action, but accepts 'name' for compatibility.
2018-10-29 12:54:30 +00:00
3be48a677c ENH: snappyHexMesh: update main snappyHexMeshDict. See #1031. 2018-10-17 12:04:53 +01:00
e2961e9e41 Merge branch 'feature-patchFunction1' into 'develop'
Feature patch function1

See merge request Development/OpenFOAM-plus!215
2018-10-29 09:44:31 +00:00
c20b12b62f Feature patch function1 2018-10-29 09:44:31 +00:00
f16c417fff CONFIG: mismatch in keyword for singleProcessorFaceSets
- catch some dictionary entries from pre-develop branch
2018-10-19 22:18:06 +02:00
f865fb432f TUT: missing semi-colons 2018-10-19 21:48:31 +02:00
6ba6d7466d ENH: general consistency and documentation update for surface writers 2018-10-19 19:26:05 +02:00
d63b4cd4f4 ENH: minor changes to rationalize sampledSurface
- make hasFaceId a top-level virtual method and remove keepIds
  equivalent from sampledTriSurfaceMesh. This makes the property
  available without casting.

- New sampling type 'none'.
  Can be used to temporarily disable a sampling surface definition,
  or to provide boilerplate for overwriting later.
2018-10-19 16:02:44 +02:00
b76f2421dc STYLE: default construct/assignment for mergedSurf
COMP: fix incorrect reference in meshedSurfRef
2018-10-10 19:08:27 +02:00
07dafe7b0b STYLE: use range-for when looping dictionary entries.
- as part of the cleanup of dictionary access methods (c6520033c9)
  made the dictionary class single inheritance from IDLList<entry>.

  This eliminates any ambiguities for iterators and allows
  for simple use of range-for looping.

  Eg,
      for (const entry& e : topDict))
      {
          Info<< "entry:" << e.keyword() << " is dict:" << e.isDict() << nl;
      }

   vs

      forAllConstIter(dictionary, topDict, iter))
      {
          Info<< "entry:" << iter().keyword()
              << " is dict:" << iter().isDict() << nl;
      }
2018-10-19 13:08:24 +02:00
4e04c1966f ENH: use dictionary::get<word>() instead of lookup() in a few places 2018-10-19 09:11:31 +02:00
4ad73873af STYLE: use dictionary writeEntry for output 2018-10-18 12:57:32 +02:00
3c5fffcd1c STYLE: simplify read/write coding for some thermophysicalModels 2018-10-18 12:57:32 +02:00
3b74512231 ENH: cleanup of Enum class
- more dictionary-like methods, enforce keyType::LITERAL for all
  lookups to avoid any spurious keyword matching.

- new readEntry, readIfPresent methods

- The get() method replaces the now deprecate lookup() method.

- Deprecate lookupOrFailsafe()
  Failsafe behaviour is now an optional parameter for lookupOrDefault,
  which makes it easier to tailor behaviour at runtime.

- output of the names is now always flatted without line-breaks.
  Thus,

     os << flatOutput(someEnumNames.names()) << nl;
     os << someEnumNames << nl;

  both generate the same output.

- Constructor now uses C-string (const char*) directly instead of
  Foam::word in its initializer_list.

- Remove special enum + initializer_list constructor form since
  it can create unbounded lookup indices.

- Removd old hasEnum, hasName forms that were provided during initial
  transition from NamedEnum.

- Added static_assert on Enum contents to restrict to enum or
  integral values.  Should not likely be using this class to enumerate
  other things since it internally uses an 'int' for its values.

  Changed volumeType accordingly to enumerate on its type (enum),
  not the class itself.
2018-10-18 12:57:32 +02:00
f2c78362e7 CONFIG: default to using logical value for cwd()
- this helps for many cases outlined in issue #1007, but can also be
  useful when simply using symlinks for shorter or reorganized
  directory structures.
2018-10-18 08:05:44 +02:00
6e9520d3c1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-10-17 10:29:34 -07:00
5daa38d5b4 ENH:
Update of overRhoPimpleDyMFoam and overInterDyMFoam solvers.
Adding corresponding tutorials with best possible settings
The main effort was put on reducing pressure spikes as the
stencil change with hole cells on the background mesh.
2018-10-17 10:10:06 -07:00
14a39405c2 ENH: simple dataCloud function object (issue #1044)
- writes positions and a single field (eg, diameter) in plain ASCII files,
  suitable for importing in a spreadsheet or manipulation with
  scripting tools.

- code integrated from
  https://develop.openfoam.com/Community/OpenFOAM-addOns
2018-10-17 17:37:23 +02:00
8fabc32539 ENH: simplify objectRegistry access names (issue #322)
New name:  findObject(), cfindObject()
  Old name:  lookupObjectPtr()

      Return a const pointer or nullptr on failure.

  New name:  findObject()
  Old name:  --

      Return a non-const pointer or nullptr on failure.

  New name:  getObjectPtr()
  Old name:  lookupObjectRefPtr()

      Return a non-const pointer or nullptr on failure.
      Can be called on a const object and it will perform a
      const_cast.

- use these updated names and functionality in more places

NB: The older methods names are deprecated, but continue to be defined.
2018-10-17 16:44:10 +02:00
e0255cfff2 ENH: add compareOp for three-way comparison
- similar to the \c <=> operator in C++20.
  Primarily for use when defining cascaded sort function objects.
2018-10-17 09:29:28 +02:00
8b569b16d1 STYLE: logical ops return bool (issue #1043)
- these currently only with bool parameters, but the return value should
  nonetheless always be a bool value:

      andOp(), orOp(), lessOp(), lessEqOp(), greaterOp(), greaterEqOp()

- renamed the unused eqEqOp() to equalOp() for naming consistency with
  the equal() global function.

ENH: equalOp() specialization for scalars

- function object version of the equal() function.
  The default constructor uses the same tolerance (VSMALL),
  but can also supply an alternative tolerance on construction.
2018-10-17 07:59:26 +02:00
0a0fee88a0 STYLE: update fileName docs and minor code cleanup 2018-10-16 23:03:38 +02:00
01737e14e7 BUG: removeFaces: do not remove if inbetween same cells. See #998.
This is the additional fix to make dynamic unrefinement work again.
2018-10-17 09:13:35 +01:00
8d590dd780 STYLE: decompistionConstraint: indentation 2018-10-17 08:55:55 +01:00
03b5870c07 ENH: overset: clean-up interpolation triggering. See #1041. 2018-10-17 08:54:34 +01:00
4cce1d74d2 ENH: overset: do not trigger wall-wall interaction. See #1041. 2018-10-15 14:07:10 +01:00
8e03400635 ENH: snappyHexMesh: force all running; remove excess tutorial. 2018-10-15 11:33:00 +01:00
1eba709319 ENH: Added new fieldExtents function object
Description
    Calculates the spatial minimum and maximum extents of a field

    The extents are derived from the bound box limits after identifying
    the locations where field values exceed the user-supplied threshold
    value.

Usage
    Example of function object specification:

    fieldExtents1
    {
        type        fieldExtents;
        libs        ("libfieldFunctionObjects.so");
        ...
        writeToFile yes;
        log         yes;
        fields      (alpha);
        threshold   0.5;
        patches     ();
    }

    Where the entries comprise:

        Property      | Description              | Required   | Default
        type          | type name: fieldExtents  | yes        |
        writeToFile   | write extents data to file | no       | yes
        log           | write extents data to standard output | no | yes
        internalField | Process the internal field | no       | yes
        threshold     | Field value to identify extents boundary | yes |
        referencePosition | Reference position   | no         | (0 0 0)
        fields        | list of fields to process | yes       |
        patches       | list of patches to process | no       | <all>

    Output data is written to the file \<timeDir\>/fieldExtents.dat

Note
    For non-scalar fields, the magnitude of the field is employed and
    compared to the threshold value.
2018-10-16 13:01:15 +01:00
5d7b2329dd STYLE: use range-for in dictionary internals 2018-10-16 11:36:29 +02:00
77017e58f4 ENH: support token stream checking to entry (issue #762)
- Eg,
    scalar val(-GREAT);

    const entry* eptr = dict.findEntry(k);

    if (eptr)
    {
        val = eptr.get<scalar>();

        // Or
        eptr.readEntry(val);
    }
2018-10-16 11:13:35 +02:00
8a923518a5 STYLE: mark compatibility change in motionSolver keyword
- was "solver" in 1612 and "motionSolver" for later versions
2018-10-16 10:21:33 +02:00
873b2f0a9f STYLE: use explicit dictionary access for dictionaryEntry
- clarifies the meanings of get<T> etc, avoids later ambiguities.

ENH: simplify phaseProperties construction, add input checks
2018-10-16 09:58:49 +02:00
7864672c78 ENH: make cwd() behaviour user-adjustable (issue #1007)
- with the 'cwd' optimization switch it is possible to select the
  preferred behaviour for the cwd() function.

  A value of 0 causes cwd() to return the physical directory,
  which is what getcwd() and `pwd -P` return.
  Until now, this was always the standard behaviour.

  With a value of 1, cwd() instead returns the logical directory,
  which what $PWD contains and `pwd -L` returns.
  If any of the sanity checks fail (eg, PWD points to something other
  than ".", etc), a warning is emitted and the physical cwd() is
  returned instead.

  Apart from the optical difference in the output, this additional
  control helps workaround file systems with whitespace or other
  characters in the directory that normally cause OpenFOAM to balk.
  Using a cleaner symlink elsewhere should skirt this issue.

  Eg,
      cd $HOME
      ln -s "/mounted volume/user/workdir"  workdir
      cd workdir
      # start working with OpenFOAM
2018-10-16 01:30:44 +02:00
50852b3392 CONFIG: improve shell env handling of paths with spaces (#1007, #1008)
- foamCleanPath now only splits the environment variable on ':', which
  allows other directories with spaces or '(..)' etc to pass through
  without major issue.

- The filter arguments are split on whitespace, colons or semi-colons.
2018-10-15 21:37:46 +02:00
5c8a1b746d STYLE: use <case> instead of $FOAM_CASE expansion in more places 2018-10-15 21:19:13 +02:00
c6520033c9 ENH: rationalize dictionary access methods
- use keyType::option enum to consolidate searching options.
  These enumeration names should be more intuitive to use
  and improve code readability.

    Eg,   lookupEntry(key, keyType::REGEX);
    vs    lookupEntry(key, false, true);

  or

    Eg,   lookupEntry(key, keyType::LITERAL_RECURSIVE);
    vs    lookupEntry(key, true, false);

- new findEntry(), findDict(), findScoped() methods with consolidated
  search options for shorter naming and access names more closely
  aligned with other components. Behave simliarly to the
  methods lookupEntryPtr(), subDictPtr(), lookupScopedEntryPtr(),
  respectively. Default search parameters consistent with lookupEntry().

    Eg, const entry* e = dict.findEntry(key);
    vs  const entry* e = dict.lookupEntryPtr(key, false, true);

- added '*' and '->' dereference operators to dictionary searchers.
2018-10-15 16:16:12 +02:00
4f9e45fbab COMP: corrected read* changes from commit 8eddcc072a 2018-10-15 19:20:18 +01:00
19d600472a ENH: auto-detect git in tutorials Alltest 2018-10-12 23:29:16 +02:00
2210134129 COMP: incorrect const (accidental change with 8eddcc072a) 2018-10-12 22:51:48 +02:00
e5c3e7de75 ENH: COMP: handle compiler ambiguities for tmp vs movable references
- seen with gcc-4.9.4, but not with gcc-7

- provide additional constructors from tmp for DimensionedField, FieldField
2018-10-12 18:58:28 +02:00
8eddcc072a ENH: avoid readScalar, readLabel etc from dictionary (#762, #1033)
- use the dictionary 'get' methods instead of readScalar for
  additional checking

     Unchecked:  readScalar(dict.lookup("key"));
     Checked:    dict.get<scalar>("key");

- In templated classes that also inherit from a dictionary, an additional
  'template' keyword will be required. Eg,

     this->coeffsDict().template get<scalar>("key");

  For this common use case, the predefined getXXX shortcuts may be
  useful. Eg,

     this->coeffsDict().getScalar("key");
2018-10-12 08:14:47 +02:00
990d00d40d ENH: additional boolToken token type
- not used by the ISstream parser, but suitable for other parsing
  methods where true/false concept should be distinguishable from
  integer values.

  Only constructed via the token::boolean() static method, not
  directly assignable.
  This avoids any potential ambiguities with label.
2018-10-12 09:09:36 +02:00
fdf19d67a4 Merge branch 'feature-coordinateSystem' into 'develop'
coordinate system improvements

See merge request Development/OpenFOAM-plus!211
2018-10-11 16:32:03 +01:00
9129dbd46f Merge remote-tracking branch 'origin/master' into develop 2018-10-11 11:01:16 +02:00
2dff154862 Merge remote-tracking branch 'origin/develop' into develop 2018-10-11 10:57:49 +02:00
c4542294a8 ENH: more stringent checks for fileName concatenation
- avoids some doubled slashes

STYLE: simplify concatenation of processor directory names
2018-10-11 10:07:11 +02:00
a77ab5d4eb STYLE: relocate distributed flag into ParRunControl
- adjust member order in TimePaths to better packing
2018-10-11 09:12:01 +02:00
f7c85b034b STYLE: clearer handling of argList -case internals (issue #1037) 2018-10-11 08:32:43 +02:00
15747fde6b ENH: overset: on-demand trigger of stencil-update. Fixes #1028. 2018-10-10 17:03:04 +01:00
1933cffffe ENH: support line-breaks in option usage text
- for finer control of the '-help' output text
2018-10-10 14:07:21 +02:00
4645c841ca ENH: coordinateSystem: fix cloning. See #863 2018-10-10 12:40:48 +01:00
c006a10bd8 STYLE: remove unused timeSelector::select static method
- this also removes the '-newTimes' option cruft from appearing
  everywhere. reconstructPar and redistributePar are unaffected by this
  since they define their own -newTimes option independently.
2018-10-09 19:39:02 +02:00
edd93728e2 Partial revert "ENH: add GeometricField constructor for movable internal field"
Compilation problems on older compilers

This reverts commit baf3e931de.
2018-10-09 08:36:28 +02:00
2cd2732fed ENH: avoid change when setting UPtrList twice (issue #1035)
UPtrList::set(const label i, T* ptr);

No-op if the new pointer value is identical to the current content.
This avoid memory management issues.
2018-10-09 08:27:50 +02:00
d2b32fcc84 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-10-08 15:42:19 -07:00
ba40eeec53 BUG: Correct initialization for psi and mu for solid thermo 2018-10-08 15:41:36 -07:00
6eb1f6fefc ENH: searchableSurface: handle multiple surfaces. Fixes #1034 2018-10-08 17:11:37 +01:00
3b77493abc ENH: wordRes matcher method that distinguishes literal vs. regex
- useful for customizing the behaviour of white/black lists depending
  on the type of the match.
2018-10-07 18:30:33 +02:00
8d6f83e666 ENH: isLiteral() method for keyType and wordRe
- same as !isPattern(), but can be more readable.

- add wordRe enum state 'UNKNOWN', which has the identical value as
  'DETECT' but used for a return value.
2018-10-07 17:28:11 +02:00
87cc19de82 STYLE: typo in comment 2018-10-07 17:23:45 +02:00
da10a8e676 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-10-05 08:26:51 -07:00
3eafee43c9 BUG: Correcting compilation error in createFields for
overPimpleDymFoam
2018-10-05 08:24:07 -07:00
efaa9f84be COMP: include fileFormats for paraview plugins 2018-10-05 16:50:23 +02:00
77753021df Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-10-04 09:14:08 -07:00
ba870ef7df ENH: Adding non-interplating fields to createFields for overPimpleDyMFoam 2018-10-04 09:13:22 -07:00
073770ddf2 ENH: dynamicOversetMesh: added debug writing. See #1028. 2018-10-04 14:27:46 +01:00
3e75a3736b STYLE: remove file series handling from foamVtkOutput
- now handled by the vtk::seriesWriter, and with its static methods.
2018-10-02 14:49:11 +02:00
789d261f0e Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-10-01 17:14:39 -07:00
d0c39b0e27 ENH: Changing non-interpolation field in versetFvPatchField
for correct run time reading.
Setting up twoSimpleRotors tutorial for smooth pressure
fluctuations
2018-10-01 17:11:39 -07:00
ebdb227863 ENH: Modifications to overPimpleDyMFoam 2018-10-01 17:05:35 -07:00
496e1cd0d2 STYLE: enforce Cartesian transform (issue #1027)
- searchable surfaces
- pointToPointPlanarInterpolation
- sampled planes
- surfaceMeshConvert, surfaceMeshExport, surfaceMeshImport
2018-10-01 22:55:59 +02:00
b17bcd67b7 ENH: correct suspicious coordinate system conversions (issue #1027)
- arraySet :
     was translate + transform
     now use globalPosition (== transform + translate).

     Explicitly limit to Cartesian coordinate system for clarity.
2018-10-01 17:10:35 +02:00
501326b27a ENH: additional constructor and methods for regionProperties
- can now construct with READ_IF_PRESENT and use count() to determine
  if it was loaded. names() and sortedNames() for a collected overview.
2018-10-01 16:01:02 +02:00
e6a60f2de6 ENH: use intermediate constants for sin/cos in coordinate rotations
- makes an easier overview of the rotation matrix coefficients
  (issue #863).

  Provided as a distinct commit for easier examination of the lines changed.
2018-10-05 00:58:23 +02:00
b9c738dd10 ENH: expose calculation of coordinate rotations as static methods
- improve handling of degenerate cases for the two-axes specification.
2018-10-05 00:49:55 +02:00
95b95d7201 GIT: relocation of coordinate systems/rotation files 2018-10-04 23:46:57 +02:00
baf3e931de ENH: add GeometricField constructor for movable internal field
- the movable type is List&& or Field&&
2018-10-04 11:14:04 +02:00
8548009eee ENH: generalize instant to be templated, movable, etc
- allows reuse for other purposes
2018-10-03 14:05:45 +02:00
6c91048e8b ENH: fileName hasPath(), removePath() methods
- improved move constructors/assignments for fileName, string, etc
2018-10-03 14:05:45 +02:00
6697bb4735 ENH: improve, simplify, rationalize coordinate system handling (issue #863)
Previously the coordinate system functionality was split between
coordinateSystem and coordinateRotation. The coordinateRotation stored
the rotation tensor and handled all tensor transformations.

The functionality has now been revised and consolidated into the
coordinateSystem classes. The sole purpose of coordinateRotation
is now just to provide a selectable mechanism of how to define the
rotation tensor (eg, axis-angle, euler angles, local axes) for user
input, but after providing the appropriate rotation tensor it has
no further influence on the transformations.

--

The coordinateSystem class now contains an origin and a base rotation
tensor directly and various transformation methods.

  - The origin represents the "shift" for a local coordinate system.

  - The base rotation tensor represents the "tilt" or orientation
    of the local coordinate system in general (eg, for mapping
    positions), but may require position-dependent tensors when
    transforming vectors and tensors.

For some coordinate systems (currently the cylindrical coordinate system),
the rotation tensor required for rotating a vector or tensor is
position-dependent.

The new coordinateSystem and its derivates (cartesian, cylindrical,
indirect) now provide a uniform() method to define if the rotation
tensor is position dependent/independent.

The coordinateSystem transform and invTransform methods are now
available in two-parameter forms for obtaining position-dependent
rotation tensors. Eg,

      ... = cs.transform(globalPt, someVector);

In some cases it can be useful to use query uniform() to avoid
storage of redundant values.

      if (cs.uniform())
      {
          vector xx = cs.transform(someVector);
      }
      else
      {
          List<vector> xx = cs.transform(manyPoints, someVector);
      }

Support transform/invTransform for common data types:
   (scalar, vector, sphericalTensor, symmTensor, tensor).

====================
  Breaking Changes
====================

- These changes to coordinate systems and rotations may represent
  a breaking change for existing user coding.

- Relocating the rotation tensor into coordinateSystem itself means
  that the coordinate system 'R()' method now returns the rotation
  directly instead of the coordinateRotation. The method name 'R()'
  was chosen for consistency with other low-level entities (eg,
  quaternion).

  The following changes will be needed in coding:

      Old:  tensor rot = cs.R().R();
      New:  tensor rot = cs.R();

      Old:  cs.R().transform(...);
      New:  cs.transform(...);

  Accessing the runTime selectable coordinateRotation
  has moved to the rotation() method:

      Old:  Info<< "Rotation input: " << cs.R() << nl;
      New:  Info<< "Rotation input: " << cs.rotation() << nl;

- Naming consistency changes may also cause code to break.

      Old:  transformVector()
      New:  transformPrincipal()

  The old method name transformTensor() now simply becomes transform().

====================
  New methods
====================

For operations requiring caching of the coordinate rotations, the
'R()' method can be used with multiple input points:

       tensorField rots(cs.R(somePoints));

   and later

       Foam::transformList(rots, someVectors);

The rotation() method can also be used to change the rotation tensor
via a new coordinateRotation definition (issue #879).

The new methods transformPoint/invTransformPoint provide
transformations with an origin offset using Cartesian for both local
and global points. These can be used to determine the local position
based on the origin/rotation without interpreting it as a r-theta-z
value, for example.

================
  Input format
================

- Streamline dictionary input requirements

  * The default type is cartesian.
  * The default rotation type is the commonly used axes rotation
    specification (with e1/e2/3), which is assumed if the 'rotation'
    sub-dictionary does not exist.

    Example,

    Compact specification:

        coordinateSystem
        {
            origin  (0 0 0);
            e2      (0 1 0);
            e3      (0.5 0 0.866025);
        }

    Full specification (also accepts the longer 'coordinateRotation'
    sub-dictionary name):

        coordinateSystem
        {
            type    cartesian;
            origin  (0 0 0);

            rotation
            {
                type    axes;
                e2      (0 1 0);
                e3      (0.5 0 0.866025);
            }
        }

   This simplifies the input for many cases.

- Additional rotation specification 'none' (an identity rotation):

      coordinateSystem
      {
          origin  (0 0 0);
          rotation { type none; }
      }

- Additional rotation specification 'axisAngle', which is similar
  to the -rotate-angle option for transforming points (issue #660).
  For some cases this can be more intuitive.

  For example,

      rotation
      {
          type    axisAngle;
          axis    (0 1 0);
          angle   30;
      }
  vs.
      rotation
      {
          type    axes;
          e2      (0 1 0);
          e3      (0.5 0 0.866025);
      }

- shorter names (or older longer names) for the coordinate rotation
  specification.

     euler         EulerRotation
     starcd        STARCDRotation
     axes          axesRotation

================
  Coding Style
================
- use Foam::coordSystem namespace for categories of coordinate systems
  (cartesian, cylindrical, indirect). This reduces potential name
  clashes and makes a clearer declaration. Eg,

      coordSystem::cartesian csys_;

  The older names (eg, cartesianCS, etc) remain available via typedefs.

- added coordinateRotations namespace for better organization and
  reduce potential name clashes.
2018-10-01 13:54:10 +02:00
69f6f63810 ENH: add globalPath() to argList and TimePaths
- simply combines (rootPath()/globalCaseName())
2018-09-28 15:24:59 +02:00
911ea1087d meshSearch: Prevent hang in calculation of line-boundary intersections
This fix changes how the intersections loop ignores previously
intersected faces. It now marks them by their index so that subsequent
iterations ignore them.

Before this change, after an intersection was found the start point was
advanced by a small amount to move the past the intersection. The
problem with this was if multiple boundary faces or the end point were
in close proximity to the intersection then the move forward might span
them. This could lead to intersections being missed or counted multiple
times, in some cases indefinitely.

Based on a patch contributed by Mattijs Janssens
Resolves bug report https://bugs.openfoam.org/view.php?id=1147
2018-09-28 12:26:17 +01:00
b937a531bd STYLE: Allrun: use suffix option 2018-10-03 09:39:27 +01:00
c0460d3015 Merge remote-tracking branch 'Customer-VWG/wp3-directional-refinement' into develop 2018-10-04 13:43:33 +01:00
8855fdeb40 Merge branch 'wp3-directional-refinement' of develop.openfoam.com:/Customer-VWG/OpenFOAM-plus into wp3-directional-refinement 2018-10-04 12:07:36 +01:00
8076963c68 ENH: snappyHexMesh: directional smoothing. See #1031 2018-10-04 12:03:53 +01:00
16b7707c31 ENH: snappyHexMesh: directional smoothing. See #1031 2018-10-04 12:03:53 +01:00
6627515838 ENH: fieldMinMax function object - updated for case where there are no cells on a local processor, e.g. CHT 2018-10-03 13:06:31 +01:00
6141575532 BUG: cellCellStencil: use before mesh.update. Fixes #1028. 2018-10-03 09:35:13 +01:00
8e82e7b8e8 ENH: heatTransfer: allow free patch to be moved. See #1026. 2018-10-01 09:51:24 +01:00
d92d77cc84 Merge remote-tracking branch 'origin/master' into develop 2018-09-28 13:20:41 +02:00
4a61042f3f ENH: add column access and other methods for Tensor
- Can now retrieve or set a column/row of a tensor.
  Either compile-time or run-time checks.

  Get
     t.col<1>();   t.col(1);
     t.row<1>();   t.row(1);

  Set
     t.col<1>(vec);   t.col(1,vec);
     t.row<1>(vec);   t.row(1,vec);

  The templated versions are compile-time checked

     t.col<3>();
     t.col<3>(vec);

  The parameter versions are run-time checked

     t.col(3);
     t.col(3,vec);

ENH: provide named access to tensor/tensor inner product as inner()
2018-09-28 11:20:31 +02:00
2d5f77f2dd ENH: add invTransform in transform.H 2018-09-28 09:53:45 +02:00
a6473dca33 STYLE: minor coding/comments cleanup for transform, transformList 2018-09-28 09:29:12 +02:00
dde9ef4712 BUG: bad transform for transformList (fixes #1024) 2018-09-28 08:47:08 +02:00
1135f1572d TUT: Removed unused/misleading entries - see #1020 2018-09-27 16:34:44 +01:00
731ebc9126 ENH: Particle interaction lists - do not include partially open wall faces. See #957 2018-09-27 12:51:13 +01:00
0f4c6572bc ENH: polyPatch - added areaFraction method
Helper function to calculate the current face area vs the area returned
from the current point locations.  Useful for ACMI-type baffles where we
scale the face areas without moving points.
2018-09-27 12:46:48 +01:00
64c3e484bb STYLE: add nBoundaryFaces() method to primitiveMesh
- nBoundaryFaces() is often used and is identical to
  (nFaces() - nInternalFaces()).

- forward the mesh nInternalFaces() and nBoundaryFaces() to
  polyBoundaryMesh as nFaces() and start() respectively,
  for use when operating on a polyBoundaryMesh.

STYLE:

- use identity() function with starting offset when creating boundary maps.

     labelList map
     (
         identity(mesh.nBoundaryFaces(), mesh.nInternalFaces())
     );

  vs.

     labelList map(mesh.nBoundaryFaces());
     forAll(map, i)
     {
         map[i] = mesh.nInternalFaces() + i;
     }
2018-09-27 10:17:30 +02:00
3a641275d3 COMP: Allwmake: pass through targetType 2018-09-26 14:32:32 +01:00
89342b6ff3 COMP: Allwmake: pass through targetType 2018-09-26 14:32:32 +01:00
b23375ab3d Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2018-09-25 12:49:09 -07:00
8794b1955a BUG: Fix ticket 792. pRefCelli is set to -1 for
chtMultiRegionSimpleFoam
2018-09-25 12:48:04 -07:00
e7a6095aaf ENH: avoid duplicate bookkeeping of rotation tensors in rotorDiskSource 2018-09-24 17:55:37 +02:00
dcc1dc1383 ENH: cylindricalCS is now in radians only (issue #863)
- this provides internal consistency and allows direct use of the
  coordinate angle with sin(), cos() functions.
  It eliminates potential issues that could otherwise arise from
  alternative user input.

  Eg, in mixerFvMesh it would have previously been possible to specify
  the coordinate system to use degrees or radians, but these units were
  not checked when determining the tangential sweep positions.

NOTE: this may represent a breaking change if user coding has been
relying on cylindrical coordinate system in degrees.
2018-09-24 11:31:04 +02:00
c4ffd32086 BUG: Corrected viscosity field names. Fixes #1017 2018-09-21 16:00:28 +01:00
923986793f BUG: kEpsilonLopesdaCosta model - loop was using the incorrect index 2018-09-21 13:44:17 +01:00
aa0f8da54b COMP: mapDistribute: do not make explicit 2018-09-20 15:07:04 +01:00
d0da21fe90 ENH: allow new patch names in subsetMesh (issue #1019)
Previously had 3 possibilities for handling exposed internal faces

  1. use default "oldInternalFaces"
  2. specify -patch, to use the specified (existing) patch
  3. specify -patches, to use the geometrically closest patches

Now relaxed the restriction on -patch to allow specification of a new
(not yet existing) patch name. This improves flexibility, but won't
catch typing mistakes.

Harmonize behaviour of -patches and -patch. When -patches is used to
specify a single, non-regex patch name, it now behaves identically to
-patch. Since the getList handling for options already allows special
treatment for single parameter lists, the following will work
identically:

      subsetMesh -patch  patch0
      subsetMesh -patches patch0
      subsetMesh -patches '( patch0 )'

In the future it might be reasonable to fully combine the behaviour of
'-patch' and '-patches' and treat them as aliases for each other.

ENH: support subsetMesh on a cellZone.

- when the '-zone' option is specified, the command argument is treated
  as the name (or names) of cellZones to be selected instead of as the
  name of the cellSet.

  The command argument can be a single word, regex, or list of
  word/regex.
  Eg,

      subsetMesh -zone -patch mypatch  mixer
      subsetMesh -zone -patch mypatch  '(mixer "moving.*" )'

STYLE: simplify set handling and other code cleanup in subsetMesh
2018-09-25 17:18:27 +02:00
54457c68b6 Merge remote-tracking branch 'origin/master' into develop 2018-09-21 16:01:16 +01:00
39c1fbedcd STYLE: consistency update
- handling of cloud coordinates/positions between mapFields, mapFieldsPar
2018-09-19 23:11:31 +02:00
eda13117e4 STYLE: explicitly use degrees in arcEdge coordinate system (#1015)
- safeguard against any change in the default in cylindricalCS
2018-09-19 22:32:29 +02:00
6cd953ff99 STYLE: report API number with the build information
Using: OpenFOAM-plus (see www.OpenFOAM.com)
    Build: plus-7ab57cc5d014 (OPENFOAM=1807)
    Arch:  LSB;label=32;scalar=64

- This can be useful for development versions, or when the version
  at build time uses some other naming scheme (#1010)
2018-09-19 21:51:37 +02:00
7ab57cc5d0 DEFEATURE: remove CloudToVTK function object (issue #985)
- superseded by the vtkCloud function object, which provides
  significantly more functionality and more versatile output
  (using the vtp format).
2018-09-19 21:13:13 +02:00
0c0bc572e4 ENH: mapDistribute: extra constructor. Used in #284. 2018-09-19 17:16:29 +01:00
5cd75ac7dc BUG: surfaceInertia: undo incorrect commit df3a560d 2018-09-19 17:13:42 +01:00
dce9d9e05c STYLE: provide get() method in Enum for consistency with dictionary methods 2018-09-19 16:26:19 +02:00
12c903bba8 ENH: define nameOp<>, typeOp<>, sizeOp<> functors (issue #1013) 2018-09-19 15:32:04 +02:00
47519b2e04 ENH: new sampling type "surfaceCut"
- an alternative to distanceSurface (with distance zero) that uses
  a cell cutting approach instead of an iso-surface.
2018-09-18 08:40:46 +02:00
4aa94bd1d7 ENH: improve distanceSurface handling (issue #1012)
- 'signed' input parameter only mandatory for distance > 0.
  A distance <= 0 is always signed and the input parameter is ignored.

- Use normal distance when distance == 0. This has no effect when
  the surface has no open edges, but improves on rounding issues
  around the zero crossing when the surface has open edges.

  This may still need future revisiting.
2018-09-19 14:18:57 +02:00
201fdf87d1 STYLE: relocate some vtk part handling from conversion to fileFormats
- these parts work with a polyMesh (don't need fvMesh)
2018-09-17 10:12:48 +02:00
03eec4a5db ENH: code improvements for vtkCloud function object (issue #926)
- use parallel list writing, beginDataArray methods.

- use static_assert to restrict conversion of non-label integral types

- cache .vtp.series information by fileName instead of by cloud name.
  This issues if the output directory changes, and simplifies code.

ENH: emit TimeValue in files generated by vtkCloud

- additional information for passing to ParaView

ENH: vtkCloud output to postProcessing/ (issue #866)

- better alignment with other function objects, no collision with
  foamToVTK output.
2018-09-17 09:36:00 +02:00
ed62ed1b19 ENH: parallel and xml output for surface vector fields (issue #926)
-  implemented as vtk::surfaceFieldWriter, which replaces
   the vtk::writeSurfFields function.
2018-09-27 13:38:31 +02:00
6f06ce6e02 ENH: parallel and xml output for vtk::lagrangianWriter (issue #926) 2018-09-17 11:35:17 +02:00
9d8af49c16 ENH: parallel and xml output for surfaces (issue #926) 2018-10-16 13:50:13 +02:00
9973c378b9 ENH: refactor cutting-plane cell selection
- avoid duplicate code by relocating cellZone selection and bounding box
  sub-selection into cuttingPlane and cuttingSurfaceBaseSelection.
  Allows reuse by inherited classes (sampledPlane, surfMeshSamplePlane).
2018-09-14 11:18:44 +02:00
a8ef9e9742 ENH: make cuttingPlane cell walker an algorithm
- takes two general actions:
  1. orient edge in canonical direction (positive gradient) and detect
     any edge intersection.
  2. edge intersection alpha (0-1)

- refactor into a cuttingSurfaceBase intermediate class with the
  actions as templated parameters rather than function pointers. This
  allows the use of lambda functions with captures from the caller.
2018-09-14 09:34:14 +02:00
7cf232ceec STYLE: split up cuttingPlane source files 2018-09-14 09:19:32 +02:00
53b0bb0782 CONFIG: fix odd behaviour in bash completion (issue #1011)
- The test condition

      [ -n "$cur" -a ... ]

  fails if $cur starts with '-le', which bash interprets as a further
  test op. Splitting the test condition solves the problem:

      [ -n "$cur" ] && [ ... ]
2018-09-18 18:25:29 +02:00
df3a560d6d ENH: surfaceInertia: print info for use in RBD. See also #1014. 2018-09-19 14:07:42 +01:00
0b95bb008c ENH: Refactored simpleReactingParcelFoam and added new simpleSprayFoam 2018-09-17 13:40:21 +01:00
c214d30473 ENH: parallel output for vtk::surfaceMeshWriter (#926) 2018-09-13 13:48:14 +02:00
8122a8a70f ENH: orient cut plane faces based on the (oriented) edge gradient
- Since the local edges are oriented according to the gradient,
  they can also be used to determine the correct face orientation.

This generalizes the algorithm for future reuse.
2018-09-12 11:16:30 +02:00
d09b366b3a STYLE: use List, FixedList find(), found() methods in face/triFace 2018-09-13 10:14:52 +02:00
0d5283a6bc ENH: added edge::valid() method
- simple check for unique and non-negative point labels
2018-09-13 09:48:01 +02:00
8d582d0258 BUG: foamLog - corrected for Ubuntu. See #860 2018-09-12 08:42:04 +01:00
32d5030088 BUG: incorrect kahip resolution with absolute paths (closes #1003)
- for installations with central (non-ThirdParty) location for KAHIP
  (eg, spack, EasyBuild)
2018-09-12 08:37:53 +02:00
5f3f101b4e BUG: Doxygen corrections 2018-09-11 12:13:19 +01:00
0e8704defe ENH: solutionControl - control dictionary e.g. PIMPLE now optional. See #1002 2018-09-11 11:25:22 +01:00
ef394e9d99 GIT: missed commit for 9ae4ea6882 2018-09-10 18:34:52 +02:00
1adac97150 ENH: parallel output for vtk::patchWriter (issue #926) 2018-09-10 18:28:55 +02:00
065daa20ae STYLE: incorrect doxygen grouping for vtkCloud function object 2018-09-10 17:22:27 +02:00
9ae4ea6882 STYLE: operator bool conversion for IOstream (issue #1001)
- replaces previous pointer conversion
2018-09-10 15:06:49 +02:00
6f16c6774c STYLE: make volumeType input operator symmetric with output (issue #994)
- uses int, without enclosing brackets.
2018-09-10 14:27:35 +02:00
4ec73897d3 BUG: removeFaces: handle internal faces still using point. Fixes #998. 2018-09-06 17:16:38 +01:00
b00498bac0 ENH: blockMesh: write to specified directory. Fixes #981. 2018-09-05 13:52:23 +01:00
31fbc95f85 BUG: multiSolidBodyMotionSolver: parallel consistent message. Fixes #990. 2018-09-05 13:17:37 +01:00
236684b1b7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-08-30 09:33:05 -07:00
089ca1a632 BUG: Init refCell to -1 instead of 0 for multi regions 2018-08-30 09:26:29 -07:00
e915e46ee1 BUG: tetDecomposer: only faceZonify the triangles of the original face. Fixes #987. 2018-08-30 12:35:59 +01:00
bf43a9d91e ENH: snappyHexMesh: allow medialAxis to shrink 1 or 2 cell thick channel. Fixes #986. 2018-08-30 11:38:38 +01:00
688469d127 BUG: bitSet: extraneous exit. Fixes #984. 2018-08-29 12:50:50 +01:00
76a07d1cd0 ENH: overset: change preference of donor mesh to avoid loops. Fixes #977.
This is not the ultimate fix; it just avoids the loops in cases where
mesh 0 is the background.
2018-08-29 09:22:30 +01:00
d3812b9b69 Merge remote-tracking branch 'origin/master' into develop 2018-08-29 13:51:40 +01:00
98898e7861 BUG: externalWallHeatFluxTemperature - set size of qrPrevious_ before
mapping.  Fixes #983
2018-08-28 15:39:06 +01:00
6c99006fe7 ENH: polyMesh: allow *zones only at faces instance. Fixes #982. 2018-08-27 12:44:37 +01:00
f0cada17e2 ENH: rigidBody: added error checking. 2018-08-27 09:21:38 +01:00
168b246873 ENH: overset: additional debug. See #810. 2018-08-27 09:19:35 +01:00
be96876a18 BUG: mergeMeshes. Use wrong option. See #650. 2018-08-27 09:01:36 +01:00
848f0266eb ENH: timeControl - extended use of time and triggers 2018-08-21 13:09:21 +01:00
74dc8b3ce1 ENH: runTimeControl FO - added action for case that conditions are satisfied 2018-08-21 13:08:58 +01:00
ef615ed17f ENH: runTimeControl valueAverage condition - added start-up iterations option 2018-08-21 12:58:19 +01:00
a3327b3761 STYLE: runTimeControl FO conditions - refactor to use the Log macro 2018-08-21 12:53:29 +01:00
7ffa7bb923 ENH: stateFunctionObject - added helper functions to retrieve object result info 2019-01-21 10:58:39 +00:00
bd79f1d5ab ENH: runTimeControl FO - added new maxDuration condition 2018-08-20 14:04:27 +01:00
e64a87cd8e ENH: runTimeControl FO - added exact window averaging to the averageCondition 2018-08-20 14:03:57 +01:00
8b387961d9 ENH: run-time control clean-up 2018-08-17 16:52:11 +01:00
21d2d7e6c3 ENH: Initial implementation for FO activation by trigger 2018-08-16 12:44:33 +01:00
e7b77c0af6 ENH: parallel output for vtk::internalWriter (issue #926)
- removed vtk::writeField templates. No longer used.
2018-08-13 18:21:45 +02:00
0d2dbaf61b ENH: parallel and xml output for vtk topoSet writers (issue #926)
- introduce lower-level vtk::indirectPatchWriter class
2018-09-17 15:41:58 +02:00
0e47b0717d ENH: vtk::seriesWriter to encapsulate writing file series (issue #926) 2018-10-02 14:06:34 +02:00
42009c168e ENH: vtk::vtmWriter for generating vtkMultiBlockDataSet (.vtm) (issue #926)
- Provides a means of accumulating file entries for generating vtm
  by accumulate blocks, datasets and writing them later.

  Only a single block depth is currently supported and the methods
  are kept fairly simple.
2018-10-02 12:53:01 +02:00
ee0947b693 ENH: vtk::fileWriter base class for geometry/field writers (issue #926)
- Output formats such as vtp, vtu follow a particular internal data
  structure (HEAD, FIELD_DATA, PIECE, CELL_DATA/POINT_DATA) and other
  output conventions. This writer base tracks these expected output
  states internally to help avoid logic errors in the callers.
2018-09-29 13:14:50 +02:00
d837524860 ENH: use some updated vtk output methods 2018-09-17 10:12:48 +02:00
05427217a0 ENH: improvements for foamVtkOutput, foamVtkFormatter (issue #926)
- parallel list output for foamVtkOutput

- simplified '.series' file output

- beginDataArray() method instead of openDataArray() + closeTag()
  since this seems to be the most common use anyhow.
  With an optional argument for leaving the tag open, this works the
  same as openDataArray() which may be deprecated in the future.

- begin/end methods for CellData, PointData, FieldData (commonly used)

- templating parameters for file headers, content version,
  legacy fields. This improves coding robustness and convenience of use.

- use formatter and higher-level methods for legacy output

- attribute quoting character now part of the formatter itself
  instead of as an argument for xmlAttr().
  Toggle with quoting() method.

- pair-wise processing of xml attributes, which also allows them to be
  passed as optional entries when creating an xml tag.

- xmlComment with multiple arguments
2018-09-17 08:59:03 +02:00
19e03f7dd1 ENH: add renumbering support into foamVtuSizing algorithm (issue #926)
- allows cell point labels will use global numbering, but only for
  unmerged points. We'd ideally like to avoid point merging per se,
  and instead use VTK point blanking instead (as required).

  This approach allows parallel collation of the output into a single
  piece directly.
2018-09-17 09:00:51 +02:00
a8e3f06762 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-08-09 15:10:45 -07:00
0be3caec4a ENH: Improving twoRotorTutorial set up 2018-08-09 15:09:56 -07:00
079eb373df ENH: Updating overPimpleDyMFoam solver 2018-08-09 13:33:47 -07:00
4637e4582c ENH: redistributePar: allow nDomains 1 in decomposeParDict. Fixes #924.
Note: this removes the option to reconstruct by setting nDomains to 1.
      You now have to explicitly use -reconstruct to reconstruct.
2018-08-09 15:17:21 +01:00
c1223095c4 COMP: Resolved compiler warnings 2018-08-09 14:40:24 +01:00
9fa4371d9f BUG: overset: newly created interpolated cells are not uptodate. Fixes #968. 2018-08-09 12:51:24 +01:00
68a473106a ENH: overset: read old-time cellTypes to avoid hole->calculated. See #810. 2018-08-09 09:04:38 +01:00
ae36f5f504 ENH: change argList get<> and getList<> from read<>, readList<>
- more consistent with dictionary method naming. The get<> or
  getList<> returns a value, doesn't read into a existing location.
2018-08-09 11:27:36 +02:00
b5162f91fc STYLE: use DynamicList instead of LIFO for managing tags in vtk::formatter 2018-08-09 08:57:48 +02:00
ca5d91239d STYLE: use edgeHashes include
STYLE: use initial hash size 128 instead of 100 in a few places
2018-08-08 23:54:27 +02:00
dd9ecd4988 ENH: add missing Hash function for List/UList (issue #966)
- there were previously no hashing mechanisms for lists so they
  would fall back to the definition for primitives and hash the
  memory location of the allocated List object.

- provide a UList::Hash<> sub-class for inheritance, and also a global
  specialization for UList<T>, List<T> such that the hash value for
  List<List<T>> cascades properly.

- provide similar function in triFace to ensure that it remains
  similar in behaviour to face.

- added SymmHash to Pair, for use when order is unimportant.

STYLE: use string::hash() more consistently

- no particular reason to use Hash<word>() which forwards to
  string::hash() anyhow
2018-08-08 23:54:27 +02:00
82bad81d79 STYLE: use readList mechanism for -funcs option
- allows single or multiple entries
2018-08-08 12:18:35 +02:00
e0f83938ee ENH: ignore -noFunctionObjects option when disabled
- With argList::noFunctionObjects() we use the logic added in
  4b93333292 (issue #352)

  By removing the '-noFunctionObjects' option, we automatically
  suppress the creation of function-objects via Time (with argList
  as a parameter).
  There is generally no need in these cases for an additional

      runTime.functionObjects().off()  statement

  Use the argList::noFunctionObjects() for more direct configuration
  and reduce unnecessary clutter in the -help information.

  In previous versions, the -noFunctionObjects would have been redundant
  anyhow, so we can also just ignore it now instead.
2018-08-08 09:44:28 +02:00
822acaf6ef ENH: make indices for boundBox::add() a templated parameter
- allows use with any container with begin(), end() and where the
  "*iterator" dereference returns a label, which is used for indexing
  into the list of points.
  This container could be labelUList, bitSet, labelHashSet, etc
2018-08-07 22:23:16 +02:00
7bb68b4dea ENH: new cuttingPlane cutting scheme
- takes a direct approach of determining which cells are cut and walks
  the cell faces directly to build the resulting surface.

- better handling of corner cases.
  * Avoids redundant points when the cut passes exactly through a
    mesh point.
  * Supresses generation of duplicates faces when the plane cut
    coincides exactly with a mesh face.

- for severely concave cells where the plane cuts a face multiple times
  there is currently no remedial action taken, except to note the
  failure and unwind the insertion of the corresponding points and
  faces.
2018-08-07 22:23:16 +02:00
544941b961 ENH: support zone and zones for sampled cutting planes, sampledIsoSurface
- rework to use bitSet for more flexibility
2018-08-06 18:45:10 +02:00
cf7bd82c25 STYLE: fix tools/lib-dir -help output 2018-08-07 11:19:10 +02:00
32a332f5f1 ENH: add HashTableOps::values() service function
- extract a list of the HashTable values, optionally sorted.
2018-08-07 20:17:38 +02:00
9160dad6ba COMP: silence compiler warning 2018-08-06 20:44:58 +02:00
881ca2a481 ENH: cyclicACMI: make sure non-overlap is before cyclicACMI 2018-08-06 13:45:02 +01:00
2290b0642e ENH: add list operation findMinMax to return label pair.
- when both min and max are required, this is more efficient than
  traversing the list twice.
2018-08-06 08:46:32 +02:00
bf56b06be2 ENH: add ZoneMesh findIndex with wordRes matcher 2018-08-06 07:00:44 +02:00
1036cf9612 ENH: avoid raw dictionary lookup in functionObjects (issue #762)
Style changes:
    - use lookupObjectRef instead of using const_cast
    - use tmp::New factory
2018-08-04 00:23:18 +02:00
1c354e0906 ENH: avoid raw dictionary lookup in transportModels (issue #762)
Style changes:
    - use lookupObjectRef instead of using const_cast
    - use tmp::New factory
2018-08-04 00:23:18 +02:00
e7c1d46904 ENH: avoid raw dictionary lookup in fvOptions (issue #762)
Style changes:
    - use lookupObjectRef instead of using const_cast
    - use tmp::New factory
2018-08-04 00:23:18 +02:00
de2eed3e7d ENH: additional methods and improvements to plane
- signedDistance() method is like distance() but retains
  the positive/negative sign for the side of the plane.

- the sign() method returns the sign as -1,0,+1 integer for
  classification purposes where it is important to distinguish between
  a zero value and a positive value (eg, for cutting). Optional
  tolerance can be supplied to round for zero.

- refactor and inlined simple and frequently used methods.

- add boundBox faceCentre() method, which can be useful for creating
  clipping planes from a bounding box.
  Relocated treeBoundBox faceNormals to boundBox since they apply
  equally there - the meaning of the faces (x-min, x-max, etc)
  is the same, even if the point addressing for the faces differs.
2018-08-03 23:17:49 +02:00
84e2df4994 ENH: added ZoneMesh indices(), selection() with wordRes matcher
- rationalized code dealing with extraction of name or indices from
  coordinateSystems, polyBoundaryMesh, faBoundaryMesh, fvBoundaryMesh,
  ZoneMesh to use internal implementations that allow direct
  searching/matching without building an intermediate list of names.

- simpler and more efficient handling of patch group matching.
2018-08-03 22:40:19 +02:00
c0c59b9abd ENH: force tetBasePtIs() into existence before isoSurfaceCell cutting loop
- ensures that things stay synchronized when the processor domains
  have unequal looping.
2018-08-03 19:34:26 +02:00
91e2fc4dc7 ENH: add isAOp, isTypeOp functors
- can be used in predicate matching

- getNameOp, getTypeOp for accessing the name() and type() of objects
2018-08-03 15:19:22 +02:00
319e09e32f ENH: avoid blockMesh removal of files for special cases (issue #963)
- do not remove if the dictionary failed to load.
- do not remove if -blockTopology was used.
2018-08-03 14:30:41 +02:00
88e5334a9f ENH: IOobject::selectIO helper method
- centralizes IOobject handling and treatment of alternative locations.
  If an alternative file location is specified, it will be used instead.

- provide decompositionMethod::canonicalName instead of using
  "decomposeParDict" in various places.
2018-08-02 17:39:17 +02:00
f4ae4f7b2c ENH: snappyHexMesh. Added leak-path detection.
Detects connections (during refinement) between
locationsInsideMesh and locationsOutsideMesh and
writes a sampledSet for postprocessing.
2018-08-02 16:39:06 +01:00
0e996431b7 STYLE: relocate STRING_QUOTE macro to macros.H 2018-08-02 16:26:25 +02:00
b056202ecf STYLE: simplify bitSet use in Foam::PatchTools::subsetMap 2018-08-02 09:54:59 +02:00
bafddd77c7 ENH: use binary search for polyBoundaryMesh::whichPatch() (issue #801) 2018-08-02 08:51:49 +02:00
32565b4b39 ENH: make findLower more flexible (issue #960)
- a second template parameter for the comparison value type instead of
  ListType::const_reference allows more generic comparison predicates.
2018-08-02 08:48:27 +02:00
a1345b7e83 ENH: improve syncTools handling of PackedList and bitSet
- create a subset copy for sending on the processor patches instead of
  a List of unsigned ints. Reduces memory overhead and data transfer
  amount.
2018-08-01 21:55:45 +02:00
d8c0167ea8 STYLE: ensure that emptyLabelList is known from List.H
- treat as a List constant without requiring inclusion of ListOps.H

- replace use of emptyList<label>() with emptyLabelList directly.
  The emptyList<T>() casting is disallowed with many modern compilers
  and now marked as deprecated (expect early removal).

- relocate labelList typedef to List.H for more general access.
  Similar reasoning to having labelUList defined in UList.H
2018-08-01 21:27:46 +02:00
edb0d1dd97 ENH: add range method to polyBoundaryMesh
- makes for easier extraction of boundary values since it encapsulates
  start/size directly.

Eg,
    SubList<T>(allValues, patches.range());
or
    bitSet(blocked, patches.range(patchi));
2018-08-01 19:22:06 +02:00
9be9f02a12 ENH: bitSet, PackedList copy construct a subset
Eg,
    processorPolyPatch pp = ...;

    UOPstream toNbr(pp.neighbProcNo(), pBufs);
    toNbr << PackedList<Width>(faceValues, pp.range());
2018-08-01 17:54:53 +02:00
51c32360cd ENH: use bitSet operations in syncTools
- concise and more efficient
2018-08-01 15:22:19 +02:00
49d9589d26 STYLE: update iterator access and looping in syncTools 2018-08-01 14:34:34 +02:00
640aac95bd STYLE: remove dead code from syncTools (unused since 2014 or earlier) 2018-08-01 13:38:37 +02:00
80f4ff87dd ENH: allow use of FixedList<label,N> for bitSet construct/set/unset
- allows direct 'hashing' of fixed lists. Eg, triFace
2018-08-01 13:01:43 +02:00
35facb8208 ENH: add PackedList::unpack() method
- allows for simpler unpacking of a full list, or list range into any
  sufficiently large integral type.

  For example,
    processorPolyPatch pp = ...;

    UOPstream toNbr(pp.neighbProcNo(), pBufs);
    toNbr << faceValues.unpack<char>(pp.range());
2018-08-01 12:48:35 +02:00
8917b94444 ENH: add labelRange labels() method (for a labelList source)
- add range support in globalIndex and SubField, SubDimensionedField
2018-08-01 10:36:05 +02:00
dd67b3386a ENH: add fileName /= operator (similar to std::filesystem::path) 2018-07-27 07:15:08 +02:00
0b70301136 ENH: overset: disallow hole donors. See #810. 2018-08-02 12:22:39 +01:00
70801d7f48 ENH: checkMesh: output mask field. Fixes #958. 2018-08-01 13:02:07 +01:00
51eac273aa STYLE: remove unused variable 2018-07-31 15:38:27 +02:00
cb919a6c41 ENH: tag some options as 'advanced' (only shown with -help-full)
General:
    * -roots, -hostRoots, -fileHandler

Specific:
    * -to <coordinateSystem> -from <coordinateSystem>

- Display -help-compat when compatibility or ignored options are available

STYLE: capitalization of options text
2018-07-31 11:54:15 +02:00
d40103a86f CONFIG: extend wmake detection scripts 2018-07-31 11:25:53 +02:00
f00c7a655c COMP: rename dictionary::read<T> to dictionary::readEntry<T>
- avoids compiler ambiguity when virtual methods such as
  IOdictionary::read() exist.

- the method was introduced in 1806, and was thus not yet widely used
2018-07-30 15:52:40 +02:00
215570915e ENH: explicit convert to bool operator for autoPtr
- behaves the same as the valid() method, but can be queried directly
  like a normal raw pointer and as per std::unique_ptr.
  Eg,

      autoPtr<T> ptr = ...

      if (ptr) ...
2018-07-30 14:33:22 +02:00
ff26b96a80 STYLE: use 'cloudObjects' instead of 'sprayObjects' 2018-07-30 13:15:38 +02:00
dd775c6e68 CONFIG: add trapping-math for darwin 2018-07-30 12:18:40 +02:00
ef52e11d2c COMP: include Constant.H for clang-5 2018-07-30 12:17:08 +02:00
b5f093076b STYLE: add sigFpe test 2018-07-30 12:13:42 +02:00
a5e5ba3179 ENH: add bitSet-type of methods for boolList
- test(), get(), set(), unset() with behaviour as per bitSet,
  to allow easier swapping out of boolList <-> bitSet.
2018-07-27 15:51:19 +02:00
c89e13f82f ENH: allow command-line options to be tagged as "advanced"
- advanced options are not displayed with -help, but only with
  -help-full, which helps retain a better overview of the standard
  options.  Replaces previous ad hoc suppression of -listSwitches,
  -listRegisteredSwitches etc.
2018-07-30 08:58:36 +02:00
14447e4cc6 CONFIG: update compiler version 2018-07-27 16:00:00 +02:00
db9cd2bc85 ENH: add IOobjectList append() method for building larger lists
- supports copy append and move append
2018-07-27 15:38:32 +02:00
fd2b72891c ENH: added HashPtrTable remove(const Key&) method
- already had remove() by iterator, but not by key.
  As per erase() which already worked by iterator or by key.
2018-07-27 15:17:14 +02:00
27bbb516a3 STYLE: return nullptr instead of tmp<...>() for NotImplemented methods
- as per 018124e3bf
2018-07-27 14:20:01 +02:00
8aa7b1353f ENH: refCast: give better error messages. Fixes #953. 2018-07-26 16:55:49 +01:00
b2be9fa3ff STYLE: snappyHexMesh: unused option 2018-07-26 16:55:11 +01:00
d7d4a6e834 Merge remote-tracking branch 'origin/develop' into develop 2018-07-26 17:40:52 +02:00
d2ccea055c STYLE: change foamUpgradeCyclics -test option to -dry-run 2018-07-26 17:35:20 +02:00
f17e486801 ENH: decompositionMethod: check dimensions. See #937.
Changed into warning since e.g. tutorials/combustion/fireFoam/LES/compartmentFire
uses columns of 1D stacks so they've got empty but are still 3D.
2018-07-26 16:21:51 +01:00
329f3a99e4 TUT: remove extraneous '}' from dictionary input 2018-07-26 17:06:10 +02:00
02ad76df4f ENH: allow wordHashSet filter for IOobjectList::names
- simplifies usage.
  Support syncPar check on names() to detect inconsistencies.

- simplify readFields, ReadFields and other routines by using these
  new methods.
2018-07-26 14:56:52 +02:00
9e345c5820 BUG: surfaceIntersection: access out of bounds. Fixes #955 2018-07-26 12:07:54 +01:00
ba64ca8a5b ENH: localPointRegion: improved error message 2018-07-26 11:50:47 +01:00
8adac99d7c ENH: tetDecomposer: decompose selected cells. 2018-07-26 10:11:39 +01:00
a8ef5610d0 STYLE: renamed meshSubsetHelper -> fvMeshSubsetProxy 2018-07-26 01:57:16 +02:00
dbe0db1d9a ENH: fvMeshSubset improvements (issue #951)
- what was previously termed 'setLargeCellSubset()' is now simply
  'setCellSubset()' and supports memory efficient interfaces.

  The new parameter ordering avoids ambiguities caused by default
  parameters.

  Old parameter order:

      setLargeCellSubset
      (
          const labelList& region,
          const label currentRegion,
          const label patchID = -1,
          const bool syncCouples = true
      );

  New parameter order:

      setCellSubset
      (
          const label regioni,
          const labelUList& regions,
          const label patchID = -1,
          const bool syncCouples = true
      );

   And without ambiguity:

      setCellSubset
      (
          const labelUList& selectedCells,
          const label patchID = -1,
          const bool syncCouples = true
      );

- support bitSet directly for specifying the selectedCells for
  memory efficiency and ease of use.

- Additional constructors to perform setCellSubset() immediately,
  which simplifies coding.

  For example,

      meshParts.set
      (
          zonei,
          new fvMeshSubset(mesh, selectedCells)
      );

  Or even

      return autoPtr<fvMeshSubset>::New(mesh, selectedCells);
2018-07-25 18:58:00 +02:00
7446d30fbd ENH: additional labelHashSet -> bitSet conversion
- BitSetOps::create(len, locations, on) that generates a bitSet with
  the specified length. The optional 'on' bool can be used to flip the
  logic.
2018-07-25 17:50:38 +02:00
3218b3dee3 ENH: allow bitSet selector for removeCells (issue #951) 2018-07-25 16:01:43 +02:00
1abacf0d0d ENH: topoSet: check write status. Fixes #952 2018-07-25 13:27:37 +01:00
a6b84927e4 STYLE: use sortedToc() instead of toc() followed by sort() 2018-07-25 10:29:20 +02:00
8610a95ad8 ENH: expose subset name in meshSubsetHelper 2018-07-25 00:14:30 +02:00
e7b82aad9e STYLE: segregate older-style access methods with preprocessor define
- enclosed with a #ifdef Foam_argList_1712 .. #endif pair
  (defined by default).
  In a later release, this can be disabled by default.

ENH: add input length check for -hostRoots option
2018-07-25 07:56:29 +02:00
adb90ef655 STYLE: remove fvMeshSubset::setCellSubset (issue #951)
- unused, does not run in parallel

- avoid enclosing namespace in fvMeshSubset
2018-07-25 00:13:13 +02:00
638b6b2cf1 ENH: add get() dereferencing for PtrList iterators
- gets the pointer within the list.
2018-07-26 00:10:51 +02:00
5e7a766159 BUG: cubicEqn, quadraticEqn: Correction to repeated roots
Also extended the cubic equation test routine and modified the error
methods so that they more accurately generate the round of error of
evaluation.

This resolves bug report https://bugs.openfoam.org/view.php?id=3015
2018-07-24 15:54:32 +01:00
d99707facd COMP: Allwmake: pass through targetType 2018-08-02 10:18:59 +01:00
4396caaa39 BUG: double read when updating ensight fieldsDict 2018-07-30 16:07:49 +02:00
3963cd95d9 STYLE: code cleanup in fileFormats, conversion 2018-07-24 16:12:32 +02:00
4a3bb8a9bc COMP: overPimpleDyMFoam is missing some files or variables 2018-10-05 12:24:22 +02:00
13778f7647 ENH: use dictionary::readEntry for detection of input errors (#762, #1033)
- instead of   dict.lookup(name) >> val;
  can use      dict.readEntry(name, val);

  for checking of input token sizes.
  This helps catch certain types of input errors:

  {

      key1 ;                // <- Missing value
      key2 1234             // <- Missing ';' terminator
      key3 val;
  }

STYLE: readIfPresent() instead of 'if found ...' in a few more places.
2018-10-05 10:15:13 +02:00
7d88075842 ENH: dictionary lookup with detection of zero tokens (#1033)
- the opposite problem from issue #762. Now we also test if the input
  token stream had any tokens at all.

- called by the dictionary get<> and readEntry() methods.
2018-10-05 09:56:17 +02:00
b1996f348c COMP: avoid compiler warnings about phasePairKey friend functions
- improve alignment of various phasePairKey implementations
2018-07-24 10:51:12 +02:00
d25dd342fa STYLE: spurious reading of int instead of label 2018-07-24 09:52:11 +02:00
d58c142404 ENH: use restricted dictionary lookup for utilities (issue #762)
- get<label>, get<scalar> instead of readLabel, readScalar, etc.
2018-07-24 08:08:30 +02:00
d362c2235b COMP/STYLE: change read() -> readIstream() for private methods
- this eliminates a degree of ambiguity when resolving a read() method
  in inherited classes.
2018-07-24 09:23:46 +02:00
94a89d530a COMP: reduce compiler warnings for gcc-7
- ignore implicit-fallthrough for ragel generated code.

- add -Wno-deprecated-declarations for c++LESSWARN.
  These principally associated with older CGAL versions and their use
  of particular mpfr routines.
2018-07-24 09:29:01 +02:00
fe808e24e7 ENH: add rpmToRads() convenience functions
- simplifies conversion of RPM to radians/sec for const variables
2018-07-23 22:20:26 +02:00
ec318a95d1 Merge remote-tracking branch 'origin/master' into develop 2018-07-23 21:18:43 +02:00
9f52213f63 STYLE: avoid unrestricted dictionary lookup in lumpedPointMotion (issue #762)
- improve doxygen for lumpedPointMotion
2018-07-23 21:06:14 +02:00
76dcf39eab BUG: incorrect lookup name for lumpedMotion scaling parameter (fixes #949) 2018-07-23 20:19:07 +02:00
9f0a80a655 STYLE: avoid unrestricted dictionary lookup in randomProcesses, waveModels
- ref issue #762

STYLE: consistency in file vs files for pointNoise and surfaceNoise

- use "files" when available, fallback to "file" otherwise.
2018-07-23 18:13:43 +02:00
18b134319d ENH: handling of open edges distanceSurface at 0 (issue #948)
Some special adjustments are undertaken for distance = 0.

- With the isoSurfaceCell algorithm is used, additional checks for open
  surfaces edges are used to limit the extend of resulting distance
  surface. The resulting surface elements will not, however, contain
  partial cell coverage.

- Always treated as signed (ignoring the input value), since it is
  nearly impossible to generate any surface otherwise.
2018-07-23 15:18:20 +02:00
e190ff8dca BUG: incorrect swirlFan tangential velocity calculation (closes #945)
- missing indexing caused the real radius to be largely ignored
  when useRealRadius = true
2018-07-20 08:14:58 +02:00
40618a3a86 BUG: First occurence of alpha1.prevIter() causes crash (closes #911)
- in interIsoFoam/alphaEqn.H changed to alpha1.prevIter() to
  alpha1.storePrevIter().
2018-07-19 23:36:42 +02:00
a6e735e5ce TUT: samplingDebug was left enabled in tutorial (and missing a file) 2018-07-18 19:41:32 +02:00
f09d985207 BUG: particle: locate can get stuck on cell centre. Fixes #935. 2018-07-12 11:31:27 +01:00
d82deea8e5 COMP: resolve compilation issues for single-precision (closes #932) 2018-07-11 19:24:16 +02:00
b41d5ed523 STYLE: remove deprecated constraints format from tutorials 2018-07-11 17:02:40 +02:00
2b869824f2 STYLE: additional description header for decomposition details 2018-08-09 19:05:11 +02:00
fc63e09f66 GIT: remove editor backup files 2018-08-09 19:04:36 +02:00
a96c2d70a0 BUG: cyclicAMI: stabilise projection in case of 90 degree angles. Fixes #930. 2018-07-11 12:05:05 +01:00
1b76ff6001 BUG: vtkCloud suppresses output for empty clouds (closes #866)
- the original intention was to avoid vtp output when the clouds are
  empty anyhow. However, it is useful for post-processing to have
  clouds with zero parcels (eg, before the start of injection).

  Pruning of empty clouds is now an option in the vtkCloud dictionary
  controls, with the default being false (no pruning). This represents
  a non-breaking change in behaviour since it generates more output
  than previously.

  Example,
  {
      type    vtkCloud;
      //- Suppress writing of empty clouds (default: false)
      prune   true;
  }
2018-07-11 07:53:51 +02:00
678c6304a5 fileOperation: Corrected findInstance. See also #974.
Patch contributed by Mattijs Janssens
2018-07-06 11:32:45 +01:00
3328ec31dd ENH: consistency in handling of ensight timeDir (issue #919) 2018-07-05 13:53:59 +01:00
f72fb23d30 ENH: snappyHexMesh: limit warnings to 100 points. Fixes #941. 2018-07-23 12:54:41 +01:00
c26ef75df4 ENH: snappyHexMesh: limit debug printing. See #941. 2018-07-23 12:42:49 +01:00
423ed38986 COMP: rigidBodyDynamics: add Time& argument to make them compile 2018-07-19 18:03:10 +01:00
baba0069d4 BUG: inconsistent AMI information (issue #860)
- use "min:xxx" format for AMIInterpolation as well
2018-07-04 09:13:11 +02:00
d04100a99e TUT: fix for snappy mesh layers 2018-06-28 15:39:32 +01:00
6e35bcda70 ENH: Updated config for release v1806 2018-06-28 12:56:00 +01:00
2ae4bf73d9 fileHandler: Added flush method
This method waits until all the threads have completed IO operations and
then clears any cached information about the files on disk. This
replaces the deactivation of threading by means of zeroing the buffer
size when writing and reading of a file happen in sequence. It also
allows paraFoam to update the list of available times.

Patch contributed by Mattijs Janssens
Resolves bug report https://bugs.openfoam.org/view.php?id=2962
2018-06-27 11:45:58 +01:00
16a6379183 TUT: Cleaned up headers 2018-06-26 17:37:38 +01:00
ddd176bc1a ENH: Corrected header documentation 2018-06-26 17:33:00 +01:00
34bd032db9 SUBMODULE: updated to use v1806 tagged branches for all modules 2018-06-28 13:09:36 +02:00
069f8c158d Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-27 16:46:24 -07:00
cfc6701f76 TUT: Changing outlet p BC 2018-06-27 16:45:59 -07:00
be07fc9bbe STYLE: some test apps compiling into wrong location (issue #876) 2018-06-27 10:31:35 +02:00
3bc35220b0 GIT: relocate bin/mergedDyM -> bin/deprecated/mergedDyMsolver
- the backend script should not be accessible from the PATH.
  Using deprecated/ adds a level of documentation.
2018-06-27 07:54:28 +02:00
2df51655ca TUT: remove stray catalyst script 2018-06-27 08:22:13 +02:00
d1d47fe5ef SUBMODULE: updates for catalyst 2018-06-26 16:52:18 +02:00
b70b2d8629 TUT: fixup formatting, tabs etc 2018-06-26 16:37:35 +02:00
30b4eda7a4 TUT: update some old keywords found in tutorials
- functionObjectLibs -> libs
- redirectType -> name
- change deprecated writeCompression flags types to Switch.

- cleanup some trailing ';;' from some dictionaries
2018-06-26 14:18:52 +02:00
1c9f93e173 TUT: Added sloshingTank2D case for comparison with the interFoam solver 2018-06-26 14:16:22 +01:00
007c766914 ENH: Script updates 2018-06-26 14:04:00 +01:00
14268bbcd1 COMP: Removed legacy file 2018-06-26 13:27:54 +01:00
cc075b88ea STYLE: Minor header correction - see #831 2018-06-26 13:16:51 +01:00
26a3167843 Merge branch 'feature-normalMethods' into 'develop-pre-release'
STYLE: separate areaNormal/unitNormal method for primitives (issue #885)

See merge request Development/OpenFOAM-plus!208
2018-06-26 12:58:59 +01:00
59b4a77d23 TUT: RunFunctions - added protection for user shell customisations 2018-06-26 11:51:02 +01:00
1e5919f8b0 TUT: Updates - see #856 2018-06-26 11:16:24 +01:00
f5628d72aa BUG: AMI/ACMI - corrected setting of [src|tgt]MagSf for parallel runs. See #856 #906 2018-06-26 11:14:57 +01:00
0b14c637e6 STYLE: minor code formatting 2018-06-25 19:27:21 +01:00
a410f52e6d COMP: handle unset WM_OSTYPE for cmake targets (issue #909)
- regularise referencing of OpenFOAM env variables, sources etc.
2018-06-26 09:48:57 +02:00
df9c675c84 STYLE: remove unnecessary include for cartesianCS 2018-06-26 08:36:05 +02:00
e30ca79924 BUG: Correcting solidThermo constructor 2018-06-25 16:38:54 -07:00
edcb649212 STY: Changing folder name for icoReactingMultiphaseInterFoam 2018-06-25 10:35:53 -07:00
2d7f3d09a8 ENH: regIOobject: improved debug message 2018-06-25 12:55:36 +01:00
3de018af57 BUG: heSolidThermo: initialise mu,psi. See #905. 2018-06-25 12:53:58 +01:00
67f208bd43 BUG: partial/possible regression related to closing stdin (issue #893, #856)
- The problem is not 100% reproducible, but be somewhat conservative
  and now only close(stdin) for pure background (daemon-like) use of
  Foam::system(), where it can be useful.

  Using Foam::system() for launching background processes is currently
  only used for the doc browser.
2018-06-25 11:39:53 +02:00
831a47b81e CONFIG: eliminate most occurances of outdated FOAM_INST_DIR (issue #444)
- since 1612, FOAM_INST_DIR and foamInstDir longer have any
  special meanings when sourcing the bashrc or cshrc files.
  Thus no need for special treatment in any of the dispatch wrappers.

  Retained FOAM_INST_DIR as (unexported) variable in etc/bashrc,
  just in case people are using patched versions of etc/bashrc
  as part of their installation.

ENH: relax prefix restrictions on foamCreateVideo (issue #904)

- shift the implicit '.' to be part of the default prefix. This allows
  things like "-image myimages_00" to work as might be expected.
2018-06-25 09:56:34 +02:00
f4d3c071ff Merge branch 'feature-processorLOD' into 'develop-pre-release'
Feature processor level of detail (LOD)

See merge request Development/OpenFOAM-plus!210
2018-06-25 08:55:20 +01:00
4300f4c02f ENH: improve flexiblity of foamCreateVideo (issue #904)
- respect trailing '-', '.', '_' for the image prefix name.
  For example,

    -image press_   to accept press_*.png

- additional -mask width option (for avconv)
2018-06-24 18:02:00 +02:00
d9568a4b56 SUBMODULE: updates for catalyst
- SIGFPE handling, cmake configuration

CONFIG: adjust for simplified Catalyst channel naming

- no sub-channels, select volField output based in the
  (internal | boundary) dictionary switches instead
2018-06-24 15:50:50 +02:00
3d22c5c265 STYLE: use fileName::expand() instead of stringOps::inplaceExpand
- do not need the stringOps version if there is no dictionary context
2018-06-23 16:40:51 +02:00
eed1e99378 TUT: remove 'functions' dictionary scope from catalyst files
- rename Allrun.parallel to Allrun-parallel (issue #899)
2018-06-23 13:41:20 +02:00
e0db37f043 ENH: support rhoRef for derived surfMesh sampled fields (issue #898) 2018-06-22 16:57:30 +02:00
c3f52a696c ENH: Added time reporting to mapFieldsPar 2018-06-21 16:20:03 +01:00
8cbe11f158 BUG: Corrected arg lookup name 2018-06-21 08:12:55 +01:00
5d2ad9227f STYLE: separate areaNormal/unitNormal method for primitives (issue #885) 2018-06-20 12:17:03 +02:00
1c64911367 ENH: Updated meshToMesh to be able to use the new processorLOD 2018-06-20 07:57:25 +01:00
d5422239f3 ENH: Added new processor level of detail (LOD) to optimise parallel data transfers 2018-06-19 12:00:25 +01:00
02f97872ca ENH: Dry-run - Include creation of sets and zones for dyanmic mesh cases 2018-06-19 13:34:33 +01:00
cf7dbcd0e4 STYLE: Minor clean-up 2018-06-19 11:51:38 +01:00
27dcb69ccc GIT: add forgotten Allrun-parallel script (issue #866) 2018-06-19 13:03:35 +02:00
d637b6eb78 ENH: avoid parse problems caused by #calc directives (fixes #722)
- The additional output generated by #calc directives in the
  controlDict or decomposeParDict causes issues for the RunFunctions
  extraction of 'application' and 'numberOfSubdomains'.

  Avoid by using -disableFunctionEntries, which also has the side-effect
  of disabling '#include'.
2018-06-19 12:38:53 +02:00
0c5f36f40a ENH: Move stabilisation to steady-state part of LES motorBike tutorial. See #856. 2018-06-18 15:00:47 +01:00
48dafdedcf COMP: fix warnings about major()/minor() name conflicts (closes #883)
- major() and minor() are GNU macros in sys/sysmacros.h
  and generates warning on some systems (eg, Ubuntu 18.04)

  use getMajor() and getMinor() as method names instead.
2018-06-18 15:37:24 +02:00
dad09c5e7d BUG: Correction to commit 8540e6f
- corrected the mass based correction and updated the misleading function
  arguments

- moved the option to the optimisation switches, e.g.:

    OptimisationSwitches
    {
        experimentalDdtCorr 1;
    }

- default remains off/no (0)
2018-06-18 14:13:12 +01:00
601ebaa919 BUG: simplefiedFvMesh: debug word referring to other debug. Fixes #882. 2018-06-18 14:10:13 +01:00
70bc72c2df twoPhaseMixtureThermo: Fix for collated file operation
twoPhaseMixtureThermo writes the temperatures during construction only
for them to be read again immediately after by construction of the
individual phases' thermo models. When running with collated file
handling this behaviour is not thread safe. This change deactivates
threading for the duration of this behaviour.

Patch contributed by Mattijs Janssens
2018-06-14 10:55:27 +01:00
6fb5c1f59a mappedFieldFvPatchField: Added base-class autoMap/rmap calls
Patch contributed by Mattijs Janssens
2018-06-19 14:06:57 +01:00
6c22596f3b ENH: snappyHexMesh: input checking. See #972. 2018-08-13 15:55:41 +01:00
4d03e4386d STYLE: update version info in some tutorial files 2018-08-14 11:58:52 +02:00
45f4a8b9c5 ENH: bounding box clipping for ensightWrite function object (issue #973)
- for larger problems with a smaller region of interest, can apply a
  bounding to limit the size of the ensight geometry and fields created.

  Since the implementation uses a fvMeshSubset, there is an additional
  per-process memory overhead.

  A high output frequency should be avoided with moving meshes, since
  this indirectly forces a frequent update of the submesh.
2018-08-14 11:50:53 +02:00
62b83a76a4 ENH: face, triFace sign() method analogous to plane
- a quick test for which side of the face a point is located
2018-08-14 10:08:22 +02:00
3c98b9dd55 STYLE: fix documented stopAt control name for externalFileCoupler 2018-08-14 09:22:22 +02:00
3e941ae49b ENH: additional methods for globalIndex
- const version of offsets().

- empty() method to test for empty offsets, or zero overall size

- reset() methods for reseting the sizes. For example, when the context
  has shifted slightly.

- localStart() methods, similar to localSize() methods

STYLE: make globalIndex single parameter constructors explicit
2018-08-13 23:22:14 +02:00
296bdb6123 TUT: incorrectly activated constraints 2018-08-13 15:11:53 +02:00
4d6f0498d6 ENH: use vector::normalise and VectorSpace::normalised for clarity 2018-08-10 15:18:29 +02:00
c1964d7807 ENH: distinguish between face areaNormal/unitNormal in the code 2018-08-10 15:43:06 +02:00
b81a2f2fa6 STYLE: use edge::unitVec() for improved code clarity 2018-08-10 14:41:32 +02:00
c066dbf989 BUG: missing return value on Vector2D::normalise() 2018-08-10 12:24:31 +02:00
e32c2649ed ENH: consistency improvement for edge/line
- added line::last() for consistency with edge::last()

- adjusted unitVec() to return Zero for small vectors.
  Consistent with VectorSpace normalised() and vector::normalise()
2018-08-10 11:07:52 +02:00
d29d8d6be3 STYLE: replace nil with zero::null for cut ops
- The function of the nil class is now taken by zero::null.
2018-08-10 14:26:38 +02:00
da74e872f4 STYLE: overset: remove unused dictionary entry 2018-08-09 17:39:22 +01:00
4fe6ed3c6a BUG: compressibleInterFoam: Corrected handling of thermal diffusivity with mixture turbulence model
Resolves bug-report https://bugs.openfoam.org/view.php?id=2958
2018-05-25 23:43:41 +01:00
0cdb9d1ca0 BUG: rhoPimpleFoam: Only execute the density predictor if not in simpleRho mode 2018-06-10 22:45:46 +01:00
22e1384522 TUT: Updated headers 2018-06-22 15:36:33 +01:00
598c49fe8a TUT: Added new tutorial cases 2018-06-22 15:25:06 +01:00
abb597359f ENH: Updated the boundaryDataSurfaceWriter to use a plain list for the points file 2018-06-22 15:24:07 +01:00
b68fe2c76d BUG: cleanCase deletes blockMeshDict (fixes #900)
- Don't remove the constant/polyMesh directory if it contains a
  blockMeshDict or blockMeshDict.m4 file. Offer a reminder that
  system/ is the normal place for it.
2018-06-22 14:50:25 +02:00
c8fd217e95 BUG: Foam::system command swallows first argument (fixes #901) 2018-06-22 15:18:41 +02:00
6390c18381 ENH: suppress Info output for some cases (issue #722, #893)
- add additional control via a Foam::infoDetailLevel flag, which is
  supported by a 'DetailLevel' macro.  Eg,

      DetailLevel << "some information" << nl

- When infoDetailLevel is zero, the stdout for all Foam::system() calls
  are also redirected to stderr to prevent child output from
  appearing on the parent.

- close stdin before exec in system call.
2018-06-22 12:26:33 +02:00
83c9d3b287 EHH: add sigFpe::ignore helper class (issue #897)
- convenient way to temporarily suspend the SIGFPE handler.
  Eg,

      // Normal code with SIGFPE enabled ...
      sigFpe::set();

      {
          // Ignore SIGFPE in this scope ...
          sigFpe::ignore noFpeHandling;
          ...
      }
2018-06-22 00:39:53 +02:00
d56744a66a STYLE: Renamed source files to reflect solver names (issue #890) 2018-06-21 16:14:16 +02:00
f7d4f52726 STYLE: update names of known solvers, consistent End value (issue #856) 2018-06-21 16:03:06 +02:00
237f20b0ed TUT: tab removal 2018-06-21 15:43:15 +02:00
73fbed1c2c TUT: consistent use of scale and headers for blockMeshDict 2018-06-21 15:28:25 +02:00
8717f9936e TUT: consistency in Allclean Allrun scripts 2018-06-21 15:19:09 +02:00
736d358782 STYLE: code tidying for icoReactingMultiPhaseInterFoam
- use Enum instead of NamedEnum
- shorter form for dimensionedScalar

- reduce verbosity about missed seeding for DTRM cloud.
  Re-enable old warnings in debug mode.
2018-06-21 13:35:22 +02:00
2f83248827 ENH: Bounding k using kMin in SSG RANS model 2018-06-21 16:12:41 -07:00
f8bf897ca3 STYLE: stabilityBlending: typos; line length. See also #875. 2018-06-21 11:55:10 +01:00
dcde2eed74 TUT: consistent name for runTimePostProcessing dictionary 2018-06-21 11:56:00 +02:00
1f953b807c ENH: use double for VTK legacy output (issue #891)
- some paraview versions (eg, on windows) don't support float, only double.

  This mostly affected the vtkSurfaceWriter.

  The foamToVTK is also affected, but since it also supports the XML
  output formats (vtp, vtu) these can be used instead.
2018-06-21 10:24:04 +02:00
813a0500e2 BUG: incorrect order for VTK symmTensor (fixes #892)
- affected manually generated legacy output (vtkSetWriter, vtkSurfaceWriter)

- the order emitted by vtkSetWriter remains, but needs to revisited again.
2018-06-21 09:38:25 +02:00
f9dc9dbf5f TUT: updates 2018-06-21 08:31:22 +01:00
dd9823def5 STYLE: Minor updates to simplifiedFvMesh code 2018-06-21 08:31:02 +01:00
cbb1ff8680 STYLE: residuals function object - added header documentation 2018-06-20 12:26:49 +01:00
8608834d48 Merge branch 'feature-icoReactingMultiphaseInterFoam-dev' into 'develop-pre-release'
Feature ico reacting multiphase inter foam dev

See merge request Development/OpenFOAM-plus!204
2018-06-21 08:28:48 +01:00
017213deca Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-20 16:44:35 -07:00
649149f9de ENH: Improvements to the log format and fix write function 2018-06-20 16:43:00 -07:00
2790f2da4e ENH: Editing tutorials, and Make/files 2018-06-20 12:27:12 -07:00
c103331a6a INT: integration updates 2018-06-20 16:28:48 +01:00
f15be4d0b0 BUG: bad indexing in regionSizeDistribution function object (closes #888) 2018-06-20 13:51:30 +02:00
3603cf289f BUG: basicThermo: enforcing shared T. Fixes #887. 2018-06-20 12:07:00 +01:00
12e2142db8 COMP: refactoring to resolve compiler warnings - see #886 2018-06-20 10:56:04 +01:00
b6b2f430a3 CONFIG: bump paraview to 5.5.2 2018-06-20 01:57:35 +02:00
ca2a83d532 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-06-20 01:56:41 +02:00
8295d398aa BUG: accessing invalid coordinateRotation after move assignment (fixes #884)
- incorrect coordinateSystem clear() after the move

- add Test-coordinateSystem
2018-06-19 21:24:38 +02:00
7bf7aaea91 ENH: Further enhancements to stabilizationSchemes 2018-06-19 12:04:27 -07:00
9001aa2440 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-19 11:23:36 -07:00
a3a6768608 ENH: Adding additional entry to stabilizationSchemes.
Correcting tutorial and expanding documentation
2018-06-19 11:21:56 -07:00
5cd6e4bed4 ENH: report the function object name that causes the FatalError 2018-06-19 19:14:16 +02:00
0289582a75 Merge remote-tracking branch 'origin/master' into develop 2018-06-19 18:39:10 +02:00
1871b1d3bc TUT: use separate forces file for wingMotion2D 2018-06-19 17:18:15 +02:00
18f3fadf9c STYLE: restrict vtkCloud output names to use time-index (issue #866)
- this provides easily sortable names.

  The time information is available via the corresponding .series
  file, which can also be loaded directly with ParaView 5.5 or later.

  For further redundancy, time information is saved in the first XML
  comment inside of the .vtp files. For example,

      <!-- cloud=limestoneCloud1 time=0.005 index=200 -->
2018-06-19 17:08:25 +02:00
ce0623ca31 BUG: foamRestoreFields blocks in parallel (issue #877) 2018-06-19 16:46:15 +02:00
6ac47e6db5 STYLE: consistent foamDictionary stderr redirect in RunFunctions 2018-06-19 13:56:30 +02:00
f5275444cc CONFIG: adjust adios2 config 2018-06-19 13:53:23 +02:00
5754405bfb CONFIG: cannot pass additional arguments to foamEtcFile (closes #880)
- add support by using updated foamEtcFile from 1806, which also add
  the '-config' short-cut option.
2018-06-18 08:42:55 +02:00
5390c48b2d BUG: dictionary lookup of embedded coordinateSystem fails (fixes #879)
- also fix incorrect documentation in forces functionObject and
  interRegionExplicitPorositySource fvOption.
2018-06-16 00:29:41 +02:00
636328fc1c ENH: icoReactingMultiPhaseInterFoam: thermo sharing T 2018-06-15 14:05:37 +01:00
f3474dad1d BUG: rigidBodyMotionState: not readable in binary. Fixes #871. 2018-06-13 14:55:20 +01:00
616b91c06e Merge branch 'master' into develop 2018-06-13 14:17:47 +01:00
387ee6b2ad ENH: Updated example usage in header. Fixes #859 2018-06-13 14:11:51 +01:00
765c2051aa BUG: fftw: missing normalisation. See #867. 2018-06-13 14:09:37 +01:00
51c48fa9c9 BUG: non-uniform distribution for Random::position<label> (closes #865)
- use floor/truncate instead of round. Backport of changes in the
  develop-pre-release branch.
2018-06-13 12:38:13 +02:00
4bafb6fd54 COMP: Added include file to enable derived code extensions 2018-06-13 10:52:08 +01:00
cf0a288ead STYLE: typo in copyright dates 2018-06-12 09:03:30 +02:00
071d561224 BUG: refineWallLayer: incorrect handlign of useSet option. Fixes #864. 2018-06-11 13:13:44 +01:00
f19b88a53e GIT: spurious prefix for catalyst submodule naming 2018-06-11 11:49:05 +02:00
8b614d4a46 CONFIG: incorrect Qt5 detect (csh variant)
- bump to ParaView 5.5.1
2018-06-11 11:48:09 +02:00
7602e04ca5 BUG: error with surfMesh transfer from triSurfaceMesh (closes #862)
- face/point ownership is transferred to the surfMesh, so use these
  directly when sampling the interior.
2018-06-08 17:22:40 +02:00
63d07c9ef8 ENH: adjust AMI information for better log processing (issue #860)
- now report as  "min = XX max = YY average = ZZ"
  instead of as  "min/max/average = XX, YY, ZZ"

  this makes it easier to parse any particular value
  (eg, with foamLog)
2018-06-08 13:43:40 +02:00
c611bd6f94 CONFIG: add hostCollated for -fileHandler completion
- in anticipation of future change,
  hard-coded choice within bash_completion
2018-06-07 15:43:46 +02:00
10941280cb BUG: incorrect bitSet auto-vivify in snappy
- should use bitSet::set() and not bitSet::operator[] to auto-vivify
  out-of-range entries

- use bitSet::test() instead of bitSet::operator[] when testing
  non-const variables - circumvents any potential out-of-range issues.
2018-06-07 14:43:10 +02:00
86cd37d144 ENH: check for excess tokens on dimensionedType, Enum (issue #762)
- propagates check for lookupOrDefault etc.
2018-06-07 14:22:06 +02:00
e3ea3b0ce6 STYLE: remove unneeded includes (snappyRefineDriver) 2018-06-07 12:29:37 +02:00
4cb073e150 ENH: Up to date icoReactingMultiphaseInterFoam solver and libs
Adding tutorials and other minor changes
2018-06-04 11:25:59 -07:00
84b109219a STYLE: reduced usage of Switch
- Since 'bool' and 'Switch' use the _identical_ input mechanism
  (ie, both accept true/false, on/off, yes/no, none, 1/0), the main
  reason to prefer one or the other is the output.

  The output for Switch is as text (eg, "true"), whereas for bool
  it is label (0 or 1). If the output is required for a dictionary,
  Switch may be appropriate. If the output is not required, or is only
  used for Pstream exchange, bool can be more appropriate.
2018-06-01 20:51:48 +02:00
0f60cc9263 STYLE: remove bad edit in comment 2018-06-01 14:59:35 +02:00
cdb6d5a604 CONFIG: remove Darwin GCC wmake rules (partly broken, poorly tested) 2018-06-01 14:35:43 +02:00
35d682a4fb COMP: make the scotch librt dependency conditional 2018-06-01 14:17:41 +02:00
8058184b0c COMP: resolve 'point' ambiguity in foamyQuadMesh
- CGAL Triangulation_2.h (version 4.12) defines a point function,
  which interferes with the Foam::point typedef.
2018-06-01 14:10:17 +02:00
d571e5231b ENH: detect excess tokens for "libs" entry (issue #762)
- this addresses issue #843
2018-06-01 13:31:12 +02:00
511b35629d ENH: improve infrastructure for detecting excess tokens (issue #762)
- Always used for optional dictionary entries, since these are individual
  values, and not meant to be embedded in a larger stream of tokens.

  Methods:
     - lookupOrDefault, lookupOrAddDefault, lookupOrDefaultCompat
     - readIfPresent, readIfPresentCompat

- Handling mandatory dictionary entries is slightly more complex,
  since these may be part of larger stream of tokens, and are often
  used in a constructor context. For example,

      word modelType(dict.lookup("type"));

  Or they are used without a definite context. For example,

      dict.lookup("format") >> outputFormat;

  Newly introduced methods for mandatory dictionary entries:
     - get, getCompat
     - read, readCompat

  In a constructor or assignment context:

      word modelType(dict.get<word>("type"));
      outputFormat = dict.lookup("format");

  without copy/move (similar to readIfPresent):

      dict.read("format", outputFormat);
2018-06-01 11:55:57 +02:00
a6f524b1df STYLE: -diff-etc instead of -diffEtc in foamDictionary 2018-06-01 11:36:43 +02:00
b393c60d86 ENH: vtk: fix reading of inverted prisms. Fixes #850. 2018-05-31 12:42:43 +01:00
cd8b67844f ENH: snappyHexMesh: Remove cells inside any limitRegion with level -1. Fixes #852. 2018-05-31 10:05:02 +01:00
1c030f441d STYLE: missing newline in correctPhi.H 2018-05-30 16:18:20 +02:00
12553a2e43 COMP: include /usr/local in search for system headers/libraries
- this is consistent with compiler defaults, and helps Darwin users
2018-05-30 14:45:12 +02:00
e43ae3f23f ENH: detect excess tokens when looking up a dictionary value (issues #762) 2018-05-30 14:43:48 +02:00
2aaae74ee1 STYLE: consistent ordering of "inline explicit" vs. "explicit inline"
- resolve in favour of "inline explicit", which had marginally more
  uses and provides consistent prefixing for inline methods.
2018-05-30 12:11:13 +02:00
f9fe71815a STYLE: consistent use of '= delete' for removed constructors/assignments
- make the purpose more explicit, and reduces some work for the
  compiler as well.
2018-05-30 12:03:17 +02:00
6b6b36afd3 STYLE: revert bitSet/HashSet setMany() to set() method (issue #837)
- improves backward compatibility and more naming consistency.
  Retain setMany(iter1, iter2) to avoid ambiguity with the
  PackedList::set(index, value) method.
2018-05-29 17:38:02 +02:00
3de9b2f675 COMP: resolve size ambiguity (Darwin) 2018-05-29 12:36:12 +02:00
eeb725715d BUG: decomposeParDict: ignores mesh region. Fixes #848. 2018-05-29 10:26:22 +01:00
fe21322939 BUG: Corrected ConeNozzleInjection injected posisions in parallel operation. See #840 2018-05-30 14:05:53 +01:00
e747024c34 BUG: Corrected header documentation - see #831 2018-05-29 15:28:44 +01:00
ffe8048e04 BUG: COxidationIntrinicRate - corrected eta. See #842 2018-05-29 15:10:19 +01:00
5e9ba0bc72 ENH: Darwin emulation for addr2line 2018-05-29 11:21:59 +02:00
bd33a382ee COMP: define additional UIndirectList iterator member types (closes #847)
- required for std::iterator_traits specialization, which is used by
  the std::max_element algorithm on Darwin.
2018-05-29 08:56:08 +02:00
30309e9a65 COMP: 64-bit label ambiguity 2018-05-29 11:16:20 +02:00
7e270fc482 STYLE: formatting of scotch options 2018-05-29 09:57:30 +02:00
14e9ef34e5 Merge remote-tracking branch 'origin/develop' into develop 2018-05-29 10:28:28 +01:00
ca6b6cee8d BUG: decomposeParDict: ignores mesh region. Fixes #848. 2018-05-29 10:26:22 +01:00
7df0608306 STYLE: inline shorterPath function for printStack 2018-05-28 17:44:26 +02:00
d318a630b6 ENH: add directive '#sinclude' (or '#includeIfPresent' as long name)
- consistency with make and more succinct.

- reduce code duplication in findEtcFiles.
2018-05-28 13:38:03 +02:00
e3bb7ffd25 STYLE: avoid mix of 'sinclude' and '-include' in make files 2018-05-28 10:46:40 +02:00
26bb05d6f0 BUG: cyclicPeriodic: wrong indexing. Fixes #838. 2018-05-24 13:29:43 +01:00
417a2f6a73 BUG: reference FO: allocate interpolator on all processors. Fixes #823. 2018-05-24 09:52:33 +01:00
cb1cd96b04 ENH: snappyHexMesh: directional refinememt.
Basic directional refinement:
- only for coordinate aligned meshes
- only for refinementRegions
See the mesh/snappyHexMesh/aerofoilNACA0012_directionalRefinement
tutorial.
2018-05-21 16:51:57 +01:00
85ecb009d7 TUT: Updated input value 2018-05-18 09:57:12 +01:00
d8ea41e7bd STYLE: foamPwd (posix) function with some env replacements (issue #844)
- the current working path with replacements for base-level
  OpenFOAM env variables such as FOAM_RUN, WM_PROJECT_DIR,
  WM_PROJECT_USER_DIR etc

  Can be used directly from the command-line or embedded into a
  command prompt. For example,

      PS1='$(foamPwd)\n\u\$ '

- aliases for user solver/utilities located under "$WM_PROJECT_USER_DIR":
  (ufoam, uapp, usol, uutil)
2018-05-17 15:33:59 +01:00
66df3369dc BUG: ConeInjection - corrected number of parcels injected for multiple injector positions 2018-05-17 09:04:00 +01:00
1844ce5ab2 BUG: wrong sizing index for VTK legacy polyhedrals (closes #829) 2018-05-16 15:57:49 +01:00
c18a2a6370 BUG: compiler-specific INTELMPI not always found (closes #830)
- tie the MPI rules to the base compiler type *without* its version.
  Eg, linux64Gcc (which exists) instead of linux64Gcc81
2018-05-16 12:36:29 +01:00
d942587595 GIT: pointData: unused files 2018-04-11 11:16:21 +01:00
cb4ce1ffec ENH: snappyHexMesh: directional smoothing support 2018-04-11 10:24:18 +01:00
430367b25a STYLE: shm: indentation 2018-03-01 17:09:39 +00:00
e80739b80a STYLE: shm: indentation 2018-03-01 17:09:39 +00:00
e5d4fbcd72 BUG: snappyHexMesh: cutting imcompatible with corner-point detection 2018-02-21 11:08:21 +00:00
fe9d99ca26 BUG: snappyHexMesh: cutting imcompatible with corner-point detection 2018-02-21 11:08:21 +00:00
4d72c2aac0 COMP: incorrect executable path sphereSurfactantFoam (closes #695) 2018-01-08 10:51:00 +01:00
87504d501a BUG: regionToCell: incorrect indexing of remote values. Fixes #818. 2018-05-02 10:55:47 +01:00
1ac7f2e873 BUG: wrong nanoseconds in highResLastModified (closes #794)
- was using st_atim instead of st_mtim for the nanoseconds

- value of followLink was being ignored (it was always being followed).
2018-04-11 10:27:41 +02:00
1eb2458cf5 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2018-04-06 08:52:23 -07:00
a65b189741 ENH: Adding thermo using polynomial transport, JANAF and ideal gas.
This thermo is used with multiComponentMixture in rhoThermo type
2018-04-06 08:46:17 -07:00
1edb2f7dd0 BUG: mesh refinement crash with degenerate mesh distributions (closes #778)
- occurred when the initial mesh distribution was missing cells on
  some processors.
2018-03-21 21:54:40 +01:00
546fdb6207 BUG: corrected 'binned' distribution model 2018-03-20 10:17:33 +00:00
d7b9cea87c BUG: IsoAdvector - updated use of pos/neg as reported by Johan Roenby. See #775 2018-03-19 13:56:32 +00:00
fae1ba0f63 BUG: Corrections to externalWallHeatFluxTemperature BC (ref EP624) 2018-03-14 15:34:53 +00:00
4df782615c BUG: surface proxy zone handling with dangling? reference (closes #757)
- using const reference to temporary was failing.  Remedy by using a
  direct copy, which is a reasonable solution since surfZone content
  is quite minimal.
2018-03-13 17:58:02 +01:00
40e7d389d8 ENH: DPMFoam - extended RAS model selection. See #743 2018-03-13 12:48:16 +00:00
b0c5608b62 TUT: Corrected turbulence Ck value - see #753 2018-03-13 12:32:16 +00:00
73646bb15b BUG: removed incorrect code from cyclicFaPatch referring to cyclicPolyPatch. See #761 2018-03-13 08:54:39 +00:00
e78548352e TUT: Removed misleading comment in tutorial - see #746 2018-03-06 11:12:39 +00:00
7f7f9336c8 COMP: add -fpermissive to c++LESSWARN flags (closes #744)
- downgrades some diagnostics about nonconformant code from errors to
  warnings. Oddly enough, the errors actually arise from STL library
  elements shipped with gcc itself. Affects kahip compilation with
  gcc-6, gcc-7
2018-02-28 14:31:48 +01:00
628f0860c3 BUG: faceOnlySet sampling does not stop at 'end' (closes #745) 2018-02-28 11:23:59 +01:00
9f03511ffb GIT: merge artifact duplicate call to update mesh moving 2018-02-28 10:59:53 +01:00
94afd9e9b2 BUG: isoAdvection using 'vof2IsoTol' instead of 'isoFaceTol' (closes #740) 2018-02-23 15:11:24 +01:00
4d4c5910ed ENH: lagrangian injection - exposed minimum number of particles per parcel. See #728
The minimum number of particles per parcel can now be set in the
injection model input, e.g.:

    model1
    {
        type            ...;
        massTotal       ...;
        parcelBasisType ...;
        minParticlesPerParcel 1; <-- new optional entry
        SOI             ...;
        ...

Uses a value of 1 by default if the entry is not present.  The value of
1 is generally recommended and beneficial for coupled cases where small
time steps can lead to the injection of too many parcels and subsequently
greatly over-predict the particle source contributions (momentum, heat,
mass transfer etc)
2018-02-23 12:00:14 +00:00
ac3a8bc3cb BUG: simpleCoalParcelFoam - corrected dimensions of Qdot. Fixes #742 2018-02-23 09:04:16 +00:00
7ec44a88f1 ENH: Updating the header documentation for fanFvPatchField 2018-01-25 10:04:30 -08:00
ad98934e90 ENH: Changing fanFvPatchField operation for non-dimensional mode.
The non-dimensional table takes non-dimensional U as entry, not flow rate
2018-01-25 08:46:48 -08:00
bf6aa309e4 GIT: corrected incorrect merge artefacts 2018-01-25 11:12:42 +00:00
20125b36a3 BUG: timeControlFunctionObject swallows dictionary modifications (closes #716)
- runTimeModifiable change to the dictionary not being propagated to
  the underlying functionObjects
2018-01-24 20:45:59 +01:00
294a3d05ba BUG: problems converting clouds to ensight or vtk format (closes #708)
- problems when the cloud was not available on all processors.

- NB: ensight measured data only allows a single cloud, but
  foamToEnsight writes all clouds.
2018-01-23 15:39:45 +01:00
d4fe3b931a BUG: noiseModel - added missing read of 'writePSDf' entry 2018-01-19 12:48:59 +00:00
f37b3c479a ENH: kOmegaSSTLM improved robustness 2018-01-18 12:09:06 +00:00
8716ca25c0 ENH: sixDoFRigidBodyState relocated and code improvements. Fixes #711 2018-01-18 09:26:22 +00:00
e3c4696a6e TUT: Updated Allrun scripts for tests. Fixes #710 2018-01-17 15:30:49 +00:00
40985d291b ENH: use main constant/triSurface directory for sampling surfaces (closes #704)
- these were previously taken from region-local directories
  (eg, constant/region/triSurface), but this becomes difficult to
  manage when there are many files and regions.
2018-01-17 14:47:38 +01:00
2ebcb74dd2 BUG: reconstructPar ignores writeLagrangianPositions (fixes #702)
- The central InfoSwitch "writeLagrangianPositions" allows writing an
  additional Lagrangian "positions" file, but these were not being
  written by reconstructPar. These are now also written in reconstructPar
  if the central writeLagrangianPositions InfoSwitch is enabled.

NOTES

- "positions" are reconstructed from the processors "coordinates" file

- decomposePar will not attempt to create or redistribute any
  "positions" files
2018-01-17 13:38:24 +01:00
73ce0ccbef DOC: Documentation updates 2018-01-11 14:32:39 +00:00
1510c0aeb5 ENH: interIsoFoam - added linkage against wave modelling library 2018-01-11 14:30:26 +00:00
35d930ec0c COMP: mpi: const_cast because of incorrect mpi.h header. Fixes #697. 2018-01-10 09:10:30 +00:00
f412419c41 SUBMODULE: cfmesh update for 64-bit labels 2018-01-08 14:50:52 +01:00
4781193e31 ENH: nutUBlended wall function - added protection for uTau. See #696 2018-01-08 10:33:56 +00:00
f02783b986 ENH: Updates to the k-omega SST decay control functionality - see #694 2018-01-05 14:15:32 +00:00
a8c2e99dc4 CONFIG: updated completion_cache 2017-12-30 21:16:17 +00:00
f26eae84d5 Merge remote-tracking branch 'origin/develop' 2017-12-30 20:30:18 +00:00
c217800a74 TUT: minor update to div scheme test 2017-12-30 20:29:13 +00:00
85533e0d5b STYLE: Updated README 2017-12-30 20:04:26 +00:00
4287c91573 SUBMODULE: cfmesh update for v1712 2017-12-30 09:32:23 +00:00
23af7e435a ENH: FFT - removed power-of-2 constraint on number of samples 2017-12-29 23:57:22 +00:00
6f72f3452d BUG: foamToVTK - only convert finte area if -finiteAreaFields option is specified. Fixes #687 2017-12-29 23:50:10 +00:00
3b84004098 ENH: epsilonWallFunction - enable low-Re mode to be [de]activated on a
switch

The new lowReCorrection entry can be used to ensure that the low-Re
mode is only applied when its value is on/true, e.g.

    lowReCorrection      on;

When active, the low-Re mode is active when the local y+ is less than
the calculated y+_laminar.  When inactive, the high-Re form is employed
irrespectively of the local y+.

It has a defaulrt value of off/false for backwards compatibility with
OpenFOAM v1706
2017-12-29 20:48:32 +00:00
7b4bf88891 ENH: snappyHexMesh: directional refinement tutorial 2017-12-28 16:28:29 +00:00
2a97365428 ENH: snappyHexMesh: tutorial for directional refinement 2017-12-28 14:58:55 +00:00
695246ad5a ENH: snappyHexMesh: directional refinement parallel 2017-12-28 14:45:47 +00:00
41f3ae3495 ENH: snappyHexMesh: directional refinement parallel 2017-12-28 14:45:47 +00:00
59caad90b9 BUG: decomposeParDict: missing coeffs 2017-12-28 13:49:58 +00:00
abb332df6d BUG: surfaceRedistributePar: hang in collated. See #686. 2017-12-28 12:45:49 +00:00
65833e6c22 BUG: pressure: generate calculated bcs early. Fixes #685. Ep 581. 2017-12-28 12:07:37 +00:00
97e00442f0 Merge remote-tracking branch 'upstream/develop' into wp3-directional-refinement 2017-12-27 11:45:28 +00:00
08e6eca301 ENH: sampledTriSurfaceMesh: add warning about surface completely outside. Fixes #575. 2017-12-27 10:58:37 +00:00
fb152bd9c9 COMP: Added missing make/files entries. Fixes #682 2017-12-26 23:16:06 +00:00
9eb00fde2c BUG: Fixing creating of turbulence after overset specific in createFields.H for overRhoPimpleDyMFoam 2017-12-22 12:53:40 -08:00
8a5a50cac3 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-12-22 11:17:31 -08:00
737a05736d BUG: Following commit eeafddfb3b2e392a7 for bug repor`t https://bugs.openfoam.org/view.php?id=2777 2017-12-22 11:15:29 -08:00
5a5c286a8b ENH: Correcting fvSchemes/fvSolution for sloshingTank2D 2017-12-22 11:06:08 -08:00
38d13f41f3 ENH: Added new heat transfer coefficient function object
Computes the heat transfer coefficient [W/m2/K] using a run-time
selectable model:
- ReynoldsAnalogy
- fixedReferenceTemperature
- localReferenceTemperature
2017-12-22 19:00:25 +00:00
b85a38dc41 INT: streamFunction wave model updates 2017-12-22 17:06:42 +00:00
ac20f63cfc BUG: - continuation of commit 3b70a82bb 2017-12-22 15:27:37 +00:00
d1c80c59cc MODULE: update for avalanche 2017-12-22 16:26:09 +01:00
66f473b11c ENH: Updated extractEulerianParticles and deps after change to barycentric tracking 2017-12-22 13:19:41 +00:00
e60a77442c STYLE: less verbose output of available procs in redistributePar 2017-12-22 12:50:55 +01:00
3787d45c12 BUG: decomposePar -decomposeParDict fails for faMesh (closes #680)
- was using system/decomposeParDict and ignoring the command-line
  option.
2017-12-22 12:28:39 +01:00
1eaa024a08 BUG: Change the calculation of dgdt term in the pEq plus reverting compressible pEqComp until
further investigation on the consequences on dynamic mesh for compressibleInterDyMFoam.
alphaSuSp.H has to be added in the solver folder in order to make it compatible with the alpha Eq.
2017-12-21 17:08:33 -08:00
1d77b78418 ENH: changing endTime for sonicFoam/RAS/nacaAirfoil
Fixing fvOption in multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection
2017-12-21 12:53:10 -08:00
3951cca2b1 BUG: Changing sign for the radiative flux for the wallHeatFlux FO.
NOTE: The radiative flux (qr) is positive when the heat flux is going into the wall,
this is oposite the the he flux which is positive going out of the wall.
2017-12-21 09:33:45 -08:00
0b4a97bce5 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-12-21 09:15:21 -08:00
5a3dfc60b6 BUG: Adding cellMask to constrainHbyA in pEq.H 2017-12-21 09:13:54 -08:00
576a226dbe BUG: Correcting HbyA constrain with cellMask in pEq.H 2017-12-21 07:37:40 -08:00
cc2e9cb404 CONFIG: update submodules for 64-bit build 2017-12-21 16:34:24 +01:00
ab9c70c050 COMP: single-precision compilation with FFT (closes #678) 2017-12-21 16:04:13 +01:00
14f9a44f0f Merge remote-tracking branch 'upstream/develop' into wp3-directional-refinement 2017-12-21 13:24:21 +00:00
c486a3c436 Merge branch 'wp3-directional-refinement' of develop.openfoam.com:/Customer-VWG/OpenFOAM-plus into wp3-directional-refinement 2017-12-21 13:19:41 +00:00
9c38ad6ae4 TUT: relocate tutorial log analysis as functions for reuse in modules
- removed some unneeded tutorial files
2017-12-21 14:17:20 +01:00
01b785f23a ENH: 2:1 constraint 2017-12-21 13:12:22 +00:00
7a474d0594 ENH: 2:1 constraint 2017-12-21 13:12:22 +00:00
351fa4f979 TUT: updated sonicFoam case (see #677) 2017-12-21 11:16:28 +00:00
e7b15d21dd Merge branch 'feature-noise-fft' into 'develop'
Updated noise fft handling via fftw

See merge request Development/OpenFOAM-plus!186
2017-12-21 10:19:53 +00:00
2fe7d0c00b STYLE: update BuildIssues with CGAL mpfr-none problem (issue #674)
- add some notes about 'git submodule' in modules/README.md
2017-12-21 10:38:57 +01:00
929ed3ca02 ENH: New deferred correction scheme
The characteristics of the base scheme are recovered by applying an
explicit correction to the upwind scheme weights.

Usage
    Example of the \c deferredCorrection scheme applied to the \c linear
    scheme:
    \verbatim
    divSchemes
    {
        .
        .
        div(phi,U)      Gauss deferredCorrection linear;
        .
        .
    }
    \endverbatim

Based on a generalised form of a deferred correction linear scheme
supplied by CFD Software E+F GmbH
2017-12-21 09:03:19 +00:00
90a9cd06c7 ENH: Constructing coeff volScalarField with 'calculated' Bc's for compressible flow to
avoid unphysical 'fixedValue' at boundaries
2017-12-20 10:58:42 -08:00
b14e7b794d COMP: Updated initialisation order 2017-12-20 17:16:22 +00:00
e7d9a1accf ENH: Changing BC for U to slip 2017-12-20 08:32:53 -08:00
feb11e4a39 BUG: UIPstream: sending zero sized string accesses beyond buffer. Fixes #676 2017-12-20 15:28:20 +00:00
276cef6aba ENH: kOmegaSST - added turbulence decay control terms
Based on the reference:
      Spalart, P. R. and Rumsey, C. L. (2007).
      Effective Inflow Conditions for Turbulence Models in Aerodynamic
      Calculations
      AIAA Journal, 45(10), 2544 - 2553.

The decay control default is off for backwards compatibility.  To enable
it, add the following to the coefficients dictionary

      // Optional decay control
      decayControl    yes;
      kInf            \<far-field k value\>;
      omegaInf        \<far-field omega value\>;
2017-12-20 08:48:32 +00:00
ef08bc56ba BUG: Removing finiteArea lib from option file for reconstructPar.
Modifying relaxation factors for the angledDuct for rhoPimpleFoam
2017-12-19 14:51:42 -08:00
bd181f9a6c BUG: lagrangian - corrected references to position() 2017-12-19 21:25:12 +00:00
e97275cf12 ENH: collated support. Fixes createZeroDirectory in #675. 2017-12-21 15:05:10 +00:00
8931e443d8 ENH: collated support. Fixes lumpedPointMotion in #675. 2017-12-21 14:53:16 +00:00
2967be7d4d ENH: fileHandler support. Fixes channel395DFSEM in #675. 2017-12-21 14:25:13 +00:00
d259402e40 GIT: .foam: left over 2017-12-21 13:03:52 +00:00
774dcadb65 BUG: cellCuts: incorrect correspondence. Fixes #670. 2017-12-21 13:00:44 +00:00
7230b3dc62 ENH: Adding postProcessing option to solver overPimpleDyMFoam 2017-12-19 12:31:54 -08:00
985a18df75 Adding overPotentialFoam and overRhoSimpleFoam and tutorials 2017-12-19 11:33:43 -08:00
a6d88f2fe7 Adding turbulence to RAS-Tjunction and reducing MRF in mixerVessel2D to make it laminar 2017-12-19 11:02:31 -08:00
f97954b0b6 BUG: still require IStringStream for argList (closes #672)
- regression introduced by part of commit 2787a8664d.

  Specifically the way that scalarRanges is written, it parses through
  until it hits invalid input. This works fine with an IStringStream,
  but the ITstream is pickier and reports this as being an error.

  So revert to IStringStream and be less picky about argList parsing.
  in the longer-term, should fix scalarRanges instead.
2017-12-19 17:59:15 +01:00
f187dd8aa3 ENH: finiteArea - integration updates 2017-12-19 17:07:08 +00:00
995c55b60e CONFIG: add clang third-party lib to LD_LIBRARY_PATH
- required if there is no system openmp and libomp or libgomp are
  only found in the clang hierarchy

STYLE: add some notes in the openmp rules.

- the _OPENMP macro is now used in low-level testing files
2017-12-19 16:07:15 +01:00
1428310bac ENH: FFT - only create the fftw plan once 2017-12-19 14:45:58 +00:00
d20b981fef STYLE: add End markers to some tutorials and finiteArea utils (issue #671) 2017-12-19 14:59:24 +01:00
8bf98e74da TUT: added tutorial files (issue #671)
- also cleanup by using 0.orig/ directory.
- use foamListRegions to obtain region names
2017-12-19 14:40:33 +01:00
5713efede3 STYLE: use range-for in checkTopology.C
- remove odd spaces in checkMesh output
2017-12-19 12:44:10 +01:00
c9211b6170 BUG: incorrect cellZone boundBox reported by checkMesh (closes #663)
- also incorrect number of points per zone
2017-12-19 12:24:47 +01:00
00325db33b ENH: additional options for transforming points (closes #660)
- The -rotate-angle option allows convenient specification of a
  rotation about an arbitrary axis. Eg, -rotate-angle '((1 1 1) 45)'

- The -origin option can be used to temporarily shift the origin
  for the rotation operations. For example,

      -origin '(0 0 1)' -rotate-angle '((1 0 0) 180)'

  for mirroring.
2017-12-19 11:24:08 +01:00
95e357ede4 TUT: use uniform scaling short form
Eg,
    transformPoints -scaling 0.01
instead of
    transformPoints -scaling '(0.01 0.01 0.01)'
2017-12-19 09:41:54 +01:00
f38ad72ad0 ENH: add argList::optionCount method
- convenience for checking is any/all particular options have been
  specified. Eg,

  if (args.optionCount({"opt1", "opt2", "opt3"}) < 3) ...
2017-12-19 08:20:45 +01:00
4a6fc12469 BUG: finiteArea - corrected assignments to refs 2017-12-19 09:19:50 +00:00
ed183b7c30 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-12-18 16:12:56 -08:00
709d2f43b1 Addition of tutorial using energyTransport FO + ArrheniusBirdCarreau laminar transport 2017-12-18 16:12:48 -08:00
c6433e32c2 ENH: Extended the effectiveness heat exchanger source to enable target
heat rejection

The new optional entry targetQdot can be used to specify a target heat
rejection.  This is additionally controlled using the
targetQdotCalcInterval  and targetQdotRelax entries which default to
values of 5 and 0.5, respectively.
2017-12-18 19:41:33 +00:00
6b33d0ec6b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-12-18 08:24:58 -08:00
19c3875a14 CONFIG: update tcsh completion_cache to include finiteArea and cfmesh
- include bash completion for paraFoam, and provision for using
  foamEtcFile as well.
2017-12-18 14:26:49 +01:00
b51b6e20fb Merge branch 'feature-finiteArea-postProcessing' into 'develop'
finite area integration

See merge request Development/OpenFOAM-plus!179
2017-12-18 11:44:02 +00:00
22e0a05e8b STYLE: finiteArea doc and style updates 2017-12-18 11:25:53 +00:00
00a8c8bc5f BUG: liquidFilmFoam - corrected double looping 2017-12-18 11:21:07 +00:00
2728a96b9c ENH: finiteArea - faMesh now derived from faSolution, faSchemes and data classes 2017-12-18 10:50:37 +00:00
4c81ee202d CONFIG: update for gcc-4.9.4, and cfmesh module 2017-12-18 10:51:53 +01:00
16db44b67d STYLE: add flex major version in '#if' conditional 2017-12-17 16:22:39 +01:00
8567ef594a STYLE: remove unneed DynamicList::reserve() call
- DynamicList now has SizeMin=16, which eliminates the need for reserve()
  in some cases

- remove unused enrichedPatch static variable
2017-12-17 13:47:12 +01:00
c70d7237e2 STYLE: more robust extraction of API number from wmake rules 2017-12-17 15:19:09 +01:00
22775693d5 STYLE: adjust comments, indentation 2017-12-17 13:14:05 +01:00
2795d64384 COMP: suppress clang warnings about unknown compiler warning option
- allows enabling new warnings without causing messy output with older
  clang versions
2017-12-15 20:02:26 +01:00
1f9bdb4b4f CONFIG: add foamConfigurePaths -kahip* options (closes #666) 2017-12-15 18:04:11 +01:00
db75d4fe8e ENH: vanDriestDelta - updated reading of coeffs from non-optional sub-dict 2017-12-15 17:30:55 +00:00
9ab7fe6b24 ENH: IDDESDelta - updated the hmax delta to be run-time selectable
The delta used for hmax can be set using the optional 'hmax' entry
- if not supplied, the maxDeltaxyz delta is used (backwards
  compatibility)
2017-12-15 17:26:22 +00:00
9c1bb8d707 ENH: maxDeltaxyz - simplified the delta calc and reset the default coeff to 2 2017-12-15 17:25:22 +00:00
627f312776 Merge branch 'config-thirdparty' into 'develop'
update for third-party versions

See merge request Development/OpenFOAM-plus!185
2017-12-15 12:28:37 +00:00
912b38fd9c ENH: applyBoundaryLayer - added -write-nut option to write nut|nuTilda (default=no) 2017-12-15 11:15:50 +00:00
5ba4e83f7a CONFIG: update versions of some ThirdParty software
- ADIOS 1.13.0
- fftw 3.3.7
- paraview 5.4.1

ENH: include ThirdParty QT libraries in LD_LIBRARY_PATH for paraview
2017-12-15 09:23:37 +01:00
445017c741 BUG: snappyMultiRegionHeater: missing decomposeParDict. See #652. 2017-12-14 16:31:49 +00:00
d523d0a634 Merge branch 'feature-overset-lsq' into 'develop'
ENH: overset: new solvers, new stencil

See merge request Development/OpenFOAM-plus!180
2017-12-14 15:43:59 +00:00
e18575bfcb Merge branch 'style-config' into 'develop'
Style config

See merge request Development/OpenFOAM-plus!184
2017-12-14 12:02:13 +00:00
5c607bb801 ENH: print paraFoam -help and -help-full to stdout
- this makes it possible to use "foamAddCompletion paraFoam" and have
  bash completions for paraFoam as well
2017-12-14 12:50:59 +01:00
a820e2d2b7 STYLE: add explicit note to bashrc,cshrc about using prefs.{sh,csh}
- adjust comment formatting to reduce clutter
2017-12-14 11:18:40 +01:00
dd2b3d4e9b STYLE: drop little-used, little-known 'foamSite' alias 2017-12-14 10:58:15 +01:00
3f853f031a STYLE: cleanup of compiler settings
- relocate WM_COMPILER_ARCH, WM_COMPILER_LIB_ARCH from
  etc/{bashrc,cshrc} to etc/config.{csh,sh}/settings since these
  should not be changed by the user anyhow.

- Use gcc/g++ as common base and specialize afterwards (to reduce
  duplication)

- adjust format of WM_PROJECT_SITE fallback to allow for easier
  automated edits
2017-12-14 10:22:30 +01:00
5d5ef73f74 COMP: adjust type for dummy postProcess fields 2017-12-14 01:17:21 +01:00
3da2aee4ef ENH: Updated wildcard handling for function object field entries 2017-12-13 20:57:56 +00:00
b37fc2d4b1 Merge branch 'feature-externalCoupled' into 'develop'
Feature external coupled

See merge request Development/OpenFOAM-plus!176
2017-12-13 19:58:09 +00:00
3999498eed Merge branch 'config-modules' into 'develop'
Support for additional modules

See merge request Development/OpenFOAM-plus!183
2017-12-13 19:43:09 +00:00
bc8420e14f STYLE: trailing whitespace, doxygen, error messages from fileOperation 2017-12-13 17:56:34 +01:00
ffc1c5aca0 CONFIG: add additional modules/ directory and Module namespace
- any code placed here should provide Allwmake and Allwclean scripts
  and normally have compilation targets into FOAM_APPBIN, FOAM_LIBBIN

  Since there is no standardize places for sources or applications,
  a simultaneous build of a module's doxygen documentation requires
  a minor bit of manual effort. Add (via symlink) the sources into
  the modules/doc/ directory to have them included in the normal
  OpenFOAM doxygen documentation generation.

  A makelink.example file is provided there as an example.
2017-12-13 17:36:35 +01:00
47bd51348b ENH: snappyHexMesh: message 2017-12-13 12:45:06 +00:00
3a4bbd7935 ENH: snappyHexMesh: message 2017-12-13 12:45:06 +00:00
18ffeba1c8 ENH: snappyHexMesh: updated directional refinement 2017-12-13 12:27:25 +00:00
52231e7836 ENH: snappyHexMesh: updated directional refinement 2017-12-13 12:27:25 +00:00
994138aa40 ENH: snappyHexMesh: updated directional refinement 2017-12-13 12:27:25 +00:00
0af97856f1 ENH: Added new nutUBlendedWallFunction
This forms part of what is termed 'automatic wall treatment' in the
reference:

    Menter, F., Carregal Ferreira, J., Esch, T., Konno, B. (2003).
    The SST Turbulence Model with Improved Wall Treatment
    for Heat Transfer Predictions in Gas Turbines.
    Proceedings of the International Gas Turbine Congress 2003 Tokyo

Note
    The full 'automatic wall treatment' description also requires use of
    the  Foam::omegaWallFunction with the \c blended flag set to 'on'
2017-12-12 08:51:47 +00:00
3b70a82bb7 BUG: Partial revert of commit fd87d0af1
omegaWallFunction
- re-instated behaviour when not using 'blended'
- turbulence generation always included when using 'blended'
- 'blended' now true by default

epsilonWallFunction
- re-instated low-Re switching
2017-12-12 08:48:38 +00:00
032f48055f ENH: snappyHexMesh: initial version of directional refinement 2017-12-11 17:23:33 +00:00
88fac3ed9f ENH: snappyHexMesh: initial version of directional refinement 2017-12-11 17:23:33 +00:00
7fe700a8dc COMP: HashPtrTableI.H: inlined functions 2018-05-21 09:50:22 +01:00
447ee9e027 ENH: processorField: added etc/caseDicts file. Fixes #807. 2018-05-21 09:45:55 +01:00
1275c71e50 ENH: snappyHexMeshDict: description of gapMode 2018-05-16 11:38:24 +01:00
b0ddf92e78 ENH: polyMesh: fixed warning message. Fixes #828. 2018-05-16 10:14:45 +01:00
48d654cf19 ENH: avoid memory leaks for HashPtrTable, PtrMap insertion (issue #749)
- disallow insert() of raw pointers, since a failed insertion
  (ie, entry already existed) results in an unmanaged pointer.

  Either insert using an autoPtr, or set() with raw pointers or autoPtr.

- IOobjectList::add() now takes an autoPtr instead of an object reference

- IOobjectList::remove() now returns an autoPtr instead of a raw pointer
2018-05-17 09:56:36 +01:00
46b768628c STYLE: use FieldBase for template invariant parts
- use refCount instead of the tmp<...>::refCount alias
2018-05-16 18:03:14 +01:00
fe80e3b4ed SUBMODULE: updates for catalyst 2018-05-16 16:07:31 +01:00
4289242c07 Merge remote-tracking branch 'origin/master' into develop 2018-05-16 16:07:00 +01:00
7c43b919c5 STYLE: eliminate a global reduction for field function (issue #816) 2018-05-15 18:10:03 +01:00
5b50febfa4 ENH: simplify distance calculation in distanceSurface
- use normal instead of volumeType to decide on the sign.
  This provides a continuous field and eliminates special handling of
  GREAT in iso-surface routines.

- fix regression in isoSurfaceCell cutting that was introduced by the
  previous adjustments for distanceSurface
2018-05-15 13:50:24 +01:00
d8356fee44 CONFIG: change default writeLagrangianPositions ON (closes #781)
- this enables x,y,z access of lagrangian positions, which is useful
  for postprocessing in paraview, but at the expense of slightly
  more disk space.
2018-05-15 11:11:59 +01:00
65129d7b90 CONFIG: export ThirdParty Qt5_DIR (issue #827) 2018-05-14 17:04:18 +01:00
df3b406ef8 COMP: resolve faceZone constructor ambiguity for gcc 4.8.1 2018-05-11 17:18:52 +01:00
26c24492b1 SUBMODULE: updates for avalanche, catalyst, cfmesh 2018-05-11 15:29:00 +02:00
73a525b7f5 ENH: additional input/output parameters for lumped point motion (closes #804)
- input or output scaling of values to manage dissimilar unit systems
  in the structures model

- logging of communicated force, moments and updated positions.
  This allows tracking of the information exchange throughout the
  duration of the simulation and may assist in post-simulation diagnosis.
2018-03-22 23:57:46 +01:00
51d6008bbb Merge remote-tracking branch 'origin/master' into develop 2018-05-11 15:15:54 +02:00
28627250c6 CONFIG: update catalyst configuration files
- relocated from
    etc/caseDicts/postProcessing/catalyst/ -> etc/caseDicts/insitu/catalyst/

- adjusted for unified catalyst function object
2018-05-11 14:55:47 +02:00
cc0eac3e19 ENH: add decompose flag for vtkWrite function object
- default is now without polyhedral decomposition, since this produces
  compacter files and VTK mananges this in most instances.
  However, provide function object flag to reinstate the old behaviour.
2018-05-11 08:04:50 +02:00
f40d7ef578 COMP: use emptyLabelList to avoid reference to temporary (gcc 8.1) 2018-05-09 12:40:38 +02:00
1513a049e0 BUG: swirl: decide based on global properties. Fixes #824. 2018-05-10 11:12:19 +01:00
56231b5b5f STYLE: use FatalIOError and minor changes to log output 2018-05-09 12:43:11 +01:00
16f3eac7d6 ENH: reference FO - position entry is now optional 2018-05-09 12:15:43 +01:00
050628c7b1 COMP: Corrections for clang 3.7.1 2018-05-08 15:54:08 +01:00
8c5d0cd8b2 Merge remote-tracking branch 'origin/develop' into develop 2018-05-08 13:56:16 +01:00
0d7c582293 STYLE: Minor typo corrections 2018-05-08 13:24:38 +01:00
091d847094 ENH: Added a new function object to create a field relative to a field value
Calculates and outputs a field whose values are offset to a reference
    value obtained by sampling the field at a user-specified location.

    The field values are calculated using:

    \f[
        f_c = s(f_{c,t} - f_p + f_{off})
    \f]

    where
    \vartable
        f_c     | field values at cell
        s       | optional scale factor (default = 1)
        f_{c,t} | current field values at cell at this time
        f_p     | field value at position
        f_{off} | offset field value (default = 0)
    \endvartable

Usage
    Example of function object specification to calculate the reference
field:
    \verbatim
    pRef
    {
        type        reference;
        libs        ("libfieldFunctionObjects.so");
        ...
        field       p;
        result      pRef;
        position    (0 0 0);
        scale       1.2;
        offset      100000;
    }
    \endverbatim
2018-05-08 13:19:46 +01:00
5c60cbe34d ENH: improve ensightWrite handling of moving mesh
- now treat all mesh geometries as moving, since we cannot know
  beforehand if this is the case.
2018-05-08 12:41:06 +02:00
e3706cdc69 COMP: wallDistData: incorrect templates 2018-05-08 10:33:58 +01:00
f99880cbea ENH: add nodeValues option for ensightWrite function object (closes #734) 2018-05-08 09:51:15 +02:00
b24bd516ae ENH: write ensightWrite case on each write (closes #733)
- allows processing of the data during the calculation.
2018-05-08 09:25:07 +02:00
9531212f14 ENH: disable ensightWrite, vtkWrite function objects in post-process mode
- prevents accidental overwrite of runtime conversions.
2018-05-08 09:16:00 +02:00
dbe16de58c ENH: cleaner, more consistent ensight case surface output files
- use same data mask width as ensightCase (8 digits)

- consolidate geometry time steps with data time steps if possible,
  for a cleaner case file.
2018-05-08 08:15:31 +02:00
2f567e53de COMP: silence some compiler warnings/errors
- catch (value)
- forward declarations for operator<<()
- non-const access to Reaction name()
- spurious return statement
2018-05-07 17:21:56 +02:00
272e09b051 CONFIG: add Gcc81 2018-05-07 17:21:30 +02:00
01a313d889 BUG: collated ensight not working with isosurfaces (closes #318)
- the problem arises since the various surface writers are stateless.
  The collated output format hacks around this limitation by adding in
  its own fieldDict caching (to disk).

  Now include an updateMesh() method to hook into geometry changes.
  This is considered a stop-gap measure until the surface output
  handling is improved.
2018-05-07 16:59:15 +02:00
b0648f2ba0 ENH: improvements in the surface sampling infrastructure
- improvement documentation for surface sampling.

- can now specify alternative sampling scheme for obtaining the
  face values instead of just using the "cell" value. For example,

      sampleScheme    cellPoint;

  This can be useful for cases when the surface is close to a boundary
  cell and there are large gradients in the sampled field.

- distanceSurface now handles non-closed surfaces more robustly.
  Unknown regions (not inside or outside) are marked internally and
  excluded from consideration. This allows use of 'signed' surfaces
  where not previously possible.
2018-05-07 11:29:00 +02:00
5268b5e61d BUG: Corrected no-op in reverse transform multi-D fft - see #813 2018-05-03 14:54:09 +01:00
ef882e542a ENH: zero initialize memory for Pstream send (issue #814)
- this avoids some valgrind messages

      "Uninitialised byte(s) found during client check request"
2018-05-02 14:02:55 +02:00
6d89a3ec38 ENH: additional convenience for mpirunDebug
- a -valgrind option for logging with valgrind

- determine number of processors from system/decomposeParDict
  or -decomposeParDict if -np was not specified
2018-05-02 11:49:33 +02:00
0ea44eda59 ENH: bitSet::find_first_not() method (issue #751)
- find the position of the first bit off - symmetrical with find_first()
2018-05-02 08:33:49 +02:00
4653beaa49 ENH: report illegal cellId for getRefCellValue (FULLDEBUG)
-  this should normally not be triggered, provided that setRefCell was
   used. However, if getRefCellValue() was called without any previous
   checking on refCelli, it is possible to provoke errors.
2018-04-30 14:25:37 +02:00
b4a2876c56 ENH: use move construct for cellZone/faceZone 2018-03-07 11:28:05 +01:00
4fe8ed8245 STYLE: use direct iteration for HashSet
- The iterator for a HashSet dereferences directly to its key.

- Eg,

      for (const label patchi : patchSet)
      {
          ...
      }
  vs.
      forAllConstIter(labelHashSet, patchSet, iter)
      {
          const label patchi = iter.key();
          ...
      }
2018-03-06 00:29:03 +01:00
2a6ac7edce BUG: nearWallFields: correct exit condition for particles. Fixes #812. 2018-04-30 13:08:58 +01:00
e2361b102f COMP: inplaceMapValue relocated to ListOps 2018-04-30 14:05:54 +02:00
153323e1f6 Merge branch 'feature-regionsplit' into 'develop'
Feature regionsplit

See merge request Development/OpenFOAM-plus!201
2018-04-30 11:21:45 +01:00
f3d1e41d76 COMP: label-size 64 compilation of fft (issue #813) 2018-04-30 08:24:38 +02:00
f86c129fd5 STYLE: additional comment when completion not found (issue #719)
No completion added for XXX
    ... incorrect platform, or not yet compiled?
2018-04-30 07:50:48 +02:00
ed2722745d ENH: revert regionSplit to older algorithm (issue #805)
- the algorithm was last used in OpenFOAM-2.4, after which it was
  replaced with a FaceCellWave version.

  Whereas the original (2.4.x) version exhibited performance
  degradation on very large meshes (with explicit constraints), the
  FaceCellWave version exhibited performance issues with large numbers
  of blocked faces.

  With large numbers of blocked faces, the FaceCellWave regionSplit
  could take between 10 to 100 times longer due to the slow
  propagation speed through blocked faces.

  The 2.4 regionSplit has been revamped to avoid local memory
  allocations, which appears to have been the source of the original
  performance issues on large meshes.

  For additional performance, intermediate renumbering is also avoided
  during the consolidation of regions over processor domains.
2018-04-27 15:51:33 +02:00
dd8341f659 ENH: make format of ExecutionTime = ... output configurable (issue #788)
- controlled by the the 'printExecutionFormat' InfoSwitch in
  etc/controlDict

      // Style for "ExecutionTime = " output
      // - 0 = seconds (with trailing 's')
      // - 1 = day-hh:mm:ss

   ExecutionTime = 112135.2 s  ClockTime = 113017 s

   ExecutionTime = 1-07:08:55.20  ClockTime = 1-07:23:37

- Callable via the new Time::printExecutionTime() method,
  which also helps to reduce clutter in the applications.
  Eg,

     runTime.printExecutionTime(Info);

  vs

     Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
         << "  ClockTime = " << runTime.elapsedClockTime() << " s"
         << nl << endl;

--

ENH: return elapsedClockTime() and clockTimeIncrement as double

- previously returned as time_t, which is less portable.
2018-04-27 15:00:34 +02:00
0743b61a3c STYLE: minor cleanup in decompositionMethod
- reduce cell looping. Avoid initial looping over blockFace.

- make early return (no processor sets, connections, or blocked faces)
  more apparent.
2018-04-26 12:36:24 +02:00
4dcd052ffc STYLE: remove old/dead decompositionMethod::calcCellCells code
- alternative calcCellCells that handled explicitConnections was
  deactivated (2014 or earlier) and finally removed APR-2018.
2018-04-27 11:16:18 +02:00
10b69fa2b4 ENH: ListOp::inplaceMapValue using a Map<label> for the mapping.
For example, with some HashTable or Map container of models

    { model0 => 1, model1 => 4, model2 => 5, model3 => 12, model4 => 15, }

specify the remapping

    Map<label> mapper({{1, 3}, {2, 6}, {3, 12}, {5, 8}});

inplaceMapValue(mapper, models) then yields

    { model0 => 3, model1 => 4, model2 => 8, model3 => 12, model4 => 15, }

--

ENH: extend bitSet::count() to optionally count unset bits instead.

--

ENH: BitOps compatibility methods for boolList.

- These ease coding that uses a boolList instead of bitSet and use
  short-circuit logic when possible.

  Eg, when 'bitset' and 'bools' contain the same information

      bitset.count()  <->  BitOps::count(bools)
      bitset.all()    <->  BitOps::all(bools)
      bitset.any()    <->  BitOps::any(bools)
      bitset.none()   <->  BitOps::none(bools)

  These methods can then be used directly in parameters or in logic.
  Eg,

      returnReduce(bitset.any(), orOp<bool>());
      returnReduce(BitOps::any(bools), orOp<bool>());

      if (BitOps::any(bools)) ...
2018-04-27 10:43:32 +02:00
c0766ce8ea STYLE: consistent '// End namespace' markers 2018-04-27 09:51:35 +02:00
a9fbaa4b08 ENH: volPointInterpolate: improved debug message 2018-04-26 17:08:50 +01:00
a645b2b5c8 BUG: annularThermalMixer: incorrect shm setup. Fixes #811. 2018-04-25 11:43:52 +01:00
0226485c77 BUG: extraneous '}' in FULLDEBUG 2018-04-26 14:49:49 +02:00
d3c2668cc6 STYLE: extraneous debug output in PackedList
- bitSet::used() method for compatibility with code using the
  PackedBoolList typedef, but marked as deprecated.
2018-04-26 14:10:16 +02:00
f181a7ac61 SUBMODULE: minor updates for cfmesh
- with updated DynList that inherits from UList and uses List/FixedList
  internally for its memory management
2018-04-26 10:45:52 +02:00
497dde2b2f CONFIG: bump API version number to 1804 to account for bitSet
- since PackedBoolList is now a compatibility typedef for bitSet,
  it is useful to have an additional means of distinction.

STYLE: simplify internal version tests and compiler defines.

- the API version is now conveyed via the OPENFOAM define directly.
  The older OPENFOAM_PLUS define is provided for existing code.
2018-04-26 09:28:42 +02:00
ebfe46503f STYLE: improve wmkdepend parse error message
- parsing error state only arises from a missing final newline
  in the file (which the dnl macro does not capture).
  Report with a warning instead of modifying the dnl macro since
  we generally wish to know about this anyhow.

- add missing newline to YEqn.H file.
2018-04-25 14:37:59 +02:00
e6787bfa9a Merge branch 'feature-bitset' into 'develop'
ENH: new bitSet class and improved PackedList class (closes #751)

See merge request Development/OpenFOAM-plus!200
2018-04-25 11:39:59 +01:00
dffc65d41d STYLE: make token null constructor constexpr, noexcept 2018-04-25 10:42:25 +02:00
2fde6c3ab0 ENH: improve handling of mismatched brackets, forgotten ';' (issue #762)
- flags the following type of problems:

  * mismatches:

        keyword  mismatch ( set of { brackets ) in the } entry;

  * underflow (too many closing brackets:

        keyword  too many ( set of ) brackets ) in ) entry;

- a missing semi-colon

        dict
        {
           keyword  entry with missing semi-colon
        }

  will be flagged as 'underflow', since it parses through the '}' but
  did not open with it.

Max monitoring depth is 60 levels of nesting, to avoid incurring any
memory allocation.
2018-04-25 09:55:00 +02:00
76cb38fbc7 CONFIG: adjust make scripts for darwin
- handling of dead links (find -L -delete unsupported)

- remove ignore case flag on 's/../../i' used in have_scotch script.
  It is unneeded and not tolerated by Darwin's sed.

- avoid embedded comments in EXE_INC (Make/options files), which do
  not work well with the OSX LLVM cpp.
  It strips out the comments but also removes the continuation char.

STYLE: adjust notes about paraview library locations
2018-04-24 21:20:06 +02:00
0dfda5f796 COMP: fix Darwin size ambiguities
- size ambiguity for Foam::min(string::size_type, label)

- stream operators for int16/uint16 which are needed for mode_t (Darwin)
2018-04-24 18:03:42 +02:00
7bb7f1b352 ENH: overset: extraneous exchange. Fixes #803. 2018-04-25 09:20:57 +01:00
b18a9d73c4 ENH: checkMesh: near-zero vol cell. Fixes #808. 2018-04-23 17:54:16 +01:00
366d757937 COMP: ConstCirculator: missing include 2018-04-23 17:50:50 +01:00
2768500d57 CONFIG: remove WM_LINK_LANGUAGE env variable (always c++)
- was somewhat redundant in wmake/rules/General/general anyhow
2018-04-24 14:59:47 +02:00
b4d38ab468 ENH: improve handling of ThirdParty packages
- generalize some of the library extensions (.so vs .dylib).
  Provide as wmake 'sysFunctions'

- added note about unsupported/incomplete system support

- centralize detection of ThirdParty packages into wmake/ subdirectory
  by providing a series of scripts in the spirit of GNU autoconfig.
  For example,

      have_boost, have_readline, have_scotch, ...

  Each of the `have_<package>` scripts will generally provide the
  following type of functions:

      have_<package>          # detection
      no_<package>            # reset
      echo_<package>          # echoing

  and the following type of variables:

      HAVE_<package>          # unset or 'true'
      <package>_ARCH_PATH     # root for <package>
      <package>_INC_DIR       # include directory for <package>
      <package>_LIB_DIR       # library directory for <package>

  This simplifies the calling scripts:

      if have_metis
      then
          wmake metisDecomp
      fi

  As well as reducing clutter in the corresponding Make/options:

      EXE_INC = \
          -I$(METIS_INC_DIR) \
          -I../decompositionMethods/lnInclude

      LIB_LIBS = \
          -L$(METIS_LIB_DIR) -lmetis

  Any additional modifications (platform-specific or for an external build
  system) can now be made centrally.
2018-04-24 14:51:19 +02:00
672f0574e2 COMP: resolve signed/unsigned long ambiguity on Darwin 2018-04-24 13:17:22 +02:00
29c020f5b3 COMP: sinclude platform-specific CGAL rules
- permits platform-specific override of the general CGAL rules
2018-04-24 09:26:50 +02:00
5af5bfa1a5 ENH: error handling for Ragel STL parsing
- also simplify parsing by accepting any case on keywords.
  This implies that something like "sOlId", "SoLiD" will also
  be accepted. Although nobody should really count on this rather
  generous behaviour, it does simplfy the state machine even further.
2018-04-24 09:15:50 +02:00
591a1a0c68 ENH: improve memory allocations for explicit connections (issue #805)
STYLE: change access methods names in mesh wave algorithms

- nUnvisitedCells(), nUnvisitedFaces() etc instead of
  getUnsetCells(), getUnsetFaces()

- simplify some coding with range-for
2018-04-23 10:37:24 +02:00
857eed5b51 ENH: change findCell mode in meshRefinement (issue #805)
- in 2.4.x the general default for polyMesh::findCell was FACE_DIAG_TRIS,
  but this was changed to CELL_TETS for better handling of concave
  cells.

- in snappyHexMesh meshRefinement, findCell is used to define
  locations in mesh and cells for closer refinement. Using CELL_TETS
  causes an octree rebuild when the mesh has changed and this adds
  considerable overhead. For this operation, the faster FACE_DIAG_TRIS
  mode can be used instead.
2018-04-23 09:37:24 +02:00
1f25c5975d BUG: wmkdepend finds 'include' in multi-line comments (closes #784)
- the previous grammar used

      '/*' { fgoto comment; }

  to start processing multi-line comments and

      comment := any* :>> '*/' @{ fgoto main; };

  as a finishing action to return to normal lexing, but seemed not to
  have been triggered properly.

  Now simply trap in a single rule:

      '/*' any* :>> '*/';             # Multi-line comment

STYLE: use more compact dnl (delete to newline)

  OLD:   [^\n]* '\n'
  NEW:   (any* -- '\n') '\n'

  eliminates the intermediate state
2018-04-20 14:41:32 +02:00
694004ad41 ENH: finiteArea - integrated d2dt2 scheme from Alexander Kabat vel Job 2018-04-20 15:04:47 +01:00
4a2afb85d6 BUG: Added missing oriented flag to meshPhi 2018-04-19 12:08:19 +01:00
b5c7e43c84 DEFEATURE: remove foamToTecplot360
- the API-versioned calls (eg, tecini142, teczne142, tecpoly142, tecend142),
  the limited availability of the SDK and lack of adequate testing make
  proper maintenance very difficult.
2018-04-19 14:51:33 +02:00
6b8f037333 STYLE: provide number of unreachable blocked cells
- in debug, also report the first 10 cell ids

- format header documentation
2018-04-05 16:41:52 +02:00
12157acf07 STYLE: suppress fatal errors for indexedOctree debug=1
- these errors are mostly rounding related (when a point is located on
  the edge of a bounding box instead of being fully inside it).

  For debug > 1, continue to treat as fatal.
2018-04-04 18:14:34 +02:00
0cfe88f2e4 CONFIG: update VTK version to use the latest version
- also see issue #793 (paraview version)
2018-04-19 10:08:09 +02:00
0e82e883f0 ENH: make decomposition methods const (issue #796) 2018-04-19 09:48:11 +02:00
ef922b6917 STYLE: adjust codeTemplates to use '= delete' 2018-04-19 07:38:31 +02:00
367ddb8f05 Merge branch 'style-iostream-option' into 'develop'
Style iostream option

See merge request Development/OpenFOAM-plus!199
2018-04-18 17:23:29 +01:00
756502da87 COMP: listOutput: make compatible with stl include files 2018-04-18 11:35:30 +01:00
af3f93c057 ENH: snappyHexMeshDict: changed 17x to 1.7.x 2018-04-18 11:32:59 +01:00
21369e4702 COMP: correction for Clang 2018-04-18 13:33:09 +01:00
ed4564a805 STYLE: Added backwards compatibility for old keywords 2018-04-18 13:32:49 +01:00
622cde7e31 COMP: some legacy rendering removed for VTK 9 2018-04-18 13:59:35 +02:00
a1b4b20bf4 ENH: surfaceNoise - only write on the master process 2018-04-17 16:00:03 +01:00
53ae09ad04 STYLE: relocate stream allocators to Detail namespace 2018-04-13 10:24:22 +02:00
4cf932b230 STYLE: reorder/refactor stream format options
- IOstreamOption class to encapsulate format, compression, version.
  This is ordered to avoid internal padding in the structure, which
  reduces several bytes of memory overhead for stream objects
  and other things using this combination of data.

  Byte-sizes:
      old  IOstream:48  PstreamBuffers:88  Time:928
      new  IOstream:24  PstreamBuffers:72  Time:904

====

STYLE: remove support for deprecated uncompressed/compressed selectors

In older versions, the system/controlDict used these types of
specifications:

    writeCompression uncompressed;
    writeCompression compressed;

As of DEC-2009, these were deprecated in favour of using normal switch
names:

    writeCompression true;
    writeCompression false;
    writeCompression on;
    writeCompression off;

Now removed these deprecated names and treat like any other unknown
input and issue a warning. Eg,

   Unknown compression specifier 'compressed', assuming no compression

====

STYLE: provide Enum of stream format names (ascii, binary)

====

COMP: fixed incorrect IFstream construct in FIREMeshReader

- spurious bool argument (presumably meant as uncompressed) was being
  implicitly converted to a versionNumber. Now caught by making
  IOstreamOption::versionNumber constructor explicit.

- bad version specifier in changeDictionary
2018-04-12 20:32:20 +02:00
a230e8d408 STYLE: Correcting typos 2018-03-28 17:14:16 +01:00
3a569c9fd5 ENH: streamLineBase - construct with curve distance 2018-03-27 11:01:06 +01:00
801fb7bd5f ENH: streamLine/wallBoundedStreamLine - minor refactoring to enable new derived functionality 2018-03-27 11:00:12 +01:00
ee2ca640d4 BUG: fft - corrected multi-D fft regression when moving to fftw 2018-03-22 16:36:11 +00:00
5037634bd1 CONFIG: return instead of exit in lib-dir script
- affected csh users
2018-04-17 11:45:44 +02:00
aeef1cd4df BUG: wmkdepend parser missing some files
- adjusted grammar to be more precise
2018-04-17 09:20:01 +02:00
ea71484efa ENH: add alternative STL ASCII parsers
- In addition to the traditional Flex-based parser, added a Ragel-based
  parser and a handwritten one.

  Some representative timings for reading 5874387 points (1958129 tris):

      Flex   Ragel   Manual
      5.2s   4.8s    6.7s         total reading time
      3.8s   3.4s    5.3s         without point merging
2018-04-16 10:20:45 +02:00
a8da75d27e STYLE: support wordRe ICASE enum
- better naming consistency with std::regex_constants::icase

- deprecate older NOCASE, but leave supported
2018-04-13 10:42:42 +02:00
b29a0119de ENH: minor code tidying, machine simplifications for wmkdepend parser 2018-04-13 16:17:39 +02:00
c8d0e5ae03 COMP: single-precision ambiguity (fixes #799) 2018-04-12 18:50:58 +02:00
48b52ac8ee SUBMODULE: minor updates for avalanche and cfmesh 2018-04-12 16:32:02 +02:00
c2da3424bb SUBMODULE: catalyst function object
- now uses current OpenFOAM code level

- added initial catalyst script for insitu processing of overset
2018-04-12 16:25:42 +02:00
428f746c68 STYLE: include temperature (T) in the default paraFoam pre-selection 2018-04-12 13:51:51 +02:00
f056e59db6 CONFIG: simplify paraview lib path for 5.5 (issue #793)
- note that the python paths also seem to be treated differently
2018-04-12 12:39:30 +02:00
de72a04aeb ENH: make it easier to switch between the various make dependencies programs.
- However, the new ragel-based parser is much faster
  than the others, and does not cause 'too many open files' error
  that the flex-based parser does (issue #784).

  The timings (using src/sampling as being somewhat representative)

    $ wclean; wmakeLnInclude -u .; time wmake -s dep

        3.4s  wmkdepend (ragel) [now default]
        5.7s  wmkdep (flex)
        6.1s  cpp -M

- The makeDepend script is for testing purposes only, but could used as
  a hook for other dependency generation systems (eg, ninja).
  It simply wraps 'cpp -M' in a form that is calling compatible with
  wmkdepend.

BUG: wmkdepend parser was missing optional leading space on #include match

STYLE: use -G2 (goto-based) option for wmkdepend state machine

- the machine is compact with few states and lends itself to this
2018-04-12 10:14:03 +02:00
5f88e4271e ENH: allow "<case>", "<system>" ... in the string expansions (issue #792)
- the expansions were previously required as slash to follow, but
  now either are possible.

    "<case>", "<case>/" both yield the same as "$FOAM_CASE" and
    will not have a trailing slash in the result. The expansion of
    "$FOAM_CASE/" will however have a trailing slash.

- adjust additional files using these expansions
2018-04-11 23:10:49 +02:00
fc5895f1df STYLE: rename toLabel, toLabelRange classes -> labelOp, labelRangeOp
- make purpose as functors _slightly_ clearer.

- base definition removed for stricter enforcement of the specialization
  requirement.
2018-04-11 22:48:03 +02:00
97dc9f4029 EHN: make signal verbosity an optional calling argument. 2018-04-11 21:35:02 +02:00
297570de53 COMP: some low-level darwin-related patches
- a partial selection from https://github.com/mrklein/openfoam-os-x
  with adjustments. The primary purpose is to reduce header-level
  incompatibilities and to provide a common set of make rules to allow
  easier patching (or re-integration).
2018-04-09 12:48:55 +02:00
d2b1b1cdc0 ENH: paraFoam: catch read errors. Fixes #798. 2018-04-12 15:12:04 +01:00
cb14a2020b ENH: snappyHexMesh: exclude feature angle analysis. See #699. 2018-04-11 10:58:46 +01:00
1fff0109d1 STYLE: adjust config examples 2018-04-11 12:17:56 +02:00
6321ba8f45 Merge branch 'feature-wmake' into 'develop'
Feature wmake

See merge request Development/OpenFOAM-plus!198
2018-04-11 12:35:10 +01:00
1676bd4003 ENH: replace flex-based wmkdep with ragel-based parser (issue #784)
This is similar to efforts (Feb 2010) but using ragel
  (https://en.wikipedia.org/wiki/Ragel) instead of the now defunct
  coco/r. The modified commit message from 2010:

ENH: add C++-based wmkdepend parser (uses ragel grammar).

- This avoids dependency on lex/flex and provides better encapsulation
  for buffer switching. As a result, the maximum number of open files
  only corresponds to the include depth.

--

Note that the flex source and rules are still available, but are not
deactivate (see wmake/rules/General/transform)
2018-04-11 12:31:36 +02:00
a9741cea79 ENH: additional text expansion shortcuts (issue #792)
Support the following expansions when they occur at the start of a
string:

    Short-form       Equivalent
    =========       ===========
      <etc>/          ~OpenFOAM/   (as per foamEtcFile)
      <case>/         $FOAM_CASE/
      <constant>/     $FOAM_CASE/constant/
      <system>/       $FOAM_CASE/system/

These can be used in fileName expansions to improve clarity and reduce
some typing

     "<constant>/reactions"   vs  "$FOAM_CASE/constant/reactions"
2018-04-10 13:41:41 +02:00
d814bce3ee CONFIG: adjust paraview lib path for 5.5 (issue #793)
ParaView 5.4 and older:
    - requires lib/paraview-X.X only

  ParaView 5.5:
    - requires lib/
    - does not appear to require lib/paraview-X.X, but retained for simplicity

- Change default version to paraview-5.5.0 for testing purposes
2018-04-11 11:01:17 +02:00
6d8be52294 STYLE: provide caseDicts for the catalyst function object 2018-04-10 14:23:56 +02:00
b85d0b5cb7 ENH: provide Rand48 as generator in the expected C++11 form
- this removes an OS-specific dependency (eg, drand48_r is not POSIX)
  and allows easier use of other random number generators.

  The Rand48 generator has identical behaviour and period as the
  lrand48() library routine, but holds its own seed and state
  (which makes it re-entrant) and can be combined with other
  random distributions.

  However, when using the modified form to obtain scalar values
  they will not be identical to what drand48() yields.

  This is because drand48() uses the raw 48-bit values to directly
  set the mantissa of an IEEE double where as the newer distribution
  normalizes based on the 32-bit value.

STYLE: simplify code in Random::shuffle and use Swap
2018-04-09 11:08:34 +02:00
e4f5471edf ENH: improve robustness of fileStat class (issue #794)
- quick ignore of empty filenames.

- relocated some implementation details from POSIX.C to the
  fileStat class, where they make more sense.
2018-04-11 10:24:27 +02:00
a11b93bee1 Merge remote-tracking branch 'origin/master' into develop 2018-04-11 10:35:35 +02:00
52cf2d68c4 STYLE: avoid 'sed -i' in wmake rules
- less efficient and less portable than using single-pass processing
2018-04-08 22:15:21 +02:00
0e669fcb39 ENH: Editing header description 2018-04-05 08:39:03 -07:00
bf4125b248 ENH: New outletMachNumberPressure BC. It sets pressure at outlet
keeping chocked conditions of Mach number.
This BC can work in two modes, chocked or non-chocked. In the
chocked mode the Ma is an input. In the non-chocked mode
the Ma is calculated from model inputs.
2018-04-03 16:39:07 -07:00
c52ee82f79 COMP: missing bracket 2018-04-03 21:51:22 +02:00
bbf8dc18f6 Merge branch 'style-returns' into 'develop'
STYLE: use 'return nullptr' for empty autoPtr/tmp returns

See merge request Development/OpenFOAM-plus!197
2018-04-03 20:32:52 +01:00
5ac02c6809 Merge branch 'style-dimensioned' into 'develop'
more consistent use of dimensioned Zero

See merge request Development/OpenFOAM-plus!196
2018-04-03 20:30:31 +01:00
06035b8a30 Merge branch 'feature-catalyst' into 'develop'
Feature catalyst

See merge request Development/OpenFOAM-plus!195
2018-04-03 20:22:48 +01:00
795bdfb2f1 SUBMODULE: catalyst function object 2018-04-03 19:07:35 +02:00
c0498e731a ENH: consolidate some common methods for paraview + catalyst 2018-04-03 18:42:35 +02:00
5c77932513 TUT: test parallel for sphereTransport tutorial 2018-04-03 16:43:05 +02:00
3dbe6ef81f ENH: downgrade to warning and exit if MPI_Finalized is called twice.
- this can occur when OpenFOAM is run in serial mode, but connects to
  a program that starts/stops MPI on its own.
2018-04-03 16:35:03 +02:00
55d9eb206d STYLE: missing space in checkMesh (fixes #767) 2018-04-03 09:40:04 +02:00
b85b261348 STYLE: string::assign instead of string::operator= in string sub-classes
- makes the meaning clearer
2018-04-03 08:31:59 +02:00
c2f0864f68 ENH: remove size limit when reading verbatim strings (issue #785) 2018-04-03 08:16:20 +02:00
b854ce228e ENH: wmkdep: better error message. See #784. 2018-03-28 16:39:05 +01:00
795ece8bb7 ENH: writeFile: check for opening status. Fixes #783. 2018-03-28 11:45:28 +01:00
0c1163c182 Merge branch 'feature-profiling' into 'develop'
ENH: reduce profiling overhead (issue #764)

See merge request Development/OpenFOAM-plus!194
2018-03-27 16:39:02 +01:00
2c3befe090 STYLE: inconsistent field naming for hexRef8Data 2018-03-27 11:46:47 +02:00
d901b4f450 ENH: reduce profiling overhead (issue #764)
- avoid clockTime in favour of clockValue.

- avoid allocations when profiling is not active.

- replace hashing with manual pointer lists
2018-03-26 21:38:47 +02:00
e0d075ff89 Merge branch 'feature-ptrlist' into 'develop'
Updated/modified PtrList implementation

See merge request Development/OpenFOAM-plus!193
2018-03-26 18:41:42 +01:00
db76bbbac0 TUT: clean out old tutorial build directories 2018-03-26 15:54:31 +02:00
36719bf55b STYLE: consistent lookupOrDefault template parameters
- in many cases can just use lookupOrDefault("key", bool) instead of
  lookupOrDefault<bool> or lookupOrDefault<Switch> since reading a
  bool from an Istream uses the Switch(Istream&) anyhow

STYLE: relocated Switch string names into file-local scope
2018-03-26 09:09:09 +02:00
568fbf727d STYLE: simplify VectorSpaceOps template looping
- this is a continuation of commit ba92e75215 with simpler
  template logic.
2018-03-22 14:03:31 +01:00
5d008f7a18 ENH: improvements for PtrList, UPtrList and new PtrDynList container
- improve internal handling to permit deriving resizable containers
  (eg, PtrDynList).

- include '->' iterator dereferencing

- Only append/set non-const autoPtr references. This doesn't break
  existing code, but makes the intention more transparent.
2018-03-22 01:13:38 +01:00
35d348c00d BUG: guard against potential wasted memory in DynamicField
- specialize transfer and swap to ensure allocated capacity isn't
  forgotten.
2018-03-21 15:30:14 +01:00
018124e3bf STYLE: use 'return nullptr' for empty autoPtr/tmp returns
- both autoPtr and tmp are defined with an implicit construct from
  nullptr (but with explicit construct from a pointer to null).
  Thus is it safe to use 'nullptr' when returning an empty autoPtr or tmp.
2018-03-21 09:31:09 +01:00
4cb763f9d2 STYLE: make null constructed lists constexpr, noexcept
- can assist the compiler in producing tighter code.
2018-03-19 13:53:28 +01:00
ca15b5779d Merge remote-tracking branch 'origin/master' into safe-develop 2018-03-22 23:47:20 +01:00
e53384362c ENH: added surfaceFieldValue uniformity operation 2018-03-22 22:38:34 +01:00
acfa0d3ed1 ENH: add bounding to surfMeshes variant of sampled planes (issue #714) 2018-03-22 14:47:53 +01:00
2db4b0867e CONFIG: consolidate C++ flags per compiler type
- easier to ensure that flags are consistent
2018-03-21 11:50:57 +01:00
936d897768 ENH: ConeNozzleInjection - added ability for the injector to move
The set of injectionMethods has been extended to include a new option:

    injectionMethod movingPoint;

The position is then read as a TimeFunction1 entry, e.g. for a 'table'
type:

    position        table
    (
        (0 (-0.009 0.0995 0))
        (1e-3 (0.009 0.0995 0))
    );

where the list corresponds to the tuples (time (position)), and the time
is relative to the start of injection (SOI)
2018-03-21 16:08:52 +00:00
a0a039ad57 ENH: armclang: new compiler type. Fixes #779. 2018-03-21 12:08:44 +00:00
710117fe2b ENH: checkMesh: output cellRegion field. Fixes #763. 2018-03-21 11:41:57 +00:00
46aac34956 ENH: snappyHexMeshDict: improved comment 2018-03-21 11:01:30 +00:00
872ac6c6c0 Merge remote-tracking branch 'origin/master' into develop 2018-03-20 10:52:54 +00:00
f0435beb9c Merge remote-tracking branch 'origin/master' into develop 2018-03-16 23:38:29 +01:00
2f86cdc712 STYLE: more consistent use of dimensioned Zero
- when constructing dimensioned fields that are to be zero-initialized,
  it is preferrable to use a form such as

      dimensionedScalar(dims, Zero)
      dimensionedVector(dims, Zero)

  rather than

      dimensionedScalar("0", dims, 0)
      dimensionedVector("zero", dims, vector::zero)

  This reduces clutter and also avoids any suggestion that the name of
  the dimensioned quantity has any influence on the field's name.

  An even shorter version is possible. Eg,

      dimensionedScalar(dims)

  but reduces the clarity of meaning.

- NB: UniformDimensionedField is an exception to these style changes
  since it does use the name of the dimensioned type (instead of the
  regIOobject).
2018-03-16 10:24:03 +01:00
6a541ccc92 COMP: avoid attempted auto-vivify with PackedBoolList []
- also ensure fewer side-effects from inplaceReorder

- provide ListOps::reorder especially for PackedList and PackedBoolList
  since they behave differently from regular lists.
2018-03-15 15:20:00 +01:00
d17bc72585 ENH: consistency of HashSet setMany(), insertMany() with packed-list version
- this also provides a better separation of the intent
  (ie, inserting a single value, or inserting multiply values)
2018-03-14 21:08:29 +01:00
5d1fb23555 ENH: code reduction in PackedList, PackedBoolList (issue #751)
- eliminate iterators from PackedList since they were unused, had
  lower performance than direct access and added unneeded complexity.

- eliminate auto-vivify for the PackedList '[] operator.
  The set() method provides any required auto-vivification and
  removing this ability from the '[]' operator allows for a lower
  when accessing the values. Replaced the previous cascade of iterators
  with simpler reference class.

PackedBoolList:

- (temporarily) eliminate logic and addition operators since
  these contained partially unclear semantics.

- the new test() method tests the value of a single bit position and
  returns a bool without any ambiguity caused by the return type
  (like the get() method), nor the const/non-const access (like
  operator[] has). The name corresponds to what std::bitset uses.

- more consistent use of PackedBoolList test(), set(), unset() methods
  for fewer operation and clearer code. Eg,

      if (list.test(index)) ...    |  if (list[index]) ...
      if (!list.test(index)) ...   |  if (list[index] == 0u) ...
      list.set(index);             |  list[index] = 1u;
      list.unset(index);           |  list[index] = 0u;

- deleted the operator=(const labelUList&) and replaced with a setMany()
  method for more clarity about the intended operation and to avoid any
  potential inadvertent behaviour.
2018-03-13 08:32:40 +01:00
23b6ea4b85 ENH: provide iterators for IndirectList, UIndirectList
- consistency with other containers.
  Allows range-for, enables various std algorithms, and can be used
  with ListOp::create() with an iterator range.
2018-03-07 17:50:34 +01:00
77338c8bd0 ENH: reduce overhead for clockTime, cpuTime
- clockValue class for managing the clock values only, with a null
  constructor that does not query the system clock (can defer to later).
  Can also be used directly for +/- operations.

- refactor clockTime, cpuTime, clock to reduce storage.
2018-03-15 10:01:51 +01:00
fb4c99b698 STYLE: minor cleanup of contiguous (issue #769) 2018-03-14 21:01:44 +01:00
5542ff6351 STYLE: derive always/never predicates from std types
- make constexpr noexcept
2018-03-14 18:04:42 +01:00
11027b8df6 COMP: Correction for clang 2018-03-16 11:12:47 +00:00
63f60cef59 BUG: Reinstated regex functionality for particle local interaction 2018-03-16 11:01:04 +00:00
bac943e6fc ENH: new bitSet class and improved PackedList class (closes #751)
- The bitSet class replaces the old PackedBoolList class.
  The redesign provides better block-wise access and reduced method
  calls. This helps both in cases where the bitSet may be relatively
  sparse, and in cases where advantage of contiguous operations can be
  made. This makes it easier to work with a bitSet as top-level object.

  In addition to the previously available count() method to determine
  if a bitSet is being used, now have simpler queries:

    - all()  - true if all bits in the addressable range are empty
    - any()  - true if any bits are set at all.
    - none() - true if no bits are set.

  These are faster than count() and allow early termination.

  The new test() method tests the value of a single bit position and
  returns a bool without any ambiguity caused by the return type
  (like the get() method), nor the const/non-const access (like
  operator[] has). The name corresponds to what std::bitset uses.

  The new find_first(), find_last(), find_next() methods provide a faster
  means of searching for bits that are set.

  This can be especially useful when using a bitSet to control an
  conditional:

  OLD (with macro):

      forAll(selected, celli)
      {
          if (selected[celli])
          {
              sumVol += mesh_.cellVolumes()[celli];
          }
      }

  NEW (with const_iterator):

      for (const label celli : selected)
      {
          sumVol += mesh_.cellVolumes()[celli];
      }

      or manually

      for
      (
          label celli = selected.find_first();
          celli != -1;
          celli = selected.find_next()
      )
      {
          sumVol += mesh_.cellVolumes()[celli];
      }

- When marking up contiguous parts of a bitset, an interval can be
  represented more efficiently as a labelRange of start/size.
  For example,

  OLD:

      if (isA<processorPolyPatch>(pp))
      {
          forAll(pp, i)
          {
              ignoreFaces.set(i);
          }
      }

  NEW:

      if (isA<processorPolyPatch>(pp))
      {
          ignoreFaces.set(pp.range());
      }
2018-03-07 11:21:48 +01:00
4f880ba8ea ENH: timeVaryingMappedFixedValue - added option to use an alternate points file name 2018-02-23 14:41:01 +00:00
65fd9b8b4b ENH: turbulenceFields FO - added nuTilda and turbulence length scale 2018-02-23 14:39:51 +00:00
6a024a7b71 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-03-15 08:13:56 -07:00
949a047f27 BUG: Correcting dictionary constructor for swirlFanVelocity 2018-03-15 08:09:07 -07:00
bf74bf32fd Merge branch 'feature-shortestPathSet' into 'develop'
Feature shortest path set

See merge request Development/OpenFOAM-plus!151
2018-03-15 10:18:38 +00:00
2386de9bf4 Merge remote-tracking branch 'origin/develop' into feature-shortestPathSet 2018-03-15 10:03:22 +00:00
e10575ee31 COMP: Allwmake: link order. Fixes #765. 2018-03-15 08:51:33 +00:00
e92aa8fce4 ENH: reduced amount seeding in regionSplit
- now only seed boundary faces and an internal face of cell that itself
  has a blocked face.
2018-03-14 16:21:58 +01:00
520c14c136 ENH: add meshTools polyFields
- provides a simple means of writing an internal dimensioned field
  when fvMesh is not available (eg, during mesh creation).
2018-03-14 13:04:22 +01:00
a6fb0436d5 BUG: fvMotionSolvers: fix dimensions. Fixes #765. 2018-03-14 11:07:56 +00:00
ac027daf36 STYLE: pointDisplacement: fix header 2018-03-14 11:05:37 +00:00
5a816c45a7 ENH: fvMotionSolvers: add fvOptions. Fixes #765. 2018-03-12 14:14:48 +00:00
239c96bf28 ENH: checkMesh: minTetVolume field. Fixes #763. 2018-03-12 09:29:17 +00:00
69ebe127a8 ENH: shm: feature angle. See #699. 2018-03-08 15:14:42 +00:00
3269ba0df9 ENH: shm: Parallel consistent extrusion. Fixes #759. 2018-03-08 15:07:24 +00:00
cb03d0bcf4 STYLE: localPointRegion: minor comment 2018-03-08 15:00:45 +00:00
d1b4471141 BUG: snappyHexMesh: make corner-point detection compatible with cutting 2018-02-21 11:15:38 +00:00
da26c3985e SUBMODULE: avalanche update - movable references in polyMesh constructor 2018-03-07 18:08:37 +01:00
451f8e0357 Merge remote-tracking branch 'origin/master' into develop 2018-03-07 18:08:07 +01:00
9670bf8220 Merge branch 'feature-memory-containers' into 'develop'
Feature memory containers

See merge request Development/OpenFOAM-plus!192
2018-03-07 16:58:10 +00:00
664685f7fe CONFIG: bump API version number to 1803 to account for removal of Xfer
- primary points for an external user are the polyMesh constructor

- add config info for gcc-7.3.0

COMP: intel-2017. Ignore unknown pragmas. Disambiguate method resolution.
2018-03-05 20:18:26 +01:00
3d608bf06a ENH: remove reliance on the Xfer class (issue #639)
This class is largely a pre-C++11 holdover. It is now possible to
simply use move construct/assignment directly.

In a few rare cases (eg, polyMesh::resetPrimitives) it has been
replaced by an autoPtr.
2018-03-05 13:28:53 +01:00
081783db6c ENH: add Xfer rvalue(), valid() methods
- rvalue() is a (transitional) means of converting Xfer content to a
  reference for move construct, move assign semantics.

- valid() method for consistency with autoPtr and tmp classes
2018-02-28 09:30:31 +01:00
7e84380783 GIT: corrected incorrect merge artifacts
STYLE: simplified output logic, reduced duplicate code in CompactIOList
2018-02-27 11:48:34 +01:00
57291e8692 STYLE: use autoPtr::New and tmp::New for simple return types 2018-02-26 14:00:30 +01:00
52b36f84b5 ENH: cleanup tmp class (issue #639)
Improve alignment of its behaviour with std::shared_ptr

  - element_type typedef
  - swap, reset methods

* additional reference access methods:

cref()
    returns a const reference, synonymous with operator().
    This provides a more verbose alternative to using the '()' operator
    when that is desired.

        Mnemonic: a const form of 'ref()'

constCast()
    returns a non-const reference, regardless if the underlying object
    itself is a managed pointer or a const object.
    This is similar to ref(), but more permissive.

        Mnemonic: const_cast<>

    Using the constCast() method greatly reduces the amount of typing
    and reading. And since the data type is already defined via the tmp
    template parameter, the type deduction is automatically known.

    Previously,

        const tmp<volScalarField>& tfld;

        const_cast<volScalarField&>(tfld()).rename("name");
        volScalarField& fld = const_cast<volScalarField&>(tfld());

    Now,

        tfld.constCast().rename("name");
        auto& fld = tfld.constCast();

--

BUG: attempts to move tmp value that may still be shared.

- old code simply checked isTmp() to decide if the contents could be
  transfered. However, this means that the content of a shared tmp
  would be removed, leaving other instances without content.

* movable() method checks that for a non-null temporary that is
  unique (not shared).
2018-02-26 12:05:00 +01:00
660f3e5492 ENH: cleanup autoPtr class (issue #639)
Improve alignment of its behaviour with std::unique_ptr

  - element_type typedef
  - release() method - identical to ptr() method
  - get() method to get the pointer without checking and without releasing it.
  - operator*() for dereferencing

Method name changes

  - renamed rawPtr() to get()
  - renamed rawRef() to ref(), removed unused const version.

Removed methods/operators

  - assignment from a raw pointer was deleted (was rarely used).
    Can be convenient, but uncontrolled and potentially unsafe.
    Do allow assignment from a literal nullptr though, since this
    can never leak (and also corresponds to the unique_ptr API).

Additional methods

  - clone() method: forwards to the clone() method of the underlying
    data object with argument forwarding.

  - reset(autoPtr&&) as an alternative to operator=(autoPtr&&)

STYLE: avoid implicit conversion from autoPtr to object type in many places

- existing implementation has the following:

     operator const T&() const { return operator*(); }

  which means that the following code works:

       autoPtr<mapPolyMesh> map = ...;
       updateMesh(*map);    // OK: explicit dereferencing
       updateMesh(map());   // OK: explicit dereferencing
       updateMesh(map);     // OK: implicit dereferencing

  for clarity it may preferable to avoid the implicit dereferencing

- prefer operator* to operator() when deferenced a return value
  so it is clearer that a pointer is involve and not a function call
  etc    Eg,   return *meshPtr_;  vs.  return meshPtr_();
2018-02-26 12:00:00 +01:00
fc92d30e74 ENH: improvements for labelRange
- constexpr, noexcept.
  Added an 'at()' method for returning an iterator within the range
  and changed operator()(label) to have behaviour as per found().
  This makes the labelRange usable as a unary predicate.

- added templated conversion class 'toLabelRange'

- add range() method to polyPatch and surfZone classes, and corresponding
  templated conversion functors.
  For example,

      auto patchDims = ListOps::create<labelRange>
      (
          mesh.boundaryMesh(),
          toLabelRange<polyPatch>()
      );

  to create a List<labelRange> representing the patch extents.
2018-03-04 20:30:34 +01:00
bcabe827f6 ENH: dedicated HashSetOps, HashTableOps namespaces
- relocated HashSetPlusEqOp and HashTablePlusEqOp to
  HashSetOps::plusEqOp and HashTableOps::plusEqOp, respectively

- additional functions for converting between a labelHashSet
  and a PackedBoolList or List<bool>:

  From lists selections to labelHashSet indices:

      HashSetOps::used(const PackedBoolList&);
      HashSetOps::used(const UList<bool>&);

  From labelHashSet to list forms:

      PackedBoolList bitset(const labelHashSet&);
      List<bool> bools(const labelHashSet&);
2018-03-06 11:41:34 +01:00
15f7260884 ENH: cleanup of ListOps, ListListOps. Adjustments to List, PackedList.
- relocated ListAppendEqOp and ListUniqueEqOp to ListOps::appendEqOp
  and ListOps::UniqueEqOp, respectively for better code isolation and
  documentation of purpose.

- relocated setValues to ListOps::setValue() with many more
  alternative selectors possible

- relocated createWithValues to ListOps::createWithValue
  for better code isolation. The default initialization value is itself
  now a default parameter, which allow for less typing.

  Negative indices in the locations to set are now silently ignored,
  which makes it possible to use an oldToNew mapping that includes
  negative indices.

- additional ListOps::createWithValue taking a single position to set,
  available both in copy assign and move assign versions.
  Since a negative index is ignored, it is possible to combine with
  the output of List::find() etc.

STYLE: changes for PackedList

- code simplication in the PackedList iterators, including dropping
  the unused operator() on iterators, which is not available in plain
  list versions either.

- improved sizing for PackedBoolList creation from a labelUList.

ENH: additional List constructors, for handling single element list.

- can assist in reducing constructor ambiguity, but can also helps
  memory optimization when creating a single element list.
  For example,

    labelListList labels(one(), identity(mesh.nFaces()));
2018-03-01 14:12:51 +01:00
ffd7b00ad5 ENH: fvMatrix::setReferences() single value variant 2018-03-02 13:27:34 +01:00
330b113abc BUG: incorrect cellId check in fvMatrix::setReferences() 2018-03-02 13:17:54 +01:00
53ab527b45 ENH: added constexpr, noexcept for bool, Switch
- rationalized some method naming.
  Eg, c_str() instead of asText()
2018-03-03 20:32:49 +01:00
13ea73c31c ENH: cleanup, extend zero/one classes
- constexpr, noexcept on various bits

- addition of a 'one::minus' class that returns '-1' instead of '1'.
  There are no additional operations defined for this class,
  but it can be used in various places to signal alternative behaviour
  such as "initialize to a negative or other invalid value"
2018-03-02 10:04:56 +01:00
b4703f4a08 ENH: pre-cleanup of Xfer class (issue #639)
- This class is largely a pre-C++11 holdover, prior to having movable
  references.

- align internals with autoPtr instead of always unconditionally
  allocating memory. The valid() method can be used to check for a null
  pointer.

- Consolidate into a single file, in anticipation of future removal.
2018-03-04 21:38:33 +01:00
9cd9e812d2 COMP: avoid compiler warning 'assuming signed overflow does not occur' 2018-02-22 14:21:16 +01:00
a843054b7a ENH: more generous range check for UList<bool>::operator[] specialization
- now also handles negative indices without issue.
  This increases its robustness for predicate type of use.
2018-02-28 09:07:13 +01:00
799924e79a BUG: inverted logic in UList::operator== (introduced by a0148ac095) 2018-02-28 08:48:13 +01:00
46e73fe4dc Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-02-23 08:18:09 -08:00
fe2e75c7dc ENH: Adding swirlFanVelocity to files in finiteVolume and change fanFvPatch operation 2018-02-23 08:16:55 -08:00
3371ed8fac Merge branch 'feature-linked-lists' into 'develop'
several improvements for linked-lists

See merge request Development/OpenFOAM-plus!177
2018-02-23 10:34:42 +00:00
3a4b92c4b2 STYLE: remove deprecated and unused ListOps
- deprecated MAR-2017

    subset(const UList<T>& select, const T& value, const ListType&);
    inplaceSubset(const UList<T>& select, const T& value, ListType&);

  The subsetList/inplaceSubsetList variants with a unary predicate
  provide more flexible and robuster solutions.

- deprecated MAR-2017

    initList(const T[mRows]);
    initListList(const T[mRows][nColumns]);

  Required prior to the addition of constructors with
  std::initializer_list
2018-02-22 12:24:48 +01:00
37e248c74b STYLE: consistent use of wordHashSet instead of HashSet<word>
- the wordHashSet typedef is always available when HashSet has been
  included.

- use default HashTable key (word) instead of explicitly mentioning it
2018-02-22 11:19:47 +01:00
f95f8bf512 COMP: wmake/wmakePrintBuild -api failed to extract API number 2018-02-22 10:54:16 +01:00
35b3d1c6ff STYLE: provide coordinateSystems names() method for consistency 2018-02-22 10:44:25 +01:00
bdb616de24 SUBMODULE: cfmesh update - using findIndices instead of findStrings 2018-02-22 09:43:56 +01:00
ec38e7a408 ENH: prevent conversion of string to regExp in stringListOps (closes #739)
* For most cases, this conversion would be largely unintentional
  and also less efficient. If the regex is desirable, the caller
  should invoke it explicitly.
  For example,

      findStrings(regExp(str), listOfStrings);

  Or use one of the keyType, wordRe, wordRes variants instead.
  If string is to be used as a plain (non-regex) matcher,
  this can be directly invoked

      findMatchingStrings(str, listOfStrings);

  or using the ListOps instead:

      findIndices(listOfStrings, str);

* provide function interfaces for keyType.
2018-02-22 09:28:03 +01:00
f959927910 ENH: improve consistency of ListOps and stringListOps
- subsetList, inplaceSubsetList with optional inverted logic.

- use moveable elements where possible.

- allow optional starting offset for the identity global function.
  Eg,  'identity(10, start)' vs 'identity(10) + start'
2018-02-21 12:58:00 +01:00
3ee2f3293e STYLE: avoid global findIndex() in favour of UList::find() 2018-02-21 11:50:34 +01:00
c126464d1c ENH: change wordRes to be a List of wordRe instead of a wrapper (issue #259)
- this permits direct storage of a list with additional matcher
  capabilities

- provide wordRes::matcher class for similar behaviour as previously
2018-02-21 10:05:30 +01:00
03b287ed24 COMP: adjust tests to compile with current code base 2018-02-20 17:24:08 +01:00
87b1bbacd8 ENH: support writeLagrangianPositions in redistributePar (issue #702) 2018-02-20 15:22:47 +01:00
0d3d895d4d STYLE: use slash-scoping for foamDictionary usage
Eg, -entry boundaryField/wall2/q  vs. boundaryField.wall2.q

- remove unneeded quoting when calling foamDictionary
2018-02-20 13:13:34 +01:00
fe140cd6c5 TUT: test mode not respected (closes #710)
- now replaced 'if ! isTest' with 'if notTest' for most cases.
2018-02-20 12:54:44 +01:00
63edb6024b STYLE: improve robustness of wall interactions code (issue #737) 2018-02-20 12:19:38 +01:00
ad871a16fc BUG: spray/wall interactions failing in parallel (closes #737)
- should have been limited to non-processor patches only
2018-02-20 11:51:08 +01:00
80fad8483b ENH: add polyBoundaryMesh::nNonProcessor() method
- returns the number of non-processorPolyPatch patches, which is invariant
  across all processors.
2018-02-20 11:41:13 +01:00
8716061a4a ENH: support local InfoSwitch for writeLagrangianPositions (issue #721)
- remove writeLagrangianCoordinates as InfoSwitch, since this is
  something that a regular user should not be able to disable.
2018-02-19 15:03:22 +01:00
d69c26311f STYLE: relocate geometryType enum to cloud class (issue #721) 2018-02-19 12:40:06 +01:00
cbbb9753eb STYLE: consolidate positionsCompat1706 structure (issue #721) 2018-02-19 11:57:57 +01:00
3c35c3535e BUG: Fixing bug in dimensioning variables for parallel case 2018-02-21 15:36:30 -08:00
240e304ba2 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-02-21 10:32:44 -08:00
543ac07774 BUG: Fixing constructors from dictionary to avoid hanging in parallel when patch size is zero 2018-02-21 10:31:49 -08:00
32a854d2e2 ENH: meshStructure: make sense in parallel. Fixes #732. 2018-02-15 09:08:40 +00:00
8033592eb1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-02-14 10:17:32 +00:00
ad3d5020f7 ENH: foamDictionary. Added comment. Fixes #316. 2018-02-14 10:17:13 +00:00
88f4b6ca8d ENH: optionally limit systemCall function-object to master only (closes #729) 2018-02-09 19:24:31 +01:00
3e3c97397e STYLE: simplify hashing to use struct instead of class
- more consistent with STL practices for function classes.

- string::hash function class now operates on std::string rather
  than Foam::string since we have now avoided inadvertent use of
  string conversion from int in more places.
2018-02-09 15:34:59 +01:00
09a6e94073 BUG: incorrect HashTable / HashSet instances
- Eg instead of using labelHashSet, used HashSet<label> which uses
  the string::hash for hashing. Other places inadvertently using the
  string::hash instead of Hash<label> for hashing.

STYLE: use Map<..> instead of HashTable<.., label, Hash<label>>

- reduces clutter
2018-02-09 09:30:02 +01:00
806b668418 STYLE: two-parameter Foam::name replaced by word::printf (issue #724)
- reduces some ambiguity and clarifies the expected output and
  behaviour.

STYLE: reduce some automatic conversions of char to string
2018-02-08 12:00:54 +01:00
fa8d972796 STYLE: replace HashSet/HashTable xfer with equivalent movable (issue #726)
- avoid confusion by using HashTable::lookup(key, deflt) explicitly
  instead of allowing an operator() version.
2018-02-08 10:52:29 +01:00
e42c228155 ENH: cleanup List constructors (issue #725)
- add copy construct from UList

- remove copy construct from dissimilar types.

  This templated constructor was too generous in what it accepted.
  For the special cases where a copy constructor is required with
  a change in the data type, now use the createList factory method,
  which accepts a unary operator. Eg,

      auto scalars = scalarList::createList
      (
          labels,
          [](const label& val){ return 1.5*val; }
      );
2018-02-08 08:53:14 +01:00
e27e566345 ENH: blockMesh: stabilise multi-surface intersection. Fixes #730. 2018-02-07 17:57:50 +00:00
4432ca2ef1 Merge branch 'feature-primitiveMesh' into 'develop'
BUG: primitiveMesh: cellPoints, cellEdges inconsistent API. Fixes #703.

See merge request Development/OpenFOAM-plus!189
2018-02-07 13:56:34 +00:00
9ede061dfe STYLE: snappyHexMesh: use iterator 2018-02-07 13:53:28 +00:00
7363a01aa3 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2018-02-01 16:00:37 -08:00
dada835d31 ENH: adding swirlFanVelocity BC for jumpCyclic types
It creates a swirling velocity across a baffle using jumpCyclic for vectors
2018-02-01 15:59:04 -08:00
e2332d6bd2 COMP: better handling of versioned cmake libraries
- sentinel was not working properly when building user-space routines
2018-01-31 08:35:56 +01:00
38803ddcf7 STYLE: use default construct/destroy for surface writers 2018-01-30 11:52:04 +01:00
25adff2503 ENH: improved handling of bounded sampled planes (issue #714)
- now warn about the following:
  * the bounding box does not overlap wih the global mesh
  * plane does not intersect the (valid) bounding box
  * plane does not intersect the global mesh

- add bounding to the "plane" variant of a sampled plane.
2018-01-30 10:15:19 +01:00
e6c1b394cc ENH: additional boundBox methods (issue #714)
-  boundBox::nDim() to assess dimensionality

- boundBox::intersect(const plane&) to test if plane intersects the
  bounding box
2018-01-29 10:07:44 +01:00
1b9aec2a3d CONP: suppress register warnings for clang only 2018-01-30 06:49:32 +01:00
e13f8a38a9 COMP: suppress warning about deprecated register keyword (Flex) 2018-01-29 09:13:28 +01:00
ba92e75215 BUG: array-bound error for SphericalTensor component-wise functions
STYEL: use constexpr for VectorSpaceOps
2018-01-29 08:56:43 +01:00
25339a5b49 ENH: minor cleanup of the Xfer class
- simplify structure, removed unused constuctors.

- transfer from base objects via '=' assignment removed as being too
  non-transparent

- add New factory method with perfect forwarding.
2018-01-26 15:53:57 +01:00
db1c1e89be ENH: avoid xfer on simple data types
- in many places can use move construcors or rely on RVO
2018-01-26 12:50:06 +01:00
fa3acc9955 ENH: make CompactListList swapable and move construct/assignable 2018-01-26 12:19:48 +01:00
a0148ac095 ENH: replace reverse iterators for UList
- use std::reverse_iterator adaptors, avoid the array-bounds warning
- use pointer arithmetic instead of dereferencing the internal array

- adjust logic to use 'operator<' instead of 'operator>' in sorting.
  This creates less work when making other classes sortable.
2018-01-26 07:52:26 +01:00
d029f4c5c9 ENH: improved swap/transfer methods for FixedList
- the transfer method was previously a copy

- use std::reverse_iterator adaptors in FixedList
  This greatly reduces the amount of code and now avoids the array-bounds
  warning for FixedList::rend()

- use pointer arithmetic instead of dereferencing the internal array
2018-01-25 18:23:11 +01:00
8fc27e0ec8 ENH: make hashedWordList movable 2018-01-25 15:00:25 +01:00
4e47be34d2 Merge branch 'master' into develop 2018-01-25 11:13:30 +00:00
915e8c9f35 ENH: remove Foam::Swap specializations for HashSet, HashTable
- without these will use the normal move construct + move assign.
  This is similarly efficient, but avoids the inadvertently having the
  incorrect Swap being used for derived classes.

STYLE: remove unused xfer methods for HashTable, HashSet

- unneeded since move construct and move assignment are possible
2018-01-25 12:13:16 +01:00
6d75552a77 Merge remote-tracking branch 'origin/master' into develop 2018-01-25 11:59:12 +01:00
7ee93afe9e ENH: allow early completion in PackedBoolList::used()
- can stop producing content when the target number of entries has
  been reached.

- change return type to labelList instead an Xfer container.
  This allows return-value-optimization and avoids a surrounding
  allocation. This potentially breaks existing code.

- make PackedList and PackedBoolList moveable. Drop xfer wrappers.
2018-01-25 10:16:23 +01:00
de4a1eeedb CONFIG: improve evaluation of arguments for foamEtcFile
- forward command-line arguments for paraview, where they may also be
  evaluated (cshrc, POSIX shell)
  Eg,
      . etc/bashrc ParaView_VERSION=5.4.1-mpipy
      source etc/cshrc ParaView_VERSION=5.4.1-mpipy
2018-01-24 12:15:09 +01:00
9bd7ea593e ENH: added fileName::relative() method
- this currently just strips off the leading parent directory name

     "/this/path/and/subdirs/name"

     relative("/this/path")  -> "and/subdirs/name"
     relative("/this")       -> "path/and/subdirs/name"
2018-01-23 18:25:55 +01:00
e98ff5ec73 Merge branch 'feature-LagrangianPatchInterationInfo' into 'develop'
ENH: Adding optional output information ordered by injectorID to LocalInteraction.

See merge request Development/OpenFOAM-plus!187
2018-01-24 08:30:27 +00:00
cf728cef6e STYLE: use Pair flip() method instead of global Swap() function 2018-01-23 17:22:57 +01:00
39ee5d5079 ENH: add HashTable += operation (combines HashTables)
- adjust return values of HashSet operators.
2018-01-23 16:35:43 +01:00
7f3d4b3554 Merge branch 'master' into develop 2018-01-23 16:11:28 +01:00
dc3e4e2c47 ENH: DEShybrid scheme - LES delta name now input instead of default of
'delta'

The scheme should now be specified using, e.g.

    div(phi,U)      Gauss DEShybrid
        linear                    // scheme 1
        linearUpwind grad(U)      // scheme 2
        hmax                      // LES delta name, e.g. 'delta', 'hmax'
        0.65                      // DES coefficient, typically = 0.65
        30                        // Reference velocity scale
        2                         // Reference length scale
        0                         // Minimum sigma limit (0-1)
        1                         // Maximum sigma limit (0-1)
        1.0e-03;                  // Limiter of B function, typically 1e-03
2018-01-23 10:24:33 +00:00
757b8625de Revert "STYLE: overset: warning message. Fixes #691."
This reverts commit 0ee1ed638f.
2018-01-22 16:02:02 +00:00
0ee1ed638f STYLE: overset: warning message. Fixes #691. 2018-01-22 15:22:48 +00:00
5b005095ca STYLE: fvOptions: typos 2018-01-22 11:55:43 +00:00
038bb40a79 COMP: resolve template qualification and other issues for clang-5.0.1 2018-01-22 15:13:39 +01:00
479b8e9d01 CONFIG: bump to llvm-5.0.1 version 2018-01-22 14:47:38 +01:00
0ac8a94122 Merge branch 'feature-memory-streams' into 'develop'
Feature memory streams

See merge request Development/OpenFOAM-plus!191
2018-01-22 13:22:32 +00:00
23c9dd716d ENH: coding cleanup for memory streams
- simplify structure.
- protect against nullptr when resetting memory streams
- make UIListStream swappable
- add uiliststream as an example of using a plain std::istream
2018-01-22 09:42:06 +01:00
0a5e4cf1b0 ENH: define stdFoam::min(), stdFoam::max() as constexpr as per C++14 2018-01-19 17:13:03 +01:00
991a15c4ad ENH: added readFloat(), readDouble() two-parameter forms
- as per readInt32(), readInt64() etc.
  Previously only had readScalar() in a two-parameter form.
2018-01-18 13:00:55 +01:00
89d49f002a Merge branch 'master' into develop 2018-01-18 09:33:40 +00:00
29c066d21e STYLE: avoid redundant eof check in UIPstream (issue #676) 2018-01-17 14:20:30 +01:00
17b82e5e7e Merge remote-tracking branch 'origin/master' into develop 2018-01-17 14:08:11 +01:00
12aa2d3c30 ENH: SubStrings::str(int) method for similarity with std::smatch
- define regExp::results_type using SubStrings container for handling
  groups. This makes a later shift to std::smatch easier, but changes
  the regExp API for matching with groups. Previously had list element
  0 for regex group 1, now list element 0 is the entire match and list
  element 1 is regex group 1.

  Old:
      List<std::string> mat;
      if (re.match(text, mat))  Info<< "group 1: " << mat[0] << nl;

  New:
      regExp::results_type mat;
      if (re.match(text, mat))  Info<< "group 1: " << mat.str(1) << nl;
2018-01-17 00:15:36 +01:00
82a9f2c949 BUG: spurious empty surface zones added (fixes #706)
- problems were introduced by the change ee252307d3 (issue #686).
  Affected reading of OBJ files.

  The fallback zone (used to catch unnamed groups/zones), which was
  previously filtered away when not needed. Now handle more explicitly.

ENH: use stringOps::split and low-level read{Label,Scalar} for parsing OBJ file
2018-01-16 13:20:58 +01:00
ff07ae1520 CONFIG: typo in config.csh/mpi
- also handle stray semi-colons in foamCleanPath.
  Treat like a ':' separator.
  They are incorrect and potentially problematic for shell evals.
2018-01-16 12:00:21 +01:00
a4fa743add ENH: cellCuts: dump only if loop 2018-01-15 17:34:33 +00:00
df30537a61 Merge branch 'style-config-files' into 'develop'
improve handling of gmp/mpfr configuration

See merge request Development/OpenFOAM-plus!190
2018-01-15 17:20:05 +00:00
434a2cb1b9 ENH: primitiveMesh: updated C++ 2018-01-15 15:59:40 +00:00
effe4ce217 BUG: primitiveMesh: cellPoints, cellEdges inconsistent API. Fixes #703. 2018-01-15 14:10:09 +00:00
2d51d4b340 ENH: support silent compat versions.
- can tag the version compatibility with a negative number to suppress
  the warnings but retain some information about which version was
  supported.
2018-01-15 10:09:21 +01:00
1b4807413f ENH: Adding report per injectorId to StandardWallInteraction 2018-01-12 15:43:47 -08:00
ad82072d0f Merge branch 'style-arglist-simplification' into 'develop'
Simplify argList methods names and add more compat options

See merge request Development/OpenFOAM-plus!188
2018-01-12 14:24:37 +00:00
110b00f048 ENH: improved handling of gmp/mpfr library settings (issue #674)
- export library path for gmp/mpfr from CGAL config files.
  This is required when non-system gmp/mpfr libraries are being
  used, but not using a ThirdParty compiler installation.

- automatically handle lib/ vs lib64/ (eg, for central installations)
  for packages such as boost, CGAL, etc. While the ThirdParty
  compilation of these will normally land in lib64/, this may not be
  the case when they are supplied by another means.

- reworked the handling of foamEtcFile and foamCleanPath for less
  clutter in the configuration files.
  Added the bin/tools/lib-dir script to handle logic that is
  too complex to easily manage in csh.
2018-01-11 01:30:23 +01:00
74b1757f07 ENH: Adding optional output information ordered by injectorID to LocalInteraction.
The total number of escaped|stick particles in patches can now be sorted by the injectorID from
which the particle originated. It uses outputByInjectorId keyword in the localInteractionCoeffs
dictionary
2018-01-10 09:29:18 -08:00
2feb11dbeb ENH: add testing for directory lister class 2018-01-10 15:01:12 +01:00
eb7f6d2406 ENH: add output methods for wordRes 2018-01-10 14:09:56 +01:00
2b0eaf2d38 ENH: add fileName::isBackup() method
- previously part of POSIX.C
2018-01-10 10:22:57 +01:00
c093095444 ENH: improve robustness of foamSearch (fixes #700) 2018-01-09 17:28:11 +01:00
c5f4dbd866 ENH: foamRunTutorials now skips tutorials with Allrun-optional
- for tutorials that are known to run poorly, can provide a
  placeholder Allrun-optional instead of the usual Allrun script.
  If this is detected, the case will be skipped.
2018-01-09 16:44:32 +01:00
ab38c04006 STYLE: note deprecated status for NamedEnum 2018-01-09 16:06:40 +01:00
2f32b586b5 ENH: PtrList, UPtrList cleanup
- rationalize iterators, reduce code duplication,
  improve assignment behaviour, moveable construct and assignment.
2018-01-09 13:15:50 +01:00
4deeba17c1 STYLE: restore use of ITstream in argList parsing
- can now be used as previously intended, since the scalarRange
  parsing has been fixed.
2018-01-08 17:10:58 +01:00
adbbd0e678 ENH: add argList option ignoring for compatibility upgrades
- can be used to handle when options become redundant, but it is
  undesirable to treat its presence as an error. Can now tag it as
  being ignored.

     argList::ignoreOptionCompat({"oldOption", 1706}, true);
     argList::ignoreOptionCompat({"oldBoolOpttion", 1706}, false);

     command  -oldOption xyz -oldBoolOpttion
2018-01-08 16:25:27 +01:00
345a2a42f1 ENH: simplify method names for reading argList options and arguments
- use succincter method names that more closely resemble dictionary
  and HashTable method names. This improves method name consistency
  between classes and also requires less typing effort:

    args.found(optName)        vs.  args.optionFound(optName)
    args.readIfPresent(..)     vs.  args.optionReadIfPresent(..)
    ...
    args.opt<scalar>(optName)  vs.  args.optionRead<scalar>(optName)
    args.read<scalar>(index)   vs.  args.argRead<scalar>(index)

- the older method names forms have been retained for code compatibility,
  but are now deprecated
2018-01-08 15:35:18 +01:00
243eda1f7a Merge remote-tracking branch 'origin/master' into develop 2018-01-08 15:05:31 +01:00
9dc361dae9 STYLE: avoid unnecessary use of optionLookup
- direct parsing of -funcs to ITstream.
- use direct lookup when the option is a word/string
2018-01-08 12:38:53 +01:00
199dc3376c STYLE: missing comma in Test-decomposePar 2018-01-08 11:57:54 +01:00
4fd32bfdf2 COMP: incorrect executable path sphereSurfactantFoam (closes #695) 2018-01-08 10:51:00 +01:00
f55a42a835 ENH: improve robustness of scalarRanges from string (fixes #673)
- now avoid Istream and token mechanism in favour of a simpler string
  parser. This makes the code clearer, smaller, robuster.

- provide convenience ge/gt/le/lt static constructors for scalarRange
  for using bounds directly with specifying via a string parameter.

- scalarRange, scalarRanges now follow the unary predicate pattern
  (using an operator() for testing). This allows their reuse in
  other contexts. Eg, for filtering operations:

      myHash.filterValues(scalarRange::ge(100));

- remove unused scalarRanges methods that were specific to handling
  lists of time values. These were superseded by timeSelector methods
  several versions ago.
2018-01-08 09:59:04 +01:00
85eb441bea STYLE: add constexpr to PackedList methods 2018-01-04 19:16:15 +01:00
f868b11a31 BUG: snappyHexMesh: incorrect feature angle. Fixes #699. 2018-01-08 11:50:33 +00:00
34a71c19dc ENH: plane: null constructor so we can have a List of them 2018-01-04 14:43:01 +00:00
931296ef3d ENH: alphatJayatillekeWallFunction - re-worked to remove dependency on k. See #684 2018-01-04 12:24:57 +00:00
534c173a09 TUT: cleanup lumpedPointMotion copied/derived files (closes #683) 2018-01-03 10:48:17 +01:00
ee252307d3 BUG: distributedTriSurfaceMesh hangs (issue #686)
- caused by the removal of empty zones when reading the surface files
2018-01-03 10:34:23 +01:00
0282e47c26 ENH: snappyHexMesh: initial version of directional refinement 2017-12-11 17:23:33 +00:00
4408ec20b4 ENH: collated: switch off threading by default. See also #659. 2017-12-11 13:50:31 +00:00
fd4782f754 COMP: adjustments for 64-bit label-size 2017-12-11 10:22:06 +01:00
2d76c49b94 BUG: OFstreamCollator: checking for threads. Fixes #659. 2017-12-11 10:25:37 +00:00
eabce47e0d Merge branch 'feature-domain-decomposition' into 'develop'
Minor improvements for redistributePar

See merge request Development/OpenFOAM-plus!181
2017-12-08 17:09:44 +00:00
88423b2a6f TUT: snappyMultiRegionHeater with redistributePar 2017-12-08 16:06:30 +00:00
ddde330884 ENH: overset: new solvers, new stencil 2017-12-08 16:00:02 +00:00
700e17bdb4 INT: Initial check-in of IH Cantabria streamFunction wave generation
model and test case

Code supplied by Gabriel BARAJAS OJEDA
2017-12-08 15:54:34 +00:00
03b8275a83 ENH: add foamListRegions utility
- list all regions from constant/regionProperties:
     * foamListRegions

- list specific region type from constant/regionProperties:
     * foamListRegions fluid
     * foamListRegions solid
2017-12-08 14:05:25 +00:00
74b557d5f2 STYLE: indentation: trailing whitespace 2017-12-08 12:26:16 +00:00
cf15d299cc ENH: remove old proc-addressing when redistributing (issue #656)
- after redistribution, the old cellProcAddressing etc files are incorrect
  and potentially troublesome.
2017-12-08 12:02:09 +00:00
22b133a52a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-12-08 10:32:08 +00:00
bf49ae9bc4 ENH: readFields: suppress warning messages when reading surface fields. Fixes #654. 2017-12-08 09:55:00 +00:00
28d39110a8 ENH: readFields: suppress warning messages when reading surface fields 2017-12-08 09:55:00 +00:00
570e1ab0ba fixup CONFIG: update versions of ThirdParty software 2017-12-08 09:34:02 +00:00
405cf8129a CONFIG: update some wmake rules
- initial settings for ADIOS2, linuxARM64Gcc, linuxARM64Clang
2017-12-07 15:41:58 +00:00
f385e3b984 ENH: finiteArea support for paraview reader plugin (paraFoam) 2017-12-06 15:10:11 +00:00
1af512ae51 ENH: Added divergence scheme test case 2017-12-05 11:43:09 +00:00
1e7b67fdcf TUT: relocate externalCoupled heater tutorial, add steady-state version 2017-12-05 12:00:00 +01:00
0e2798399e ENH: add enthalpy sub-looping for chtMultiRegion* solvers 2017-12-05 12:00:00 +01:00
96ed3638e4 ENH: basic support for generic solution loop-control 2017-12-05 12:00:00 +01:00
e0f397d863 BUG: ensightSurfaceReader - corrected initial list sizing 2017-11-30 08:36:07 +00:00
610c290969 ENH: added functionObject::execute(int) method
- this is a provision for defining execute actions that can be called
  largely independently of the normal time-loop constraints. This can
  be useful to provide hooks for sub-cycling, or to define an action
  that can be triggered manually or on some other event.
2017-11-28 10:00:15 +01:00
cc5f30f25e ENH: several improvements for linked-lists
- support move construct/assignment for linked-lists themselves
  and when moving into a 'normal' list

- better consistency with begin/end signatures and the various
  iterators.

- for indirect linked-lists, provide iterator access to the underlying
  data element address:   iter.get()  vs  &(iter())

- add standard '->' indirection for iterators (as per normal STL
  definitions)
2017-11-27 14:11:25 +01:00
c2ff8ea99e ENH: Added finiteArea support to foamToVTK 2017-11-21 16:33:33 +00:00
05a8fe5dd3 STYLE: compact license text in config files for easier reading/editing 2017-11-20 09:00:10 +01:00
d6b3595fe8 BUG: Correcting expression for adimensional pressure drop table for fanFvPatchField 2017-11-16 11:01:54 -08:00
b2f002ba45 ENH: FFT - updated for fft of real data 2017-11-16 18:05:56 +00:00
93587afefc ENH: Avoidding 0/0 conflict in externalCoupledTemperatureMixed increaging the zero order of denomitaror 2017-11-15 12:58:58 -08:00
37d92d0714 ENH: adding non-dimensional option to fanFvPatchField.C 2017-11-15 12:54:09 -08:00
9d7df50822 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-11-15 10:06:35 -08:00
0bb53ab6f3 BUG: ptscotch: truncate decomposition back to correct number of cells. Fixes #642. 2017-11-15 12:34:39 +00:00
a14eb71160 COMP: various compilation changes
- label-size 64 build, compiler warnings, unused template argument,
  faMatrix::clone() method

STYLE: faScalarMatrix - moved info message to within a debug scope
2017-11-14 08:41:20 +00:00
56232cdab0 Merge branch 'style-write-entry' into 'develop'
STYLE: use Ostream writeEntry when writing key/value entries

See merge request Development/OpenFOAM-plus!168
2017-11-14 08:32:13 +00:00
6b32f7b474 Merge remote-tracking branch 'origin/develop' into develop 2017-11-13 11:45:40 +00:00
6eaa143825 BUG: foamListTimes: reinstated. Fixes #638. 2017-11-13 11:44:19 +00:00
0ca0a6264b STYLE: use readLabel/readScalar (string) instead of via IStringStream 2017-11-13 11:23:17 +01:00
817b9a14ba BUG: missing space in ensight (surface format) case file (closes #637)
- occurred when variable name exceeded the 15-char alignment format
  and the name run into the previous field.
2017-11-13 11:06:26 +01:00
14d4484fae STYLE: single-string findStrings deprecated in favour of stringOps::match
- reduces ambiguity between matching a list of strings and a single string.
2017-11-13 10:37:38 +01:00
5a6b59d8b0 ENH: snappyHexMesh: added missing entry 2017-11-13 08:57:43 +00:00
1d925c736c STYLE: searchableSurfaces: typo in comment 2017-11-08 14:20:47 +00:00
7924f24b4a STYLE: overLaplacianFoam: removed unused entries 2017-11-08 09:09:41 +00:00
4039933b89 Merge branch 'feature-function-object-field-input' into 'develop'
Feature function object field input

See merge request Development/OpenFOAM-plus!167
2017-11-13 09:10:55 +00:00
4466daa008 Merge branch 'feature-token-passing' into 'develop'
ENH: support change of Pstream buffer format via flag modifier

See merge request Development/OpenFOAM-plus!166
2017-11-13 09:00:25 +00:00
073aca9115 Merge branch 'feature-fieldAverage-windowing' into 'develop'
Feature field average windowing

See merge request Development/OpenFOAM-plus!165
2017-11-13 08:59:36 +00:00
8f444b7164 ENH: support change of Pstream buffer format via flag modifier
- allows changing the format of the sending OPstream at an arbitrary
  point in the transmission. The information is passed through the
  buffer and the receiving IPstream changes its format accordingly.
  This allows a temporary toggling of ASCII/BINARY mid-stream.
2017-11-13 09:21:11 +01:00
24d8c891d7 ENH: add bin/tools/foamCreateModuleInclude
- support when creating modules for OpenFOAM.
  Original source from Ivan Spisso (CINECA) modified by OpenCFD
2017-11-13 07:46:17 +01:00
4f1e4aa59e ENH: add token type for stream flags (ASCII/BINARY) 2017-11-12 16:57:37 +01:00
5281dd4877 ENH: changed return value to bool for Ostream::write(const token&)
- the return value signals if this method handled this particular type
  of token. This minor change allows this method to be used as a succinct
  prefilter an output token stream. It also provides better encapsulation
  of what the particular output stream handles.

  Eg,

      bool ok = os.write(tok);
      if (!ok)   // or   if (!ok && os.good())
      {
          os << tok;
      }

  instead of

      if (tok.type() == typeA || tok.type() == typeB || ...)
      {
          os.write(tok);
      }
      else
      {
          os << tok;
      }
2017-11-12 15:25:14 +01:00
c51ee22101 STYLE: fix stray use of argList option() instead of [] 2017-11-09 18:59:55 +01:00
166f62f19d STYLE: spelling, doxygen 2017-11-09 11:04:34 +01:00
59e8c39747 ENH: static parse methods for ITstream 2017-11-09 08:39:36 +01:00
cea5ca147d Merge branch 'feature-dictionary-methods' into 'develop'
dictionary compatibility/migration methods

See merge request Development/OpenFOAM-plus!162
2017-11-08 19:55:07 +00:00
e289c78027 COMP: mismatch of inline some HashTable methods 2017-11-08 20:44:43 +01:00
c7392f7fb0 ENH: additional dictionary compatibility/migration methods
- when dictionary keywords change between versions, the programmer
  can use these compatibility methods to help with migration.

    * csearchCompat, foundCompat, lookupEntryPtrCompat, lookupEntryCompat,
      lookupCompat, lookupOrDefaultCompat, readIfPresentCompat, ...

  They behave like their similarly named base versions, but accept an
  additional list of older keyword names augmented by a version number.
  For example,

      dict.readIfPresentCompat
      (
          "key", {{"olderName", 1612}, {"veryOld", 240}},
          myscalar
      );

   where 1612=OpenFOAM-v1612, 240=OpenFOAM-v2.4.x, etc.
2017-11-08 19:08:10 +01:00
8d5f28bcc0 ENH: dictionary add/set methods now return a pointer to the entry
- If the entry could be directly inserted: a pointer to the inserted entry.
- If a dictionary merge was required: a pointer to the dictionary that
  received the entry.
- Return nullptr on any type of insertion failure.

This change is code compatible with existing code since it only alters
a bool return value to be a pointer return value.
2017-11-08 17:43:28 +01:00
9edc0c15fe ENH: add rmDir silent option for all fileOperations implementations 2017-11-08 14:54:57 +01:00
ba39777818 COMP: Resolved compiler warnings 2017-11-08 08:48:48 +00:00
ec9a7cc016 ENH: function objects - enabled 'fields' entry to use patterns for some objects 2017-11-07 17:33:09 +00:00
69238a9e14 BUG: steadyStateDdtSchems - corrected oriented state of return fields for *Corr functions. Fixes #634 2017-11-07 12:10:47 +00:00
3611f03914 COMP: Removed unused variable 2017-11-07 11:31:21 +00:00
c1b7854cf7 COMP: Removed unused variable 2017-11-07 11:31:21 +00:00
6aa7b6ac2a STYLE: Header clean-up 2017-11-07 11:22:58 +00:00
54a4cafa12 Merge branch 'feature-token-passing' into 'develop'
Improvements to token handling

See merge request Development/OpenFOAM-plus!160
2017-11-07 14:16:22 +00:00
2ae2783635 ENH: add a test dictionary token streaming class 2017-11-07 13:12:43 +01:00
b8d5880447 STYLE: Header clean-up 2017-11-07 11:22:58 +00:00
f42ed2fc9f Merge branch 'fix_gl_632' into 'develop'
STYLE: Corrected file name in surface noise, added README file

See merge request Development/OpenFOAM-plus!161
2017-11-07 10:50:02 +00:00
4bc9c98695 STYLE: Corrected file name in surface noise, added README file 2017-11-07 16:08:30 +05:30
a7095ceded Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-11-06 09:05:02 -08:00
07e662a0ef BUG: Correcting adimensional formulation for fanPressureFvPatchScalarField 2017-11-06 09:04:15 -08:00
454e609fbc ENH: Adding momemtum predictor to chtSimpleFoam 2017-11-06 09:03:42 -08:00
ad116ef7f2 ENH: use updated ITstream for parsing strings to token lists 2017-11-06 17:38:53 +01:00
9ac1fa417b BUG: finiteArea: corrected reference access to tmps 2017-11-06 11:54:20 +00:00
c0ba7bf05a STYLE: use Ostream writeEntry when writing key/value entries
- makes for clearer code

ENH: make writeIfDifferent part of Ostream
2017-11-06 00:49:24 +01:00
61534989df ENH: simplify primitiveEntry parsing code, move append new tokens
- simplify string output code
2017-11-05 22:07:17 +01:00
c4de3e0a4d ENH: enhancements to behaviour of token
- improved memory alignment reduces overhead for Int32 compilation

- added move/swap semantics

- made the type() readonly in favour of setVariant() to allow change
  of variant within a particular storage representation.
  Eg, STRING -> VERBATIMSTRING.
2017-11-05 20:05:28 +01:00
e1b71c028c ENH: add move/swap semantics to string types and regExp
- move append() single element to List and DynamicList

ENH: add stringOps::count to avoid unnecessary string conversions
2017-11-05 13:26:10 +01:00
cae8a894cd ENH: allow creation of ITstream by parsing string 2017-11-06 09:25:58 +01:00
48332c8f16 functionObjects::ddt: New functionObject which calculates and writes the Eulerian time derivative of a field
Based on patch contributed by Tobias Holzmann
Resolves feature-request https://bugs.openfoam.org/view.php?id=2525
2017-11-05 10:58:07 +00:00
cad0455d46 TUT: consistent application name for lumpedPointMotion
- use simpleFoam for steady-state and change to pimpleFoam for
  transient. This provides better correspondence with the expected log
  output.
2018-07-23 09:12:06 +02:00
418cc9b268 STYLE: minor adjustments in wmake scripts.
- comments
- avoid egrep for getting processor count.
- wcleanBuild, wcleanPlatform with shorter form '-curr' instead of '-c'
  to avoid any potential user confusion with '-comp'
2018-07-22 18:28:29 +02:00
f9a956ba7e STYLE: use sigFpe::ignore helper class in runTimePostProcessing (issue #897) 2018-07-20 15:56:15 +02:00
56dd71ab11 CONFIG: cmake targets are globally unique
- unify CMakeLists naming and align content
2018-07-20 12:49:25 +02:00
96b65a781d STYLE: remove spacing around forAll macros and template '> >' closing 2018-07-06 11:03:28 +02:00
957d8dc38d CONFIG: force loading of shell functions (issue #944)
- this avoids a situation when an aborted sourcing of the etc/bashrc
  file can leave WM_SHELL_FUNCTIONS defined, which causes all
  subsequent sourcing to fail.
2018-07-19 16:57:38 +02:00
34a7ea5da7 STYLE: use auto + cfind for constructor tables 2018-07-19 15:55:08 +02:00
cdcbcf4c78 ENH: minor improvements for command-line handling
- check for excess input on command-line arguments

- reduce fileHandler warning verbosity when the output banner is
  disabled
2018-07-19 14:52:27 +02:00
6e2ba37963 CONFIG: new scotch version (6.0.6). Update clang minor versions. 2018-07-19 13:47:32 +02:00
ed4ffd8f89 ENH: add decomposePar -dry-run option
- can be used to test the behaviour of the decomposion and its
  characteristics without writing any decomposition to disk.
  Combine with -cellDist to visualize the expected decomposition
  result.
2018-07-19 11:04:38 +02:00
7cb5b638ad STYLE: more consistency in handling of -region vs -allRegions 2018-07-19 09:15:33 +02:00
8042647610 STYLE: use newer argList access methods 2018-07-19 08:32:18 +02:00
712f49758a TUT: update snappy dictionaries to use minMedialAxisAngle
- canonical parameter name changed from "minMedianAxisAngle" to
  "minMedialAxisAngle" (DEC-2013), but was never previously reported
  as having changed.
2018-07-18 16:47:34 +02:00
a592ebc073 STYLE: avoid unrestricted dictionary lookup in conversion, sampling, surfMesh
- aids with detection of excess tokens (issue #762)

- deprecated dictionary::operator[] in favour of the lookup() method
  which offers more flexibilty and clarity of purpose.
  Additionally, the read<> and get<> forms should generally be used
  instead anyhow.
2018-07-18 13:33:00 +02:00
956abe3f38 ENH: make setAverage optional for mapped patches (issue #943) 2018-07-18 12:17:36 +02:00
a225d5f87a ENH: more tuning parameters for user environment
- FOAM_CONFIG_NOUSER
  Suppress use of user/group configuration files.
  This is useful when packaging for a central installation.

- allow additional user tuning of compiler settings.
  Per-compiler overrides in "compiler-$WM_COMPILER" files
2018-07-18 10:25:55 +02:00
3bb5cef5bf ENH: decompsition: check for mesh dimensions. Fixes #937. 2018-07-18 09:29:28 +01:00
64855e8c12 STYLE: patchCloudSet: typo in header 2018-07-12 17:31:01 +01:00
84784c5061 Merge remote-tracking branch 'origin/master' into develop 2018-07-13 13:25:11 +02:00
71ab8a473d ENH: add normalise methods for vectors and normalised function
- the vector normalise() method modifies the object inplace,
  the normalised function returns a copy.

      vector vec1(1,2,3);
      vec1.normalise();
  vs
      vector vec1(1,2,3);
      vec1 /= mag(vec1) + VSMALL;

  For const usage, can use either of these

      const vector vec2a(normalised(vector(1,2,3)));
      const vector vec2b(vector(1,2,3).normalise());
2018-07-13 11:58:47 +02:00
0304911921 STYLE: more consistent use of dimensioned Zero, scalar decimal points
- use scalar(0) instead of scalar(0.0) etc
2018-07-13 10:28:48 +02:00
e9f0ebc730 GIT: fvSolution: multiple entries from merging. 2018-07-12 13:39:02 +01:00
9ee6036bb2 ENH: surfaceCheck. New writeSets option. Fixes #717. 2018-07-12 13:33:28 +01:00
cb727ab3d1 ENH: processorPolyPatch: warn for wrong number of processors. Fixes #933. 2018-07-12 13:32:04 +01:00
181582fef8 TUT: remove extraneous '}' from dictionary input 2018-07-11 14:24:49 +02:00
81840755fe SUBMODULE: bump cfmesh to develop branch 2018-07-10 19:21:47 +02:00
322d642b57 ENH: verify manual input for labelToCell etc (issue #895)
DOC: document topo sources inputs in doxygen format

ENH: check for excess tokens in dictionary input (issue #762)

- various bits of code cleanup (modernization) in meshTool/sets.
2018-07-07 00:22:58 +02:00
dda1c5f004 STYLE: naming inconsistency for "U" field (issue #917)
- had "UName" instead of "U" for the single field lookup.
2018-07-10 19:11:43 +02:00
a7e37656e8 ENH: reduce storage requirement for volumeType
- char instead of integer representation for the enumeration.

- additional constructor as lookupOrDefault from dictionary entry.
2018-07-11 08:50:38 +02:00
d530bc254a STYLE: code cleanup searchableSurface (issue #929)
- improve doxygen entries for searchable surfaces.

- support selection of searchable surfaces with shorter names.
  Eg,
      type   box | cylinder | ...;
  vs  type   searchableBox | searchableCylinder | ...;
2018-07-06 11:03:28 +02:00
1ee5144079 STYLE: reset version to plus after re-integration of the master branch 2018-07-10 16:44:43 +01:00
7b8e2b1a18 Merge remote-tracking branch 'origin/master' into develop 2018-07-10 16:42:59 +01:00
7156b40fb8 ENH: ensight: allow use for non-time directory based field. Fixes #919. 2018-07-05 13:53:59 +01:00
ad5ab870ef Merge branch 'feature-dictionary-checks' into develop 2018-07-05 13:40:25 +02:00
109a791d35 TUT: adjust dictionary parsing tests 2018-07-05 11:09:40 +02:00
e8fcd1d351 STYLE: enforce dictionary read length for read UNames/epsilonNames entry 2018-07-05 11:00:16 +02:00
209884d39b STYLE: enforce dictionary read length for box/boxes entry 2018-07-05 10:58:34 +02:00
8431964bcb STYLE: mark compatibility level for keyword functionObjectLibs (issue #912)
- was superseded by "libs" in 1612
2018-07-05 10:41:27 +02:00
f7dc92d744 STYLE: mark compatibility level for keyword redirectType (issue #912)
- was replaced with "name" in 1706
2018-07-05 09:26:26 +02:00
f3f30c94b4 ENH: improve detection of EOF missing/additional braces (issue #762)
- stricter checking for common dictionary input errors such as a
  missing ';' for primitive entries, extra or missing closing '}' etc.
2018-07-04 09:24:43 +02:00
2662042d49 ENH: improve controls for Time (issue #910)
- relocate some standard functionality to TimePaths to allow a lighter
  means of managing time directories without using the entire Time
  mechanism.

- optional enableLibs for Time construction (default is on)
  and a corresponding argList::noLibs() and "-no-libs" option

STYLE:

- mark Time::outputTime() as deprecated MAY-2016

- use pre-increment for runTime, although there is no difference in
  behaviour or performance.
2018-07-02 10:20:01 +02:00
e8c1ae3c16 ENH: sloshingTank2D: correct decomposeParDict. Fixes #913. 2018-07-04 17:18:06 +01:00
989ee54bb1 ENH: checkMesh: output volume of cellZone. Fixes #727. 2018-07-04 12:08:24 +01:00
252b5ff7dc BUG: snappyHexMesh: missing tutorial in ./Allrun. Fixes #916. 2018-07-02 16:09:49 +01:00
061a85858f ENH: support method/spawn as mpirunDebug command-line options 2017-11-04 17:25:26 +01:00
3d13220df4 STYLE: relocate charList typedef to containers 2017-11-04 16:05:32 +01:00
507486194e ENH: improved parallel transfer of strings
- support send/receive with embedded '\0' characters
2017-11-04 15:51:52 +01:00
590b319a78 TUT: 'restore0Dir -processors' with filtering of #include files 2017-11-04 14:59:59 +01:00
dd838766be STYLE: make memorybuf naming more consistent with std iostreams 2017-11-04 14:30:14 +01:00
ebd922a32e ENH: support longer doxygen brief descriptions. 2017-11-04 14:26:38 +01:00
f7ff26bd2d ENH: fieldAverage - enable suppressing of intermediate field writing for the exact method
Also updated/corrected restart behaviour
2017-10-30 13:47:32 +00:00
7a41a9c9c3 collatedFileOperation: preferentially collect all data in the simulation thread
so the write thread does not have to do any parallel communication.  This avoids
the bugs in the threading support in OpenMPI.

Patch contributed by Mattijs Janssens
Resolves bug-report https://bugs.openfoam.org/view.php?id=2669
2017-10-27 17:13:43 +01:00
ec761da0be COMP: Corrected construction from tmp compiler error 2017-12-07 09:29:27 +00:00
ea5df84dc0 COMP: 64 bit labels 2017-12-06 15:52:07 +00:00
2cd84dd091 ENH: snappyHexMeshDict: description of missing switch 2017-12-04 15:30:42 +00:00
5a455dac34 TUT: tutorial updates 2017-12-06 12:53:10 +00:00
b137005449 Merge remote-tracking branch 'origin/master' into develop 2017-12-06 12:52:12 +00:00
6b97bf54ab TUT: Adding Alltest scripts 2017-12-05 12:19:47 +00:00
6c44f9b102 Merge branch 'feature-profiling-summary' into 'develop'
minor improvements in profiling

See merge request Development/OpenFOAM-plus!178
2017-12-01 14:52:56 +00:00
8fc6bd17c9 ENH: improvements in profiling (issue #648)
- include amount of free system memory in profiling, which can give an
  indication of when swapping is about to start

- profilingSummary utility to collect profiling from parallel
  calculations. Collects profiling information from processor
  directories and summarize the time spent and number of calls as (max
  avg min) values.
2017-12-01 15:44:20 +01:00
e83a9db2ea Merge branch 'feature-domain-decomp' into 'develop'
Feature domain decomp (wp05)

See merge request Development/OpenFOAM-plus!163
2017-11-30 19:58:20 +00:00
dc2177cc68 Merge branch 'feature-trisurface-cleanup' into 'develop'
consolidate surfaceFormats for reading/writing triSurface

See merge request Development/OpenFOAM-plus!174
2017-11-30 08:46:43 +00:00
cdb22d4476 Merge branch 'feature-externalCoupled' into 'develop'
preliminary improvements for externalCoupled

See merge request Development/OpenFOAM-plus!175
2017-11-28 16:54:06 +00:00
57f750cc55 ENH: add simple subLoopTime
- similar idea as subCycleTime but without sub-dividing the time
  interval or incrementing time itself
2017-11-28 09:57:18 +01:00
bb0fa65122 ENH: respond to externalCoupled lock file contents
- waitForSlave now return a Time::stopAtControls enumeration:

    unknown:     when lockfile has no specially recognized content.
    endTime:     when lockfile contains "status=done"
    writeNow:    when lockfile contains "action=writeNow"
    nextWrite:   when lockfile contains "action=nextWrite"
    noWriteNow:  when lockfile contains "action=noWriteNow"

These values can be used by the caller to terminate the master
(OpenFOAM) as desired in response to information placed there by the
slave process.
2017-11-28 12:02:18 +01:00
402e605391 ENH: expose solutionControl::maxResiduals as a static with simpler parameters
- use a Pair<scalar> with first() / last() residuals
2017-11-28 11:46:48 +01:00
ca5b0dcbaa ENH: improvements to Time
- expose the names of write and stopAt controls for reuse elsewhere and
  provide a stopAtControls enum for 'unknown'

- track the requested number of sub-cycles (was previously a bool)
2017-11-28 10:11:06 +01:00
fab9fb4332 STYLE: use readScalar(std::string) and readInt(std::string) wrappers 2017-11-28 10:08:36 +01:00
c0e86940b0 ENH: minor improvements for Enum
- found() method for consistency with other classes

- operator()(name, deflt) for similarity to lookupOrDefault,
  but without a dictionary
2017-11-28 09:15:04 +01:00
b53e5b7404 BUG: fieldMinMax: max cell 2017-11-27 17:41:38 +00:00
966a941a64 ENH: fix foamListTimes to work with -fileHandler collated 2017-11-26 15:23:02 +01:00
2787a8664d STYLE: relegate special purpose readList<T> function to points of use
- the readList<T>(Istream&) function was introduced to handle command
  -options with either a single or a list value, but was also used for
  the #remove dictionary directive. However, the parsing was fragile
  if the list did not start with a '('.
  Now handle command-line arg/option list directly (via ITstream)
  and #remove with special-purpose reading of a string or word list.

  This removes ambiguity and reduces potential future problems.

STYLE: use ITstream instead of IStringStream for command-line lookups

- parses directly to a tokenList without a string copy.
2017-11-26 12:45:49 +01:00
5947f9a337 ENH: more succinct output from command-line errors.
- unknown options or missing option values now emit a shorter message
  without the entire usage. This makes it easier to identify the errors
  and is better aligned with the behaviour of GNU system tools.

  ====
     $ simpleFoam -case
     Using: OpenFOAM-plus (see www.OpenFOAM.com)
     Build: plus-01234

     Error: option '-case' requires an argument

     See 'simpleFoam -help' for usage
  ====

- provide for reduced (-help) and full (-help-full) usage information.
  In many cases the reduced usage provided sufficient and easier
  to find the information.

- make -srcDoc an alias for -doc-source

- no warnings about option aliases for future dates.
2017-11-24 10:27:11 +01:00
9985b93cfc ENH: argList::optionReadList now uses ITstream directly
- stricter and robuster than previous solution using List::readList
  since the option input can be fully tokenized prior to list
  conversion.
2017-11-24 10:39:20 +01:00
d3d82b909e BUG: the -decomposeParDict option inadvertent triggers parallel run (fixes #645) 2017-11-24 10:36:34 +01:00
d49929b210 ENH: improvements to stringOps format and split functions
- split now optionally retains empty substrings.
  Added split on fixed field width.

- Foam::name() now formats directly into string buffer, which a
  removes one layer of copying and also avoids using a non-constexpr
  in the temporary.

STYLE: explicit type narrowing on zero-padded output for ensight
2017-11-23 20:17:33 +01:00
6e8586df5d DEFEATURE: remove ccm26ToFoam (issue #536)
- not maintained and less functionality than ccmToFoam.
2017-11-23 14:16:09 +01:00
63812aa110 Merge branch 'feature-arglist-option-aliases' into 'develop'
Feature arglist option aliases

See merge request Development/OpenFOAM-plus!172
2017-11-23 09:27:34 +00:00
416a3790ea STYLE: prefer autoPtr::reset() to autoPtr::set()
- in most cases already checked valid() so don't need additional check
  for setting an existing pointer
2017-11-22 19:11:11 +01:00
e96cbd9050 STYLE: remove deprecated non-const tmp() operator (deprecated since FEB-2016) 2017-11-22 18:10:25 +01:00
aa112c3f26 ENH: support option aliases with versioning
- can be used for adjusting option names between versions
2017-11-22 14:42:31 +01:00
f2ba618c19 STYLE: consistency in using argList::addArgument, argList::addOption 2017-11-22 12:54:28 +01:00
d8f31f6ded STYLE: use HashTable ternary-like lookup in argList 2017-11-22 12:04:45 +01:00
fd5cd9dc6f ENH: command-line -doc, -srcDoc display online documentation
- browser is spawned as a background process to avoid blocking the
  command-line
2017-11-22 11:50:44 +01:00
4023158497 ENH: provide system() command with CStringList
- allows (for example) splitting a user string on whitespace and
  passing this to system as a list of arguments, thus bypassing any
  implicit use of 'sh'.

- system() with optional background, for spawning processes.
2017-11-22 10:48:55 +01:00
a881204946 ENH: stringOps inplace methods now use a std::string parameter
- this makes them applicable to Foam::string, Foam::word etc

ENH: improvements to CStringList

- add strings() sublist variant which can be useful when handling
  command arguments separately

- add construct from SubStrings.
2017-11-22 08:03:52 +01:00
d65ca495d3 STYLE: minor changes in comments 2017-11-22 10:52:42 +01:00
3ef8906a66 ENH: consolidate surfaceFormats for reading/writing triSurface (issue #294)
- eliminates previous code duplication and improves maintainability
2017-11-20 14:55:36 +01:00
75933928de Merge branch 'feature-multiple-stitch-mesh' into 'develop'
Feature multiple stitch mesh (wp04)

See merge request Development/OpenFOAM-plus!164
2017-11-20 09:32:30 +00:00
d4b7fbe9a1 Merge branch 'style-list-typedefs' into 'develop'
Consistency update for list typedefs

See merge request Development/OpenFOAM-plus!171
2017-11-20 07:48:08 +00:00
7c1d8cb146 STYLE: more consistent use of labelUList and labelUIndList typedefs 2017-11-19 09:27:47 +01:00
a573e0e1aa STYLE: use fully-scoped names in meshTools, sampling 2017-11-19 11:34:41 +01:00
6fd27353e4 STYLE: improve formatting of doxygen filter output 2017-11-10 14:53:18 +01:00
834d46c64a ENH: add argList support for non-mandatory arguments
- in rare cases we may wish to have command-line arguments that are
  non-mandatory. This can now be reflected in the usage output, provided
  that the argList::nonMandatoryArgs() has been used.

- added setRootCaseNonMandatoryArgs.H that applies the
  argList::nonMandatoryArgs() settings and otherwise performs largely
  as per setRootCase.H, except that the check for mandatory arguments
  is deferred to later user code.
2017-11-18 13:36:56 +01:00
a59c87d5ac ENH: improved zone constructors
- constructor for empty cell/face/point Zones, with contents to be
  transferred in later.

- ZoneMesh::operator(const word&) to return existing zone or a new empty one.
2017-11-10 02:09:37 +01:00
ccc07d3234 Merge branch 'style-cellModel-enum' into 'develop'
cellModel enumerations

See merge request Development/OpenFOAM-plus!170
2017-11-18 13:14:39 +00:00
8730a7622a ENH: enumerations for known cell models in cellModel, ptr/ref lookups
- this provides a better typesafe means of locating predefined cell
  models than relying on strings. The lookup is now ptr() or ref()
  directly. The lookup functions behave like on-demand singletons when
  loading "etc/cellModels".

  Functionality is now located entirely in cellModel but a forwarding
  version of cellModeller is provided for API (but not ABI) compatibility
  with older existing user code.

STYLE: use constexpr for cellMatcher constants
2017-11-18 11:05:05 +01:00
810d090e34 ENH: add -case option for foamLog 2017-11-17 19:04:13 +01:00
9c3bef5a99 ENH: improve robustness of MPI start/stop
- warn or fatal if Pstream::init or Pstream::exit are called multiple
  times.

- additional Pstream::initNull method as failsafe to initialize MPI
  when the underlying OpenFOAM process is not running in parallel but
  the application still needs MPI.

- Pstream::exit() can now also be called without having used MPI::init(),
  which means it can be used to cleanup serial process or for
  applications that used the special purpose Pstream::initNull()
  mechanism.
2017-11-17 11:29:26 +01:00
00b1ecad60 ENH: add UPtrList swap() method 2017-11-13 21:39:30 +01:00
5a52dfa4f4 CONFIG: update ADIOS version 2017-11-17 08:46:19 +01:00
67265d2c35 BUG: missing space in ensight (surface format) case file (closes #637)
- now also fixed collated output format
2017-11-16 07:31:39 +01:00
3cafdccb4c ENH: add dictionary-driven multi-pass stitchMesh facility
- the dictionary-driven variant of stitchMesh allows sequential
  application of 'stitch' operation with requiring intermediate
  writing to disk.

- Without arguments:
  * stitchMesh uses a system/stitchMeshDict or -dict dict

- With arguments:
  * master/slave patches specified on the command-line as in previous
    versions.
2017-11-10 01:53:30 +01:00
a9ffcab5af ENH: region-wise decomposition specification for decomposeParDict
Within decomposeParDict, it is now possible to specify a different
  decomposition method, methods coefficients or number of subdomains
  for each region individually.

  The top-level numberOfSubdomains remains mandatory, since this
  specifies the number of domains for the entire simulation.
  The individual regions may use the same number or fewer domains.

  Any optional method coefficients can be specified in a general
  "coeffs" entry or a method-specific one, eg "metisCoeffs".

  For multiLevel, only the method-specific "multiLevelCoeffs" dictionary
  is used, and is also mandatory.

----

ENH: shortcut specification for multiLevel.

  In addition to the longer dictionary form, it is also possible to
  use a shorter notation for multiLevel decomposition when the same
  decomposition method applies to each level.
2017-11-09 12:30:24 +01:00
69ea4976ac ENH: reduced verbosity when decomposing/reconstructing empty meshes
- only warn about missing cells/points if the mesh is also missing
  boundary patches.
- reduce verbosity when decomposing to an empty mesh
- skip face matching when either mesh has no faces
2017-11-06 17:06:15 +01:00
52536b4b14 Merge branch 'bugfix-multiLevelDecomp' into 'master'
Bugfix multi level decomp

Closes #620 and #619

See merge request Development/OpenFOAM-plus!153
2017-10-11 11:18:59 +01:00
8acd80c54c BUG: multiLevelCoeffs entry not mandatory (closes #620) 2017-10-10 19:32:53 +02:00
e816d5cc80 BUG: label overflow in multiLevel decomposition (closes #619)
- previously when more than two levels were used.
  Now calculate the required final target domain segment directly.
2017-10-10 18:06:52 +02:00
412ff422bd Merge remote-tracking branch 'origin/develop' into feature-shortestPathSet 2017-10-09 10:18:15 +01:00
13346ec5b1 BUG: incorrect xml format tag for VTK surface mesh writer (closes #611) 2017-10-06 11:36:40 +02:00
85f5fb730f TUT: avoid backticks in scripts
- consistent versions in headers
2017-10-05 14:27:48 +02:00
b02623f974 STYLE: remove substring operator() (issue #554)
- duplicate functionality to the substr() method and more difficult to
  notice when it is being used.
2017-10-04 16:49:45 +02:00
c903c39763 BUG: Allrun: run in non-test mode. Handle ./Alltest correctly 2017-10-05 09:52:17 +01:00
8ae5b67a65 Merge branch 'feature-argList-report-host-subscription' into 'develop'
ENH: adjust infoSwitch to report host subscription (related to #531)

See merge request Development/OpenFOAM-plus!150
2017-10-04 10:33:10 +01:00
ff95b8446e BUG: index error when parsing integers from prefix_rayId_lambdaId 2017-10-04 11:16:29 +02:00
a56a70b744 ENH: adjust infoSwitch to report host subscription (related to #531)
- this compact form shows the subscription per host in the unsorted
  mpi order

      nProcs : 18
      Hosts  :
      (
          (node1 6)
          (node2 8)
          (node3 4)
      )

  This provides a succinct overview of which hosts have been
  subscribed or oversubscribed.

- The longer list of "slave.pid" ... remains available on the
  InfoSwitch 'writeHosts'
2017-09-29 19:35:08 +02:00
684aa6751c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-09-29 10:16:01 -07:00
0cc4ab73b7 ENH: adjust doxygen wrapper to accept multiple input directories
- the -dir option was added in commit c1c6243c3e to allow quick
  testing of documentation for a set of classes.
  This was largely replicated in commit 843d83117, but accepting
  multiple directories.

  Apply some of the same ideas here and avoid creation of a tmp file.
2017-09-29 18:36:48 +02:00
a531168ae4 COMP: reinstate rules for various C++ suffixes (issue #607) 2017-09-29 18:07:42 +02:00
dfe464dd5b BUG: redistributePar: transfer particles correctly. Fixes #605. 2017-09-28 12:36:25 +01:00
ce8695d804 BUG: reachingParcelFoam: requires p_rgh 2017-09-27 17:58:24 +01:00
50d1ac15ef INT: Integration updates in preparation for merge into the develop branch 2017-09-27 09:30:59 +01:00
ffb0409942 TUT: Tutorial updates - see #600 2017-09-26 12:25:50 +01:00
ba331942be BUG: decomposePar - resolved error using -allRegions option 2017-09-26 11:58:38 +01:00
e48f3d6d52 BUG: Added missing #include. See #600 2017-09-26 09:29:45 +01:00
16649b3772 BUG: thermoFoam - corrected to enable restart and post-processing using thermoFoam -postProcess. Fixes #598 2017-09-25 13:25:34 +01:00
823ba60cae ENH: correcting new thermo type for reactingParcelFoam tutorials.
Correcting thermoSingleLayer.C mask field alpha to avoid heat sources where there is no film.
Tunning fvSolution for alpha for twoPhasePachuka tutorial
2017-09-22 16:45:45 -07:00
d86443cfd9 STYLE: Code refactoring 2017-09-22 14:01:25 +01:00
73fcd85460 ENH: class data now protected as opposed to private 2017-09-22 13:59:40 +01:00
99b67ba8db ENH: boundaryMesh - allow not found state in findPatchID 2017-09-22 13:58:47 +01:00
b55ab4b0c3 Merge branch 'integration-foundation' into 'develop'
Integration openfoam.org

See merge request !144
2017-09-22 13:56:38 +01:00
dd3be135de ENH: cuttingPlane: suppress excessive warning message. Fixes #596. 2017-09-21 09:14:58 +01:00
76c68c884f ENH: isoSurface: additional debug message 2017-09-21 09:12:16 +01:00
9aff74aaaf COMP: Updated to compile with Clang 3.7.1 2017-09-20 13:55:42 +01:00
9cef7690f0 ENH: AMI - added profiling hooks 2017-09-19 12:01:05 +01:00
dedde07d96 ENH: AMI - added profiling hooks 2017-09-19 12:01:05 +01:00
af48c843f8 STYLE: Code clean-up 2017-09-18 13:39:37 +01:00
94cf702f69 BUG: kOmegaSSTLM - corrected writing of coefficients. Fixes #592 2017-09-18 10:48:39 +01:00
79f2466ca5 BUG: DESModelRegions - added missing field write() - see #591 2017-09-18 10:17:24 +01:00
e23999e5da Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-09-18 08:43:21 +01:00
404aa759ca ENH: mirrorMesh: run parallel. Fixes #587.
Note that now mirrorMesh does not delete empty patches anymore.
2017-09-18 08:42:33 +01:00
0c64622341 Finite area port, Hrvoje Jasak
- with sphereSurfactantFoam and sphereTransport test case
2017-09-15 12:02:25 +01:00
85877cb0f4 ENH: coordSet - added protection for the 'distance' option 2017-09-15 11:17:06 +01:00
4af3d6cb73 COMP: resolve merge conflict 2017-09-15 12:14:22 +02:00
fedf588245 STYLE: Minor code style updates 2017-09-15 10:38:10 +01:00
2efc0a6fb1 CONFIG: update completion_cache (csh) for new command-line options 2017-09-26 09:45:25 +02:00
4c45f6c6a1 MRG: OFstream name not being passed through to OSstream 2017-09-26 09:13:23 +02:00
e0baf040e2 STYLE: include .foam file as well in paraFoam -touch-all 2017-09-26 08:41:01 +02:00
e8ec236cdf Merge branch 'feature-string-parsing' into 'develop'
improve consistency in parsing primitives from strings

See merge request !146
2017-09-25 18:28:47 +01:00
610854af03 STYLE: minor cleanup after merge 2017-09-22 16:25:17 +02:00
66104f2569 ENH: improve input stringency for argList options
Previously:

  - bad command-line input such as -label 1234xyz would parse as a
    label (with value 1234) and the trailing junk would be silently
    ignored. This may or may not be appropriate. If the trailing junk
    looked like this '100E' or '1000E-' (ie, forgot to type the
    exponent), the incorrectly parsed values can be quite bad:

        label  = 32684
        scalar = 6.93556e-310

Now:

  - use the updated readLabel/readScalar routines that trigger a
    FatalIOError on bad input:

        --> FOAM FATAL IO ERROR:
        Trailing content found parsing '1234xyz'

        --> FOAM FATAL IO ERROR:
        Trailing content found parsing '100E'

   This traps erroneous command-line input immediately.
2017-09-21 16:53:46 +02:00
a4e63e2bfb STYLE: avoid IStringStream when parsing primitives 2017-09-21 16:10:33 +02:00
accebc74ee ENH: improve consistency in parsing primitives from strings (issue #590)
- Any trailing whitespace when parsing from strings or character buffers
  is ignored rather than being treated as an error. This is consistent
  with behaviour when reading from an Istream and with leading whitespace
  being ignored in the underlying atof/atod, strtof/strtod... functions.

- Allow parsing directly from a std::string instead of just from a 'char*'.
  This reflects the C++11 addition of std::stod to complement the C
  functions strtod. This also makes it easier to parse string directly
  without using an IStringStream.

- Two-parameter parsing methods return success/failure.
  Eg,

      if (readInt32(str, &int32Val)) ...

- One-parameter parsing methods return the value on success or
  emit a FatalIOError.
  Eg,

      const char* buf;
      int32Val = readInt32(buf, &);

- Improved consistency when parsing unsigned ints.
  Use strtoimax and strtoumax throughout.

- Rename readDoubleScalar -> readDouble, readFloatScalar -> readFloat.
  Using the primitive name directly instead of the Foam typedef for
  better consistency with readInt32 etc.

- Clean/improve parseNasScalar.
  Handle normal numbers directly, reduce some operations.
2017-09-18 10:47:07 +02:00
61c603f174 STYLE: typo in doxygen string 2017-09-15 14:35:51 +02:00
2a586dcbe2 Merge remote-tracking branch 'origin/master' into develop 2017-09-15 11:20:35 +02:00
071dfb36fd BUG: parse issues for nastran long format (closes #589) 2017-09-15 10:40:55 +02:00
953f6fbc75 Merge branch 'feature-paraview-clouds' into 'develop'
Feature paraview clouds

See merge request !145
2017-09-12 14:45:38 +01:00
2cfc88fa03 STYLE: paraview reader attempts to shallow copy nullptr (closes #586)
- Can occur if the selected geometry does not actually exist.
  A non-critical bug since paraview catches this anyhow and
  just emits a warning message.
2017-09-12 15:42:10 +02:00
05aa701c15 ENH: handle all lagrangian fields in pv reader (issue #585)
- previous only checked for clouds at the last instance and only
  detected lagrangian fields from the first cloud.

  Now check for clouds at all instances and detect all of their fields
  as well.
2017-09-12 11:38:05 +02:00
9238c90e6f Merge branch 'feature-surfacefield-value' into 'develop'
Feature surface field value operations

See merge request !141
2017-09-12 08:37:46 +01:00
eaebb8ee75 Merge branch 'feature-surface-scaling' into 'develop'
Feature surface scaling

See merge request !139
2017-09-12 08:36:12 +01:00
6ec186bada ENH: a weighted operation without a weightField is an error (issue #583)
- affects surfaceFieldValue, volFieldValue.

  Use 'none' (if desired) to explicitly suppress the weightField, but
  generally better to use a different operation.
2017-09-11 18:10:41 +02:00
c59c3af146 STYLE: relocate surfaceMeshConvertTesting to test/ (closes #584)
- relocate as Test-surfaceMeshConvert.
2017-09-11 14:50:51 +02:00
f80334415c sixDoFRigidBodyState: New functionObject which writes the rigid-body state
Based on code contributed by SeongMo Yeon
Resolves feature request https://bugs.openfoam.org/view.php?id=2656
2017-09-09 19:00:56 +01:00
0eeffc318b ENH: Adding required interpolation for alpha.water in fvSchemes for overInterDyMFoam floatingBody tutorial 2017-09-08 15:40:22 -07:00
cfeb2c9233 ENH: adding oversetAdjustPhi to overInterFoam plus reconstructing U from phi in pEq. 2017-09-08 15:35:27 -07:00
a129d6a146 ENH: isoCutCell - improved robustness. Patch provided by Johan Roenby - see #582 2017-09-08 17:22:49 +01:00
0430ad474f ENH: modifyMesh: added -dict argument 2017-09-07 15:02:39 +01:00
aad962a0e4 COMP: checkMesh: missing header 2017-09-07 09:42:03 +01:00
775f39960f Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-09-06 12:27:38 +01:00
dbc0bbc903 ENH: extrudeMesh: preserve hexRef8Data. Fixes #471. 2017-09-06 12:24:32 +01:00
92ce092e2b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-08-31 14:08:26 +01:00
35090ebdc3 Merge branch 'master' into develop 2017-08-31 14:08:17 +01:00
6d8b6516b6 BUG: Corrected Curle analogy implementation. See #574 2017-08-31 14:05:05 +01:00
4684a13f42 Merge branch 'feature-zoneInformation' into 'develop'
ENH: Adds basic information for faceZone and cellZones during checkMesh (fixes #560)

See merge request !142
2017-08-31 13:16:32 +01:00
b5f96306ea ENH: checkMesh: output information about zones 2017-08-31 17:41:50 +05:30
2f2e0cf1a6 BUG: fluxSummary: incorrect handling of flipMap. Fixes #530. 2017-08-30 17:27:07 +01:00
5cfd343904 Merge branch 'bugfix-createZeroDirectory-template' into 'master'
BugFix: corrected keyword for flowRateInletVelocity BC fixes #577

Closes #577

See merge request !143
2017-08-30 09:49:49 +01:00
870a0a1d60 BugFix: keyword for caseDict also syncrhonized 2017-08-30 09:48:45 +05:30
ffed13435a BugFix: corrected keyword for flowRateInletVelocity BC fixes #577 2017-08-30 09:38:36 +05:30
0e7954c22b BUG: sampledTriSurfaceMesh: sampling outside of mesh. Fixes #575.
There are a few issues:
- error would only throw exceptions if not parallel
- if we change this we also need to make sure the functionObjectList
  construction is synchronised
- bounding box overlap was not returning the correct status so the code
  to avoid the issue of 'badly formed bounding box' was not triggered.
2017-08-29 14:41:22 +01:00
82a18e4cd9 ENH: Print info on zones only if present 2017-08-28 10:21:47 +05:30
d016590bbc ENH: AMIInterpolation - updated to perform face triangulation once only; code clean-up 2017-08-18 14:09:34 +01:00
81d4292855 ENH: Adds basic information for faceZone and cellZones during checkMesh
fixes #560
2017-08-18 17:04:51 +05:30
3392965aba ENH: scaling: added scaling to various sampling routines. See #514. 2017-08-17 12:47:45 +01:00
2be17edc1d ENH: AMIInterpolation - added base for caching of triangulation 2017-08-17 11:12:21 +01:00
80ffdfb149 ENH: AMIInterpolation - updated to use Enum class 2017-08-17 11:11:26 +01:00
e3d306d3cf TUT: additional and extra closing braces in dictionaries 2018-06-18 14:05:49 +02:00
bcb2267920 ENH: reduce verbosity of safe warning (fixes #881)
- in places where we use std::cerr instead or Warning or FatalError.
  We only want messages from one process though.
2018-06-18 11:19:37 +02:00
e769daf900 Merge branch 'feature-vtkCloud' into 'develop-pre-release'
ENH: vtkCloud function object (issue #866)

See merge request Development/OpenFOAM-plus!206
2018-06-18 13:22:37 +01:00
9a2d25beb8 Merge branch 'feature-restoreFieldNames' into 'develop-pre-release'
ENH: add foamRestoreFields utility (issue #877)

See merge request Development/OpenFOAM-plus!207
2018-06-18 13:13:40 +01:00
6a13ad2d93 ENH: vtkCloud function object (issue #866)
- writes lagrangian data in VTP format during a simulation.
  In parallel, all data are written from the master.
2018-06-16 01:16:00 +02:00
b30138595c ENH: adjustments to runTimePostProcessing
- support VTP input in functionObjectCloud scene element

- additional fallback lookup of cloud information from state properties
  instead of cloud OutputProperties
2018-06-15 23:01:27 +02:00
c5518dd9ff ENH: additional vtk tools for faceNormals, writing file-series 2018-06-15 22:44:00 +02:00
0ec8e3e780 STY: Formatting log output for stabilityBlendingFactor 2018-06-15 13:43:57 -07:00
c888db2e87 ENH: add foamRestoreFields utility (issue #877)
- "Restore" field names by removing the ending.
  Useful, for example, to change a UMean to U field for further
  calculation.
2018-06-15 11:01:19 +02:00
01f76d7d55 CONFIG: list Clang37 as well for ThirdParty clang
- for Darwin, mention that clang is the only compiler configured

- adjust comments
2018-06-15 09:06:06 +02:00
d77df7aa11 STY: Improving log info in stabilityBlendingFactor 2018-06-14 12:44:43 -07:00
b76d6b5cb5 STYLE: adjust tests for some updates in methods (issue #876) 2018-06-14 17:17:17 +02:00
ba156655aa BUG: incorrect iterator access in ListOps::create (issue #876) 2018-06-14 16:23:10 +02:00
853ec2bf64 STYLE: doxygen fixes for surfaceFieldValue 2018-06-14 16:14:31 +02:00
3b6027d1be ENH: test: make test apps compile. Fixes #876. 2018-06-14 15:14:14 +01:00
3d5d3b84d1 GIT: Adding files missed in commit 8540e6f 2018-06-14 15:11:48 +01:00
357042c801 TUT: Updates for combustionModel = none. See #867 2018-06-14 14:45:32 +01:00
15288516c7 INT: Added wave-mangrove interaction test from IH Cantabria 2018-06-14 14:30:42 +01:00
d1ca1ff51d INT: Removed incompatible case 2018-06-14 14:16:45 +01:00
8540e6fb72 INT: ddtPhiCorr - reinstated v1712 behaviour and provided experimental
version on a switch.  See #867

By default the code will use the same form as previous versions

To use the experimental version integrated from openfoam.org commit
da787200 set the info switch in the controlDict:

    InfoSwitches
    {
        experimentalDdtCorr 1;
    }
2018-06-14 14:00:49 +01:00
46dfc66c08 INT: Refactored waves mangrove interaction fvOptions 2018-06-14 11:35:37 +01:00
337aca5fd5 ENH: reduce some isoSurfaceCell regularise failures (closes #870)
- when the iso-surface (eg, a cut plane, or distanceSurface) passes
  exactly through the cell centre, zero-sized triangles can occur.
  These should be merged away.
2018-06-14 14:31:07 +02:00
e7d81dfe04 COMP: stop some icc warnings
- change "\%" -> "%" in plain string
2018-06-14 13:12:13 +02:00
7a7ecf600f ENH: prescribedRotation: smaller end time so simulation is shorter. 2018-06-14 13:47:07 +01:00
6e6ae853b5 ENH: prescribedRotation: improvements to testcase. See #872. 2018-06-14 13:45:49 +01:00
b50331d543 SUBMODULE: updates for catalyst
- minor change to pruning of lagrangian fields
2018-06-14 12:58:54 +02:00
7ca3da492e COMP: single-precision build 2018-06-14 12:03:19 +02:00
e59d167ed3 ENH: addr2line for Darwin handles relative addresses for executables 2018-06-14 11:28:05 +02:00
e20eaf6af9 CONFIG: update completion cache for csh use 2018-06-14 11:14:51 +02:00
25472673d9 ENH: prescribedRotation: fix testcase. Fixes #872. 2018-06-13 17:43:36 +01:00
78418c875c COMP: corrected field construct 2018-06-13 17:36:34 +01:00
2a29de0ff8 INT: Initial commit of Mangroves source from IH Cantabria 2018-06-13 15:10:44 +01:00
54ebae39de STYLE: mention uniformity index in doxygen 2018-06-13 16:54:28 +02:00
07b573ad5a BUG: missed parameter in dictionary::readCompat call 2018-06-13 16:09:49 +02:00
f0a92b11d1 STYLE: adjust AMI information (issue #860)
- use "min:xxx" for consistency with other outputs

- adjust decompositionInformation as well
2018-06-13 15:26:59 +02:00
a1f5f33091 Merge branch 'feature-isoAdvector-AMR' into 'develop-pre-release'
Feature iso advector AMR

See merge request Development/OpenFOAM-plus!205
2018-06-13 14:44:39 +01:00
c909a5df25 GIT: resolved merge conflict 2018-06-13 14:20:18 +01:00
9258b558f4 ENH: Darwin adjustments
- link CGAL (clang version) without reference to mpfr,gmp libraries

- use offset address in printStack for Darwin as well

- alternative handling of feexcept on Darwin
2018-06-13 13:32:19 +02:00
e3f85039a0 CONFIG: set API version number to 1806 for pre-release branch 2018-06-13 13:10:14 +02:00
53959e7e45 COMP: ambiguous construction from tmp (clang)
STYLE: more consistent use of dimensioned Zero
2018-06-13 12:46:15 +02:00
a784afc87d STYLE: floor/truncate instead of rounding for Random::position (issue #865)
- affects random integer ranges.
  Simpler to extend the range by one and floor (truncate) instead of
  rounding using odd intervals.
2018-06-13 12:38:13 +02:00
e6fd82f173 ENH: interIsoFoam updates
- Reimplemented treatment of alpha1, phi and U in case of
  nOuterCorrectors > 1 based on storePrevIter() to avoid cluttering the
  solver with unnecessary fields in case of nOuterCorrectors = 1.
2018-06-13 11:46:21 +02:00
67310ed4ef ENH: sort cellCentre output according to global cell index (issue #869)
- replace SortableList with sortedOrder, to reduce some overhead
2018-06-13 11:08:58 +02:00
22a7c8bb7f INT: Updated and added Gabi's irregular multi-direction tutorial 2018-06-13 13:32:56 +01:00
a7425273a0 INT: refactored wave model code 2018-06-13 12:45:40 +01:00
bab72d5139 ENH: multiple updates to interIsoFoam related code
- Updated tutorial headers
- Added copyright note to isoAdvector src
- Removed outcommented code lines in interIsoFoam solver
- Removed all LTS from interIsoFoam since this is not currently supported
- Confirmed that discInConstantFlow gives identical results with N subCylces and time step N*dt
- Confirmed that this also holds when nOuterCorrectors > 1.
2018-06-12 23:14:10 +02:00
13d49f60fc INT: Initial commit of the new irregular wave model 2018-06-12 17:21:28 +01:00
83b8032dcc TUT: Modified tutorials and added cyclic test case. 2018-06-12 14:01:25 +02:00
25a7e4da7b INT: Initial update of isoAdvector and interIsoFoam to work with AMR. 2018-06-11 17:51:54 +02:00
8f22683615 STYLE: Renamed source files to reflect solver names 2018-06-11 13:44:25 +01:00
4e8fd19d3d ENH: Refactored creation of simplified meshes for -dry-run operation
TODO: migrate singleCellFvMesh into simplified mesh framework (?)
2018-06-11 12:42:09 +01:00
0643a2a941 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-12 18:27:04 -07:00
b2bb46c39d ENH: Tutorial modifications for Medium Test - 12.06.2018 2018-06-12 18:26:17 -07:00
b2b77c9c13 ENH: add 'cellCentre' sampledSet (issue #869)
- samples on cell centres, can optionally limit based on a bounding box.
  Can be used, for example, to extract volume fields into CSV format.
2018-06-12 23:22:23 +02:00
7402cd7b5a ENH: make sampleSets setSamples movable - preliminary to issue #869
- add some more documentation
2018-06-12 19:19:10 +02:00
c05dab5e50 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-12 08:30:23 -07:00
dcfaeef0ad ENH: Droping tangential U on the master for the swirling fan BC. 2018-06-12 08:29:20 -07:00
5561307913 ENH: improve robustness of ensight surface reader (issue #868)
- improve handling of model: ... line

- simplify parsing of xxx element: ... lines
2018-06-12 14:11:23 +02:00
642e5efdea Merge remote-tracking branch 'origin/develop-pre-release' into develop-pre-release 2018-06-12 08:23:01 +02:00
3bcbb1615b ENH: improve uniformity of Random::position<label>() (closes #865)
- start/end values were underrepresented due to rounding.
  Now extend the range to include -0.5 and +0.5 beyond the usual
  range to ensure the same number density.
2018-06-12 08:16:06 +02:00
c8d585b136 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-11 16:16:28 -07:00
bb1fe5fcfc STY: Modifying warning message 2018-06-11 16:15:38 -07:00
5848b0afd5 BUG: Fixing ray dAve and omega for 1D and 2D cases 2018-06-08 16:55:27 -07:00
698a6d59e0 STY: Tide of chockedNozzle tutorial 2018-06-08 12:22:15 -07:00
ee06e8de33 STY: Cleaning Info statement in BC constructor 2018-06-08 12:20:48 -07:00
fdfc5bd0e9 BUG: Changing naming for log to total heat 2018-06-06 13:24:37 -07:00
46e7dab0cb ENH: Adding stabilizationSchemes FO and tutorial 2018-06-06 12:54:34 -07:00
47d7405d62 ENH: Updating interFoam/RAS/motorBike tutorial 2018-06-06 12:53:21 -07:00
c229bc8a05 ENH: Adding Fatal error if rEff is zero 2018-06-06 12:51:40 -07:00
82fed8f877 GIT: interDyMFoam: moved tutorial. See #856. 2018-06-06 13:55:20 +01:00
0a62fb4593 ENH: postProcess: Clear dictionary to avoid merge warning. See #807. 2018-06-06 09:07:32 +01:00
a7f076385c ENH: twistingColumn: change decomposition method 2018-06-06 09:06:41 +01:00
d98c901ca4 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-06-05 10:45:25 -07:00
9d31ff4436 BUG: Update mixture type in tutorials 2018-06-05 10:44:41 -07:00
ea4c4f1b2f BUG: Correct EP ID 693. Avoid sum flux over proc patches twice 2018-06-05 10:43:46 -07:00
8df0a7022a STYLE: Minor code update 2018-06-05 16:42:03 +01:00
3530711219 ENH: Refactored the dummyFvMesh code 2018-06-05 16:10:04 +01:00
a3228f861a ENH: GAMG agglom - more robust treatment for small meshes 2018-06-05 15:13:13 +01:00
67d4736a16 COMP: fvMesh: add hasDb() member 2018-06-05 10:54:58 +01:00
cf9209e42c GIT: Removed unused files 2018-06-01 15:39:41 +01:00
dc521b95df STYLE: consistent use of '= delete' 2018-05-30 12:03:17 +02:00
5aa955c9d2 GIT: include submodules in develop-pre-release branch 2018-06-11 11:53:29 +02:00
6b15244de3 STYLE: Enum instead of NamedEnum for fileOperation 2018-06-11 11:40:40 +02:00
5162b9b2b3 TUT: Updated residuals FO usage for field output 2018-05-24 15:50:43 +01:00
5b9c4ceae5 ENH: rigidbodyDynamics: prescribed rotation + testcase
See:
src/rigidBodyDynamics/restraints/prescribedRotation
tutorials/multiphase/overInterDyMFoam/boatAndPropeller
2018-04-19 17:54:24 +01:00
9b330a9e68 ENH: updated residuals function object field output
Fields now correspond to the initial residual for the first solver
iteration
2018-01-17 13:19:36 +00:00
6312f80918 ENH: residuals function object - extended to write residual fields
Residual fields can be written using the new 'writeFields' entry, e.g.

    functions
    {
        residual
        {
            type            residuals;
            libs            ("libutilityFunctionObjects.so");
            fields          (".*");
            writeControl    writeTime;
            writeFields     true;
        }
    }

Fields currently correspond to the initial residual for the last solver
iteration.
2018-01-16 12:13:11 +00:00
08193a50fa ENH: Pair collision model - added ramp time to bleed-in force contributions 2018-05-22 10:05:36 +01:00
885c47150e ENH: chemFoam - updated mesh creation 2018-01-11 21:34:27 +00:00
aec949d7cc ENH: Consistency improvement for setting postProcessing directory name 2018-02-27 14:37:05 +00:00
853b9abb79 ENH: Utilities - add -region option when creating meshes 2018-01-16 12:10:20 +00:00
66ba2dd674 ENH: check case tool - updated command line arguments:
-dry-run : perform check only and no writing
-dry-run-write: perform check and write to the next time step.  This
also triggers function objects that fire on the call to write()
2018-02-26 11:46:03 +00:00
b50bbc7ef2 ENH: Added new dry-run options to solvers 2018-01-11 14:23:17 +00:00
1791a3a334 ENH: Added tools to generate simplified meshes used to check case set-ups 2018-01-11 14:21:51 +00:00
a2762d16fa ENH: Field - read error if insufficient values provided, but allow if more are available 2018-01-12 14:19:46 +00:00
eedb266c72 ENH: polyBoundaryMeshEntries - respect IOobject read flags 2018-01-11 14:19:39 +00:00
a1e5e4abcb COMP: move error trap to within debug scope 2018-01-12 10:03:47 +00:00
8dadd181c1 ENH: surfaceInterpolation - improved robustness when dealing with empty patches 2018-01-11 14:20:26 +00:00
27888bf7aa ENH: Updated mechanism to create empty sets and zones 2018-05-22 10:10:48 +01:00
34606f54b9 COMP: Updated createDpDt for moving meshes 2018-06-01 15:39:28 +01:00
f51ee9a0e2 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-31 17:34:16 +01:00
ec5d9cdf01 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-29 12:13:58 +01:00
d703f09d11 BUG: fileOperation: avoid par syn in uncollated. Fixes #846. 2018-05-29 12:13:13 +01:00
9d5cb5751e ENH: additional methods for tmpNrc (as per tmp)
- move constructable
- factory methods: New, NewFrom
- reset methods
2018-05-28 17:01:03 +02:00
369604e935 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-05-22 14:06:07 -07:00
d8f9029c7f ENH: adding needed dictionary in smallPoolFire2D.
Update QDot dimensions for diffusionMulticomponent
2018-05-22 14:05:03 -07:00
cb74d7b9d4 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-21 17:03:58 +01:00
f7fa618e8f Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-21 09:53:10 +01:00
db23dd7b57 Merge remote-tracking branch 'origin/develop-pre-release' into develop-pre-release 2018-05-21 08:59:55 +01:00
977a9894b4 ENH: codedMotionSolver: motion solver with user-supplied coding 2018-05-21 08:59:01 +01:00
ad25e18c7f Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-18 12:18:13 +01:00
6180e0db8b INT: Additional integration updates/clean-up 2018-05-18 10:49:10 +01:00
b78d37e93c Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-05-18 01:31:17 -07:00
e0912a058c ENH: Adding pressure work terms for compressibleInterFoam
Removing temporary fix from compressibleInterDyFOAM to re-calculte Uf with morphing mesh
2018-05-18 01:27:13 -07:00
5474d161f2 Merge branch 'develop-pre-release' of develop.openfoam.com:Development/OpenFOAM-plus into develop-pre-release 2018-05-17 17:11:57 +01:00
f700bce878 Merge remote-tracking branch 'origin/develop' into develop-pre-release 2018-05-17 12:14:27 +01:00
647e1c892d INT: Additional integration updates/clean-up 2018-05-16 10:32:42 +01:00
7ac5d76773 ENH: fvMeshDistribute: uses topological rather than geometric point merging
Patch contributed by Mattijs Janssens
2018-03-23 17:02:18 +00:00
8959b8e00a ENH: Improvements to the fileHandler and collated IO
Improvements to existing functionality
--------------------------------------
  - MPI is initialised without thread support if it is not needed e.g. uncollated
  - Use native c++11 threading; avoids problem with static destruction order.
  - etc/cellModels now only read if needed.
  - etc/controlDict can now be read from the environment variable FOAM_CONTROLDICT
  - Uniform files (e.g. '0/uniform/time') are now read only once on the master only
    (with the masterUncollated or collated file handlers)
  - collated format writes to 'processorsNNN' instead of 'processors'.  The file
    format is unchanged.
  - Thread buffer and file buffer size are no longer limited to 2Gb.

The global controlDict file contains parameters for file handling.  Under some
circumstances, e.g. running in parallel on a system without NFS, the user may
need to set some parameters, e.g. fileHandler, before the global controlDict
file is read from file.  To support this, OpenFOAM now allows the global
controlDict to be read as a string set to the FOAM_CONTROLDICT environment
variable.

The FOAM_CONTROLDICT environment variable can be set to the content the global
controlDict file, e.g. from a sh/bash shell:

    export FOAM_CONTROLDICT=$(foamDictionary $FOAM_ETC/controlDict)

FOAM_CONTROLDICT can then be passed to mpirun using the -x option, e.g.:

    mpirun -np 2 -x FOAM_CONTROLDICT simpleFoam -parallel

Note that while this avoids the need for NFS to read the OpenFOAM configuration
the executable still needs to load shared libraries which must either be copied
locally or available via NFS or equivalent.

New: Multiple IO ranks
----------------------
The masterUncollated and collated fileHandlers can now use multiple ranks for
writing e.g.:

    mpirun -np 6 simpleFoam -parallel -ioRanks '(0 3)'

In this example ranks 0 ('processor0') and 3 ('processor3') now handle all the
I/O.  Rank 0 handles 0,1,2 and rank 3 handles 3,4,5.  The set of IO ranks should always
include 0 as first element and be sorted in increasing order.

The collated fileHandler uses the directory naming processorsNNN_XXX-YYY where
NNN is the total number of processors and XXX and YYY are first and last
processor in the rank, e.g. in above example the directories would be

    processors6_0-2
    processors6_3-5

and each of the collated files in these contains data of the local ranks
only. The same naming also applies when e.g. running decomposePar:

decomposePar -fileHandler collated -ioRanks '(0 3)'

New: Distributed data
---------------------

The individual root directories can be placed on different hosts with different
paths if necessary.  In the current framework it is necessary to specify the
root per slave process but this has been simplified with the option of specifying
the root per host with the -hostRoots command line option:

    mpirun -np 6 simpleFoam -parallel -ioRanks '(0 3)' \
        -hostRoots '("machineA" "/tmp/" "machineB" "/tmp")'

The hostRoots option is followed by a list of machine name + root directory, the
machine name can contain regular expressions.

New: hostCollated
-----------------

The new hostCollated fileHandler automatically sets the 'ioRanks' according to
the host name with the lowest rank e.g. to run simpleFoam on 6 processors with
ranks 0-2 on machineA and ranks 3-5 on machineB with the machines specified in
the hostfile:

    mpirun -np 6 --hostfile hostfile simpleFoam -parallel -fileHandler hostCollated

This is equivalent to

    mpirun -np 6 --hostfile hostfile simpleFoam -parallel -fileHandler collated -ioRanks '(0 3)'

This example will write directories:

    processors6_0-2/
    processors6_3-5/

A typical example would use distributed data e.g. no two nodes, machineA and
machineB, each with three processes:

    decomposePar -fileHandler collated -case cavity

    # Copy case (constant/*, system/*, processors6/) to master:
    rsync -a cavity machineA:/tmp/

    # Create root on slave:
    ssh machineB mkdir -p /tmp/cavity

    # Run
    mpirun --hostfile hostfile icoFoam \
        -case /tmp/cavity -parallel -fileHandler hostCollated \
        -hostRoots '("machineA" "/tmp" "machineB" "/tmp")'

Contributed by Mattijs Janssens
2018-03-21 12:42:22 +00:00
d469bbae4b COMP: Allwmake: feed through 'objects' targer for wmakeCollect 2018-05-17 08:39:57 +01:00
c812b4c6f7 ENH: atmosphericModels: Added Lopes da Costa porosity and turbulence models
Specialized variants of the power law porosity and k epsilon turbulence models
developed to simulate atmospheric flow over forested and non-forested complex
terrain.

Class
    Foam::powerLawLopesdaCosta

Description
    Variant of the power law porosity model with spatially varying
    drag coefficient

    given by:

        \f[
            S = -\rho C_d \Sigma |U|^{(C_1 - 1)} U
        \f]

    where
    \vartable
        \Sigma | Porosity surface area per unit volume
        C_d    | Model linear coefficient
        C_1    | Model exponent coefficient
    \endvartable

    Reference:
    \verbatim
        Costa, J. C. P. L. D. (2007).
        Atmospheric flow over forested and non-forested complex terrain.
    \endverbatim

Class
    Foam::RASModels::kEpsilonLopesdaCosta

Description
    Variant of the standard k-epsilon turbulence model with additional source
    terms to handle the changes in turbulence in porous regions represented by
    the powerLawLopesdaCosta porosity model.

    Reference:
    \verbatim
        Costa, J. C. P. L. D. (2007).
        Atmospheric flow over forested and non-forested complex terrain.
    \endverbatim

    The default model coefficients are
    \verbatim
        kEpsilonLopesdaCostaCoeffs
        {
            Cmu         0.09;
            C1          1.44;
            C2          1.92;
            sigmak      1.0;
            sigmaEps    1.3;
        }
    \endverbatim

Tutorial case to follow.
2018-03-20 22:26:07 +00:00
54ddd14168 STYLE: src/atmosphericModels: New library containing models specific to atmospheric flows
Converted the atmBoundaryLayerInlet boundary conditions to inletOutlet to handle
changes in inflow orientation without the need for re-meshing.
2018-03-18 14:08:20 +00:00
a8261a5626 STYLE: fvPatchFields: Corrected documentation
Resolves bug-report https://bugs.openfoam.org/view.php?id=2885
2018-03-22 11:09:42 +00:00
f246a81f8a BUG: wideBandAbsorptionEmission: Corrected errors
Resolves bug-reports
https://bugs.openfoam.org/view.php?id=2881
https://bugs.openfoam.org/view.php?id=2882

Patches contributed by Kevin Nordin-Bates
2018-03-21 18:03:29 +00:00
a33b6aa447 ENH: particle: Optimisation by inlining key methods
Resolves bug report https://bugs.openfoam.org/view.php?id=2871
2018-03-13 08:22:33 +00:00
08079c4be9 ENH: cellLimitedGrad gradientLimiters: Added support for run-time selectable gradient limiter function
Minmod is the default limiter function and specified with an explicit name e.g.:

    gradSchemes
    {
        default Gauss linear;
        limited cellLimited Gauss linear 1;
    }

Venkatakrishnan and cubic limiter functions are also provided and may be
specified explicitly e.g.:

    gradSchemes
    {
        default Gauss linear;
        limited cellLimited<Venkatakrishnan> Gauss linear 1;
    }

or

    gradSchemes
    {
        default Gauss linear;
        limited cellLimited<cubic> 1.5 Gauss linear 1;
    }

The standard minmod function is recommended for most applications but if
convergence or stability problems arise it may be beneficial to use one of the
alternatives which smooth the gradient limiting.  The Venkatakrishnan is not
well formulated and allows the limiter to exceed 1 whereas the cubic limiter is
designed to obey all the value and gradient constraints on the limiter function,
see

    Michalak, K., & Ollivier-Gooch, C. (2008).
    Limiters for unstructured higher-order accurate solutions
    of the Euler equations.
    In 46th AIAA Aerospace Sciences Meeting and Exhibit (p. 776).

The cubic limiter function requires the transition point at which the limiter
function reaches 1 is an input parameter which should be set to a value between
1 and 2 although values larger than 2 are physical but likely to significantly
reduce the accuracy of the scheme.

VenkatakrishnanGradientLimiter: Updated documentation

cubicGradientLimiter: Documented private data
2018-02-26 23:14:46 +00:00
c5125c3299 STYLE: greyDiffusiveRadiationMixedFvPatchScalarField: Simplified the lookup of the fvDOM model 2018-02-11 21:02:27 +00:00
7f42f90901 BUG: directFieldMapper: Corrected constructor name
Note this class is not currently used in OpenFOAM

Resolves bug-report https://bugs.openfoam.org/view.php?id=2829
2018-02-07 15:57:50 +00:00
ee06a687eb TUT: Corrected file header 2018-05-16 16:15:50 +01:00
1fc177152a TUT: aerofoilNACA0012 tutorial for rhoSimpleFoam and rhoPimpleFoam
The tutorial demonstrates generation of a C-grid mesh using blockMesh
The geometry is provided by a surface mesh (OBJ file) of the NACA0012 aerofoil
The case is setup with a freestream flow speed of Ma=0.72

Thanks to Kai Bastos at Duke University for the geometry and helpful input.
2018-02-23 17:05:30 +00:00
7d205cc790 ENH: fixedMeanOutletInletFvPatchField: New outlet/inlet boundary condition which fixes the outlet mean
Description
    This boundary condition extrapolates field to the patch using the near-cell
    values and adjusts the distribution to match the specified, optionally
    time-varying, mean value.  This extrapolated field is applied as a
    fixedValue for outflow faces but zeroGradient is applied to inflow faces.

    This boundary condition can be applied to pressure when inletOutlet is
    applied to the velocity so that a zeroGradient condition is applied to the
    pressure at inflow faces where the velocity is specified to avoid an
    unphysical over-specification of the set of boundary conditions.

Usage
    \table
        Property     | Description             | Required    | Default value
        meanValue    | mean value Function1    | yes         |
        phi          | Flux field name         | no          | phi
    \endtable

    Example of the boundary condition specification:
    \verbatim
    <patchName>
    {
        type            fixedMeanOutletInlet;
        meanValue       1.0;
    }
    \endverbatim

See also
    Foam::fixedMeanFvPatchField
    Foam::outletInletFvPatchField
    Foam::Function1Types
2018-04-04 22:04:25 +01:00
8165c462cd ENH: freestreamPressure, freestreamVelocity: New blended boundary conditions for the freestream
These BCs blend between typical inflow and outflow conditions based on the
velocity orientation.

airFoil2D tutorial updated to demonstrate these new BCs.
2018-02-23 12:23:06 +00:00
83d935d517 ENH: error: exit with the given error number rather than 1
Resolves patch request https://bugs.openfoam.org/view.php?id=2827
2018-02-06 11:48:15 +00:00
ec326f5a4c ENH: chemistryModel: Added new option to specify the initial ODE integration time-step
In constant/chemistryProperties in addition to the specification of the initial
ODE integration time-step used at the start of the run:

    initialChemicalTimeStep 1e-12;

this time step may now also be specified for every chemistry integration by
setting the optional entry maxChemicalTimeStep, e.g.

    maxChemicalTimeStep 1e-12;
2018-02-01 11:27:31 +00:00
05f5a293bc ENH: MRF: Remove ddtCorr from MRF regions
MRFZone: Filter-out excluded patches from ddtCorr
2018-02-10 22:46:17 +00:00
bab508821e BUG: EulerDdtScheme: Corrected fvcDdt dimensions for multiphase moving-mesh cases
Resolves bug-report https://bugs.openfoam.org/view.php?id=2822
2018-01-31 16:44:58 +00:00
fe4752d28a ENH: ddtScheme::fvcDdtPhiCoeff: Improved formulation providing better stability/accuracy balance
Resolves problem with pressure "staggering" when running with a very Courant
number.
2018-01-08 21:35:00 +00:00
4272820fca BUG: writeFile: Increased the number of value characters
The number of characters needed to print a double in scientific format
is 8 plus the number of decimal places; e.g., -6.453452e-231 (6 decimal
places, 14 characters). This has been set in writeFile.C, replacing a
value of 7. Presumably, the case of three digits in the exponent was not
considered when this was first implemented. This change ensures at least
one character of whitespace between tabulated numbers.

This resolves bug report https://bugs.openfoam.org/view.php?id=2801
2018-01-04 08:33:46 +00:00
13d893e4c0 ENH: blockMesh: Always put the mesh in the constant directory 2017-12-19 09:58:51 +00:00
f37ec93404 ENH: chtMultiRegionFoam: Added support for reactions
chtMultiRegionFoam now supports reaction/combustion modelling in fluid
regions in the same way as reactingFoam.

TUT: chtMultiRegionFoam: Added reverseBurner tutorial

This tutorial demonstrates chtMultiRegionFoam's combustion capability
2017-12-13 08:37:25 +00:00
2235ed1f86 STYLE: OSspecific/POSIX: Updated function name in diagnostic messages
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2786
2017-12-10 11:08:29 +00:00
5ea75f8a95 ENH: blockMesh: Added support for automatically reordering cyclic patches
Patch contributed by Mattijs Janssens
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1692
2017-12-01 11:01:30 +00:00
dcad66f7d3 INT: Additional integration updates/clean-up 2018-05-14 13:21:22 +01:00
2d238139b3 STYLE: thermo: Macro renaming
Thermo and reaction thermo macros have been renamed and refactored. If
the name is plural (make???Thermos) then it adds the model to all
selection tables. If not (make???Thermo) then it only adds to the
requested psi or rho table.
2017-12-14 16:37:21 +00:00
8aabbec71e ENH: reactionThermo: Single component mixture
This mixture allows a reacting solver to be used with a single component
fluid without the additional case files usually required for reacting
thermodynamics.

reactionThermo: Instantiated more single component mixtures

ENH: reactionThermo: Select singleComponentMixture as pureMixture

A pureMixture can now be specified in a reacting solver. This further
enhances compatibility between non-reacting and reacting solvers.

To achieve this, mixtures now have a typeName function of the same form
as the lower thermodyanmic models. In addition, to avoid name clashes,
the reacting thermo make macros have been split into those that create
entries on multiple selection tables, and those that just add to the
reaction thermo table.
2017-12-01 11:12:05 +00:00
2193c8e31a ENH: basicSpecieThermo: Updated solver references to mixture class 2017-12-01 11:05:28 +00:00
0c5a87ceba ENH: cylinderToFace, cylinderAnnulusToFace: New face sources
Face equivalents of cylinderToCell and cylinderAnnulusToCell.

Tested-by: Henry Weller <http://openfoam.org>
2017-11-27 11:37:03 +00:00
dde93671ee ENH: forces FO - updated reading of nu 2018-05-17 11:51:31 +01:00
e2c6985ea5 ENH: turbulenceFields FO - added turbulence intensity to list of available fields 2018-05-17 11:08:00 +01:00
1dbed00345 ENH: ParticleFunctionObjects: Added PatchCollisionDensity object
This function object will write a paraview-viewable field showing the
area-density of parcel collisions on every patch face. It also outputs
the rate of collisions hitting each patch face, calculated over an
interval equal to the time elapsed since the last output. It has an
optional entry to specify a minimum incident speed below which a
collision is not counted.

It can be enabled in the cloud properties file as follows:

    cloudFunctions
    {
        patchCollisionDensity1
        {
            type        patchCollisionDensity;
            minSpeed    1e-3; // (optional)
        }
    }

This work was supported by Anton Kidess, at Hilti
2018-01-11 09:13:08 +00:00
22aae2816d ENH: combustionModels: Changed the construction order
The combustion and chemistry models no longer select and own the
thermodynamic model; they hold a reference instead. The construction of
the combustion and chemistry models has been changed to require a
reference to the thermodyanmics, rather than the mesh and a phase name.

At the solver-level the thermo, turbulence and combustion models are now
selected in sequence. The cyclic dependency between the three models has
been resolved, and the raw-pointer based post-construction step for the
combustion model has been removed.

The old solver-level construction sequence (typically in createFields.H)
was as follows:

    autoPtr<combustionModels::psiCombustionModel> combustion
    (
        combustionModels::psiCombustionModel::New(mesh)
    );

    psiReactionThermo& thermo = combustion->thermo();

    // Create rho, U, phi, etc...

    autoPtr<compressible::turbulenceModel> turbulence
    (
        compressible::turbulenceModel::New(rho, U, phi, thermo)
    );

    combustion->setTurbulence(*turbulence);

The new sequence is:

    autoPtr<psiReactionThermo> thermo(psiReactionThermo::New(mesh));

    // Create rho, U, phi, etc...

    autoPtr<compressible::turbulenceModel> turbulence
    (
        compressible::turbulenceModel::New(rho, U, phi, *thermo)
    );

    autoPtr<combustionModels::psiCombustionModel> combustion
    (
        combustionModels::psiCombustionModel::New(*thermo, *turbulence)
    );

ENH: combustionModel, chemistryModel: Simplified model selection

The combustion and chemistry model selection has been simplified so
that the user does not have to specify the form of the thermodynamics.

Examples of new combustion and chemistry entries are as follows:

    In constant/combustionProperties:

        combustionModel PaSR;

        combustionModel FSD;

    In constant/chemistryProperties:

        chemistryType
        {
            solver          ode;
            method          TDAC;
        }

All the angle bracket parts of the model names (e.g.,
<psiThermoCombustion,gasHThermoPhysics>) have been removed as well as
the chemistryThermo entry.

The changes are mostly backward compatible. Only support for the
angle bracket form of chemistry solver names has been removed. Warnings
will print if some of the old entries are used, as the parts relating to
thermodynamics are now ignored.

ENH: combustionModel, chemistryModel: Simplified model selection

Updated all tutorials to the new format

STYLE: combustionModel: Namespace changes

Wrapped combustion model make macros in the Foam namespace and removed
combustion model namespace from the base classes. This fixes a namespace
specialisation bug in gcc 4.8. It is also somewhat less verbose in the
solvers.

This resolves bug report https://bugs.openfoam.org/view.php?id=2787

ENH: combustionModels: Default to the "none" model

When the constant/combustionProperties dictionary is missing, the solver
will now default to the "none" model. This is consistent with how
radiation models are selected.
2017-11-23 16:57:12 +00:00
255ec7366b ENH: multiphaseInterFoam: Merged dynamic mesh functionality of multiphaseInterDyMFoam into multiphaseInterFoam
and replaced multiphaseInterDyMFoam with a script which reports this change.

The multiphaseInterDyMFoam tutorials have been moved into the multiphaseInterFoam directory.

This change is one of a set of developments to merge dynamic mesh functionality
into the standard solvers to improve consistency, usability, flexibility and
maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.
2017-12-01 15:51:21 +00:00
3666d90f31 ENH: interMixingFoam: Added support for mesh-motion and automatic refinement/unrefinement 2017-12-01 14:19:54 +00:00
ede4759b80 ENH: interFoam: Merged dynamic mesh functionality of interDyMFoam into interFoam
and replaced interDyMFoam with a script which reports this change.

The interDyMFoam tutorials have been moved into the interFoam directory.

This change is one of a set of developments to merge dynamic mesh functionality
into the standard solvers to improve consistency, usability, flexibility and
maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.

interMixingFoam, multiphaseInterFoam: Updated for changes to interFoam
2017-11-30 23:56:42 +00:00
e50af751a4 ENH: pimpleFoam, rhoPimpleFoam, interDyMFoam: Rationalized mesh-motion support
Added support for mesh-motion update within PIMPLE loop in pimpleFoam and rhoPimpleFoam.
2017-11-30 13:07:42 +00:00
889791060c INT: Additional integration updates 2018-05-11 12:04:33 +01:00
2f888d1684 ENH: rhePimpleFoam: Merged dynamic mesh functionality of rhoPimpleDyMFoam into rhoPimpleFoam
and replaced rhoPimpleDyMFoam with a script which reports this change.

The rhoPimpleDyMFoam tutorials have been moved into the rhoPimpleFoam directory.

This change is the first of a set of developments to merge dynamic mesh
functionality into the standard solvers to improve consistency, usability,
flexibility and maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.

rhoReactingFoam: Updated for changes to rhoPimpleFoam files
2017-11-23 12:13:37 +00:00
81cea09983 ENH: pimpleDyMFoam: Improved efficiency and consistency when running on a static mesh
Now pimpleDyMFoam is exactly equivalent to pimpleFoam when running on a
staticFvMesh.  Also when the constant/dynamicMeshDict is not present a
staticFvMesh is automatically constructed so that the pimpleDyMFoam solver can
run any pimpleFoam case without change.

pimpleDyMFoam: Store Uf as an autoPtr for better error handling

pimpleFoam: Set initial deltaT from the Courant number

for improved stability on start-up and compatibility with pimpleDyMFoam

ENH: pimpleFoam: Merged dynamic mesh functionality of pimpleDyMFoam into pimpleFoam

and replaced pimpleDyMFoam with a script which reports this change.

The pimpleDyMFoam tutorials have been moved into the pimpleFoam directory.

This change is the first of a set of developments to merge dynamic mesh
functionality into the standard solvers to improve consistency, usability,
flexibility and maintainability of these solvers.

Henry G. Weller
CFD Direct Ltd.

tutorials/incompressible/pimpleFoam: Updated pimpleDyMFoam tutorials to run pimpleFoam

Renamed tutorials/incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleDyMFoam

-> tutorials/incompressible/pimpleFoam/RAS/wingMotion/wingMotion2D_pimpleFoam
2017-11-18 01:13:48 +00:00
be9d388a68 ENH: MRF: Added support for mesh refinement/unrefinement and other topology changes 2017-08-18 22:22:47 +01:00
c06f716555 ENH: reactingParcelFoam: Made YEqn diffusivity consistent with other solvers 2017-10-10 10:14:48 +01:00
910d1a3021 INT: Additional integration updates 2018-05-10 15:13:51 +01:00
e2c4472ab6 STYLE: engineFoam: Renamed engineFoam -> XiEngineFoam and sprayEngineFoam -> engineFoam
XiEngineFoam is a premixed/partially-premixed combustion engine solver which
exclusively uses the Xi flamelet combustion model.

engineFoam is a general engine solver for inhomogeneous combustion with or
without spray supporting run-time selection of the chemistry-based combustion
model.
2017-09-19 17:01:54 +01:00
3c58321b4b ENH: engineTime: Generalized to provide run-time selection of piston-motion
Standard crank-connecting rod and the new free-piston kinematics motion options
are provides, others can easily be added.

Contributed by Francesco Contino and Nicolas Bourgeois, BURN Research Group.
2017-09-19 09:26:26 +01:00
d76923d851 ENH: AMI: Consistency between overlap/normalisation areas
The patch magSf calculation has been changed so that it uses the same
triangulation as the overlap algorithm. This improves consistency and
means that for exactly conforming patches (typically before any mesh
motion) the weights do not require normalisation.
2017-10-31 08:59:21 +00:00
293c0c3014 BUG: compressibleInterFoam family: Corrected transonic option
Resolves bug-report https://bugs.openfoam.org/view.php?id=2785

ENH: compressibleInterFoam family: merged two-phase momentum stress modelling from compressibleInterPhaseTransportFoam

The new momentum stress model selector class
compressibleInterPhaseTransportModel is now used to select between the options:

Description
    Transport model selection class for the compressibleInterFoam family of
    solvers.

    By default the standard mixture transport modelling approach is used in
    which a single momentum stress model (laminar, non-Newtonian, LES or RAS) is
    constructed for the mixture.  However if the \c simulationType in
    constant/turbulenceProperties is set to \c twoPhaseTransport the alternative
    Euler-Euler two-phase transport modelling approach is used in which separate
    stress models (laminar, non-Newtonian, LES or RAS) are instantiated for each
    of the two phases allowing for different modeling for the phases.

Mixture and two-phase momentum stress modelling is now supported in
compressibleInterFoam, compressibleInterDyMFoam and compressibleInterFilmFoam.
The prototype compressibleInterPhaseTransportFoam solver is no longer needed and
has been removed.
2017-12-09 21:03:59 +00:00
e061de2c0a BUG: decomposedBlockData: fixed reconstruction problem
Patch contributed by Mattijs Janssens
Resolves bug-report https://bugs.openfoam.org/view.php?id=2744
2017-11-10 16:02:12 +00:00
5688340a05 ENH: globalIndexAndTransform: Don't generate transforms from coincident-full-match patches
Another exception has been added to globalIndexAndTransform to prevent
transformations being generated from coupled patch pairs marked with
coincident-full-match transformations. Foamy generates such patches, and
the faces on them at intermediate stages of meshing can be degenerate,
making the calculation of transformations unreliable. This change
enforces the definition that coincident-full-match patch pairs are not
transformed.
2017-11-07 09:12:59 +00:00
3839f7478a ENH: foamyHexMesh: Generate coincident-full-match processor patches 2017-11-07 09:18:41 +00:00
47979d18ff ENH: processorPolyPatch: Use relative match tolerance for coincident-full-match ordering 2017-11-07 09:11:03 +00:00
3e19185f10 ENH: mirrorMesh: Added support for cellLevel and pointLevel to support dynamic mesh refinement
Patch contributed by Mattijs Janssens
Resolves bug-report https://bugs.openfoam.org/view.php?id=2712
2017-10-27 14:58:26 +01:00
798ac98aef BUG: simpleFoam: moved createFvOptions.H into createFields.H for -postProcess option
To unsure fvOptions are instantiated for post-processing createFvOptions.H must
be included in createFields.H rather than in the solver directly.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2733

BUG: porousSimpleFoam: moved createFvOptions.H into createFields.H for -postProcess option

Resolves bug-report https://bugs.openfoam.org/view.php?id=2733

BUG: solvers: Moved fvOption construction into createFields.H for post-processing

This ensures that the fvOptions are constructed for the -postProcessing option
so that functionObjects which process fvOption data operate correctly in this
mode.
2017-10-23 22:20:52 +01:00
85a2ae6eaa ENH: surfaceFilmModels::standardPhaseChange: Add support for treating YInf as zero
by setting the optional switch YInfZero to true.
2017-10-19 17:49:46 +01:00
ee4315375a ENH: fvOptions::PhaseLimitStabilization: New fvOption to stabilize phase transport equations
in the limit of the phase fraction -> 0

Can be used with the Maxwell non-Newtonian laminar stress model when used in
multiphase solvers.
2017-10-18 15:01:21 +01:00
5b5c209785 ENH: chtMultiRegionFoam: Added support for single solid region post-processing
Patch contributed by Bruno Santos

Resolves patch request https://bugs.openfoam.org/view.php?id=2684
2017-09-04 17:13:42 +01:00
8b4fabd0bf STYLE: Updated dictionary entry 2018-04-04 12:02:12 +01:00
bd762c94d0 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-08-17 11:00:51 +01:00
cf0ffa1933 BUG: nearWallFields: point on the face is inside/outside any tet.
Now we directly releate the intersected face triangle to the tet of the
cell the point is on/in. We hope that the tracking handles this ok. Fixes #549.
2017-08-17 10:58:56 +01:00
fc6a8b648f ENH: shortestPath: new line sampling method ('set') that detects the
shortest path between two sets of points. See shortestPathSet.H.
     Fixes #572.
2017-08-17 10:00:14 +01:00
50d7df41e0 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-08-15 11:02:33 +01:00
30941f28be Merge branch 'master' into develop 2017-08-15 11:02:16 +01:00
cf065aade0 BUG: Corrected construction of List from SLList. Fixes #571 2017-08-15 11:00:21 +01:00
fbdd16a293 ENH: add stringOps::splitAny, stringOps::splitSpace
- assists when building simple hand-rolled parsers.
  Also add string::split() taking a sub-string for the delimiter.
2017-08-14 10:36:12 +02:00
139edb2468 ENH: add input surface scaling (issue #514)
- surfaceFeatureExtract
  * dictionary "scale" entry

- triSurface
- triSurfaceLoader
  * optional scaleFactor on reading

- surfaceAdd
- surfaceBooleanFeatures
- surfaceClean
- surfaceCoarsen
  * scale option

- surfaceTransformPoints, transformPoints
  * scale option as scalar or vector quantity
2017-08-14 09:18:15 +02:00
3b16c365ee STYLE: make Switch construct from string explicit (issue #568)
- actually prevent this type of thing:

      Switch sw;
      sw = "none";

  without relinquishing automatic conversion to/from bool.
  Nonetheless, make construct from string explicit.

- Added some minor optimization for the lookup of the switch names.
2017-08-11 16:43:12 +02:00
3093b32702 ENH: support pTotal as a derived field for surfMeshSamplers (issue #567) 2017-08-11 16:40:08 +02:00
4588182352 ENH: add absolute weighting for surfaceFieldValue (issue #567)
- can be useful either for flow-rate weighting where backflow
  is to be ignored in the average, or for flow-rate weighting
  on surfaces with inconsistent orientation.

  Reworked to code to make better use of Enum (the NamedEnum
  replacement). Enum doesn't require contiguous enumeration values,
  which lets us use bitmasking of similar operations to reduce
  duplicate code.
2017-08-11 14:53:24 +02:00
b3128e6ced STYLE: replace file-local functions with the Ostream writeEntry() method
ENH: use std C++ for conversions instead of sscanf()
2017-08-11 08:39:45 +02:00
59b70b04d5 BUG: setSet: use of one-argument constructor. Fixes #566. 2017-08-10 18:41:22 +01:00
d68adc4d31 ENH: Final stage for laserDTRM model and new icoReactingMultiphaseFoam 2017-08-10 09:17:55 -07:00
9887c8f504 ENH: adding thermo changes to handle multiphase T based thermos 2017-08-10 09:17:14 -07:00
6d8a09fd63 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-08-10 14:43:18 +01:00
f73e5be2b8 ENH: overset: adjust fringe for interFoam 2017-08-10 14:42:39 +01:00
66c836e147 Merge branch 'bug-pstream-tokensending' into 'develop'
Bug pstream token sending

See merge request !140
2017-08-10 13:56:37 +01:00
c782b09322 ENH: Corrections to doxygen help 2017-08-10 11:14:10 +01:00
37e863521a ENH: make token constructors explicit (issue #563)
- access tokenType enum values more consistently.
2017-08-10 11:53:37 +02:00
a09125c3f9 STYLE: extraneous orientedWeightField in documentation (closes #565) 2017-08-10 10:15:55 +02:00
92d1d1f037 CONFIG: verify bash version for completion support
- the (global) associative array requires bash >= 4.2
2017-08-10 10:05:22 +02:00
c847d343af BUG: OPstream send of tokenType may swallow characters (fixes #563)
- the tokenType was being send via write(char), which includes
  isspace filtering. If the tokenType enumeration coincides
  with a whitespace character, it would be suppressed.

  Now add character directly to the buffer.

STYLE: some additional minor private methods to help refactoring

- readStringFromBuffer, writeStringToBuffer for common string
  operation.
2017-08-10 08:17:19 +02:00
4fc4f49cef ENH: Updated fieldAverage FO windowing. See #525
When specifying the averaging data, a new `windowType` option is
available, taking the values:

- none: no windowing
- approximate: past functionality (v1706 and earlier)
- exact: exact moving average - will store and write (for restart) all
  fields in the window
2017-08-09 16:52:03 +01:00
695716d5cc STYLE: use local variables in aliases/functions 2017-08-09 11:58:43 +02:00
18e96325ff Merge branch 'feature-mesh-stitching' into 'develop'
Feature mesh stitching

See merge request Development/OpenFOAM-plus!159
2017-11-04 11:39:11 +00:00
2ee1f73ff2 Merge branch 'feature-hash-table' into 'develop'
Improvements to HashTable internals

See merge request Development/OpenFOAM-plus!158
2017-11-03 17:40:33 +00:00
2ecfb3e986 CONFIG: update clang versions 2017-11-03 14:43:33 +01:00
c5344c3161 COMP: Resolved clang compiler error in transport model updates 2017-11-03 11:10:34 +00:00
f5795afaba STYLE: More use of constexpr for namespace variables 2017-11-03 11:09:17 +00:00
46e8543653 ENH: cell cutting: less verbose. Allow cutting single face. See #631. 2017-11-01 17:46:12 +00:00
053a648ee6 ENH: improvements to HashTable internals
- make single-parameter construct (label) explicit
- consolidate iterators
- slightly reduced overhead for some HashSet types
- improved resizing behaviour
- compact output for empty Ptr hashes
2017-10-31 08:46:47 +01:00
db552fb751 DEFEATURE: remove StaticHashTable
- unused, unmaintained and slower than the regular HashTable
2017-10-30 21:35:05 +01:00
930d6dcaf2 ENH: dummy I/O for nullObject, additional null subclass for zero/one
- the zero::null and one::null sub-classes add an additional null
  output adapter.

  The function of the nil class (special-purpose class only used for
  HashSet) is now taken by zero::null.
2017-10-31 10:54:17 +01:00
6f6029d0a6 COMP: LList: make constructor explicit. Fixes #630. 2017-10-30 16:58:42 +00:00
2851b885a1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-10-30 11:44:51 +00:00
a79d2835f1 ENH: functionObjectList: format errors from FO reading. Fixes #575. 2017-10-30 11:43:12 +00:00
7e4f3a8237 STYLE: consistent rounding for float/double underflow (issue #625)
- use (value <= VSMALL) instead of (value < VSMALL) for consistency
  with what equal(value, 0) delivers.
2017-10-30 11:38:24 +01:00
ba8fdda5cc ENH: improve wcleanBuild, wcleanPlatform flexibility (issue #627)
- add -compiler=NAME option to remove a build or platforms directory
  corresponding to any specified compiler on the current arch.

- when -compiler or -compiler=NAME is specified, also clean related
  sub-directories as well. This will cleanup mpi-related directory.
2017-10-30 10:31:05 +01:00
cd46cb7041 ENH: consistent reverse iterator definitions for UList and FixedList
- consistent with C++ STL conventions, the reverse iterators should
  use operator++ to transit the list from rbegin() to rend().

  The previous implementation used raw pointers, which meant that they
  had the opposite behaviour: operator-- to transit from rbegin() to
  rend().

  The updated version only has operator++ defined, thus the compiler
  should catch any possible instances where people were using the old
  (incorrect) versions.

- updated forAllReverseIters() and forAllConstReverseIters() macros to
  be consistent with new implementation and with C++ STL conventions.
2017-10-29 20:57:43 +01:00
d6b32094e1 ENH: add reverse iteration macros
- forAllReverseIters and forAllReverseConstIters macros
- stdFoam::rbegin(), stdFoam::rend()
  stdFoam::crbegin(), stdFoam::crend()
2017-10-29 16:02:19 +01:00
15ac4e5c54 Merge branch 'feature-dictionary-scoping-lvalue' into 'develop'
Feature dictionary scoping lvalue

See merge request Development/OpenFOAM-plus!124
2017-10-29 15:36:07 +00:00
743e75b978 STYLE: code cleanup in stringOps 2017-10-29 13:53:34 +01:00
f76431c536 ENH: retain original FoamFile dictionary header when including files.
- previously using a top-level #include would inadvertently remove the
  original header
2017-10-29 12:37:47 +01:00
69786840af STYLE: code cleanup for includeEntry 2017-10-29 11:34:09 +01:00
b4b9303868 Merge branch 'style-list-methods' into 'develop'
Style list methods

See merge request Development/OpenFOAM-plus!157
2017-10-28 16:46:10 +01:00
9729edf293 STYLE: adjusted comments in natstrcmp 2017-10-28 17:38:42 +02:00
5b8b689a37 STYLE: split off HashTableCore into separate header 2017-10-27 16:13:45 +02:00
0a62fd2f87 ENH: allow passing of comparator to sortToc methods
- this increases the flexibility of the interface

- Add stringOps 'natural' string sorting comparison.
  Digits are sorted in their natural order, which means that
      (file10.txt file05.txt file2.txt)
  are sorted as
      (file2.txt file05.txt file10.txt)

STYLE: consistent naming of template parameters for comparators

  - Compare for normal binary predicates
  - ListComparePredicate for list compare binary predicates
2017-10-27 14:28:00 +02:00
8ec64d8128 STYLE: compilation of some unit tests 2017-10-26 23:59:18 +02:00
16e75d8475 ENH: add fileName::validate static method (issue #628)
- similar to word::validate to allow stripping of invalid characters
  without triggering a FatalError.

- use this validated fileName in Foam::readDir to avoid problems when
  a directory contains files with invalid characters in their names

- adjust rmDir to handle filenames with invalid characters

- fileName::equals() static method to compare strings while ignoring
  any differences that are solely due to duplicate slashes
2017-10-26 21:23:24 +02:00
4818b5808e ENH: snappyHexMesh: add different method for cellZone-faceZone consistency. Fixes #629. 2017-10-26 12:08:15 +01:00
2bd2f83f6e ENH: cleanup and rationalize memory-backed streams
- more consistent naming:
  * Versions that hold and manage their own memory:
      IListStream, OListStream

  * Versions that reference a fixed size external memory:
      UIListStream, UOListStream

- use List storage instead of DynamicList within OListStream.
  Avoids duplicate bookkeeping, more direct handling of resizing.
2017-10-26 12:09:47 +02:00
9d334e5601 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-10-26 09:11:24 +01:00
6fd6610b57 ENH: redistributePar: create dummy sets on non-existing processors 2017-10-26 09:10:21 +01:00
c1c4e91ffb ENH: handle underflow (rounding) of float/double as zero (issue #625)
- The problem occurs when using atof to parse values such as "1e-39"
  since this is out of range for a float and _can_ set errno to
  ERANGE.

  Similar to parsing of integers, now parse with the longest floating
  point representation "long double" via strtold (guaranteed to be
  part of C++11) and verify against the respective VGREAT values for
  overflow. Treat anything smaller than VSMALL to be zero.
2017-10-25 20:55:37 +02:00
9a7c236add Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-10-25 16:29:33 +01:00
49bcba2da7 ENH: snappyHexMesh: allow restart through suppression of refinement. Fixes #626. 2017-10-25 16:22:59 +01:00
f45832b537 COMP: finiteVolume: single precision build 2017-10-25 15:17:33 +01:00
5c1ec7ecb8 ENH: relocate protected List::size(label) to UList (issue #595)
- makes it accessible for containers that manage their own storage
  and derive directly from UList.

- DynamicList::min_size() method to access the corresponding
  SizeMin template parameter.

- ensure consistency in the reserve size for the constructor

      DynamicList<..> lst(N);

  now has identical sizing as

      DynamicList<..> lst();
      reserve(N);
2017-10-25 08:45:05 +02:00
88f6b8888c Merge branch 'feature-Arrhenius-viscocity-energyFO' into 'develop'
ENH: Arrhenius viscocity model for incompressible viscocity

See merge request Development/OpenFOAM-plus!155
2017-10-28 11:04:46 +01:00
ffabc42dbf ENH: Arrhenius viscocity model and energyTransport function-object
- Arrhenius viscocity model for incompressible viscocity.

- energyTransport FO for incompressible single and multiple phase
  flows and viscousDissipation fvOption source.

- Tutorial to show the use of energyTransport:
     multiphase/multiphaseInterFoam/laminar/mixerVessel2D

- Tutorial to show viscousDissipation:
     compressible/rhoPimpleFoam/RAS/TJunction
2017-10-25 10:17:55 -07:00
11da9bdc36 Merge branch 'feature-config-cray' into 'develop'
CONFIG: add settings for Cray compiler and cray mpich

See merge request Development/OpenFOAM-plus!138
2017-10-24 18:28:54 +01:00
7d7b0bfe84 STYLE: use list methods find/found instead of findIndex function 2017-10-24 19:07:34 +02:00
a6c918d6a3 Merge branch 'feature-io-streams' into 'develop'
low-level binary Ostream output, additional stream classes

See merge request Development/OpenFOAM-plus!156
2017-10-24 15:23:33 +01:00
2ab03f7abe STYLE: simplify stream types
- reduce coding clutter, avoiding allocated pointers when possible.
  IFstream and OFstream continue to use pointers since they handle
  compressed files, other streams can do without them.
2017-10-24 13:18:01 +02:00
88bb403fe0 ENH: new stream output: OListStream
- an output stream to a DynamicList
2017-10-24 11:59:11 +02:00
3cbf399470 BUG: failed swap/transfer for DynamicList with different sizing parameters
- now use public functions instead of direct access of private 'capacity_'
  information
2017-10-24 10:29:09 +02:00
7e8217fd17 ENH: include memory streams
- these provide a similar functionality to string-streams, but operate
  on a externally provided memory buffer which can be used to reduce
  the amount of copying.

- classes were previously staged as part of the ADIOS community
  repository.
2017-10-23 12:06:59 +02:00
2269294d36 ENH: use FixedList for dimensionSet storage
- makes it easier to transmit or stream as a list of scalars
2017-10-23 10:15:50 +02:00
0adf8d0a7e STYLE: use word methods to obtain IOobject member/group 2017-10-23 09:56:34 +02:00
e1167d9592 ENH: provide openmp compile and link flags.
- the USE_OMP preprocessor symbol is also defined with the openmp
  compile flag to allow conditional compilation of openmp-specific
  code.
2017-10-23 09:38:43 +02:00
953bd5bdca COMP: clang warnings 2017-10-23 09:09:59 +02:00
360ccea24e COMP: incorrect specialization for Swap(HashSet..) 2017-10-23 09:05:22 +02:00
af5f857618 ENH: add reset() method to IStringStream
- for convenience and symmetry with OStringStream

STYLE: void return value for stream rewind() methods

- this makes it easier to design bidirectional streams
2017-10-23 07:50:12 +02:00
f603e3e1de STYLE: pass through -test argument 2017-10-20 14:10:12 +02:00
74f667a85b ENH: additional low-level raw binary output for Ostream.
- low-level beginRaw(), writeRaw(), endRaw() methods.
  These can be used to directly add '()' decorators for serial output
  or prepare/cleanup parallel buffers.
  Used, for example, when outputting indirect lists in binary to avoid.
2017-10-20 10:26:55 +02:00
c792a9d7df TUT: script cleanup, provide cleanCase0 for commonly used operation 2017-10-12 19:20:56 +02:00
e16121af68 ENH: emit number of blocks for decomposedBlockData in header
- better documentation of the file contents.
- quicker to obtain number of blocks without reading an entire file.
2017-10-19 18:04:24 +02:00
10c512f9ef STYLE: note correct defaults for profiling 2017-10-19 17:25:53 +02:00
4cc8e9d4be Merge remote-tracking branch 'origin/master' into develop 2017-10-13 14:03:13 +01:00
b29f2a61b6 BUG: missing parallel-aware for metis-like decomposition 2017-10-13 12:45:28 +02:00
9b2a25516e ENH: make creation of streamline seeds demand-driven 2017-10-12 18:43:12 +02:00
f116217466 STYLE: remove FULLDEBUG output on readLabel, readScalar
- used in various places to test if the input can be parsed as a
  label/scalar, so warnings tend to flood the output.

- be more explicit when encountering range errors
2017-10-12 12:15:56 +02:00
9bb8f6aefc COMP: create lnInclude directory for kahip 2017-10-12 09:49:16 +02:00
5f98600b53 COMP: handle kahip .so version, and openmp dependency 2017-10-11 18:41:28 +02:00
c60627686a Merge branch 'feature-kahip-decompose' into 'develop'
add support for KaHIP decomposition

See merge request Development/OpenFOAM-plus!154
2017-10-11 16:36:48 +01:00
528bd95ae8 Merge branch 'feature-list-methods' into 'develop'
Feature list methods

See merge request Development/OpenFOAM-plus!152
2017-10-11 16:34:22 +01:00
27cd94e954 ENH: checkMesh: handle label overflow. Fixes #617. 2017-10-11 09:22:23 +01:00
874452717a ENH: add mergeMeshes -resultTime option (as per subsetMesh) 2017-10-10 12:46:40 +02:00
e9254eee58 ENH: support KaHIP decomposition
- refactor some common metis-like elements into the metisLikeDecomp
  abstract class.
2017-10-09 21:00:34 +02:00
051d1d661f ENH: surfaceFeatures: survive zero length edge. Fixes #616. 2017-10-09 15:34:10 +01:00
b5dc2a5e65 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-10-09 14:16:19 +01:00
caf4971261 BUG: rhoCentralFoam: correct/clean up oriented handling. Fixes #615. 2017-10-09 14:15:39 +01:00
37c6127338 COMP: Pstream: dummy version misses dependency of pthread (needed in OSspecific). Fixes #614. 2017-10-09 12:47:56 +01:00
e3d28272cf Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-10-09 09:57:19 +01:00
1a3a57f73d STYLE: CodedSource: remove space from description. Fixes #612. 2017-10-09 09:55:35 +01:00
4ba4899660 ENH: minor update of PackedList methods
- additional convenience constructors
2017-10-07 16:10:35 +02:00
f76552f7f9 STYLE: rebase edge on labelPair, additional methods in Pair
- use FixedList first/last in Pair first/second

- consistent first/second access for line
2017-10-06 20:10:49 +02:00
00b94c4a40 ENH: handle partially attached master/slave faces (issue #608)
- addresses problems if faces are already partly attached
  (eg, on a single vertex or along an edge).
2017-10-06 14:18:54 +02:00
24577907a1 ENH: add faceZone::resetAddressing with constant flipMap
- remove unused static variable, use updated hashtable methods
2017-10-04 08:55:00 +02:00
44cfc93b82 STYLE: replace unused indirect{Cell,Face,Point}List typedefs
- provide shorter versions: pointIndList, pointUIndList, etc.
  and indirect versions of commonly used types:
     labelIndList, scalarIndList, vectorIndList
2017-10-04 08:50:30 +02:00
90c8c6d174 STYLE: add setHit/setMiss methods to objectHit
- consistency with PointHit and PointIndexHit
2017-10-04 08:50:00 +02:00
1cfb59fe1a ENH: add read-option for polyTopoChanger (issue #608)
- avoid meshModifier contents from being read immediately upon
  construction, since this recreates an existing modifier instead of
  allowing us to specify our own.
2017-10-04 08:19:39 +02:00
b9d97d96c1 ENH: expose null constructible dictionary searcher 2017-11-03 10:18:22 +01:00
049617d037 ENH: update List and DynamicList methods (issue #595)
- improve functional compatibility with DynList (remove methods)
  * eg, remove an element from any position in a DynamicList
  * reduce the number of template parameters
  * remove/subset regions of DynamicList

- propagate Swap template specializations for lists, hashtables

- move construct/assignment to various containers.

- add find/found methods for FixedList and UList for a more succinct
  (and clearer?) usage than the equivalent global findIndex() function.

- simplify List_FOR_ALL loops
2017-09-20 17:20:54 +02:00
68e7533847 STYLE: include <utility> in stdFoam, formatting of list loop macros 2017-09-20 17:01:56 +02:00
8b63772882 ENH: simplify parsing logic in ISstream 2017-08-09 13:45:30 +02:00
5da321b6e6 TUT: various blockMeshDict with convertToMeters instead of scale 2017-08-07 20:57:05 +02:00
49a5af48d6 Merge branch 'feature-robuster-ioobjectlist-construction' into 'develop'
Feature robuster IOobjectList construction

See merge request !134
2017-08-09 10:58:19 +01:00
dafb232e54 Merge branch 'feature-bash-completion' into 'develop'
Feature bash completion

See merge request !137
2017-08-09 10:57:14 +01:00
ce0868106a ENH: use bash associative array for on-the-fly completion (issue #551)
- this reduces the number of functions and allows lazy loading of
  completion options, which makes it easy to quickly add any other
  OpenFOAM application in completion.

  The generic '_of_complete_' function handles (bash) completion for
  any OpenFOAM application. On the first call for any particular
  application, it retrieves the available options from the application
  help output and adds this information to its environmental cache for
  subsequent use.

- Tcsh completion uses the same function via a bash wrapper.
  But since its wrapper is transient, the on-the-fly generation would
  be less efficient. For this case, a pre-generated completion_cache
  can be used, which is generated with

      bin/tools/foamCreateCompletionCache
2017-08-08 13:17:36 +02:00
5f538909fb Merge branch 'style-noiseDict-syntax' into 'develop'
STYLE: New syntax compatible with v1706 (Fixes #548)

See merge request !131
2017-08-08 09:53:28 +01:00
e0ebc8e973 Merge branch 'master' into develop 2017-08-07 11:54:44 +01:00
20267c68b4 BUG: Corrected false integer divisions. Fixes #557 2017-08-07 11:53:54 +01:00
e03ca4c466 CONFIG: add Cray compiler, cray mpich settings, wmake rules (fixes #558)
- the cray C/C++ compilers appear to be option-compatible with gcc.

- no wmake rules for 32bit builds (deemed to be unnecessary)
2017-08-04 11:09:32 +02:00
8682e04765 ENH: add forwards file for various hash table types 2017-08-03 17:24:32 +02:00
b7317e0916 CONFIG: unset tcsh completions when cleaninp up (issue #551) 2017-08-03 13:49:14 +02:00
78da7dbd7a CONFIG: additional filenames completion for bash_completion
- handles the case where we are currently completing something that
  does not appear to be an option. For example,

      foamDictionary -expanded someD[TAB]

  should complete the filename, not present more options.
2017-08-03 10:47:42 +02:00
41c103b769 STYLE: return const char* in CStringList::data()
- and other code style adjustments
2017-08-03 09:16:09 +02:00
5148e4f860 STYLE: manage dictionary inputMode directly within entry class
- The logic for switching input-mode was previously completely
  encapsulated within the #inputMode directive, but without any
  programming equivalent. Furthermore, the encapsulation in inputMode
  made the logic less clear in other places.

  Exposing the inputMode as an enum with direct access from entry
  simplifies things a fair bit.

- eliminate one level of else/if nesting in entryIO.C for clearer logic

- for dictionary function entries, simply use
  addNamedToMemberFunctionSelectionTable() and avoid defining a type()
  as a static. For most function entries the information is only used
  to get a name for the selection table lookup anyhow.
2017-08-03 07:14:17 +02:00
c2a0663cc7 TUT: use general 'scale' instead of 'convertToMeters' in blockMeshDict
- although this has been supported for many years, the tutorials
  continued to use "convertToMeters" entry, which is specific to blockMesh.
  The "scale" is more consistent with other dictionaries.

ENH:
- ignore "scale 0;" (treat as no scaling) for blockMeshDict,
  consistent with use elsewhere.
2017-08-03 06:38:30 +02:00
8e4f015253 Merge branch 'style-string-methods' into 'develop'
Style string methods

See merge request !136
2017-08-02 16:28:42 +01:00
5ca19c2934 ENH: add tcsh completion functionality (issue #551)
- currently no cleanup of completions when deactivating an OpenFOAM
  tcsh environment

- tab completion with directories adds a space after the slash, which
  makes navigation a bit annoying.
2017-08-02 16:54:47 +02:00
46a2a73611 ENH: static versions of fileName clean(), path(), name()
- useful operations for other string representations of fileName types.

  The return type is in general a std::string with any narrowing
  being done by the caller on the return value.
2017-08-02 13:44:37 +02:00
e70fc61660 ENH: consolidate, cleanup some string methods
- consolidate word::validated() into word::validate() and also allow
  as short form for string::validate<word>(). Also less confusing than
  having similarly named methods that essentially do the same thing.

- more consistent const access when iterating over strings

- add valid(char) for keyType and wordRe
2017-08-02 12:33:35 +02:00
3f6e130c91 STYLE: flatten PVReaders directory structure 2017-08-02 11:19:57 +02:00
cfcfd53b84 Merge remote-tracking branch 'origin/master' into develop 2017-07-31 16:45:32 +02:00
d581b7d7b8 ENH: ignore lone dash on the command-line (issue #553)
- can inadvertently arise from TAB-completion, but an option without a
  name doesn't make sense, we trap this and emit a warning.
2017-07-31 16:34:43 +02:00
c614110d46 ENH: improve bash completion functionality (issue #551)
- use complete -o filenames, dropped -o nospace to make it more responsive.

- restructure completion code to use a unified backend, which makes it easier
  understand, maintain and re-use.

- foamCreateBashCompletions now simply outputs to a stdout, and allows
  quick generation of completion of single applications.

- add -fileHandler completion in anticipation of future changes there.

- relocated as etc/config.s/bash_completion to prevent inadvertently
  having two versions (.com, .org) installed at the same time.
2017-07-31 15:35:40 +02:00
4e48beffd4 ENH: support "one-shot" changes to the dictionary inputMode (issue #429)
- Instead of relying on #inputMode to effect a global change it is now
  possible (and recommended) to a temporary change in the inputMode
  for the following entry.

     #default   : provide default value if entry is not already defined
     #overwrite : silently remove a previously existing entry
     #warn      : warn about duplicate entries
     #error     : error if any duplicate entries occur
     #merge     : merge sub-dictionaries when possible (the default mode)

  This is generally less cumbersome than the switching the global
  inputMode. For example to provide a set of fallback values.

      #includeIfPresent "user-files"
      ...
      #default value uniform 10;

  vs.

      #includeIfPresent "user-files"
      #inputMode protect
      ...
      value uniform 10;
      #inputMode merge    // _Assuming_ we actually had this before

  These directives can also be used to suppress the normal dictionary
  merge semantics:

     #overwrite dict { entry val; ... }
2017-07-29 17:44:22 +02:00
9923ec969b ENH: more graceful handling of invalid IOobject headers (issue #539)
- With special-purpose templating it is possible to have file contents
  that almost look like an OpenFOAM file, but which are not.
  The contents do not need to be deliberately tricky, even the simplest
  README:

      FoamFile is the first word parsed in OpenFOAM files

  will trigger problems.
  We now trap any IOerror on these and reject this type of file as invalid.
2017-07-29 13:22:24 +02:00
797155f862 ENH: additional method for switching error throwing on/off (issue #552)
- error::throwExceptions(bool) returning the previous state makes it
  easier to set and restore states.

- throwing() method to query the current handling (if required).

- the normal error::throwExceptions() and error::dontThrowExceptions()
  also return the previous state, to make it easier to restore later.
2017-07-29 12:25:30 +02:00
41eafeb020 Merge branch 'fix-motorbike-visc' into 'develop'
BUG: Correct viscosity in simpleFoam motorBike tutorial (fixes #550)

See merge request !132
2017-07-28 10:34:17 +01:00
9b05e43626 BUG: Fix viscosity in simpleFoam motorBike tutorial (fixes #550) 2017-07-27 19:55:12 -04:00
8f11aeabaf BUG: Fix viscosity in simpleFoam motorBike tutorial (fixes #550) 2017-07-27 19:55:12 -04:00
96edef9d5e STYLE: New syntax compatible with v1706 2017-07-26 11:28:26 +05:30
efff02bbb7 BUG: incorrect range check in foamHelp (closes #547) 2017-07-22 23:54:08 +02:00
fce9545781 BUG: incorrect range check in foamHelp (closes #547) 2017-07-22 23:54:08 +02:00
41b40c6c2a COMP: typo in entry.H causing regression - fixes #546 2017-07-22 23:25:03 +02:00
a1742e7ad6 Merge branch 'style-string-access' into 'develop'
Consistent use of string methods

See merge request !128
2017-07-21 16:04:35 +01:00
7b4226ac4b Merge branch 'regression-icc' into 'develop'
Regression icc

See merge request !129
2017-07-21 16:04:17 +01:00
b0b4c1aae5 COMP: intel compiler issues with operator ""_deg (fixes #544)
- this represents a partial revert for commit 6a0a8b99b3
2017-07-21 16:40:31 +02:00
c0c7c39031 ENH: provide direct pointer access to dictionaryEntry 2017-07-21 12:05:32 +02:00
2c69b7d7c4 STYLE: adjust some line lengths, doxygen comments 2017-07-20 13:50:35 +02:00
01292a9a76 BUG: failed check for scotch headers on ubuntu (closes #543)
- installed under /usr/include/scotch/scotch.h

ENH: obtain fallback value for SCOTCH_VERSION from the header

COMP: add support for metis, scotch static libraries (eg, EasyBuild)
2017-07-20 12:15:08 +02:00
2fdc6b161a ENH: support full-scoping for keywords as lvalue (issue #429)
- patterns only supported for the final element.

  To create an element as a pattern instead of a word, an embedded
  string quote (single or double) is used for that element.
  Any of the following examples:

      "/top/sub/dict/'(p|U).*"     100;
      "/top/sub/dict/'(p|U).*'"    100;
      "/top/sub/dict/\"(p|U).*"    100;
      "/top/sub/dict/\"(p|U).*\""  100;

  are equivalent to the longer form:

      top
      {
          sub
          {
              dict
              {
                  "(p|U).*"     100;
              }
          }
      }

  It is not currently possible to auto-vivify intermediate
  dictionaries with patterns.

    NOK   "/nonexistent.*/value"   100;
    OK    "/existing.*/value"      100;

- full scoping also works for the #remove directive

        #remove "/dict1/subdict2/entry1"
2017-07-20 10:58:05 +02:00
f304c7e830 ENH: no dictionary variable and function expansion when discarding entry
- the 'protect' inputMode is used to supply defaults.
  If an entry already exists, it should act as a no-op without any
  side-effects whatsoever.
2017-07-20 10:27:35 +02:00
6a62c6bd63 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-07-19 20:04:31 +01:00
5711061624 COMP: foamList: missing fallback library. Fixes #541. 2017-07-19 20:03:59 +01:00
922ea5667e BUG: IOobject interpretation of ./ in construct-from-fileName (closes #482)
- Resolve ambiguity by using the following rules:

  1) starts with '/'  =>  absolute file-system path
  2) starts with './' or '../'  =>  file-system path relative to CWD
  3) otherwise treat as relative to the case

STYLE: allow write access to headerClassName
2017-07-19 12:09:43 +02:00
cc290b7c02 ENH: improve dictionary parsing behaviour for ill-formed entries (closes #510)
- mostly associated with forgotten quotes around "(abd|def)" ...

- Address different potential problems:

      (key) { key1   entry1; }
      (key) { key1   entry1; };    // <- Note trailing ';'
      (key) entry2;
2017-07-19 11:00:44 +02:00
b85457fc35 STYLE: Updated directory names for interCondensatingEvaporatingFoam solver. Fixes #533 2017-07-19 08:24:17 +01:00
efe9b04adc Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-07-19 08:19:15 +01:00
67e6f54808 Merge branch 'feature-streams-cleanup' into 'develop'
Feature streams cleanup

See merge request !127
2017-07-18 12:48:31 +01:00
263d7efae2 Merge branch 'stylefix-checkMesh' into 'develop'
STYLE: checkMesh: remove duplicate writeSets entry from header (resolves #293)

See merge request !125
2017-07-18 12:17:01 +01:00
b0db30ba2f Merge branch 'feature-externalFileCoupler' into 'develop'
Feature external file coupler

See merge request !126
2017-07-18 11:12:05 +01:00
db376a412d ENH: improved behaviour of input stream rewind (issue #534)
- clear error flags. Special handling for igzstream.
2017-07-18 11:10:51 +02:00
6d2f870f83 STYLE: minor typos in comments 2017-07-18 09:01:43 +02:00
b4b50a3aa8 ENH: added OStringStream reset method (closes #534)
- resets the output buffer completely - implementing what rewind was
  likely meant to have accomplished for many use cases.

STYLE: OSHA1stream reset() for symmetry. Deprecate rewind().
2017-07-17 18:32:42 +02:00
86ef9e86dc ENH: make treatment of stream allocators more uniform (issue #532)
- use allocator class to wrap the stream pointers instead of passing
  them into ISstream, OSstream and using a dynamic cast to delete
  then. This is especially important if we will have a bidirectional
  stream (can't delete twice!).

STYLE:

- file stream constructors with std::string (C++11)

- for rewind, explicit about in|out direction. This is not currently
  important, but avoids surprises with any future bidirectional access.

- combined string streams in StringStream.H header.
  Similar to <sstream> include that has both input and output string
  streams.
2017-07-17 15:14:38 +02:00
8399277d7d STYLE: eliminate duplicate includes (issue #293) 2017-07-17 14:44:05 +02:00
da24358314 ENH: provide direct access to file-stat size 2017-07-17 13:49:08 +02:00
454ad5162c STYLE: Use C++11 and OpenFOAM-1706 methods in externalCoupled 2017-07-17 13:41:14 +02:00
7a408c713b ENH: refactor and combine externalFileCoupler (issue #529) 2017-07-17 12:54:02 +02:00
e082be566b STYLE: use Enum for #inputMode selection 2017-07-17 11:57:53 +02:00
751f11089a Merge remote-tracking branch 'origin/master' into develop 2017-07-20 12:17:26 +02:00
e045d6c03b ENH: limit file checks in the abort function object to the master process
- do not recheck the abort after it has been triggered once.
  This reduces the output clutter and file checks.
2017-07-17 10:47:10 +02:00
dd0c26568a STYLE: checkMesh: remove duplicate writeSets entry from header (resolves #293) 2017-07-16 10:31:33 -04:00
2fe3a62057 STYLE: use nullptr instead of 0 in autoPtr, tmp etc. 2017-07-14 16:50:21 +02:00
b287d1bddd CONFIG: cpu/sys information in profiling now OFF by default (issue #526)
- since the cpu/sys information is invariant, it doesn't make much
  sense to emit by default at every time-step.
2017-07-14 16:41:15 +02:00
7380f53efb ENH: add infoSwitch to control reporting of slaves/roots (closes #531)
- With many processors, the number of entries becomes quite large.

  New controlDict InfoSwitches: "writeSlaves", "writeRoots".
2017-07-14 16:22:23 +02:00
e6717b6e72 triSurfaceMesh: corrected parallel operation of 'file' specification
Patch contributed by Mattijs Janssens
Resolves bug-report https://bugs.openfoam.org/view.php?id=2614
2017-07-14 12:38:21 +01:00
d7ff97f490 lagrangian: Optimised reduced-dimension constraints
The 4.x tracking enforces reduced dimensionality on the parcels by
moving them to the centre of the mesh at the start of each track,
without considering the topology. This can leave the parcel outside it's
associated tetrahedron.

The barycentric algorithm isn't tolerant to incorrect topology, so
instead of changing position, it was written to track to the mesh
centre. This worked, but effectively doubled the number of tracking
calls. This additional cost has now been removed by absorbing the
constraint displacement into the existing motion track, so that the same
number of tracking steps are performed as before.

Partially resolves bug report https://bugs.openfoam.org/view.php?id=2688
2017-09-12 08:39:58 +01:00
094775ce7f COMP: Added support for gcc 7.2.0 2017-09-14 14:38:53 +01:00
0fdcb12759 Updated to avoid warnings from gcc-7.1.1 2017-07-31 13:46:42 +01:00
d7fd550e61 ENH: Reinstated the wallBoundedStreamline function object
Note: performs its own tracking and does not rely on the base
particle::trackXXX functions, and uses a local particle position.

Look to update to barycentric tracking in the future.
2017-09-14 12:02:03 +01:00
2defba00a9 ENH: Lagrangian - provided backwards compatibility for cases using the
old "positions" file form

The change to barycentric-based tracking changed the contents of the
cloud "positions" file to a new format comprising the barycentric
co-ordinates and other cell position-based info.  This broke
backwards compatibility, providing no option to restart old cases
(v1706 and earlier), and caused difficulties for dependent code, e.g.
for post-processing utilities that could only infer the contents only
after reading.

The barycentric position info is now written to a file called
"coordinates" with provision to restart old cases for which only the
"positions" file is available. Related utilities, e.g. for parallel
running and data conversion have been updated to be able to support both
file types.

To write the "positions" file by default, use set the following option
in the InfoSwitches section of the controlDict:

    writeLagrangianPositions 1;
2017-09-13 13:13:36 +01:00
87e3da80ec viewFactor: Average T^4 rather than T for consistent heat-flux
Resolves bug-report https://bugs.openfoam.org/view.php?id=2649
2017-08-07 10:56:44 +01:00
4b0ff45d40 externalWallHeatFluxTemperature: Allow manipulation of the boundary values
Provides support for the limitTemperature fvOption.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2675
2017-08-29 16:47:21 +01:00
f8a8857cae limitTemperature: added support for multiphase solvers
Based on patch contributed by Juho Peltola, VTT

Resolves feature request https://bugs.openfoam.org/view.php?id=2572
2017-09-04 16:52:03 +01:00
9a1435ed9b Corrected correspondence between #ifdef .*_H and the class name
Resolves bug-report https://bugs.openfoam.org/view.php?id=2686
2017-09-04 17:09:21 +01:00
d5ce6f35e2 Corrected correspondence between #ifdef .*_H and the class name
Resolves bug-report https://bugs.openfoam.org/view.php?id=2686
2017-09-04 16:50:30 +01:00
c7660123ed ThermoSurfaceFilm: Corrected the splash kinetic energy
The splash kinetic energy has been changed to depend upon the velocity
of the parcel normal to the wall, rather than the absolute velocity, in
accordance with the original reference.

This patch was contributed by Stefan Hildenbrand at Pfinder
Resolves bug report https://bugs.openfoam.org/view.php?id=2682
2017-09-05 09:50:46 +01:00
95018c685d ThermoParcel, ReactingParcel: Removed continuous phase data 2017-08-29 15:44:55 +01:00
3e85a5ab4b INT: clean-up 2017-09-08 17:09:15 +01:00
402b86371c KinematicParcel: Removed continuous phase data
Interpolated continuous phase data is only needed during a track and
therefore shouldn't be stored on the parcel. The continuous velocity,
density and viscosity have been moved from the kinematic parcel to the
kinematic parcel tracking data. This reduces the memory usage of the
kinematic layer by about one third. The thermo and reacting layers still
require the same treatment.
2017-08-29 08:42:53 +01:00
30c2f8fa8d lagrangian: Removed unused wall impact distance methods 2017-08-24 16:09:08 +01:00
d0f39f96c4 lagrangian: Removed duplicate hit-processor handling 2017-08-23 16:31:13 +01:00
b8440c4232 lagrangian: Removed unnecessary patch argument from hit methods
The patch can be determined from the particle when it is needed. Most of
the time it is not.
2017-08-23 16:27:36 +01:00
d8782db651 INT: Re-instated escpaed mass 2017-09-08 16:40:14 +01:00
b78d844cf4 lagrangian: Removed duplicate data from method arguments
A lot of methods were taking argument data which could be referenced or
generated from the parcel class at little or no additional cost. This
was confusing and generated the possibility of inconsistent data states.
2017-08-23 15:14:32 +01:00
22bd391903 lagrangian: Simplification of parallel transfer 2017-08-22 17:57:11 +01:00
241879ecf4 INT: minor clean-up after after latest integrations 2017-09-08 16:07:15 +01:00
87c15bf1c6 lagrangian: Un-templated the tracking data
Tracking data classes are no longer templated on the derived cloud type.
The advantage of this is that they can now be passed to sub models. This
should allow continuous phase data to be removed from the parcel
classes. The disadvantage is that every function which once took a
templated TrackData argument now needs an additional TrackCloudType
argument in order to perform the necessary down-casting.
2017-08-22 15:28:04 +01:00
14d2a1efcf tmpNrc: Updated to use clone 2017-07-14 09:32:02 +01:00
68d879b5e4 GAMG: removed warnComm 2017-09-01 16:40:43 +01:00
e3baecec0b PairCollision: Removed unnecessary operations
Resolves bug report https://bugs.openfoam.org/view.php?id=2680
2017-09-01 13:42:33 +01:00
cf0d7a604f BUG: compressibleMultiphaseInterFoam: Corrected update of dgdt for multiple phases
Resolves bug-report https://bugs.openfoam.org/view.php?id=2677
2017-08-29 14:48:32 +01:00
791e1ca2d2 Merged reactingParcelFilmFoam into reactingParcelFoam
The combined solver includes the most advanced and general functionality from
each solver including:

    Continuous phase
    Lagrangian multiphase parcels
    Optional film
    Continuous and Lagrangian phase reactions
    Radiation
    Strong buoyancy force support by solving for p_rgh

The reactingParcelFoam and reactingParcelFilmFoam tutorials have been combined
and updated.
2017-08-29 09:33:45 +01:00
5cb3bb7bc6 reactingParcelFilmFoam: Added LTS support 2017-08-22 14:00:42 +01:00
fe3771f3d5 surfaceFilmModels::function1Viscosity: New viscosity modifier
Description
    The Foam::Function1 temperature-dependent viscosity model multiplies the
    viscosity of a base model by a Function1 temperature function.
2017-07-26 15:01:08 +01:00
151f641fee compressibleInterFilmFoam::VoFSolidificationMeltingSource: New VoF solidification fvOption 2017-07-20 18:15:27 +01:00
577593ea34 INT: Added missing #include statement 2017-09-08 13:19:50 +01:00
ecb2f03973 surfaceFilmModels::transferModelList: Resolve problem with the Intel C++ compiler 2017-07-25 12:19:37 +01:00
f74e065781 STYLE: cylindricalInletVelocityFvPatchVectorField: Rationalized naming convention
for consistency with other rotating BCs.
2017-07-13 16:09:11 +01:00
e7f979c424 TUT: tutorials: blockMesh: Added missing face projections to pipe tutorial 2017-12-14 12:59:15 +00:00
5c69b02dea ENH: ODESolver: maxSteps now an optional input
e.g.

odeCoeffs
{
    solver          seulex;
    absTol          1e-12;
    relTol          0.0001;
    maxSteps        1e+06;
}

maxSteps defaults to 10000 for backward compatibility.
2017-12-15 15:26:47 +00:00
fe595af8c6 ENH: rigidBodyModelState: Added time value member
The absolute value of the the time has been added to the rigid body
model state. This value is not directly necessary for calculating the
evolution of the rigid body system, it just facilitates the
implementation of sub-models which are in some way time-dependent.
2017-12-13 11:59:46 +00:00
f180ab7249 BUG: basicSpecieMixture: Removed duplicated molecular weight mixing
Mixture molecular weight is now evaluated in heThermo like everything
else, relying on the low level specie mixing rules. Units have also been
corrected.

SpecieMixture: Pure virtual definition for W to prevent Clang warning
2017-12-01 14:21:28 +00:00
d9afa508e1 ENH: createBaffles: Create slave baffles on coupled patches 2017-11-29 15:30:35 +00:00
82fd731b82 BUG; chemistryModel: Fixed segfault in selection error message 2017-11-22 17:00:45 +00:00
363474de07 ENH: createBaffles: Corrected warning about internalFacesOnly setting 2017-11-22 14:45:23 +00:00
512252a67e ENH: surfaceFilmModels::waxSolventEvaporation, waxSolventViscosity: new wax/solvent film models
to support the evaporation of the solvent from the wax film and the changes in
viscosity caused by the reduction in solvent content.

BUG: filmViscosityModel::thixotropicViscosity: Corrected sign of impingement rate

to compensate for rhoSp having the wrong sign

BUG: surfaceFilmModels::waxSolventEvaporation: Corrected handling of impingement

ENH: surfaceFilmModels::waxSolventViscosity: Changed mixing to mole-fraction based

ENH: surfaceFilmModels::thermoSingleLayer: Added call to solveContinuity before updateSubmodels

to allow sub-models to solve transport equations for conserved properties
2017-11-16 22:00:57 +00:00
964c7d223c STYLE: solidThermo.H: Removed superfluous include files
Resolves bug-report https://bugs.openfoam.org/view.php?id=2758
2017-11-14 09:58:53 +00:00
5bfd575a44 ENH: TDACChemistryModel: Added support for multiphase
Patch contributed by Timo Niemi, VTT.
Resolves patch request https://bugs.openfoam.org/view.php?id=2753

STYLE: TDACChemistryModel: Removed unnecessary warning messages

Patch contributed by Francesco Contino
2017-11-09 16:58:17 +00:00
f30e0ab808 ENH: reconstructParMesh: Match face point averages on coupled patches
In the event that matching centroids across a coupled patch pair fails,
we fall back to matching the face point average. The latter can be
obtained more reliably on degenerate faces as the calculation does not
involve division by the face area.

This fallback was already implemented as part of processorPolyPatch.
This change also applies it to the faceCoupleInfo class used by
reconstructParMesh.
2017-11-06 14:34:49 +00:00
4694efa8e2 ENH: basicThermo, heSolidThermo: Added support for specifying the boundary conditions of alpha
Patch contributed by Björn Pfeiffelmann
Resolves patch request https://bugs.openfoam.org/view.php?id=2713
2017-11-07 13:53:46 +00:00
b747cb3519 STYLE: temperatureCoupledBase: Added more user-friendly error messages for inconsistent input
Resolves bug-report https://bugs.openfoam.org/view.php?id=2748
2017-11-02 14:54:11 +00:00
d042f49fc0 BUG: CompactSpatialTensor: Corrected constructor from components 2017-10-31 10:06:19 +00:00
dbc111e6ee ENH: compressibleInterPhaseTransportFoam: New variant of compressibleInterFoam supporting separate phase stress models
In this version of compressibleInterFoam separate stress models (laminar,
non-Newtonian, LES or RAS) are instantiated for each of the two phases allowing
for completely different modeling for the phases.

e.g. in the climbingRod tutorial case provided a Newtonian laminar model is
instantiated for the air and a Maxwell non-Newtonian model is instantiated for
the viscoelastic liquid.  To stabilize the Maxwell model in regions where the
liquid phase-fraction is 0 the new symmTensorPhaseLimitStabilization fvOption is
applied.

Other phase stress modeling combinations are also possible, e.g. the air may be
turbulent but the liquid laminar and an RAS or LES model applied to the air
only.  However, to stabilize this combination a suitable fvOption would need to
be applied to the turbulence properties where the air phase-fraction is 0.

Henry G. Weller, Chris Greenshields
CFD Direct Ltd.
2017-10-30 09:36:43 +00:00
d43c3438fe ENH: coldEngineFoam, engineFoam: Update logSummary to support collated IO
Resolves bug-report https://bugs.openfoam.org/view.php?id=2739
2017-10-27 12:10:45 +01:00
d5f60ea213 BUG: Matrix: Corrected size of field resulting from rectangular matrix multiplication
Resolves bug-report https://bugs.openfoam.org/view.php?id=2740
2017-10-26 15:52:27 +01:00
4dd8b3f247 BUG: RBD: restraints: Corrected restraint force transformations
The restraints generate either joint-local (tau) or global (fx) forces.
At the moment they all generate the latter. This change corrects three
of the four restraints so that the forces are in the gobal coordinate
system and not the local coordinate system of the body.

The problem with this is that the forward dynamics code then transforms
most of the forces back to the body local coordinate system. A better
solution would be to associate restraints which are more sensibly
defined in a local frame with the joints instead of the bodies, and
return the forces as part of the tau variable.
2017-10-20 16:02:43 +01:00
79ad0f0613 ENH: semiPermeableBaffle: Added two new boundary conditions and a tutorial
Two boundary conditions for the modelling of semi-permeable baffles have
been added. These baffles are permeable to a number of species within
the flow, and are impermeable to others. The flux of a given species is
calculated as a constant multipled by the drop in mass fraction across
the baffle.

The species mass-fraction condition requires the transfer constant and
the name of the patch on the other side of the baffle:

boundaryField
{
    // ...

    membraneA
    {
        type            semiPermeableBaffleMassFraction;
        samplePatch     membranePipe;
        c               0.1;
        value           uniform 0;
    }
    membraneB
    {
        type            semiPermeableBaffleMassFraction;
        samplePatch     membraneSleeve;
        c               0.1;
        value           uniform 1;
    }
}

If the value of c is omitted, or set to zero, then the patch is
considered impermeable to the species in question. The samplePatch entry
can also be omitted in this case.

The velocity condition does not require any special input:

boundaryField
{
    // ...

    membraneA
    {
        type            semiPermeableBaffleVelocity;
        value           uniform (0 0 0);
    }
    membraneB
    {
        type            semiPermeableBaffleVelocity;
        value           uniform (0 0 0);
    }
}

These two boundary conditions must be used in conjunction, and the
mass-fraction condition must be applied to all species in the
simulation. The calculation will fail with an error message if either is
used in isolation.

A tutorial, combustion/reactingFoam/RAS/membrane, has been added which
demonstrates this transfer process.

This work was done with support from Stefan Lipp, at BASF.
2017-10-19 10:00:36 +01:00
83026d2546 ENH: mergePolyMesh: Added check for zero patches in the master mesh
Patch contributed by Jakub Benda
Resolves bug-report https://bugs.openfoam.org/view.php?id=2727
2017-10-18 16:24:08 +01:00
b08e8e1904 ENH: functionObjects::wallHeatFlux: More efficient evaluation of heat-flux
which avoids the need for field interpolation and snGrad specification and
evaluation.

Resolves patch request https://bugs.openfoam.org/view.php?id=2725

wallHeatFlux: Filter out coupled patches

Resolves bug-report https://bugs.openfoam.org/view.php?id=2776
2017-10-17 12:17:24 +01:00
8bee77c76a BUG: blackBodyEmission: correct non-coupled boundary values
Resolves bug-report https://bugs.openfoam.org/view.php?id=2709
2017-10-13 17:17:45 +01:00
141e219f87 BUG: blockMesh: Corrected diagram printed with "-help" to be consistent with the documentation
Resolves bug report https://bugs.openfoam.org/view.php?id=2710
2017-10-13 11:28:01 +01:00
da03b803ae ENH: fvMeshSubset: Added coupled patch handling for small subsets 2017-10-12 09:20:43 +01:00
a45b422b75 STYLE: DPMFoam, MPPICFoam: Renamed alphaPhic -> alphaPhi.<continuous phase name>
for consistency with multiphase solvers and compatibility with the generalized
TurbulenceModels library.
2017-10-11 23:04:42 +01:00
efe4a9a4b7 ENH: TurbulenceModels: Obtain the group name from alphaRhoPhi rather than U
to support multiphase solvers in which the phases have the same velocity field.
2017-10-11 21:59:32 +01:00
405bb9414d BUG: constantFilmThermo: Added missing data member constructor call 2017-10-11 11:46:51 +01:00
c96ff47d98 ENH: blockMesh: Added switch to disable face correspondence checking
To disable face correspondence checking set

    checkFaceCorrespondence off;

in blockMeshDict.  This is necessary in the rare cases where adjacent block
faces do not need to correspond because they are geometrically collapsed,
e.g. to form a pole/axis.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2711
2017-10-09 21:33:02 +01:00
0f45c29feb ENH: PBiCG, PBiCGStab, PCG: Changed maxIter test to pre-increment counter
Resolves bug-report https://bugs.openfoam.org/view.php?id=2716
2017-10-09 12:23:28 +01:00
c487fe2ff0 ENH: fvOptions: Added support for transport equations involving d2dt2
Added incompressible solver support to the buoyancyForce fvOption
2017-10-06 15:33:33 +01:00
66b3934ab6 ENH: foamyHexMesh: Set no refinement iterations in global dictionary
ENH: foamyHexMesh: Made default region volume type that of it's parent

Foamy surface conformation entries have a "meshableSide" entry which
controls which side of the surface is to be meshed. Typically this is
set "inside" for boundaries and "both" for baffles. A sub-region's
default entry is now taken from it's parent, rather than a specific
value (it was "inside"). This is consistent with how other entries are
handled.

surfaceConformation
{
    locationInMesh      (0 0 0);

    geometryToConformTo
    {
        baffle
        {
            featureMethod           extractFeatures;
            includedAngle           120;
            meshableSide            both; // <-- per-surface setting

            regions
            {
                disk
                {
                    meshableSide    both; // <-- per-region setting*

                    // *in this example, this entry is not needed, as it
                    // is taken from the per-surface setting above
                }
            }
        }

        // ...
    }
}

ENH: foamyHexMesh: Added (reinstated) baffle patches

A patch can now be assigned to a baffle surface. This assignment will
take precedence over any face-zones.

surfaceConformation
{
    locationInMesh      (0 0 0);

    geometryToConformTo
    {
        disk
        {
            featureMethod           extractFeatures;
            includedAngle           120;
            meshableSide            both; // <-- baffle
            patchInfo
            {
                type wall;
                inGroups (walls);
            }
        }

        // ...
    }
}

STYLE: foamyHexMesh: Switched off output of all the secondary meshes
2017-09-15 15:04:16 +01:00
4ee0af6b08 ENH: gitignore: Added temporary vi/vim files to the ignore list 2017-10-05 09:39:48 +01:00
99bda24907 ENH: MultiComponentPhaseModel: Included laminar diffusion in YiEqns
Resolves bug report https://bugs.openfoam.org/view.php?id=2591
2017-10-03 08:36:12 +01:00
581914f597 STYLE: fvMeshSubset: Removed debugging output 2017-09-28 08:44:56 +01:00
a1679efa80 ENH: lagrangian: Rewrite of integration schemes and transfer terms
The integration of force and heat transfer onto the particle is
facilitated by a run-time-selectable integration scheme. These schemes
were written to generate the value at the end of an intregration step
and also an average value over the step from which the total transfer
was computed.

The average value in the Euler scheme was implemented incorrectly, which
resulted in the momentum and heat transfer processes being
non-conservative. Implementing the average correctly, however, would
have inteoduced a number of trancendental functions which would have
negated the purpose of the Euler scheme as the cheap and stable option.

The schemes have been rewritten to generate changes over the step,
rather than the final value. This change is then used to calculate the
transfers. Regardless of the scheme, this formulation is guaranteed to
be conservative, and the Euler scheme remains computationally
inexpensive.

This change was made with help from Timo Niemi, VTT
This resolves bug report https://bugs.openfoam.org/view.php?id=2666

ENH: integrationSchemes: Further simplification and optimisation

Removed templating from integration schemes, improved the name
convention, and optimised the utilisation so that the virtual call is
only made once per integration in the KinematicParcel and the
ThermoParcel.

BUG: integrationSchemes: Corrections to coupled/non-coupled force splitting

The integration splitting implemented in commit a5806207 has been shown
to be incorrect in some cases. A new procedure has been implemented
which can correctly split the implicit-explicit integral into a number
of pieces, in order to calculate the contribution of each. This is
intended for integrating coupled and non-coupled particle momentum and
heat transfers.

However, currently there is only ever one implicit coefficient used in
these transfers (there is no implicit non-coupled contribution). The
evaluation has therefore been short-cutted to only do the integration
with respect to the coupled contributions. The splitting functionality
has been retained in case additional separate implicit coefficients are
required in the future.

This change was made with help from Timo Niemi, VTT
This resolves bug report https://bugs.openfoam.org/view.php?id=2666
2017-09-20 16:06:48 +01:00
2b47b72fa8 ENH: thermoSingleLayer: Reinstate support for externalWallHeatFluxTemperature 2017-09-22 11:55:18 +01:00
4636f190da STYLE: engineFoam: Renamed engineFoam -> XiEngineFoam and sprayEngineFoam -> engineFoam
XiEngineFoam is a premixed/partially-premixed combustion engine solver which
exclusively uses the Xi flamelet combustion model.

engineFoam is a general engine solver for inhomogeneous combustion with or
without spray supporting run-time selection of the chemistry-based combustion
model.
2017-09-19 17:01:54 +01:00
436b43b61f ENH: mergePatchPairs: Updated 2017-09-19 09:30:26 +01:00
01efb2c85b ENH: engineTime: Generalized to provide run-time selection of piston-motion
Standard crank-connecting rod and the new free-piston kinematics motion options
are provides, others can easily be added.

Contributed by Francesco Contino and Nicolas Bourgeois, BURN Research Group.
2017-09-19 09:26:26 +01:00
d425421c0a ENH: reactingTwoPhaseEulerFoam: Added continuity fvOption term to U equations
Patch contributed by Juho Peltola, VTT
Resolves bug-report https://bugs.openfoam.org/view.php?id=2699
2017-09-15 11:43:15 +01:00
1ad3c4c2b1 ENH: viscosityModels::powerLaw: Changed VSMALL to SMALL to avoid potential overflow 2017-09-14 21:57:47 +01:00
96bdb82918 ENH: ideasUnvToFoam: Added test for no cells (e.g. 2D mesh)
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2691
2017-09-09 22:33:06 +01:00
ef9c6b5abc ENH: kinematicSingleLayer: Refactored to remove "netMass" 2017-09-06 14:20:58 +01:00
58cc6b8b82 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-07-13 14:47:54 +01:00
aa969ec157 BUG: IOobject: interpretation of ./ in construct-from-fileName. Fixes #482. 2017-07-13 14:47:20 +01:00
c880d7dc7d ENH: support '/' separators in foamDictionary
- convenience -diffEtc option that behaves like -diff, but invokes
  foamEtcFile searching

STYLE: modernize code.
2017-07-13 09:46:07 +02:00
9e88a8a21e ENH: enable profiling output for postProcess and -postProcess (closes #526)
- added an explicit print, but only report profiling to the log
  file from master process.

  We don't wish to overwrite any profiling that was conducted during
  the simulation. Besides which, we don't have a proper Time object
  for handling the write nicely either.
2017-07-12 15:48:25 +02:00
9161c228c3 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-07-12 10:58:53 +01:00
0a65b142cf BUG: snappyHexMesh: calculate surface normals if face splitting. Fixes #522. 2017-07-12 10:58:21 +01:00
a6ef10506d ENH: respect the I_MPI_ROOT setting for INTELMPI (issue #524)
- add note in BuildIssues about the I_MPI_CC variable, which is needed
  when building with Intel-MPI and gcc/clang.

  This additional setting is needed since the changes needed to solve
  the issue of building scotch with Intel-MPI and icc (issue #434)
  means that mpiicc is now being used as the wrapper when compiling
  scotch.

- have the FOAM_MPI short name for INTELMPI start with 'impi-' instead
  of just the version number.
  Intel-MPI is often installed as /opt/intel/impi/4.1.3.049, which
  results in 'FOAM_MPI=4.1.3.049' and the mpi flavour is lost.
  Prefix these cases with 'impi-'
2017-07-12 11:02:04 +02:00
2183907afe Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-07-12 09:19:01 +01:00
f932e25556 ENH: mergeOrSplitBaffles: fix header. See #468. 2017-07-12 09:17:48 +01:00
cce74d493b ENH: remove deprecated ensight output order (issue #523)
- Added for transition purposes only in 1612 but can now be removed.
2017-07-11 14:57:05 +02:00
ded09d6461 STYLE: relocate deprecated utilities into separate directory 2017-07-11 14:47:50 +02:00
ac0053b8b2 Merge branch 'feature-post-release-cleaning' into 'develop'
Feature post release cleaning

See merge request !123
2017-07-11 12:45:20 +01:00
c76ae7abb3 COMP: add support for metis, scotch static libraries (eg, EasyBuild) 2017-07-11 11:36:37 +02:00
2b249e1ad3 STYLE: avoid default copyright assignment when generating from code templates 2017-07-11 08:58:52 +02:00
9097801105 STYLE: additional divisions for code templates 2017-07-11 08:48:10 +02:00
971213eb55 ENH: add dictionary searcher methods
- csearch(), search(), csearchScoped(), searchScoped() methods
  can be used to find an entry and also retain the enclosing
  dictionary context.

- To avoid ambiguity between a dot (.) as a scoping character and
  legal part of a keyword, entries can now be accessed directly using
  slash-scoping semantics similar to file-names:

    * cfindScopedDictPtr, findScopedDictPtr

- To get or create a sub-dictionary entry:

    * makeScopedDictPtr, which behaves similarly to mkdirp in that it
      will create any intermediate dictionaries as required.
2017-07-10 14:06:45 +02:00
f26989d52e ENH: allow '/' in ${...} blocks for future entry scoping (issue #429)
- Eg, "${scope/name}" to be supported with this.
2017-07-10 13:25:10 +02:00
910967c070 ENH: add Foam::SubStrings container and stringOps::split
- generic means of holding ranges of substring iterators
2017-07-20 19:53:57 +02:00
8df433860f STYLE: use string substr instead of string::operator()
- makes the purpose clearer.
  In some places, string::resize() is even simpler.

- use C++11 string::back() in preference to str[str.size()-1]
2017-07-21 12:30:42 +02:00
72f242405a STYLE: word::validated without underscore prefix by default (issue #518)
- this now appears to be the more common use case.
2017-07-18 14:09:49 +02:00
0456c5976d STYLE: remove special treatment for 'include' keyword (closes #521)
- a holdover from OpenFOAM 1.4 (prior to the #include dictionary directive)
2017-07-10 10:30:15 +02:00
a107e9b229 thermoSingleLayer::q: Use a local "alpha" without hydrophilic/phobic adjustment
Resolves bug-report https://bugs.openfoam.org/view.php?id=2605
2017-07-10 08:25:09 +01:00
f304b70177 STYLE: simplify string handling for expansions in primitiveEntry 2017-07-07 19:42:57 +02:00
a09815fae2 Merge branch 'feature-post-release-cleaning' into 'develop'
Feature post release cleaning

See merge request !122
2017-07-07 17:29:06 +01:00
6afa62a6e4 STYLE: use shell 'command' instead of 'which' in tutorials 2017-07-07 16:00:57 +02:00
e7da4f0d07 TUT: adjust surfaceFeatureExtractDict to remove optional sub-dictionary
- as of v1706
  extractFromSurfaceCoeffs { ... } is an optional subdictionary
2017-07-07 15:41:18 +02:00
acb5d54e41 STYLE: initializer_list instead of IStringStream for static list construction 2017-07-07 12:54:54 +02:00
a47e0748c4 STYLE: Code tidying 2017-07-07 11:50:40 +01:00
91b6f37c73 ENH: wallHeatFlux FO - removed hard-coding of qr name 2017-07-07 11:49:14 +01:00
51d46079df ENH: consolidate table bounding (issue #520)
- replace duplicate code with global bounds enums and Enum
2017-07-07 12:37:25 +02:00
45dabbfe2b ENH: provide Enum failsafe lookup
- if the enum name is not found, then warn and return the default.
2017-07-07 12:33:41 +02:00
42bf91f3a5 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-07-06 13:46:15 +01:00
c55dc32501 BUG: triSurfaceMesh: construct-from-triSurface refers to original surface. Fixes #519. 2017-07-06 13:45:25 +01:00
84e47f2d2a ENH: cleanup dictionary code
- use typedefs and new features/methods
- file-scope template to avoid code duplication.
2017-07-06 12:58:04 +02:00
162e9126f3 STYLE: adjust internal coding for handing IOobject filename (related to #482)
- make the purpose of various parts clearer
2017-07-06 11:34:35 +02:00
5d282722c1 ENH: add optional parameter to word::validated (issue #518)
- can now suppress prefixing an underscore to leading digits.
2017-07-06 10:58:48 +02:00
818c9b2da3 STYLE: adjust coding style for C++11 features and OpenFOAM-1706 methods 2017-07-06 09:23:09 +02:00
c50368ecc6 ENH: add trapFpe and setNaN optimisationSwitch (issue #517)
- allows configuration without an environment variable.
  For compatibility still respect FOAM_SIGFPE and FOAM_SETNAN
  env-variables

- The env-variables are now treated as true/false switch values.
  Previously there was just a check for env exists or not, but this
  can be fairly fragile for a user's environment.
2017-07-05 17:49:37 +02:00
e54a930dcc ENH: add mpiBufferSize optimisationSwitch (issue #517)
- allows configuration without an environment variable.
  For compatibility still respect MPI_BUFFER_SIZE env-variable.
2017-07-05 15:52:44 +02:00
a4c81f5962 ENH: make streams name() methods virtual throughout (issue #479) 2017-07-04 17:17:09 +02:00
6a0a8b99b3 STYLE: use ""_deg user-literal for degrees to radians conversion
ENH: add degToRad() multiplier (useful for scalar fields)

- use degToRad() functions throughout instead of scattered local solutions
2017-07-04 15:36:46 +02:00
e62e34f0f0 ENH: add -cellZone option to foamToVTK 2017-07-04 14:16:18 +02:00
6dd5a5f35f BUG: foamToVTK -cellSet produces rubbish or segfault (closes #516)
- erroneous double logic for subset meshes.

  The underlying vtk::vtuCells uses a cellMap to map into a global
  field, which also allows handling of decomposed polyhedral cells.

  If a mesh subset is involved (eg, cellSet, cellZone), then the
  set/zone cellMap can be used to ensure that the original number is
  properly adjusted. For foamToVTK, the meshSubsetHelper already
  does the subsetting and is used when loading fields.

  Does not affect ParaView reader module since there we work on the
  full field and do the subsetting manually (using the cellMap).
2017-07-04 13:19:16 +02:00
c5bd5393df ENH: lazier field loading in foamToVTK
- avoid loading surface fields if there are no faceZones

- avoid pointMesh if there are no appropriate point fields
2017-07-04 11:57:54 +02:00
f55c568f13 ENH: upgrade from NamedEnum to Enum (issue #515) 2017-07-03 21:43:33 +02:00
575073890f STYLE: spacing of multi-level template parameters 2017-07-05 15:06:06 +02:00
1bcb454f6d STYLE: hash constructors with power-of-two
- use 1024 instead of 1000 since it will be changed internally to 1024 anyhow.
2017-07-05 10:46:50 +02:00
efc21270ea STYLE: regExp with explicit constructor
- use separate constructor for ignore-case option (cf. wordRe treatment)

- constructors/destructor now inline.
2017-07-05 09:15:52 +02:00
aefb739584 STYLE: fix permissions on files, remove unused files 2017-07-03 12:15:41 +02:00
1d56e9f136 STYLE: use auto with vtkSmartPointer 2017-07-03 13:33:53 +02:00
7ac55ac74a ENH: consolidate arch and version strings (issue #513)
- make some IOobject writing routines non-templated.

- relocate more IOobject methods into the IOobjectI.H
  (generally cleanup the main header).
2017-07-03 13:24:08 +02:00
bc1f2fa97e STYLE: use auto and cfind to simplify selector usage (issue #512) 2017-07-03 10:36:03 +02:00
2910240040 Merge branch 'develop' into 'master'
Merge develop into master for v1706 release

Closes #505, #509, #497, #502, #500, #498, #493, #492, #490, #485, #486, #484, #481, #480, #467, #473, #470, #466, #464, #463, #460, #462, #458, #418, #420, #391, #452, #454, #453, #439, #427, #415, #422, #414, #411, #400, #398, and #348

See merge request !121
2017-06-29 21:09:51 +01:00
c84bf48873 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-29 19:49:55 +01:00
4518004df4 TUT: Updated RutlandVortex case - Thanks to Thilo Knacke 2017-06-29 19:49:32 +01:00
31172408ee Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-29 17:34:23 +01:00
0e465e0f5d BUG: label64: write primitives consistent with label size. Fixes #505. 2017-06-29 17:33:40 +01:00
2f62d94e8b BUG: CollidingParcel: is not contiguous since have collisionRecords_ 2017-06-29 17:16:38 +01:00
07d9d3fc04 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-29 14:18:41 +01:00
a900153f57 ENH: Added new vortexShed tutorial to show vortex shedding and use of the Curle function object 2017-06-29 14:18:19 +01:00
7dbb3b657d ENH: argList - onlycheck for decomposeParDict when checkProcessorDirectories_ is true 2017-06-29 14:10:12 +01:00
a40798c71e STYLE: Updated copyright year 2017-06-29 14:09:34 +01:00
7ac88c13d9 ENH: Updated oriented flag for backwards compatibility 2017-06-29 13:37:08 +01:00
00a5b61bd2 ENH: making pcEqn.H similar to pEqn.H.
STY: Fixing syntax in rhoPimpleDyMFoam/pEqn.H
2017-06-28 14:36:25 -07:00
29d613dae4 BUG: Changing V0 not to be registered in order to avoid mapping. But writing it down
by fvMesh.writeObject().
2017-06-28 12:11:24 -07:00
e5f6d3166c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-28 08:58:50 -07:00
cec7eb9518 ENH: add basic arch information to the output (issue #361)
- end user can easily see which arch (endian, label/scalar size) was
  used from the log output, or via -help usage
2017-06-28 17:41:15 +02:00
a2d8e6e4f5 STYLE: remove old references to 'dx' and 'foamFile' 2017-06-28 16:11:24 +02:00
15de34427c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-28 15:07:04 +01:00
2355f1aa38 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-28 14:08:02 +01:00
bb2041ef69 BUG: reactionSensitivity - corrected integral calculations 2017-06-28 14:07:57 +01:00
367095f666 BUG: Correction for commit ead256f50 2017-06-28 14:07:26 +01:00
191c8534e7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-28 12:46:24 +01:00
c5c48205fe BUG: pitzDaily: remove DebugSwitches 2017-06-28 12:46:01 +01:00
b39eece156 CONFIG: revert to openmpi-1.10.4
- this is the same version as OpenFOAM-1612 shipped with and seems to
  have fewer issues than the newer openmpi-2.1.1
2017-06-28 13:37:50 +02:00
0f547660ce TUT: make it easier to perform dry runs for lumpedPointMotion 2017-06-28 12:16:38 +02:00
1c05248249 Merge branch 'feature-rhoPimpleAdiabatic' into 'develop'
Feature rho pimple adiabatic

See merge request !118
2017-06-28 10:25:08 +01:00
e98214b0ad BUG: Updating rho at the end of the pEq for rhoPimpleDyMFoam and limiting is needed 2017-06-27 15:47:53 -07:00
50cc938677 ENH: Setting V0 to NO_WRITE, but registered in the database 2017-06-27 08:56:39 -07:00
ff2a811bdb Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-27 08:13:09 -07:00
708a887077 ENH: change of setting for tutorials 2017-06-27 08:05:15 -07:00
5bab287985 compressibleInterFilmFoam: Experimental VoF solver supporting VoF<->film transfer 2017-06-27 15:55:43 +01:00
aca6870580 TUT: Updated writeCompression flag entries 2017-06-27 15:55:20 +01:00
87680a06fa Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-27 15:51:47 +01:00
bd803d80c6 TUT: Removed unused nMoles entries 2017-06-27 15:51:34 +01:00
fb4a51cf16 CONFIG: update bashcompletions 2017-06-27 15:59:18 +02:00
e4bfefa396 STYLE: Minor tidying 2017-06-27 11:22:03 +01:00
9e0235cd2a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-27 11:19:18 +01:00
bf2ed1abcf ENH: Updated pressure-work term creation for moving meshes 2017-06-27 11:18:55 +01:00
df403965ab ENH: suppress wmkdep 'No such file' warnings in wmake -silent mode 2017-06-27 09:29:56 +02:00
2582190820 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-26 20:13:19 +01:00
e84c788b03 ENH: Updated the maxwellSlipU BC to derive from the partialSlip BC 2017-06-26 20:12:11 +01:00
bd5c0a3036 ENH: Updated partialSlip BC to enable users to specify the value at zero
slip

The old behaviour assumed that the no-slip value was zero.  This has
been extended to enable the user to supply a refValue - the value at
zero slip.

This was similar to the mixedFixedValueSlipFvPatchField behaviour in the
rhoCentralFoam library - now deprecated in favour of the templated
partialSlip version.
2017-06-26 20:07:18 +01:00
36cd20c429 STY: Upadting thermo in sphereDrop tutorial case 2017-06-26 08:49:35 -07:00
e35d2e53c9 BUG: Fixing issue 505 in GL. Initializing switchProcessor and keepParticle in CollidingParcel and MPPICParcel 2017-06-26 08:47:46 -07:00
06b59ad9ce Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-26 16:25:23 +01:00
5b231ac7c7 BUG: molecularDynamics: reference to temporary. Fixes #509. 2017-06-26 16:24:58 +01:00
cc9ffdffbb reactingMultiphaseEulerFoam: Limited phase-fractions
for consistency with reactingTwoPhaseEulerFoam and to ensure correct operation
of models requiring formal boundedness of phase-fractions.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2589
2017-06-26 16:24:57 +01:00
7b2d419157 INT: updated overInterDyMFoam and MPPICInterFoam following changes to multiphase solvers. Needs further testing 2017-09-08 11:20:21 +01:00
80d69c27b1 COMP: compilation with WM_SP
- STLpoint.H
- isoAdvection.C
- checkMesh/writeFields.C

STYLE: drop construct STLpoint(Istream&), since it doesn't make much sense

- No use case for reading via an OpenFOAM stream and tokenizer.
  Should always be parsing ASCII or reading binary directly.
2017-06-26 17:11:46 +02:00
d415bf77bf Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-26 13:33:19 +01:00
21716842fd ENH: Added new Curle function object
Calculates the acoustic pressure based on Curle's analogy.

Curle's analogy is implemented as:

    \f[
        p' = 4 \frac{\pi}{c_0}\frac{\vec d}{|\vec d|^2}\frac{d(F)}{d(t)}
    \f]

where
    p'          | Curle's acoustic pressure [Pa] or [Pa (m3/rho)]
    c_0         | Reference speed of sound [m/s]
    \vec d      | Distance vector to observer locations [m]
    F           | Force [N] or [N (m3/rho)]
2017-06-26 13:32:14 +01:00
0881052ce1 ENH: doxygen - re-added css for OpenFOAM tables 2017-06-26 13:27:58 +01:00
89e175958f ENH: function object: added helper function to return a local scope name 2017-06-26 13:23:45 +01:00
e0e457bd7d STYLE: Updated to read from parent instead of skipping to base class 2017-06-26 13:21:34 +01:00
02edc5b206 STYLE: tabs and line length in files, very dubious NULL in ensight reader.
- disable automatically upgrading copyrights in files since changes to
  not automatically imply a change in copyright. Eg, fixing a typo in
  comments, or changing a variable from 'loopI' to 'loopi' etc.
2017-06-26 13:43:05 +02:00
2dc8038092 ENH: timeControl: adds some more #423. 2017-06-26 11:51:14 +01:00
fea9b6c57d DOC: update BuildIssues.txt 2017-06-26 12:19:05 +02:00
4abc7a92ed STYLE: Header updates 2017-06-26 11:03:00 +01:00
4971cedc2a CONFIG: cleanup bash completions in unset 2017-06-26 11:09:05 +02:00
a22d9fe760 BUG: correctPhi: reference cells could become -1. Part fix for #507. 2017-06-26 09:52:26 +01:00
0d3ada09f5 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-23 17:39:40 -07:00
2b733dfed1 ENH: Changing BC for nut and omega for interDyMFoam/RAS/motorBike tutorial 2017-06-23 17:38:52 -07:00
5d5cc61bef ENH: Improving schemes for interDyMFoam/RAS/motorBike 2017-06-23 17:36:59 -07:00
a2ee408f0b Merge branch 'feature-lumpedPointMotion' into 'develop'
Feature lumped point motion

See merge request !120
2017-06-23 14:54:56 +01:00
491657047b TUT: simple tutorial demonstrating lumpedPointMotion 2017-06-23 14:52:27 +01:00
c0b38033ea ENH: integration of lumpedPointMotion
- This provides a mechanism for moving mesh patches based on external
  input (eg, from an external structures solver). The patch points are
  influenced by the position and rotation of the lumped points.

  BC:  lumpedPointDisplacementPointPatchVectorField

  Controlling mechanisms:
  - externalCoupler
    for coordinating the master/slave

  - lumpedPointMovement
    manages the patch-points motion, but also for extracting forces/moments

  - lumpedPointState
    represents the positions/rotations of the controlling points

  Utils:
  - lumpedPointZones
    diagnostic for visualizing the correspondence between controlling
    points and patch faces

  - lumpedPointMovement
    Test that the patch motion is as desired without invoking moveMesh.
    With the -slave option, return items from a precalculated table
    for the lumpedPointDisplacementPointPatchVectorField BC.
2017-06-23 14:43:09 +01:00
6779036af6 ENH: paraFoam -touch-proc option for processor directories
- Can be useful when investigating mesh topologies
2017-06-23 13:51:46 +01:00
fef4e493d4 STYLE: Updated messages to use pretty macros 2017-06-23 12:23:04 +01:00
34a1a5dec2 STYLE: Minor corrections to comments/fix typos 2017-06-23 12:13:46 +01:00
e6951da06f ENH: valueAverage FO - update window to use user time 2017-06-23 11:56:22 +01:00
ff9d2c3a9c ENH: Updated frozenFlow option for interFoam and interIsoFoam 2017-06-23 11:43:55 +01:00
3d854a683d ENH: solutionControl - added frozenFlow option 2017-06-23 11:42:51 +01:00
880c98757d ENH: Adding lookupAndCheckout in basic thermo destructor to check out p field.
This was needed for application like postProcess.H in order to force the reading of thermal p on
every time.
2017-06-22 09:23:27 -07:00
8005e2b4a2 ENH: add cloneParallelCase function into bin/tools/RunFunctions 2017-06-22 14:45:53 +01:00
3df71d18d0 compressibleInterFoam: Improved mass conservation
using the continuity error correction formulation developed for
twoPhaseEulerFoam and reactingEulerFoam.
2017-06-22 14:42:36 +01:00
092d4f4f0b foamJob: Updated to support collated parallel IO
Resolves bug-report https://bugs.openfoam.org/view.php?id=2632
2017-07-24 08:22:11 +01:00
1eb3f3b18d surfaceFilmModels: 0.333 -> 1.0/3.0 and 0.666 -> 2.0/3.0
Resolves bug-report https://bugs.openfoam.org/view.php?id=2629
2017-07-21 17:38:31 +01:00
e17e8e4e96 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop
Conflicts:
	tutorials/basic/overLaplacianDyMFoam/heatTransfer/0.orig/T
	tutorials/basic/overLaplacianDyMFoam/heatTransfer/0.orig/zoneID
2017-06-22 09:48:31 +01:00
57346f63e9 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-21 12:28:26 -07:00
fd87d0af17 Taking out the low-Re behaviour for epsilon and omega wall functions as they are not
reliable for medium yPlus and needs more verification for Low-Re cases. This option proved
to be overall the most robust for a range of yPlus
2017-06-21 12:26:40 -07:00
6ecddbe4a5 STYLE: use #includeEtc in tutorial cases
#includeEtc "caseDicts/setConstraintTypes"
 vs.
    #include "${WM_PROJECT_DIR}/etc/caseDicts/setConstraintTypes"
2017-06-21 16:42:57 +01:00
597bad0d86 STYLE: adjust doc for extractEulerianParticles 2017-06-21 16:31:42 +01:00
a995fcccb6 ENH: make "done" the default termination for externalCoupled
- simply removing the lock file on termination provides insufficient
  information for the external application to know if it should take
  over again or if OpenFOAM has terminated. Instead the "status=done"
  content is now used by default.
2017-06-21 15:21:29 +01:00
c73865de87 Merge branch 'integration-isoadvector' into 'develop'
INT: Integration of isoAdvector and supporting material

See merge request !119
2017-06-21 17:22:26 +01:00
00cbae5126 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-21 14:06:16 +01:00
c462d48196 ENH: wallBoundedStreamline: handle patches with zero faces. See #502. 2017-06-21 14:05:26 +01:00
f6cc84e675 Merge branch 'feature-secondOrderRestart' into 'develop'
Feature second order restart

See merge request !114
2017-06-21 14:03:31 +01:00
cbbf08dc0d STYLE: tutorials: fix headers 2017-06-21 12:49:28 +01:00
65071b9598 ENH: Updated dpdt and K field construction 2017-06-21 12:20:58 +01:00
feab8e94a8 ENH: restrict aliases, completions to interactive shells
- minor cleanup of bash completion script
2017-06-21 08:09:15 +01:00
81018090a6 CONFIG: bump openmpi version to latest (2.1.1)
- adjust mesa, vtk versions to the latest
2017-06-21 08:36:52 +01:00
9fa89e67c6 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-20 13:42:46 -07:00
4418c192c4 Deleting alphaEqn.H from overInterDyMFoam 2017-06-20 13:42:10 -07:00
f92ee22541 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-20 14:47:17 +01:00
45a8b92450 COMP: mergePoints - corrected erroneous commas 2017-06-20 14:46:31 +01:00
29f4e77299 ENH: wallBoundedStreamline: make sure to track across neg face; more testing 2017-06-20 14:46:12 +01:00
a6ef8b9027 INT: Integration of isoAdvector and supporting material
Community contribution from Johan Roenby, DHI

IsoAdvector is a geometric Volume-of-Fluid method for advection of a
sharp interface between two incompressible fluids. It works on both
structured and unstructured meshes with no requirements on cell shapes.
IsoAdvector is as an alternative choice for the interface compression
treatment with the MULES limiter implemented in the interFoam family
of solvers.

The isoAdvector concept and code was developed at DHI and was funded
by a Sapere Aude postdoc grant to Johan Roenby from The Danish Council
for Independent Research | Technology and Production Sciences (Grant-ID:
DFF - 1337-00118B - FTP).
Co-funding is also provided by the GTS grant to DHI from the Danish
Agency for Science, Technology and Innovation.

The ideas behind and performance of the isoAdvector scheme is
documented in:

    Roenby J, Bredmose H, Jasak H. 2016 A computational method for sharp
    interface  advection. R. Soc. open sci. 3: 160405.
    [http://dx.doi.org/10.1098/rsos.160405](http://dx.doi.org/10.1098/rsos.160405)

Videos showing isoAdvector's performance with a number of standard
test cases can be found in this youtube channel:

    https://www.youtube.com/channel/UCt6Idpv4C8TTgz1iUX0prAA

Project contributors:

* Johan Roenby <jro@dhigroup.com> (Inventor and main developer)
* Hrvoje Jasak <hrvoje.jasak@fsb.hr> (Consistent treatment of
  boundary faces including processor boundaries, parallelisation,
  code clean up
* Henrik Bredmose <hbre@dtu.dk> (Assisted in the conceptual
  development)
* Vuko Vukcevic <vuko.vukcevic@fsb.hr> (Code review, profiling,
  porting to foam-extend, bug fixing, testing)
* Tomislav Maric <tomislav@sourceflux.de> (Source file
  rearrangement)
* Andy Heather <a.heather@opencfd.co.uk> (Integration into OpenFOAM
  for v1706 release)

See the integration repository below to see the full set of changes
implemented for release into OpenFOAM v1706

    https://develop.openfoam.com/Community/Integration-isoAdvector
2017-06-20 14:36:15 +01:00
c194bbf765 STYLE: fieldToCell: added explanation 2017-06-20 11:06:24 +01:00
e0ae2c0b9f ENH: additional constructor and methods for axesRotation
- provide single parameter constructor for which the rotation direction
  is determined based on the size/sign of the axis components.
  The direction is aligned with one of the global axes.

- expose setTransform as a public method to allow the user to reset
  the axesRotation if desired.
2017-06-20 09:50:47 +01:00
614b33f3e1 pRef is not required (default 0.0) when calcTotal flag is true. 2017-06-19 12:42:03 -07:00
6ff341b5f5 Adding alphaEqn.H with interpolation method.
Adding special alphaCourantNo for overlaping
Adding bounded term to UEq.H for overInterDyMFoam
Changing to NO_WRITE for the cellMask field
Changing twoSimpleRotors tutorial to open domain
2017-06-19 11:10:19 -07:00
ad8dfd4ad8 Cleaning up different output messages 2017-06-19 08:00:10 -07:00
560c015821 Merge branch 'master' into develop 2017-06-16 10:38:30 +01:00
d06589b746 STYLE: Updated warning message output 2017-06-16 10:37:52 +01:00
2883311a23 ENH: rhoPimple[DyM]Foam - updated treatment for dpdt 2017-06-15 14:51:27 +01:00
bea9063bd3 COMP: writeVTK: label64 compilation 2017-06-15 12:31:37 +01:00
4a3ead4732 ENH: avoid reduce for MPI barrier in externalCoupled (issue #419)
- rationalized waiting logic

- timeout and wait are unsigned int (not label) since this is what
  the underlying sleep uses anyhow.
2017-06-14 14:40:59 +02:00
b5f091e74f BUG: incorrect indexing for surface baffles (fixes #497) 2017-06-16 09:37:43 +02:00
a17a04122e ENH: wallBoundedStreamline: survive neg-tet cells. Fixes #502. 2017-06-15 16:49:21 +01:00
9c740ffc21 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-15 12:32:03 +01:00
510b579dd6 COMP: writeVTK: label64 compilation 2017-06-15 12:31:37 +01:00
6c3f04d0d4 Merge branch 'integration-ihc-wavemodels' into 'develop'
Integration of ihc wavemodels

See merge request !117
2017-06-15 11:38:25 +01:00
e6572f56ae Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-15 11:19:14 +01:00
acdeb308be ENH: sampledTriSurfaceMeshNormal: variant of sampledTriSurfaceMesh. Fixes #500. 2017-06-15 11:18:38 +01:00
dd19c87f30 updating fvOptions from fileName to file in windshieldCondensation
Correcting header in tabulatedNTUHeatTransfer from fileName to file
2017-06-14 14:33:14 -07:00
45be9bcc44 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-14 14:00:39 -07:00
b083205d23 Fixing externalWallHeatFluxTemperature mapping scalarFields.
Fixing humidityTemperatureCoupled problem in parallel
Adding Allrun-parallel to externalSolarLoad and windshieldCondensation tutorials
2017-06-14 13:58:52 -07:00
7e6faf049c Squashed commit of the following:
commit 510b9353f8cb932a87f1588b17a4dea230c29d3c
Author: mattijs <mattijs>
Date:   Wed Jun 14 16:36:35 2017 +0100

    ENH: timeControl: propagate time-change logic from Time.C

commit 6dc57a8f1e0e7605ea819deb6f11dd4b7874ff30
Author: mattijs <mattijs>
Date:   Thu Jun 1 11:28:56 2017 +0100

    ENH: timeControl: cleanup; avoid division by zero

commit 5ac4bc2dd8c1f4676eef9d7a03215caba23a2e19
Author: mattijs <mattijs>
Date:   Wed May 31 12:04:52 2017 +0100

    ENH: timeControl: allow ramping down as well as up.

commit a6b2db9e791f29258f04f3a9cbd6354aa468977d
Author: mattijs <mattijs>
Date:   Wed May 17 15:29:22 2017 +0100

    ENH: timeControl: limit any timestep change if deltaTCoeff enabled.

commit 004115ee03a6637ae0d23cce303a30d1b3af046f
Author: mattijs <mattijs>
Date:   Wed May 17 11:40:26 2017 +0100

    ENH: setTimeStep: have timeStart, timeEnd controls on time step adjustment.

    Also added smoothly varying time step change (through optional deltaTCoeff)
2017-06-14 16:40:17 +01:00
8a8e5e8891 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-14 08:06:26 -07:00
d435b215e2 Updating solarLoad tutorial case for parallel running 2017-06-14 08:05:19 -07:00
7c88c694df STYLE: vtkWrite: added comment 2017-06-14 15:34:05 +01:00
2dfd01ac7b Merge branch 'feature-paraview-vtk' into 'develop'
Feature paraview vtk

See merge request !116
2017-06-14 14:16:18 +01:00
9bb6d896fa Merge remote-tracking branch 'origin/develop' into develop 2017-06-14 14:22:59 +02:00
7eec9f0dd6 STYLE: use standardized 0.orig/ for overset tutorials 2017-06-14 14:15:22 +02:00
518089e722 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-14 12:29:06 +01:00
e14ad6f1fc BUG: mixerVessel: replace foamInfoExec with foamListTimes 2017-06-14 12:28:33 +01:00
710f23aa35 COMP: hash-table size overflow with 64-bit labels (fixes #498)
- Requires (1L << N) instead of (1 << N), otherwise it overflows
  and the result is zero.
2017-06-14 12:54:38 +02:00
6d649ddf1f STYLE: prefix bash completion functions with '_of_' for easier removal 2017-06-14 11:46:10 +02:00
29fa7a9306 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-14 10:24:07 +01:00
685d6a0e72 CONFIG: avoid bash completions for non-bash shells (eg, dash, ksh, zsh) 2017-06-14 11:22:51 +02:00
fd665b4a3c ENH: overset: Initial release of overset capability.
Adds overset discretisation to selected physics:
- diffusion : overLaplacianDyMFoam
- incompressible steady : overSimpleFoam
- incompressible transient : overPimpleDyMFoam
- compressible transient: overRhoPimpleDyMFoam
- two-phase VOF: overInterDyMFoam

The overset method chosen is a parallel, fully implicit implementation
whereby the interpolation (from donor to acceptor) is inserted as an
adapted discretisation on the donor cells, such that the resulting matrix
can be solved using the standard linear solvers.

Above solvers come with a set of tutorials, showing how to create and set-up
simple simulations from scratch.
2017-06-14 09:51:02 +01:00
ba5f79a8e5 ENH: suppress unset -f warnings for bash completions 2017-06-14 10:22:39 +02:00
11e7728f8b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-14 09:06:49 +01:00
2d530401fd ENH: add foamToVTK -name option
- as per foamToEnsight, foamToEnsightParts.
  Allows the user to specify different output directories.
2017-06-14 08:14:24 +02:00
49500b0194 STYLE: more meaningful variable name when using meshSubsetHelper 2017-06-14 07:56:57 +02:00
180788c453 STYLE: remove deprecatedOrder from ensightWrite function object
- this should not have been there in the first place
2017-06-14 07:52:26 +02:00
98cc0fc004 ENH: upgrade writeVTK function object -> vtkWrite function object
- user-selectable format (vtk or vtu, ascii or binary)
- dictionary syntax closer to ensightWrite
- tutorial example in windAroundBuildings
2017-06-14 01:48:32 +02:00
df5b009708 ENH: support direct writing of fields from vtk::patchWriter
- eliminates the PtrList requirement (more flexible)
2017-06-14 00:53:51 +02:00
2a72baf29f ENH: support direct writing of fields from vtk::internalWriter
- eliminates the PtrList requirement (more flexible)

COMP: use tmp intermediate for volPointInterpolation return value

- gcc 4.8.5 had some weird issue of otherwise not binding a const-ref.
  (in foamVtkInternalWriterTemplates.C)
2017-06-14 00:28:58 +02:00
8221111245 STYLE: pass legacy nCmpt as int 2017-06-13 23:59:11 +02:00
7ee1dba43a STYLE: adjust feedback comments in foamToVTK 2017-06-13 22:28:39 +02:00
69deec2e1c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-13 09:41:45 -07:00
d661165759 Init processor_ variable for patchProbes in findElements function 2017-06-13 09:40:57 -07:00
cde12ad9e5 ENH: consolidate vtk classes into 'Foam::vtk' namespace
- elminate the foamVtkFormatter operator() in favour of xmlAttr.
  Improves readability and the purpose is clearer.
2017-06-13 14:10:07 +02:00
d764104730 externalWallHeatFluxTemperature: Changed Ta entry to Function1 to support time variation
Temporal variation of Ta is generally more useful than spatial variation but
a run-time switch between the two modes of operation could be implemented in
needed.
2017-06-13 09:00:48 +01:00
523008e85d STYLE: corrected file vs fileName for CSV files 2017-06-13 07:23:32 +02:00
206914ceae TUT: consistent indentation in controlDict 2017-06-13 07:17:37 +02:00
0ea219adf5 TUT: consistent writeCompression option
- Use on/off vs longer compressed/uncompressed.
  For consistency, replaced yes/no with on/off.

- Avoid the combination of binary/compressed,
  which is disallowed and provokes a warning anyhow
2017-06-13 06:50:16 +02:00
0735836302 Correcting header docu 2017-06-12 13:56:39 -07:00
852616ba88 interpolationTable: Correcting header documentation
fanPressureFvPatchScalarField.H:  Correcting header documentation
RAS/TJunctionFan/0.orig: Creating tutorial for fanPressure
Adding pRef and pValue for tutorial createZeroDirectory/snappyMultiRegionHeater
2017-06-12 13:53:52 -07:00
b6b61a4cf4 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-12 11:29:53 -07:00
e3701a47ae ENH: Adding non-dimensional table input to fanPressure BC
Adding intertial term switch to solarLoad chtMultiRegionFoam case
2017-06-12 11:28:57 -07:00
6e154d84b4 STYLE: use Enum instead of NamedEnum in fileFormats 2017-06-12 16:17:04 +02:00
0af1e0b722 BUG: minor regression. STL reading in double, not float (issue #491)
- By definition, binary STL uses float (not double) when reading.
  The ascii STL should be the same. This reduces memory overhead when
  loading files. The older triSurface reader had float, the surfMesh
  reader had double, but now has float.

- Inconsistency in the STL merge-tolerances between triSurface reader,
  surfMesh reader and WM_SP vs WM_DP. Now use consistent tolerances
  conrresponding to 10,100 * doubleSMALL.

- Similar float/double code adjustments for TRI format since this is
  very similar to the STL reader and had a similar inconsistency between
  the triSurface and surfMesh version. The AC3D reader still uses
  double when reading, but this can be revisited in the future (and can
  then remove the stichTriangles method too).
2017-06-12 15:47:01 +02:00
bf88d4ec99 ENH: reduce chance of false positives when generating bash completions
- only treat text as an option if it is preceded by 0-4 spaces.
  This prevents the description of an option from being accidentally
  detected as an option.
2017-06-12 14:58:13 +02:00
edc1bd2230 CONFIG: bump paraview version 2017-06-12 14:57:56 +02:00
951fbb6575 ENH: add construct from floatVector for STLpoint (issue #491) 2017-06-12 14:41:03 +02:00
4094e2c58f ENH: reduce memory overhead in mergePoints (issue #495)
- can avoid the intermediate point distance field in exchange for
  calculating a point subtraction twice.
2017-06-12 14:36:45 +02:00
39f0c4cf1a BUG: flex symbol conflict (issue #494) 2017-06-12 12:56:16 +02:00
ead256f506 INT: Integration of rhoPimpleAdiabaticFoam
Solver for low Mach no. flows with adiabatic thermodynamics and updated
pressure-velocity coupling given by the RCM interpolation procedure
described in

    \verbatim
        Knacke, T. (2013).
        Potential effects of Rhie & Chow type interpolations in airframe
        noise simulations. In: Schram, C., Dénos, R., Lecomte E. (ed):
        Accurate and efficient aeroacoustic prediction approaches for
        airframe noise, VKI LS 2013-03.
    \endverbatim

Original code supplied by Thilo Knacke, CFD E+F GmbH
contact: info@cfd-berlin.com

Integrated into OpenFOAM by OpenCFD Ltd.
2017-06-09 10:23:47 +01:00
3deccbedd7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-08 16:59:09 +01:00
ca7dbabdcf ENH: probes: filter out points that cannot be found. Fixes #492. 2017-06-08 16:55:52 +01:00
257d2f04a4 Update rho = thermo.rho(), in the pEq for reactingFoam.
Updating fvSolution's for closed domains for chtMultiRegionFoam cases
2017-06-08 10:41:57 +01:00
4691ee4951 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-08 09:24:08 +01:00
d9b2de8f74 Adding rhoMin and rhoMax to rhoReactingFoam 2017-06-08 09:23:47 +01:00
6186f91fea Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-07 16:33:27 +01:00
74cfb1906f ENH: probes: filter out points that cannot be found. Fixes #492. 2017-06-07 16:33:06 +01:00
486a82fad6 Updating rho with thermo rho at the end of the pEq.H, independently of
simpleRho or limiting p.
2017-06-07 16:26:43 +01:00
f31d5cf217 STYLE: sampledSurface: added comment for interpolation 2017-06-07 15:19:51 +01:00
bac2c8cc30 GIT: Resolved conflict 2017-06-07 15:00:31 +01:00
68df61bebe BUG: set oriented flag when calculating the correction for rank > vector types 2017-06-07 13:16:51 +01:00
c44322ebb8 Adding correctRho plus rhoMin and rhoMax limiters to thermos.
Update pEq for close domains.
2017-06-07 12:11:01 +01:00
1a4bca3a59 BUG: Pair: non-commutative comparison operator. Fixes #490. 2017-06-05 10:13:32 +01:00
a83ee15462 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-05 08:34:09 +01:00
53d6eeacff Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-02 13:36:09 -07:00
40b0cbd8d1 1)Adding alphaEqn.H and alphaEqnSubCycle.H specialized version for MPPICInterFoam
2)Adapting divU in TEqn.H for compressibleInterDyMFoam and compressibleInterFoam
3)Re-instated sixDoFRigidBodyDisplacement as patch for pointFields. It allows to use a different fvDynamincMesh type
independently of the BC's
2017-06-02 13:33:33 -07:00
4cbbe3fd59 ENH: add VTP output support for surfMesh
- use proxy writer for triSurface writing
2017-06-02 12:07:43 +02:00
b538a9128c ENH: New wave model integration updates for McCowan and Grimshaw models 2017-06-02 10:23:32 +01:00
0f230ba35b ENH: Added new Grimshaw and McCowan wave models - initial commit for
integration
2017-06-02 09:47:31 +01:00
361398a64a COMP: make mathematical constants constexpr
- these are compile-time constants and can be marked as such in C++11.
2017-06-02 07:55:04 +02:00
d1b651533f Modification on rhoPimpleFoam pEq's for handling rho thermo and incompressible EoS. Adding rho limiters if p is limited.
This is important when LTS stepping or large Co number is used.

Updating rhoBuoyantPimpleFoam to handle closed domain for rho thermo and incompressible Eos.
Consolidating chtMultiRegionSimpleFoam and chtMultiRegionFoam pEqs to use the same formulation as rhoBuoyantPimpleFoam and
rhoBuoyantSimpleFoam
2017-06-01 12:39:28 -07:00
309a5d92f5 BUG: patchFields: set patchType() by hand if construct-from-parts. Related to #315. 2017-06-01 17:59:10 +01:00
9f04dc9151 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-01 17:53:10 +01:00
a2e978d43e ENH: add VTP, VTU output for most vtk writers (insitu only)
- with the xml append format it is possible to write raw binary
  (instead of base64), but the writer becomes more complicated.
  Either needs two passes to create, or need to allocate a block
  of space for the header information (like VTK itself does) and
  write later.

    * internalWriter
    * patchWriter
    * surfaceMeshWriter
    * lagrangianWriter

 Also these special purpose ones:
    * foamVtkWriteSurfFields
2017-06-01 18:28:40 +02:00
b80f24948d Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-01 17:28:21 +01:00
6a0b35bdc8 ENH: noiseModels - updated parallel usage (no longer needs proc dirs) and apply input data validation 2017-06-01 17:27:30 +01:00
f431a328d2 ENH: volRegion and volFieldValue - updated output name if operating on all cells 2017-06-01 17:26:12 +01:00
8aab4f1593 Revert "sixDoFRigidBodyDisplacementPointPatchVectorField, uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField: removed"
This reverts commit 942338b06c.
2017-06-01 17:17:50 +01:00
a4b826aa1e STYLE: fix comments 2017-06-01 16:38:48 +02:00
4faee1b3bf COMP: unitConversion - using M_PI instead of pi to avoid compiltion error due to pi not evaluating to a constexpr 2017-06-01 20:17:09 +01:00
b312f0ba40 ENH: documentation and input simplification for surfaceFeatureExtract 2017-06-01 15:46:42 +02:00
0a49f3efc7 ENH: writeOBJ faces - use face instead of lines 2017-06-01 12:55:23 +01:00
c4f1349496 ENH: construct VTK writers with the outputOptions and adjust internally
- this shifts responsibility away from caller to the individual writers
  for knowing which file formats are supported and which file ending is
  appropriate. When the writer receives the output format request,
  it can elect to downgrade or otherwise adjust it to what it can
  actually manage (eg, legacy vs xml vs xml-append).

  But currently still just with legacy format backends.
2017-05-31 22:08:54 +02:00
a335ba6b6b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-31 17:45:07 +01:00
4bbc62bbb8 ENH: stringOps - getVariable function - make use of the allowEmpty flag 2017-05-31 17:44:44 +01:00
f89b770f21 Merge branch 'feature-surfaceFeatureExtract' into 'develop'
Feature surface feature extract

See merge request !110
2017-05-31 16:33:45 +01:00
79ea782301 Merge branch 'ccm-bugfixes' into 'develop'
ccm conversion bugfixes

See merge request !115
2017-05-31 11:51:09 +01:00
8da6e8eb74 DEFEATURE: remove CCM combine boundary code
- was generally somewhat fragile. The main problem stems from the fact
  that several interfaces may be attached to a boundary. No trivial
  means of solving this without too much work for a feature that is only
  "nice-to-have".
2017-05-31 12:34:07 +02:00
da5c5d15f7 GIT: Resolved conflict on cherry-pick 2017-05-31 10:35:05 +01:00
ca2811d50a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-06-06 17:31:19 +01:00
854f607f93 STYLE: Updated heat power and flux names 2017-06-06 11:53:00 +01:00
c0763bf8d2 Merge branch 'master' into develop 2017-06-06 09:52:21 +01:00
62e7ddccdc ENH: add (C++11) user-literal for degrees to radians conversion
- Programming convenience.
  Eg, cos(45_deg) vs cos(degToRad(45))

STYLE: conversions marked as constexpr and noexcept
2017-05-31 10:16:19 +02:00
0be69605fd STYLE: incorrect namespace for doxygen 2017-05-31 10:02:55 +02:00
3fd1c47324 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-31 09:00:16 +01:00
8a52553b63 BUG: snappyHexMesh: extraneous debug printing. Fixes #485. 2017-05-31 08:59:36 +01:00
408b6c7e6b ENH: mergePoints now with template for list types
- makes it possible to use list types other than UList.
  For example, UIndirectList<point>
2017-05-30 18:21:01 +02:00
104f43583f CONFIG: bump baseline version to 1706
- not yet release, but some of the API and file locations are closer
  to 1706 than to 1612. Needed, for example, for swak4foam.
2017-05-30 15:09:06 +02:00
d9072f527c COMP: provide NamedEnum::found() method for third-party code
- eg, swak4Foam uses it for NumericAccumulationNamedEnum
2017-05-30 14:47:08 +02:00
49129ba88b COMP: using private data in HashPtrTableIO 2017-05-30 14:44:37 +02:00
111ec17cb5 GIT: Updated after cherry-picks from third party code 2017-05-30 12:53:59 +01:00
98ccc6ed50 ENH: add prune option for ListOps reorder, inplaceReorder
- allows simultaneously reordering and truncation of lists

STYLE: add const ref for UnaryPredicate parameter
2017-05-30 13:18:06 +02:00
6d26b40e8b STYLE: use newer forAll macros 2017-05-30 12:44:13 +02:00
03944c2a26 ENH: support enumerations for vtk xml file tags and some legacy text elements 2017-05-30 10:34:01 +02:00
5d60d7e15c BUG: incorrectly dimensioned edge directions in extendedEdgeMesh:add() 2017-05-29 22:26:14 +02:00
dfafe6075a ENH: region-wise self intersection for surfaceFeatureExtract (issue #450) 2017-05-29 18:57:25 +02:00
6563c98d6c ENH: support different triSurface loading options
- "single" = One region for all files
 - "file"   = One region for each file
 - "offset" = Offset regions per file
 - "merge"  = Merge regions by name

These specifications provide finer control when loading multiple
surfaces.
2017-05-29 18:25:23 +02:00
67237e9385 CONFIG: adjust boost,CGAL versions 2017-05-29 17:18:26 +02:00
0f83b3f04b BUG: incorrect fall-through in directionalPressureGradientExplicitSource (fixed #486) 2017-05-29 15:34:14 +02:00
33e0c95d2d BUG: incorrect fall-through in directionalPressureGradientExplicitSource (fixes #486) 2017-05-29 15:33:38 +02:00
76c39302dd CONFIG: add compiler config for Gcc 7.1.0 2017-05-29 15:20:56 +02:00
90a07ff4cc BUG: enum constant in boolean context 2017-05-29 15:18:35 +02:00
d7a4088caa COMP: explicit handling of fallthrough cases 2017-05-29 15:10:54 +02:00
8afc6cbd86 ENH: Enum class as drop-in alternative for NamedEnum
- the NamedEnum wrapper is somewhate too rigid.
  * All enumerated values are contiguous, starting as zero.
  * The implicit one-to-one mapping precludes using it for aliases.
  * For example, perhaps we want to support alternative lookup names for an
    enumeration, or manage an enumeration lookup for a sub-range.
2017-05-29 13:13:53 +02:00
77a5b99e92 COMP: Hash.H was not included with HashTable/HashSet
- was only included indirectly via FixedList.H
2017-05-29 11:20:49 +02:00
c6c79ab313 STYLE: use std::pair (not Tuple2) in conjunction with std::initializer_list
- no penalty compared to Tuple2, potential future benefits with C++
  constructor forwarding.
2017-05-29 11:07:39 +02:00
fb4971644f ENH: cleanup of NamedEnum
- Remove the unused enums() method since it delivers wholly unreliable
  results. It is not guaranteed to cover the full enumeration range,
  but only the listed names.

- Remove the unused strings() method.
  Duplicated functionality of the words(), but was never used.

- Change access of words() method from static to object.
  Better code isolation. Permits the constructor to take over
  as the single point of failure for bad input.

- Add values() method

- do not expose internal (HashTable) lookup since it makes it more
  difficult to enforce constness and the implementation detail should
  not be exposed. However leave toc() and sortedToc() for the interface.

STYLE: relocated NamedEnum under primitives (was containers)

- internal typedef as 'value_type' for some consistency with STL conventions
2017-05-29 10:30:55 +02:00
dd54aa3018 BUG: non-lazy PackedList (fixes #484)
- The unset() method never auto-vivifies, whereas the set() method
  always auto-vivifies. In the case where set() is called with a zero
  for its argument - eg, set(index, 0) - this should behave
  identically to an unset() and not auto-vivify out-of-range entries.
2017-05-26 21:02:28 +02:00
9bc87005ad Adding optional build of the thermo tpe per reaction. This thermo is not necessary for solid reactions.
NOTE: in Reaction.C constructors bool initReactionThermo is used by solidReaction where there is no
need of setting a lhs - rhs thermo type for each reaction. This is needed for mechanism with reversible reactions
2017-05-26 10:18:01 -07:00
4bc3c5f2ba Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-26 08:29:09 -07:00
8f1a4f792d ENH: include region counting in triSurface writeStats 2017-05-26 15:00:48 +02:00
26fef427ed ENH: provide lookupOrDefault for NamedEnum - makes for easier use. 2017-05-26 16:59:20 +02:00
b83007594a ENH: HashTable cfind() method returning a const_iterator
- This follows the same idea as cbegin/cend and is helpful when using
  C++11 auto to ensure we have unambiguous const-safe access.

  Previously:
  ====
    typename someLongClass::const_iterator iter = someTable.find(key);

    ... later on:
    *iter = value; // Oops, but caught by compiler.

  We can save some typing with auto, but it is uncertain what we get:
  ====
    auto iter = someTable.find(key);
        // iterator or const_iterator?
        // depends on someTable having const or non-const access.

    ... later on:
    *iter = value;  // Oops, but not caught by compiler.

  Using cfind instead, auto will deduce const_iterator as the type:
  ====
    auto iter = someTable.cfind(key);  // definitely const_iterator

    ... later on:
    *iter = value; // Oops, but caught by compiler.
2017-05-26 12:42:30 +02:00
2af602c2f4 STYLE: for Istream/Ostream check() use FUNCTION_NAME in messages 2017-05-26 10:59:16 +02:00
0564efb9e1 ENH: add basic support for file extensions to word
- when a plain word is used as a directory-local name for file.
  We don't have a full blown fileName, but still want to check/remove
  extensions etc.
2017-05-26 10:48:01 +02:00
ccc1ce4a25 ENH: avoid calling fileName::components twice in Foam::cp 2017-05-26 10:39:56 +02:00
5efe22c2f0 ENH: align constructors of geometricSurfacePatch with surfZoneIdentifier
- both classes are nearly identical and should be merged in the future.
2017-05-26 09:10:48 +02:00
8d3e106166 STYLE: remove redundant size check 2017-05-26 08:15:49 +02:00
15d5fca144 BUG: argList: -decomposeParDict handling in combination with -case.
Related to #482 but this one is the handling inside argList.
2017-05-25 12:12:43 +01:00
757cc7a15d BUG: cshrc: account for lsof printing mount point after files
Some versions of lsof print the mount point (if remote) after the
script path:
    /hosts/mymachine/OpenFOAM/OpenFOAM-plus.develop/etc/cshrc (mymachine:/home)
This now gets filtered out.
2017-05-25 10:43:57 +01:00
4b20991841 ENH: argEdge: order of member initialisation. Fixes #481. 2017-05-25 09:16:49 +01:00
a42c35f64b ENH: paraview reader module with internal caching of the vtk geometries
- The reader module allows two levels of caching.
  The OpenFOAM fvMesh can be cached in memory, for faster loading of
  fields. Additionally, the translated VTK geometries are held in a
  local cache. The cached VTK geometries should incur no additional
  overhead since they use the VTK reference counting for their storage
  management.
2017-05-24 17:12:49 +02:00
391a9c5fe2 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-24 16:11:33 +01:00
ce88aca9f7 Merge branch 'feature-oriented-fields' into 'develop'
Initial attempt to track oriented surface fields

See merge request !104
2017-05-24 14:30:51 +01:00
0215e330d5 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-24 14:30:46 +01:00
2838c4554c BUG: pointConstraints: resize all constraints arrays. Fixes #480. 2017-05-24 14:28:28 +01:00
e0a5537d3f Merge branch 'feature-oriented-fields' of develop.openfoam.com:Development/OpenFOAM-plus into feature-oriented-fields 2017-05-24 14:22:54 +01:00
9a864bdd85 GIT: Resolved merge conflict when merging develop branch 2017-05-24 12:30:09 +01:00
b5ed93a40a ENH: orientedFields - refectored and simplified usage 2017-05-24 12:26:12 +01:00
51b4c38987 STYLE: explicitly use iterator object() in ListOps
STYLE: adjust parameter names and template types in invertManyToMany

- more explicit about the acceptable list types
2017-05-24 07:51:38 +02:00
c4caef3a1b ENH: nicer indentation of inGroups patch entry (issue #474)
- The inGroups is a wordList.
  It can be flattened on output to make files more readable.
2017-05-24 07:40:48 +02:00
96d98cd2de ENH: paraFoam --help => immediate pass-through to paraview --help
ENH: Paraview modules.

- Update props with int, not bool (for more versatility)
- Set properties and tool-tips directly on widgets instead of buttons
2017-05-23 08:02:25 +02:00
9d7b0838ca Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-22 14:11:30 -07:00
f0fcfce6a3 ENH: avoid weird cast workarounds for edgeFaceCirculator
- holding a pointer instead of a reference for edgeFaceCirculator
  simplifies overall handling.
2017-05-22 18:12:25 +02:00
2495fcb42e ENH: replace foamToVTK routines with library-level equivalents 2017-05-22 16:13:53 +02:00
31d0f2c51c Merge branch 'integration-foundation' into 'develop'
Integration foundation

See merge request !99
2017-05-22 14:06:34 +01:00
5a528a7330 STYLE: additional cleanup of hashtable item found checks 2017-05-22 15:06:21 +02:00
9fef27cb7d ENH: relocate inplaceUniq (wordReList) into wordRes 2017-05-22 14:59:05 +02:00
6e72ceddd0 Merge branch 'enh-iter-cleanup' into 'develop'
Further hash table iter clean-up

See merge request !113
2017-05-19 12:44:05 +01:00
bb67ccd37d ENH: Cleaned up hash table item found checks 2017-05-19 11:15:35 +01:00
bd73ca26f2 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-18 12:45:12 -07:00
1f42c2a5ec Changing writing of thermal inerial flag 2017-05-18 12:44:25 -07:00
8255005e19 ENH: mapDistributePolyMesh: new test app 2017-05-18 16:57:22 +01:00
70bed0e8fe externalWallHeatFluxTemperatureFvPatchScalarField: Corrected decomposition mapping 2017-05-18 15:07:19 +01:00
f549e28fb8 INT: Updated code related to change in pos(x) function 2017-09-07 14:57:10 +01:00
56bfc75949 Rationalize the "pos" function
"pos" now returns 1 if the argument is greater than 0, otherwise it returns 0.
This is consistent with the common mathematical definition of the "pos" function:

https://en.wikipedia.org/wiki/Sign_(mathematics)

However the previous implementation in which 1 was also returned for a 0
argument is useful in many situations so the "pos0" has been added which returns
1 if the argument is greater or equal to 0.  Additionally the "neg0" has been
added which returns 1 if if the argument is less than or equal to 0.
2017-06-22 14:32:18 +01:00
639305e960 localEulerDdtScheme: Completed and tested support for moving meshes
Now the "localEuler" ddt scheme does not apply any corrections due to
mesh-motion; the old-time volumes are not used and the mesh-motion flux is set
to zero.  A consequence of these changes is that boundedness of transported
scalars is ensured but mesh-motion causes a conservation error which will
reduces to zero as steady-state is approached and the mesh becomes stationary.
2017-05-25 09:38:33 +01:00
328769b25d STYLE: Code clean-up 2017-09-07 14:30:28 +01:00
41e4d68ff8 MULES: Improve handling of very small geometries 2017-07-24 10:35:54 +01:00
d27457d41d refineMesh: Correct parallel operation
Patch contributed by Mattijs Janssens
Resolves bug-report https://bugs.openfoam.org/view.php?id=2621
2017-07-22 22:39:40 +01:00
e0f3963875 reactingOneDim: Correct reporting of temperature range in parallel
Patch Contributed by Karl Meredith, FM Global.
Resolves bug-report https://bugs.openfoam.org/view.php?id=2621
2017-07-19 12:45:23 +01:00
415d000db6 INT: Compatibility updates for Function1 related code 2017-09-07 10:47:54 +01:00
3b6eb380d0 Function1: Optimized field evaluations 2017-08-08 10:16:08 +01:00
2f431ffd3d made the clone function pure virtual
Avoids potential problems with derived classes which do not define a clone function.
2017-07-13 23:24:14 +01:00
5157be4bb3 Function1::ramp function: Added clone function 2017-07-13 17:04:33 +01:00
0ada640f84 Time::purgeWrite: Corrected handling of collated processors directory
Resolves bug-report https://bugs.openfoam.org/view.php?id=2667
2017-08-17 14:53:55 +01:00
bed8dd4bc7 fileOperation: Corrected processor counting for moving mesh cases 2017-08-11 00:07:48 +01:00
fdf08c401f INT: Removed deprecated utility 2017-09-07 09:00:41 +01:00
36b32d242b argList: addition of fileHandler option moved to argList.C
Patch contributed by Timo Niemi, VTT.
Resolves bug-report https://bugs.openfoam.org/view.php?id=2645
2017-08-03 10:42:24 +01:00
7cad29f7c8 BUG: argList: disable checking for exact path; rely on fileHandler instead 2017-09-06 21:58:08 +01:00
fb20bc107e INT: Updated dependent code following latest set of integrations 2017-09-06 16:05:12 +01:00
d8d6030ab6 INT: Integration of Mattijs' collocated parallel IO additions
Original commit message:
------------------------

Parallel IO: New collated file format

When an OpenFOAM simulation runs in parallel, the data for decomposed fields and
mesh(es) has historically been stored in multiple files within separate
directories for each processor.  Processor directories are named 'processorN',
where N is the processor number.

This commit introduces an alternative "collated" file format where the data for
each decomposed field (and mesh) is collated into a single file, which is
written and read on the master processor.  The files are stored in a single
directory named 'processors'.

The new format produces significantly fewer files - one per field, instead of N
per field.  For large parallel cases, this avoids the restriction on the number
of open files imposed by the operating system limits.

The file writing can be threaded allowing the simulation to continue running
while the data is being written to file.  NFS (Network File System) is not
needed when using the the collated format and additionally, there is an option
to run without NFS with the original uncollated approach, known as
"masterUncollated".

The controls for the file handling are in the OptimisationSwitches of
etc/controlDict:

OptimisationSwitches
{
    ...

    //- Parallel IO file handler
    //  uncollated (default), collated or masterUncollated
    fileHandler uncollated;

    //- collated: thread buffer size for queued file writes.
    //  If set to 0 or not sufficient for the file size threading is not used.
    //  Default: 2e9
    maxThreadFileBufferSize 2e9;

    //- masterUncollated: non-blocking buffer size.
    //  If the file exceeds this buffer size scheduled transfer is used.
    //  Default: 2e9
    maxMasterFileBufferSize 2e9;
}

When using the collated file handling, memory is allocated for the data in the
thread.  maxThreadFileBufferSize sets the maximum size of memory in bytes that
is allocated.  If the data exceeds this size, the write does not use threading.

When using the masterUncollated file handling, non-blocking MPI communication
requires a sufficiently large memory buffer on the master node.
maxMasterFileBufferSize sets the maximum size in bytes of the buffer.  If the
data exceeds this size, the system uses scheduled communication.

The installation defaults for the fileHandler choice, maxThreadFileBufferSize
and maxMasterFileBufferSize (set in etc/controlDict) can be over-ridden within
the case controlDict file, like other parameters.  Additionally the fileHandler
can be set by:
- the "-fileHandler" command line argument;
- a FOAM_FILEHANDLER environment variable.

A foamFormatConvert utility allows users to convert files between the collated
and uncollated formats, e.g.
    mpirun -np 2 foamFormatConvert -parallel -fileHandler uncollated

An example case demonstrating the file handling methods is provided in:
$FOAM_TUTORIALS/IO/fileHandling

The work was undertaken by Mattijs Janssens, in collaboration with Henry Weller.
2017-07-07 11:39:56 +01:00
03c114010f reactingEulerFoam: Bug fix to reactionsource terms
Fixed reaction source terms in the energy and species fraction equations
by multiplying by the phase fraction.

Resolves bug report https://bugs.openfoam.org/view.php?id=2591
2017-06-26 17:05:35 +01:00
8cd8f79329 TDACChemistryModel: improved reporting of CPU time
Added a grow time and better allocate the CPU time to either add or grow.  This
gives much more information to the user and helps changing the settings
accordingly.

Patch contributed by Francesco Contino
2017-06-26 14:09:12 +01:00
07a1240eba TDACChemistryModel::DRG: Corrected comments
Patch contributed by Francesco Contino
2017-06-23 08:17:45 +01:00
1f967d5cd8 reactingEulerFoam::IsothermalPhaseModel: Added support for isothermal compressible flow
Based on patch contributed by Ronald Oertel, HZDR
Resolves bug-report https://bugs.openfoam.org/view.php?id=2583
2017-06-15 16:43:04 +01:00
7e408dd242 vectorField: vector2DField: Added zip functions for stitching together a
vectorField or vector2DField from scalarField components. To do this
properly and have it work for field-type combinations would require some
new field function macros.
2017-05-22 12:58:25 +01:00
1f59360e55 fvOptions: limitVelocity: Fixed the correction factor
Resolves bug report https://bugs.openfoam.org/view.php?id=2634
2017-07-27 15:10:30 +01:00
3b8528440d foamDebugSwitches: Removed, no longer needed
Resolves bug-report https://bugs.openfoam.org/view.php?id=2590
2017-06-23 09:00:44 +01:00
5403e977f1 listSwitches: moved from argList to debug
Initially the listSwitches functions depended directly on argList functionality
but this has now been factored out so that the listSwitches functions are more
general and require only debug functionality.
2017-06-11 23:18:34 +01:00
02e33f4997 Replace foamList utility with -list.* options
Provides better context for the available boundary conditions, fvOptions,
functionObjects etc. and thus returns only those available to and compatible
with the particular application.

e.g.

pimpleFoam -help

Usage: pimpleFoam [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -listFunctionObjects
                    List functionObjects
  -listFvOptions    List fvOptions
  -listRegisteredSwitches
                    List switches registered for run-time modification
  -listScalarBCs    List scalar field boundary conditions (fvPatchField<scalar>)
  -listSwitches     List switches declared in libraries but not set in
                    etc/controlDict
  -listTurbulenceModels
                    List turbulenceModels
  -listUnsetSwitches
                    List switches declared in libraries but not set in
                    etc/controlDict
  -listVectorBCs    List vector field boundary conditions (fvPatchField<vector>)
  -noFunctionObjects
                    do not execute functionObjects
  -parallel         run in parallel
  -postProcess      Execute functionObjects only
  -roots <(dir1 .. dirN)>
                    slave root directories for distributed running
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

pimpleFoam listTurbulenceModels

pimpleFoam -listTurbulenceModels
/*---------------------------------------------------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  dev                                   |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
Build  : dev-39c46019e44f
Exec   : pimpleFoam -listTurbulenceModels
Date   : Jun 10 2017
Time   : 21:37:49
Host   : "dm"
PID    : 675
Case   : /home/dm2/henry/OpenFOAM/OpenFOAM-dev
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
SetNaN : Initialising allocated memory to NaN (FOAM_SETNAN).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster (fileModificationSkew 10)
allowSystemOperations : Allowing user-supplied system call operations

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Turbulence models
3
(
LES
RAS
laminar
)

RAS models
18
(
LRR
LamBremhorstKE
LaunderSharmaKE
LienCubicKE
LienLeschziner
RNGkEpsilon
SSG
ShihQuadraticKE
SpalartAllmaras
kEpsilon
kOmega
kOmegaSST
kOmegaSSTLM
kOmegaSSTSAS
kkLOmega
qZeta
realizableKE
v2f
)

LES models
10
(
DeardorffDiffStress
Smagorinsky
SpalartAllmarasDDES
SpalartAllmarasDES
SpalartAllmarasIDDES
WALE
dynamicKEqn
dynamicLagrangian
kEqn
kOmegaSSTDES
)

Further work will be needed to support the -listTurbulenceModels option in
multiphase solvers.
2017-06-10 21:34:27 +01:00
5cc03052ff saturationModels::function1: New Function1 Tsat model
based on code contributed by Juho Peltola, VTT.

Resolves contribution request https://bugs.openfoam.org/view.php?id=2573
2017-06-26 17:36:10 +01:00
69c727bd53 pimpleControl: Corrected handling of finalInnerIter() 2017-06-06 10:18:02 +01:00
a1e0fe9582 compressibleInflowOutflow template case: added missing wallDist in fvSchemes 2017-06-04 12:33:22 +01:00
3c1982e205 surfaceFind: output region/zone number of found face 2017-06-02 21:02:01 +01:00
0bc9a459c8 CourantNo: Removed check for nInternalFaces which is not correct in general in parallel 2017-05-31 10:37:11 +01:00
ec6c0d7e0f cfdTools: Added a number of functions for performing volume averages of
discontinuous fields, with the discontinuity defined by a level set. The
functions do a proper integration of the discontinuous fields by tet-
and tri-cutting along the plane of the level set.
2017-05-22 12:29:27 +01:00
ad789e23bf BUG: sixDoFRigidBodyMotion: Corrected handling of acceleration update in first time-step
Resolves bug-report https://bugs.openfoam.org/view.php?id=2551
2017-05-18 16:30:08 +01:00
e4d15d874c Merge branch 'HashTable-method-enhancements' into 'develop'
Hash table method enhancements

See merge request !112
2017-05-18 12:54:36 +01:00
c1cbfe7a46 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-18 12:41:07 +01:00
99f31a75f0 COMP: Removed override directives to remove compiler warnings 2017-05-18 12:40:48 +01:00
15d0a918c5 COMP: use VTK_OVERRIDE on paraview methods
COMP: avoid undefined-var-template warning in runTimePostProcessing
2017-05-18 13:21:48 +02:00
20fd33e37c TUT: Moved laminar case from RAS->laminar directories 2017-05-18 11:44:52 +01:00
b6dec5860b ENH: histogram: output raw count, auto-range. Fixes #467 2017-05-18 10:54:45 +01:00
667b885116 STYLE: remove ununsed foamToVTK template functions 2017-05-17 18:59:51 +02:00
009f1ec85c ENH: only update meshSubset on topo change 2017-05-19 15:17:29 +02:00
69efba7348 STYLE: typos in comments 2017-05-19 15:16:54 +02:00
8a3915eb67 STYLE: Corrected header text 2017-05-17 17:35:27 +01:00
d6e721a9bd ENH: simplify subsetMesh using new IOobjectList methods 2017-05-17 18:35:08 +02:00
39476bde1c GIT: Resolve conflict associated with cherry-pick of Foundation commit 79ff91350
79ff91350 - rhoPimpleFoam: Improved support for compressible liquids
(2017-05-17 17:05:43 +0100) <Henry Weller>
2017-05-17 17:05:43 +01:00
aeae8e70de ENH: simplify sampling grouping using new IOobjectList methods 2017-05-17 16:25:20 +02:00
b2edd73881 ENH: simplify foamToEnsight using new IOobjectList methods
BUG: foamToEnsight fails with missing field at time 0 (fixes #473)
2017-05-17 14:41:21 +02:00
568570d2be Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-17 12:53:10 +01:00
77865d22dd ENH: histogram: 1) if max is not provided use field max. 2) output count. Fixes #467. 2017-05-17 12:52:13 +01:00
9761e9d81e ENH: added classes() method to objectRegistry/IOobjectList
- provides a summary hash of classes used and their associated object names.

  The HashTable representation allows us to leverage various HashTable
  methods. This hashed summary view can be useful when querying
  particular aspects, but is most useful when reducing the objects in
  consideration to a particular subset. For example,

      const wordHashSet interestingTypes
      {
          volScalarField::typeName,
          volVectorField::typeName
      };

      IOobjectList objects(runTime, runTime.timeName());
      HashTable<wordHashSet> classes = objects.classes();

      classes.retain(interestingTypes);

      // Or do just the opposite:
      classes.erase(unsupportedTypes);

  Can also use the underlying HashTable filter methods

STYLE: use templated internals to avoid findString() when matching subsets
2017-05-17 10:43:24 +02:00
cf889306d0 ENH: added HashTable count, filter and generalized toc methods
- Generalized means over filtering table entries based on their keys,
  values, or both.  Either filter (retain), or optionally prune elements
  that satisfy the specified predicate.

  filterKeys and filterValues:
  - Take a unary predicate with the signature

        bool operator()(const Key& k);

  - filterEntries:
    Takes a binary predicate with the signature

        bool operator()(const Key& k, const T& v);

==

  The predicates can be normal class methods, or provide on-the-fly
  using a C++ lambda. For example,

      wordRes goodFields = ...;
      allFieldNames.filterKeys
      (
          [&goodFields](const word& k){ return goodFields.match(k); }
      );

  Note that all classes that can match a string (eg, regExp, keyType,
  wordRe, wordRes) or that are derived from a Foam::string (eg, fileName,
  word) are provided with a corresponding

      bool operator()(const std::string&)

  that either performs a regular expression or a literal match.
  This allows such objects to be used directly as a unary predicate
  when filtering any string hash keys.

  Note that HashSet and hashedWordList both have the proper
  operator() methods that also allow them to be used as a unary
  predicate.

- Similar predicate selection with the following:
    * tocKeys, tocValues, tocEntries
    * countKeys, countValues, countEntries

  except that instead of pruning, there is a simple logic inversion.
2017-05-17 10:18:14 +02:00
8d018e7950 ENH: added constant predicates
- predicates::always and predicates::never returning true and false,
  respectively. These simple classes make it easier when writing
  templated code.

  As well as unary and binary predicate forms, they also contain a
  match(std::string) method for compatibility with regex-based classes.

STYLE: write bool and direction as primitive 'int' not as 'label'.
2017-05-17 10:18:14 +02:00
a8d2ebf298 ENH: cleanup wordRe interfaces etc.
- ensure that the string-related classes have consistently similar
  matching methods. Use operator()(const std::string) as an entry
  point for the match() method, which makes it easier to use for
  filters and predicates. In some cases this will also permit using
  a HashSet as a match predicate.

regExp
====
- the set method now returns a bool to signal that the requested
  pattern was compiled.

wordRe
====
- have separate constructors with the compilation option (was previously
  a default parameter). This leaves the single parameter constructor
  explicit, but the two parameter version is now non-explicit, which
  makes it easier to use when building lists.

- renamed compile-option from REGEX (to REGEXP) for consistency with
  with the <regex.h>, <regex> header names etc.

wordRes
====
- renamed from wordReListMatcher -> wordRes. For reduced typing and
  since it behaves as an entity only slightly related to its underlying
  list nature.

- Provide old name as typedef and include for code transition.

- pass through some list methods into wordRes

hashedWordList
====
- hashedWordList[const word& name] now returns a -1 if the name is is
  not found in the list of indices. That has been a pending change
  ever since hashedWordList was generalized out of speciesTable
  (Oct-2010).

- add operator()(const word& name) for easy use as a predicate

STYLE: adjust parameter names in stringListOps

- reflect if the parameter is being used as a primary matcher, or the
  matcher will be derived from the parameter.
  For example,
      (const char* re), which first creates a regExp
      versus (const regExp& matcher) which is used directly.
2017-05-16 23:54:43 +02:00
cb4bf9e6b7 BUG: foamToEnsight fails with missing field at time 0 (fixes #473) 2017-05-16 17:28:09 +02:00
c1c6243c3e ENH: pass through doc/Allwmake arguments, add -config, -dir options
- can run doxygen with an alternative Doxyfile, which is useful
  when verifying generated content for particular classes.
  Eg,
      PATH/doc/Allwmake -dir $PWD
2017-05-16 10:53:07 +02:00
acc048a2ce Merge branch 'consistency-updates' into 'develop'
Consistency updates

See merge request !111
2017-05-15 12:34:02 +01:00
8a66ec9975 ENH: replace paraview vtk conversion with library utilities
- this allows filling in the VTK structures without intermediate data
  and without sequencial insertion. Should be faster and smaller
  than the previous cell-wise insertion methods.
  Most importantly, it improves code reuse.
2017-05-15 13:01:38 +02:00
1f18a0f97f ENH: replace internal meshmaps with foamVtkMeshMaps 2017-05-15 12:57:36 +02:00
1889ea83e3 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-15 10:17:57 +01:00
3cf7820160 ENH: surfaceMeshTriangulate: handle time selection; handle moving meshes. Fixes #470. 2017-05-15 10:17:24 +01:00
d4041e7d36 ENH: consistent access to IOobjectList names.
- Previously matched name against the object->name() method
  but saved with iter.key().  Now use iter.key() more consistently.

STYLE: consistent parameter names (doxygen)
2017-05-15 08:47:35 +02:00
6933bc3021 ENH: HashPtrTable remove/erase now include safeguard against end-iterator
- This makes the following safe:

      auto iter = ptrTable.find(unknownKey);
      ptrTable.erase(iter);

- Unmask HashPtrTable::erase(const Key& key) method
2017-05-15 09:57:25 +02:00
2f288cfbef ENH: first pv reader version with delayed assembly of output blocks
- this greatly simplifies data management and opens the possibility of
  reusing converted vtk meshes instead of converting each time.
2017-05-15 02:06:53 +02:00
cf5ebd82db ENH: improve internal bookkeeping in paraview readers
- has the selected values directly and use these lookup names to store
  directly into a hash. This replaces several parallel lists of
  decomp information etc and makes it easier.
2017-05-14 21:42:59 +02:00
09f0cfd5c7 STYLE: reduce number of small methods in paraview reader
- improves the overview of the code
2017-05-14 21:38:15 +02:00
48bf71dd26 STYLE: avoid VTK InsertNextPoint if we already know the sizes
- avoids potentially issues if we reusing a vtkPoints array,
  and should be marginally faster without the additional
  range checking.
2017-05-14 21:24:06 +02:00
2e0337d024 ENH: use smart pointers for paraview readers
- adds flexiblity and reduces risk of memory leaks as we add/change
  features

STYLE: adjust naming for paraview internal polyDecomp
2017-05-14 21:04:11 +02:00
4b0d1632b6 BUG: hashtable key_iterator ++ operator returning incorrect type
ENH: ensure std::distance works with hashtable iterators
2017-05-14 16:58:47 +02:00
0c53a815ed ENH: avoid std::distance for std::initializer_list
- std::initializer_list has its own size() method, so no need to use
  std::distance.

STYLE/BUG: use separate iterator de-reference and increment in List

- avoids unnecessary copying of iterators, and avoids any potentially
  odd behaviour with the combination with incrementing.

ENH: support construct from iterator pair for DynamicList, SortableList
2017-05-14 16:28:21 +02:00
83669e284f ENH: improvements to labelRange const_iterator
- inherit from std::iterator to obtain the full STL typedefs, meaning
  that std::distance works and the following is now possible:

      labelRange range(100, 1500);
      scalarList list(range.begin(), range.end());

  --
  Note that this does not work (mismatched data-types):

      scalarList list = identity(12345);

  But this does, since the *iter promotes label to scalar:

      labelList ident = identity(12345);
      scalarList list(ident.begin(), ident.end());

  It is however more than slightly wasteful to create a labelList
  just for initializing a scalarList. An alternative could be a
  a labelRange for the same purpose.

      labelRange ident = labelRange::identity(12345);
      scalarList list(ident.begin(), ident.end());

  Or this
      scalarList list
      (
          labelRange::null.begin(),
          labelRange::identity(12345).end()
      );
2017-05-14 14:39:17 +02:00
b83af3b085 rhoPimpleDyMFoam: Updated transonic formulation for consistency with sonicFoam 2017-05-12 18:34:00 +01:00
71710e0798 ENH: use prefix when displaying group,patch names for paraview selection
- easier to detect the implicit grouping
2017-05-12 15:37:04 +02:00
e5cdee5dd9 STYLE: use labelRange and range-based-for in paraview readers
- also use updated forAll* macros
2017-05-12 15:36:44 +02:00
418ebe4a87 ENH: replace writeFuncs in setSet with foamVtk library utilities 2017-05-19 12:28:13 +02:00
c685f70c82 ENH: rationalize VTK output classes and structures
- relocated to dedicated foamVtkOutput namespace. Make it easier to
  obtain a formatter directly without a foamVtkOutput::outputOptions.
  Make the logic clear within outputOptions (avoid previous, cryptic
  bit masking). foamVtkOutput::legacy also becomes a namespace instead
  of a class. Relocate commonly used things into src/fileFormats, leave
  volField-related parts in src/conversion.
2017-05-19 12:11:49 +02:00
12353e71e7 ENH: provide OpenFOAM/VTK low-level transcription routines
- Zero-copy does not work for several reasons, but this uses the
  OpenFOAM structures to write VTK-compatible formats into external
  arrays.
2017-05-12 15:35:08 +02:00
0e7b135181 STYLE: adjust const access for linked-list iterators 'operator*'
- provides const/non-const access to the underlying list, but the
  iterator access itself is const.

- provide linked-list iterator 'found()' method for symmetry with
  hash-table iterators. Use nullptr for more clarity.
2017-05-12 12:26:28 +02:00
644779725d functionObjects::wallHeatFlux: Added support for solid regions
Patch contributed by Stephan Goeke
2017-05-12 11:05:45 +01:00
7b825d0817 rhoPimpleFoam: Updated transonic option to be consistent with sonicFoam
Improves stability on start-up and allows running at slightly larger time-steps.
2017-05-12 11:04:38 +01:00
f73b5b629f ENH: added HashTable 'lookup' and 'retain' methods
- lookup(): with a default value (const access)
  For example,
      Map<label> something;
      value = something.lookup(key, -1);

    being equivalent to the following:

      Map<label> something;
      value = -1;  // bad value
      if (something.found(key))
      {
          value = something[key];
      }

    except that lookup also makes it convenient to handle const references.
    Eg,

      const labelList& ids = someHash.lookup(key, labelList());

- For consistency, provide a two parameter HashTable '()' operator.
  The lookup() method is, however, normally preferable when
  const-only access is to be ensured.

- retain(): the counterpart to erase(), it only retains entries
  corresponding to the listed keys.

  For example,
      HashTable<someType> largeCache;
      wordHashSet preserve = ...;

      largeCache.retain(preserve);

    being roughly equivalent to the following two-stage process,
    but with reduced overhead and typing, and fewer potential mistakes.

      HashTable<someType> largeCache;
      wordHashSet preserve = ...;

      {
          wordHashSet cull(largeCache.toc()); // all keys
          cull.erase(preserve);               // except those to preserve
          largeCache.erase(cull);             //
      }

  The HashSet &= operator and retain() are functionally equivalent,
  but retain() also works with dissimilar value types.
2017-05-11 12:25:35 +02:00
034ddfa78f ENH: make coeffs dictionaries optional for surfaceFeatureExtract 2017-05-10 14:11:28 +02:00
8728e8353f STYLE: avoid explicit use of 'word' as HashTable template parameter
- less clutter and typing to use the default template parameter when
  the key is 'word' anyhow.

- use EdgeMap instead of the longhand HashTable version where
  appropriate
2017-05-10 13:44:27 +02:00
4d126bfe2d ENH: add dictionary optionalSubDict() method as per .org change (20-Apr) 2017-05-10 12:51:21 +02:00
d27d69e3f7 reconstructParMesh: Use tree method to improve speed and scaling
Based on development contributed by Paul Edwards, Intel.

Conflicts:
	applications/utilities/parallelProcessing/reconstructParMesh/reconstructParMesh.C
2017-05-09 09:32:25 +01:00
24d1e50f45 BUG: LimitedScheme - corrected oriented flag. Fixes #493 2017-06-12 09:18:22 +01:00
132c0e719a TUT: Added min/max(p) function object 2017-06-09 10:53:37 +01:00
2af8d38827 ENH: Added new Joule Heating fvOption and test case
Evolves an electrical potential equation

    \f[
        \grad \left( \sigma \grad V \right)
    \f]

    where \f$ V \f$ is electrical potential and \f$\sigma\f$ is the
    electrical current

    To provide a Joule heating contribution according to:

    Differential form of Joule heating - power per unit volume:

    \f[
        \frac{d(P)}{d(V)} = J \cdot E
    \f]

    where \f$ J \f$ is the current density and \f$ E \f$ the electric
field.
    If no magnetic field is present:

    \f[
        J = \sigma E
    \f]

    The electric field given by

    \f[
        E = \grad V
    \f]

    Therefore:

    \f[
        \frac{d(P)}{d(V)} = J \cdot E
                          = (sigma E) \cdot E
                          = (sigma \grad V) \cdot \grad V
    \f]

Usage
    Isotropic (scalar) electrical conductivity
    \verbatim
    jouleHeatingSourceCoeffs
    {
        anisotropicElectricalConductivity no;

        // Optionally specify the conductivity as a function of
        // temperature
        // Note: if not supplied, this will be read from the time
        // directory
        sigma           table
        (
            (273        1e5)
            (1000       1e5)
        );
    }
    \endverbatim

    Anisotropic (vectorial) electrical conductivity
    jouleHeatingSourceCoeffs
    {
        anisotropicElectricalConductivity yes;

        coordinateSystem
        {
            type        cartesian;
            origin      (0 0 0);

            coordinateRotation
            {
                type        axesRotation;
                e1          (1 0 0);
                e3          (0 0 1);
            }
        }

        // Optionally specify sigma as a function of temperature
        //sigma           (31900 63800 127600);
        //
        //sigma           table
        //(
        //    (0      (0 0 0))
        //    (1000   (127600 127600 127600))
        //);
    }

    Where:
    \table
        Property     | Description               | Required  | Default
value
        T            | Name of temperature field | no        | T
        sigma        | Electrical conductivity as a function of
temperature |no|
        anisotropicElectricalConductivity | Anisotropic flag | yes |
    \endtable

    The electrical conductivity can be specified using either:
    - If the \c sigma entry is present the electrical conductivity is
      specified
      as a function of temperature using a Function1 type
    - If not present the sigma field will be read from file
    - If the anisotropicElectricalConductivity flag is set to 'true',
      sigma
      should be specified as a vector quantity
2017-06-09 10:29:21 +01:00
caf9a0870d ENH: Added bash completion for OpenFOAM applications 2017-06-08 16:24:06 +01:00
b36491576d COMP: foamList - removed corruption error on exit 2017-06-08 16:14:51 +01:00
c187e9b523 ENH: foamHelp - minro refactoring to enable use of foamHelp -help option 2017-06-08 16:07:58 +01:00
40ddfb4277 COMP: renamed runtime selection table to avoid duplicate entry clashes 2017-06-08 16:06:16 +01:00
2b060155c3 ENH: Added script to create bash tab-completions 2017-06-08 16:05:31 +01:00
a1a6f25429 tutorials/multiphase/interDyMFoam/RAS/DTCHull: Resolve stability issue caused by improvements to MULES 2017-05-08 22:44:14 +01:00
7da065481a tutorials/combustion/reactingFoam/RAS/SandiaD_LTS/system/decomposeParDict: removed 2017-05-08 17:03:30 +01:00
9d07299117 fvOptions/radiation: Corrected documentation
Resolves bug-report https://bugs.openfoam.org/view.php?id=2545
2017-05-08 17:02:28 +01:00
0e7630feca ENH: improved handling of 'unresolved' surface intersections (issue #450)
- the heuristic for matching unresolved intersections is a relatively
  simple matching scheme that seems to be more robust than attempting to walk
  the geometry or the cuts.

- avoid false positives for self intersection
2017-05-08 14:57:47 +02:00
ede3a844e1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-08 11:55:12 +01:00
91585fd32e STYLE: checkMesh: formatting help 2017-05-08 11:54:48 +01:00
cd8083eb95 Merge branch 'feature-consistency-face-access' into 'develop'
Feature consistency face access

See merge request !109
2017-05-08 10:58:42 +01:00
46a1fed97b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-08 10:51:24 +01:00
134f7abd57 ENH: checkMesh: output vol fields of mesh quality. Fixes #466. 2017-05-08 10:50:59 +01:00
708c1b5c41 ENH: simplify ensightCells/ensightFaces with labelRange
- can avoid allocating/reallocating SubList

STYLE: don't need NamedEnum for ensightCells, ensightFaces lookup
2017-05-08 11:21:44 +02:00
b4f6484ddf ENH: use faceTraits for managing differences between face representations 2017-05-07 16:58:44 +02:00
0c4d2bcd76 ENH: improve consistency in access for face, triFace, edge.
- ensure that each have found() and which() methods

- add faceTraits for handling compile-time differences between
  'normal' and tri-faces

- provide line::unitVec method (complimentary to edge::unitVec)
2017-05-07 15:49:52 +02:00
50306c0bda flowRateFaceZone: faceZone configuration for the surfaceFieldValue functionObject 2017-05-05 18:29:14 +01:00
c872b0f13f Merge remote-tracking branch '1612/master' into develop 2017-05-05 10:20:02 +02:00
f895c934e7 COMP: skip compilation of plugins if include files are missing (fixes #464) 2017-05-05 10:14:48 +02:00
8006d64d74 COMP: skip compilation of plugins if include files are missing (fixes #464) 2017-05-05 10:02:34 +02:00
4059dbd6ce snappyHexMesh: Feature line tracking should end on AMI patches 2017-05-04 18:25:03 +01:00
f96db2d600 BUG: codedFvOptionTemplate: updated 'setValue' to 'constrain'
Resolves bug-report https://bugs.openfoam.org/view.php?id=2579
2017-06-13 16:52:16 +01:00
c38a0b1a4b codedFunctionObject.H: Removed spurious '"'
Resolves bug-report https://bugs.openfoam.org/view.php?id=2554
2017-05-18 12:39:34 +01:00
d27dbbf096 Euler-Euler: turbulentDispersionModels: Burns: Minor re-formulation to
improve stability.

Resolves bug report <https://bugs.openfoam.org/view.php?id=2544>
2017-05-09 08:48:38 +01:00
cd6221664f Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-05-04 17:50:33 +01:00
4b7c74f8eb BUG: sampledPlane: fix parallel running on subset. Fixes #463. 2017-05-04 17:50:07 +01:00
97b6475877 Merge branch 'feature-improved-container-classes' into 'develop'
improved container classes

See merge request !108
2017-05-04 16:48:57 +01:00
ff132ff5f6 ENH: orientedFields - updated mapping and parallel utils 2017-05-04 15:32:51 +01:00
6747d14dfa BUG: odd table size after shrink (issue #460)
- remove this unused method
2017-05-04 13:11:46 +02:00
7edd801c72 BUG: wall/patch distance and inverseDistanceDiffusivity - updated dimensions and use meshWave as a default method for backwards compatibility. Fixes #462 2017-05-04 11:33:00 +01:00
8dae01913c ENH: regex matching on std::string, not Foam::string
- avoids unneeded promotion of types.
  Easier to switch regex engines in the future.
2017-05-04 12:31:49 +02:00
3b2cd0b107 DPMDyMFoam, DPMDyMFoam: Corrected support for closed-domain simulations
Also added support for extrapolated pressure boundary conditions.
2017-05-04 09:39:23 +01:00
b39b90a9b5 CrankNicolsonDdtScheme: Corrected input of off-centering coefficient of 1 2017-05-11 19:33:01 +01:00
03d180724b ENH: improve HashTable iterator access and management
- provide key_iterator/const_key_iterator for all hashes,
  reuse directly for HashSet as iterator/const_iterator, respectively.

- additional keys() method for HashTable that returns a wrapped to
  a pair of begin/end const_iterators with additional size/empty
  information that allows these to be used directly by anything else
  expecting things with begin/end/size. Unfortunately does not yet
  work with std::distance().

  Example,
     for (auto& k : labelHashTable.keys())
     {
        ...
     }
2017-05-04 10:17:18 +02:00
759306a3e2 STYLE: more consistent typedefs in Map, PtrMap, HashPtrTable 2017-05-04 02:47:32 +02:00
e105e30bfb STYLE: add edge(labelPair) constructor, debug info etc. 2017-05-04 02:42:50 +02:00
f7e502d459 STYLE: relocate some friend operations to be global ones 2017-05-04 02:39:57 +02:00
5d541defe6 ENH: simplify and extend labelRange
- add increment/decrement, repositioning. Simplify const_iterator.

- this makes is much easier to use labelRange for constructing ranges of
  sub-lists. For symmetry with setSize() it has a setStart() instead of
  simply assigning to start() directly. This would also provide the
  future possibility to imbue the labelRange with a particular policy
  (eg, no negative starts, max size etc) and ensure that they are
  enforced.

  A simple use case:

    // initialize each to zero...
    List<labelRange> subListRanges = ...;

    // scan and categorize
    if (condition)
       subListRanges[categoryI]++;  // increment size for that category

    // finally, set the starting points
    start = 0;
    for (labelRange& range : subListRanges)
    {
        range.setStart(start);
        start += range.size();
    }
2017-05-04 02:19:01 +02:00
f2e4aac14c BUG: reactingEulerFoam: Corrected definition of Reynolds number in Beetstra and Tenneti drag laws
Patch contributed by Alberto Passalacqua, Iowa State University
2017-05-03 19:18:30 +01:00
bdc48f6f54 thermophysicalModels: Corrected alphah to be enthalpy based
in

solidSpecie/transport/const/constAnIsoSolidTransport
solidSpecie/transport/const/constIsoSolidTransport
solidSpecie/transport/exponential/exponentialSolidTransport
solidSpecie/transport/polynomial/polynomialSolidTransport
specie/transport/logPolynomial/logPolynomialTransport
specie/transport/polynomial/polynomialTransport
specie/transport/sutherland/sutherlandTransport

Resolves bug-report https://bugs.openfoam.org/view.php?id=2532
2017-05-03 14:59:07 +01:00
5db1694633 surfaceTensionModels: Resolved warning from Clang concerning virtual function overload 2017-05-03 19:17:43 +01:00
009f8df176 TUT: minor update 2017-05-22 13:37:51 +01:00
db5348880e MRG: resolved merge conflicts from merge from develop branch 2017-05-19 16:29:54 +01:00
79bfd7d7d9 TUT: Corrected execute permissions on run scripts 2017-05-19 11:46:58 +01:00
62ff00f860 COMP: specie - ensure if block is evaluated 2017-05-18 22:12:48 +01:00
0a4733acab ENH: Tutorial updates 2017-05-18 14:47:00 +01:00
28868f8d4d ENH: Updated reading of dimensioned types from transportProperties dictionary to avoid the need to provide the dimension set 2017-05-18 14:44:52 +01:00
9a6f0fdd37 COMP: Updated kOmegaSSTSato model to suppress compiler warning 2017-05-18 14:43:05 +01:00
9efd9ce061 BUG: TDACChemistryModel - corrected construction of tabulationResults_ field 2017-05-18 14:42:37 +01:00
776d87836b STYLE: corrected header comment 2017-05-18 12:49:09 +01:00
d71a7857bf Merge remote-tracking branch 'origin/develop' into integration-foundation 2017-05-18 12:43:15 +01:00
3814762785 ENH: relocate triSurface classes into surfMesh library (issue #294)
- simplifies organization, includes, linkage etc.
2017-05-18 10:42:05 +02:00
abe6121311 GIT: remove remnant edgeMesh Make/{files,options}
- missed by commit c085c5df25
2017-05-18 11:01:27 +02:00
2e9bead519 MRG: merged develop line back into integration branch 2017-05-18 11:11:12 +01:00
8ff163713d BUG: Lagrangian - corrected particle LocalInteraction behaviour on coupled patches. See reactingParcelFoam/filter tutorial example 2017-05-17 20:48:00 +01:00
f68896605e ENH: Clean-up after latest Foundation integrations 2017-05-17 17:33:47 +01:00
91b90da4f3 Integrated Foundation code to commit 104aac5 2017-05-17 16:35:18 +01:00
c9df5f9249 Merge branch 'dict-lookup' into 'develop'
Dict lookup

See merge request !105
2017-05-02 16:37:57 +01:00
a8e3482591 Merge branch 'edge-labelPair-containers' into 'develop'
Use updated edge and labelPair containers

See merge request !106
2017-05-02 16:35:54 +01:00
45c29be341 COMP: avoid clang compiler warnings 2017-05-02 13:33:40 +02:00
1dc3236825 BUG: fixed odd sizing for hash tables (fixes #460) 2017-05-02 12:31:52 +02:00
f8c58bdd5c ENH: HashSet iterators operator* now return Key.
- much more useful than returning nil. Can now use with a for range:

    for (auto i : myLabelHashSet)
    {
        ...
    }
2017-05-02 01:58:38 +02:00
8f75bfbed5 ENH: add HashTable::writeKeys and HashSet::writeList
- can use the hash-set writeList in combination with FlatOutput:

  Eg, flatOutput(myHashSet);
2017-05-02 00:51:04 +02:00
c0a50dc621 ENH: improve overall consistency of the HashTable and its iterators
- previously had a mismash of const/non-const attributes on iterators
  that were confused with the attributes of the object being accessed.

- use the iterator keys() and object() methods consistently for all
  internal access of the HashTable iterators. This makes the intention
  clearer, the code easier to maintain, and protects against any
  possible changes in the definition of the operators.

- 'operator*': The standard form expected by STL libraries.
  However, for the std::map, this dereferences to a <key,value> pair,
  whereas OpenFOAM dereferences simply to <value>.

- 'operator()': OpenFOAM treats this like the 'operator*'

- adjusted the values of end() and cend() to reinterpret from nullObject
  instead of returning a static iteratorEnd() object.
  This means that C++ templates can now correctly deduce and match
  the return types from begin() and end() consistently.
  So that range-based now works.

  Eg,
      HashTable<label> table1 = ...;
      for (auto i : table1)
      {
          Info<< i << endl;
      }

  Since the 'operator*' returns hash table values, this prints all the
  values in the table.
2017-05-02 00:15:12 +02:00
0298c02b2d ENH: ensure nullObject is large enough for reinterpret
- previously occupied 1 byte. Now occupies enough to hold a pointer,
  which helps if using reinterpret_cast to something that has some
  member content.
2017-05-01 22:39:36 +02:00
7cceda620d BUG: comparison to static end() for hashtable lookup.
- just use the iterator method found() as an alternative and
  convenient way to avoid the issue with less typing.
2017-05-01 21:28:41 +02:00
dc57c016ae BUG: comparison with incorrect construction tables
- previously hidden when hashtable used a static method and a
  different class for end()
2017-05-01 21:27:42 +02:00
805b76d4b9 ENH: support UList[labelRange] and SubList construction with labelRange
This uses a concept similar to what std::valarray and std::slice do.
A labelRange provides a convenient container for holding start/size
and lends itself to addressing 'sliced' views of lists.
For safety, the operations and constructors restricts the given input range
to a valid addressible region of the underlying list, while the labelRange
itself precludes negative sizes.

The SubList version is useful for patches or other things that have a
SubList as its parameter. Otherwise the UList [] operator will be the
more natural solution. The slices can be done with a labelRange, or
a {start,size} pair.

Examples,
     labelList list1 = identity(20);

     list1[labelRange(18,10)]  = -1;
     list1[{-20,25}] = -2;
     list1[{1000,5}] = -3;

     const labelList list2 = identity(20);
     list2[{5,10}] = -3;  // ERROR: cannot assign to const!
2017-05-01 14:01:09 +02:00
75ef6f4e50 ENH: add labelRange comparison operators and subset methods
- improve interface consistency.
2017-04-30 21:29:24 +02:00
9d1eb05bdc VoF solvers: New interfaceCompressionFvPatchScalarField BC and additional shear compression
Provides the additional compression necessary to ensure interface integrity
adjacent to a boundary at a low angle of incidence to the interface.  This is
particularly important when simulating planing hulls.
2017-04-30 19:38:47 +01:00
542151b1fa swirlFlowRateInletVelocityFvPatchVectorField: Avoid calculating origin and axis for patches with no faces
Resolves problem with reconstructPar
2017-08-16 14:14:24 +01:00
ef48fa1829 flowRateInletVelocity extrapolated: Removed reverse flow and correct only the normal component
Improved stability and convergence.
2017-07-17 12:18:47 +01:00
823d83b37b flowRateInletVelocity, flowRateOutletVelocity BCs: Updated docs 2017-07-16 22:59:30 +01:00
6d414f118b flowRateOutletVelocityFvPatchVectorField: Outlet equivalent of flowRateOutletVelocityFvPatchVectorField BC
Velocity outlet boundary condition which corrects the extrapolated velocity to
match the specified flow rate.
2017-07-16 21:36:32 +01:00
b3b124703d surfaceInterpolation::outletStabilised: Corrected typo
Resolves bug-report https://bugs.openfoam.org/view.php?id=2574
2017-06-13 16:50:02 +01:00
cfec338956 fixedShearStressFvPatchVectorField: Removed duplicate "value" entry
Resolves bug-report https://bugs.openfoam.org/view.php?id=2556
2017-05-18 19:56:16 +01:00
7f18c263bf matchedFlowRateOutletVelocity: New flow-rate outlet BC
Velocity outlet boundary condition which corrects the extrapolated velocity
to match the flow rate of the specified corresponding inlet patch.
2017-07-17 15:48:39 +01:00
77b7beb6af swirlFlowRateInletVelocity: Added support for specifying the origin and axis of rotation 2017-07-13 16:08:30 +01:00
065bfa264e INT: Compatibility updates followinglatest integrations 2017-09-05 10:19:09 +01:00
9976caa1c9 swirlInletVelocity: New general swirl inlet BC
which support the specification of the individual velocity components (axial,
radial and tangential) as Function1s.
2017-07-17 15:47:24 +01:00
1ae664e379 ENH: Reinstated local tet-based intersection 2017-09-05 09:32:21 +01:00
994b303ad7 tetrahedron: triangle: Improved barycentric handling on tets and tris
Updated the tetrahedron and triangle classes to use the barycentric
primitives. Removed duplicate code for generating random positions in
tets and tris, and fixed bug in tri random position.
2017-06-06 12:01:02 +01:00
7b427c382e ENH: add Tuple2 comparison operators, typedefs 2017-04-30 13:05:49 +02:00
5d6bf3e43d ENH: HashTable improvements
- optimize erasure using different HashTable based on its size.
  Eg, hashtable.erase(other);

  If 'other' is smaller than the hashtable, it is more efficient to
  use the keys from other to remove from the hashtable.

  Otherwise simply iterate over the hashtable and remove it if
  that key was found in other.
2017-04-30 10:21:10 +02:00
c65e2e580d ENH: add some standard templates and macros into stdFoam.H
- some functionality similar to what the standary library <iterator>
  provides.

  * stdFoam::begin() and stdFoam::end() do type deduction,
    which means that many cases it is possible to manage these types
    of changes.

    For example, when managing a number of indices:
       Map<labelHashSet> lookup;

    1) Longhand:

        for
        (
            Map<labelHashSet>::const_iterator iter = lookup.begin();
            iter != lookup.end();
            ++iter
        )
        { .... }

    1b) The same, but wrapped via a macro:

        forAllConstIter(Map<labelHashSet>, lookup, iter)
        { .... }

    2) Using stdFoam begin/end templates directly

        for
        (
            auto iter = stdFoam::begin(lookup);
            iter != stdFoam::end(lookup);
            ++iter
        )
        { .... }

    2b) The same, but wrapped via a macro:

        forAllConstIters(lookup, iter)
        { .... }

Note that in many cases it is possible to simply use a range-based for.
Eg,
     labelList myList;

     for (auto val : myList)
     { ... }

     for (const auto& val : myList)
     { ... }

These however will not work with any of the OpenFOAM hash-tables,
since the standard C++ concept of an iterator would return a key,value
pair when deferencing the *iter.

The deduction methods also exhibits some slightly odd behaviour with
some PtrLists (needs some more investigation).
2017-04-29 22:28:16 +02:00
6a5ea9a2bf ENH: improve HashSet construction and assignment
- make construct from UList explicit and provide corresponding
  assignment operator.

- add construct,insert,set,assignment from FixedList.
  This is convenient when dealing with things like edges or triFaces.
2017-04-29 15:19:47 +02:00
a2ddf7dd48 ENH: support HashTable erasure via a FixedList
- propagate common erasure methods as HashSet::unset() method,
  for symmetry with HashSet::set()
2017-04-29 14:50:46 +02:00
ded105c539 STYLE: HashTable documentation
- explicitly mention the value-initialized status for the operator().
  This means that the following code will properly use an initialized
  zero.

      HashTable<label> regionCount;

      if (...)
         regionCount("region1")++;

      ... and also this;

      if (regionCount("something") > 0)
      {
          ...
      }

  Note that the OpenFOAM HashTable uses operator[] to provide read and
  write access to *existing* entries and will provoke a FatalError if
  the entry does not exist.

  The operator() provides write access to *existing* entries or will
  create the new entry as required.
  The STL hashes use operator[] for this purpose.
2017-04-29 12:27:11 +02:00
1d9b311b82 ENH: further refinement to edge methods
- more hash-like methods.
  Eg, insert/erase via lists, clear(), empty(),...

- minVertex(), maxVertex() to return the smallest/largest label used

- improved documentation, more clarification about where/how negative
  point labels are treated.
2017-04-29 12:14:46 +02:00
643ef3318a tutorials/lagrangian: Added mixedVesselAMI2D
This tutorial demonstrates moving mesh and AMI with a Lagrangian cloud.
It is very slow, as interaction lists (required to compute collisions)
are not optimised for moving meshes. The simulation time has therefore
been made very short, so that it finishes in a reasonable time. The
mixer only completes a small fraction of a rotation in this time. This
is still sufficient to test tracking and collisions in the presence of
AMI and mesh motion.

In order to generate a convincing animation, however, the end time must
be increased and the simulation run for a number of days.
2017-04-28 11:00:31 +01:00
076cf421f3 cloudSolution: Check consistency between the transient option
and the continuous-phase simulation type

For LTS and steady-state simulations the transient option does not need to be
provided as only steady-state tracking is appropriate.  For transient running
the Lagrangian tracking may be steady or transient.
2017-08-22 13:58:25 +01:00
3f5103235e KinematicParcel: Apply in-cell updates before hitting the face
The evolution of a KinematicParcel happens in three stages; (1) tracking
across the cell, (2) interaction with the face or patch that has been
hit, and (3) clculation and and update of parcel and cell properties.
The KinematicParcel used to evolve in this order, as steps 1 and 2 were
part of the same lower level method. This meant that the update stage
was done after interacting with the face, meaning the parcel was not in
the cell that had just been tracked through, or, by means of a patch
interaction, had been modified such that it was no longer representative
of the track through the cell.

With the separation of stages 1 and 2 in the base class, it is now
possible to do the update stage before interacting with the face (i.e.,
proceeding in the order 1, 3, 2). This makes the state consistent for
the updates, and avoids the issues described.

Patch contributed by Timo Niemi, VTT.
This resolves bug report https://bugs.openfoam.org/view.php?id=2282
2017-08-16 09:56:04 +01:00
f021409db3 lagrangian: Made ACMI interactions insensitive to cell-face order 2017-08-11 10:22:03 +01:00
66349c60a1 lagrangian: Removed debugging message from particle::trackToFace 2017-08-11 08:34:42 +01:00
9b57ef06cf Lagrangian: Enabled tracking through ACMI patches and minor code improvements
Particle collisions with ACMI patches are now handled. The hit detects
whether the location is within the overlap or the coupled region and
recurses, calling the hit routine appropriate for the region.

The low level tracking methods are now more consistently named. There is
now a distinction between tracking to a face and hitting it. Function
object side effects have been moved out of the base layer and into the
parcels on which they are meaningful.
2017-08-09 15:52:33 +01:00
c0bc17ea50 ThermoParcel: Improved numerical stability of heat transfer term
Patch contributed by Timo Niemi, VTT.
Resolves bug-report https://bugs.openfoam.org/view.php?id=2655
2017-08-07 17:58:07 +01:00
0a97c3fc95 lagrangian: Always set switchProcessor flag
The TrackData::switchProcessor flag was not being set for some of the
tracking steps made by the more complicated parcels. In the case that a
parcel starts the step already on a processor boundary, this sometimes
lead to the particle being transferred back and forth indefinitely. The
flag is now explicitly set in all cases.
2017-08-02 10:17:38 +01:00
2a6b16f522 lagrangian: Fixed argument passing from Colliding to Kinematic parcel component constructor
Resolves bug report https://bugs.openfoam.org/view.php?id=2643
2017-07-31 16:55:24 +01:00
a4762ea6ea lagrangian: Fixed infinite loops
Tracking through an inverted region of the mesh happens in a reversed
direction relative to a non-inverted region. Usually, this allows the
tracking to propagate normally, regardless of the sign of the space.
However, in rare cases, it is possible for a straight trajectory to form
a closed loop through both positive and negative regions. This causes
the tracking to loop indefinitely.

To fix this, the displacement through inverted regions has been
artifically increased by a small amount (1% at the moment). This has the
effect that the change in track fraction over the negative part of the
loop no longer exactly cancels the change over the positive part, and
the track therefore terminates.
2017-07-18 09:19:32 +01:00
e274e08b1a lagrangian: Corrected patch data
The KinematicCloud::patchData method has been made consistent on moving
meshes and/or when the time-step is being sub-cycled.

It has also been altered to calculate the normal component of a moving
patch's velocity directly from the point motions. This prevents an
infinite loop occuring due to inconsistency between the velocity used to
calculate a rebound and that used when tracking.

Some minor style improvements to the particle class have also been made.
2017-07-13 09:11:03 +01:00
c9b3744637 ParticleCollector: Prevented missing and duplicate collections
The particle collector was collecting some particles twice due to a
tolerance extending the tracked path. This has been removed. The new
tracking algorithm does not generate the same sorts of spurious
tolerance-scale motions that the old one did, so this extension of the
tracking path is unnecessary.

Some particles were also not being collected at all as they were hitting
a diagonal of the collection polygon and registering as not having hit
either of the adjacent triangles. The hit criteria has been rewritten. A
hit now occurs when the normals of the triangles created by joining the
intersection point with the polygon edges are all in the same direction
as the overall polygon normal. This calculation is not affected by the
polygon's diagonals.

The issue was raised by, and resolved with support from, Karl Meredith
at FM Global.

This resolves bug-report https://bugs.openfoam.org/view.php?id=2595
2017-07-05 09:26:56 +01:00
6b316ba3a9 interpolation: Optimise by using particle local coordinates
This change changes the point-tetIndices-face interpolation function
method to take barycentric-tetIndices-face arguments instead. This
function is, at present, only used for interpolating Eulerian data to
Lagrangian particles.

This change prevents an inefficiency in cellPointInterpolation whereby
the position of the particle is calculated from it's barycentric
coordinates, before immediately being converted back to barycentric
coordinates to perform the interpolation.
2017-06-06 16:07:56 +01:00
7a02a507d5 MPPIC: Optimised the averaging methods
The averaging methods now take the particle barycentric coordinates as
inputs rather than global positions. This change significantly optimises
Dual averaging, which is the most commonly used method. The run time of
the lagrangian/MPPICFoam/Goldschmidt tutorial has been reduced by a
factor of about two.
2017-06-01 14:49:38 +01:00
e9fb8b8572 tetIndices: Removed duplicate logic
The logic for generating tetrahedra from a face base point and an offset
was duplicated in a few places. It is now confined to the tetIndices
class.
2017-06-01 09:59:38 +01:00
a28f84c3a2 lagrangian::InjectionModels: Corrected documentation 2017-06-27 08:24:18 +01:00
3620876a40 CollidingCloud: Allow instantiation of the NoCollision model for steady-state operation 2017-06-19 15:38:46 +01:00
62e3d37324 primitiveShapes: Generalised tetrahedron and triangle cutting. Cuts are
now possible with level-sets as well as planes. Removed tetPoints class
as this wasn't really used anywhere except for the old tet-cutting
routines. Restored tetPointRef.H to be consistent with other primitive
shapes. Re-wrote tet-overlap mapping in terms of the new cutting.
2017-05-22 11:40:37 +01:00
04c11064b3 particle: Corrected the direction of tracking when passing through an
AMI. Applied the transformation.
2017-05-04 18:25:41 +01:00
655741b804 KinematicParcel: Bug fix. Restored steady particle tracking coupling.
This was broken when the minimum-step-fraction tolerance was removed.
2017-05-03 12:46:19 +01:00
d75eb94404 particle: Avoid warning about uninitialized edge 2017-04-28 12:08:21 +01:00
1a24be6e54 Merge branch 'feature-random-numbers' into 'develop'
Updated random numbers

See merge request !107
2017-04-28 10:11:18 +01:00
0b42024c98 ENH: turbulentDFSEMInlet - ensure different procs initialise the random number generator with a different seed 2017-04-28 10:01:43 +01:00
7f0cc0045d ENH: Random numbers - updated dependent code from change cachedRandom->Random class 2017-04-28 09:15:52 +01:00
b07bc1f0b8 ENH: Random numbers - consolidated Random classes
- old Random class deprecated
- cachedRandom renamed Random
2017-04-28 09:07:42 +01:00
da8ea0f21a ENH: refactor code from surfaceFeatureExtract to triSurfaceTools (issue #450) 2017-04-28 09:12:33 +02:00
743dea87d2 Lagrangian: Rewrite of the particle tracking algorithm to function in
terms of the local barycentric coordinates of the current tetrahedron,
rather than the global coordinate system.

Barycentric tracking works on any mesh, irrespective of mesh quality.
Particles do not get "lost", and tracking does not require ad-hoc
"corrections" or "rescues" to function robustly, because the calculation
of particle-face intersections is unambiguous and reproducible, even at
small angles of incidence.

Each particle position is defined by topology (i.e. the decomposed tet
cell it is in) and geometry (i.e. where it is in the cell). No search
operations are needed on restart or reconstruct, unlike when particle
positions are stored in the global coordinate system.

The particle positions file now contains particles' local coordinates
and topology, rather than the global coordinates and cell. This change
to the output format is not backwards compatible. Existing cases with
Lagrangian data will not restart, but they will still run from time
zero without any modification. This change was necessary in order to
guarantee that the loaded particle is valid, and therefore
fundamentally prevent "loss" and "search-failure" type bugs (e.g.,
2517, 2442, 2286, 1836, 1461, 1341, 1097).

The tracking functions have also been converted to function in terms
of displacement, rather than end position. This helps remove floating
point error issues, particularly towards the end of a tracking step.

Wall bounded streamlines have been removed. The implementation proved
incompatible with the new tracking algorithm. ParaView has a surface
LIC plugin which provides equivalent, or better, functionality.

Additionally, bug report <https://bugs.openfoam.org/view.php?id=2517>
is resolved by this change.
2017-04-28 08:03:44 +01:00
11c5456628 ENH: improvements for surfaceIntersection (issue #450)
- adjust for updates in 'develop'

- change surfaceIntersection constructor to take a dictionary of
  options.

        tolerance      | Edge-length tolerance          | scalar | 1e-3
        allowEdgeHits  | Edge-end cuts another edge     | bool   | true
        avoidDuplicates | Reduce the number of duplicate points    | bool | true
        warnDegenerate | Number of warnings about degenerate edges | label | 0
2017-04-28 08:49:45 +02:00
88a03de238 ENH: Random numbers - updated dependent code from change to cachedRandom class 2017-04-27 15:24:52 +01:00
02205ef167 ENH: Random numbers - cachedRandom - updated to use the re-entrant random interface 2017-04-27 15:24:20 +01:00
9df578f412 ENH: Random numbers - added re-entrant random interface 2017-04-27 15:23:45 +01:00
72d39f1707 STYLE: Minor code formatting 2017-04-27 14:50:20 +01:00
b9379426c9 ENH: Oriented fields - updated dependent code 2017-04-27 14:47:48 +01:00
799490a3cf ENH: add edgeHashes.H with some useful hash types for edges. 2017-04-27 14:43:16 +02:00
357c2c3470 ENH: relocate labelPairLookup into OpenFOAM library (as labelPairHashes.H)
- simplifies organization, allows reuse.
  provide some other useful hash types.
2017-04-27 14:40:37 +02:00
29635ee0f4 ENH: provide triSurfaceLoader convenience class
- for loading single or multiple surface files from constant/triSurface
  (or other) directory.

- select based on word, wordRe, wordReList.
2017-04-27 14:15:36 +02:00
00800764f3 STYLE: provide forwarder for triadField 2017-04-27 14:08:38 +02:00
cda089569c ENH: add short-circuit (break) on various List operator==()
- performance improvement. Noticed while examining issue #458
2017-04-27 13:00:34 +02:00
633e4c9c7f ENH: Use edgeHashes.H and labelPairHashes.H
- avoids some duplicate code.
2017-04-27 10:15:56 +02:00
5514471c15 BUG: FixedList '<' operator using a template parameter (fixes #458)
- cannot use comparison of list sizes. Okay for UList, but not here.

STYLE:
- don't need two iterators for the '<' comparison, can just access
  internal storage directly
2017-04-27 01:30:50 +02:00
104aac5fca externalWallHeatFluxTemperature: Added optional support for radiative flux to the outside
By specifying the optional outside surface emissivity radiative heat transfer to
the ambient conditions is enabled.  The far-field is assumed to have an
emissivity of 1 but this could be made an optional input in the future if
needed.

Relaxation of the surface temperature is now provided via the optional
"relaxation" which aids stability of steady-state runs with strong radiative
coupling to the boundary.
2017-04-26 12:32:23 +01:00
4ce77f6843 Merge branch 'master' into develop 2017-04-25 12:31:22 +01:00
d26ed93389 BUG: writeFile - corrected write of output file at start time 2017-04-25 12:30:35 +01:00
ffe3e0e425 ENH: allow '^' as anchor for dictionary scoping (issue #429)
- The existing ':' anchor works for rvalue substitutions
  (Eg, ${:subdict.name}), but fails for lvalues, since it is
  a punctuation token and parse stops there.
2017-04-25 11:57:21 +02:00
f1ca89463f ENH: support DimensionedField construction with Xfer
- can be used to reduce copying
2017-04-25 09:28:34 +02:00
32a6c1d988 ENH: relocate randomPointInPlane as plane::somePointInPlane
- makes more sense to bundle it with plane.
2017-04-24 20:23:31 +02:00
b1be223a82 ENH: meshTools output for treeBoundBox, points.
ENH: OBJstream output for treeBoundBox
2017-04-24 16:04:05 +02:00
cc16d9dabe BUG: runTimePostProcessing - corrected clipBox behaviour (see #456) 2017-04-24 14:33:37 +01:00
8886e90870 ENH: Progagted oriented() flag through field mapping 2017-04-24 13:05:19 +01:00
f71e4ff5cb ENH: surfaceFieldValue - simplified by making use of new field.oriented() functionality 2017-04-24 11:43:13 +01:00
976ad36776 ENH: Initial attempt to track oriented surface fields 2017-04-24 10:34:05 +01:00
430d8e1c4b ENH: UList<point> instead of pointField for meshShapes methods
- improves flexibility.

STYLE: make longestEdge a face method and deprecate the global function
2017-04-23 19:53:05 +02:00
f2304f7c0b ENH: various enhancements for edge.
- support edge-ordering on construction, and additional methods:
  - sort(), sorted(), unitVec(), collapse()

- null constructor initializes with -1, for consistency with face,
  triFace and since it is generally much more useful that way.

- add some methods that allow edges to used somewhat more like hashes.
  - count(), found(), insert(), erase()

  Here is possible way to use that:

      edge someEdge;  // initializes with '-1' for both entries

      if (someEdge.insert(pt1))
      {
         // added a new point label
      }

      ... later

      // unmark point on edge
      someEdge.erase(pt2);

--

STYLE:

- use UList<point> instead of pointField for edge methods for flexibility.

  The pointField include is retained, however, since many other routines
  may be relying on it being included via edge.H
2017-04-23 19:25:35 +02:00
7ee39746ff turbulenceModels: The "<type>Coeffs" sub-dictionary is now optional 2017-04-21 18:22:46 +01:00
d548903826 surfaceLambdaMuSmooth: Added meshTools to link 2017-04-21 16:50:20 +01:00
c085c5df25 Merged the edgeMesh library into the meshTools library 2017-04-21 10:38:53 +01:00
32a2a23466 ENH: enhancements for edgeMesh mergeEdges(), mergePoints()
- filter out degenerate edges
- remove unused points

STYLE: remove unused mergePoints() parameter

STYLE: doxygen for edgeMesh
2017-04-21 02:34:37 +02:00
ccc1a89c8b motionSolver: Changed keyword to select the motionSolver type to "motionSolver"
with backward-compatibility so that the previous keyword "solver" is supported.
2017-04-20 15:59:34 +01:00
89f2eff565 STYLE: improve usage notes for transformPoints, surfaceTransformPoints 2017-04-20 16:27:44 +02:00
3b2ab88ffc tutorials/mesh/blockMesh/pipe: Corrected constant/triSurface -> constant/geometry 2017-04-20 12:51:23 +01:00
e520cb9ccc searchableExtrudedCircle: Relocated to the edgeMesh library
Corrected the geometry directory name from "triSurface" to "geometry".

Resolves bug-report https://bugs.openfoam.org/view.php?id=2529
2017-04-20 12:46:50 +01:00
65eb43fcb1 BUG: foamCleanPath not removing duplicate non-existent directories 2017-04-20 13:04:46 +02:00
53cfa782b3 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-04-20 11:34:55 +01:00
e4ac3fba77 SVD: Improved overflow/division protection.
Resolves bug report https://bugs.openfoam.org/view.php?id=2486
2017-04-20 10:54:08 +01:00
7f01a4beda CONFIG: address differences between shells
- suppress error messages that appear with zsh.
  According to unset(1p), 'unset -f' unsets a function.
  If the function was not previously defined, this is a no-op.
  This is similar for zsh, but there it emits a warning if the
  function was not previously defined.

- avoid 'local' in functions sources from etc/bashrc.
  ksh does not support this.

- use 'command' shell builtin instead of 'type'.
  Seems to be more consistent between shell flavours.
2017-04-20 11:02:54 +02:00
5c51836501 The "<type>Coeffs" sub-dictionary is now optional for most model parameters
except turbulence and lagrangian which will also be updated shortly.

For example in the nonNewtonianIcoFoam offsetCylinder tutorial the viscosity
model coefficients may be specified in the corresponding "<type>Coeffs"
sub-dictionary:

transportModel  CrossPowerLaw;

CrossPowerLawCoeffs
{
    nu0         [0 2 -1 0 0 0 0]  0.01;
    nuInf       [0 2 -1 0 0 0 0]  10;
    m           [0 0 1 0 0 0 0]   0.4;
    n           [0 0 0 0 0 0 0]   3;
}

BirdCarreauCoeffs
{
    nu0         [0 2 -1 0 0 0 0]  1e-06;
    nuInf       [0 2 -1 0 0 0 0]  1e-06;
    k           [0 0 1 0 0 0 0]   0;
    n           [0 0 0 0 0 0 0]   1;
}

which allows a quick change between models, or using the simpler

transportModel  CrossPowerLaw;

nu0         [0 2 -1 0 0 0 0]  0.01;
nuInf       [0 2 -1 0 0 0 0]  10;
m           [0 0 1 0 0 0 0]   0.4;
n           [0 0 0 0 0 0 0]   3;

if quick switching between models is not required.

To support this more convenient parameter specification the inconsistent
specification of seedSampleSet in the streamLine and wallBoundedStreamLine
functionObjects had to be corrected from

    // Seeding method.
    seedSampleSet   uniform;  //cloud; //triSurfaceMeshPointSet;

    uniformCoeffs
    {
        type        uniform;
        axis        x;  //distance;

        // Note: tracks slightly offset so as not to be on a face
        start       (-1.001 -0.05 0.0011);
        end         (-1.001 -0.05 1.0011);
        nPoints     20;
    }

to the simpler

    // Seeding method.
    seedSampleSet
    {
        type        uniform;
        axis        x;  //distance;

        // Note: tracks slightly offset so as not to be on a face
        start       (-1.001 -0.05 0.0011);
        end         (-1.001 -0.05 1.0011);
        nPoints     20;
    }

which also support the "<type>Coeffs" form

    // Seeding method.
    seedSampleSet
    {
        type        uniform;

        uniformCoeffs
        {
            axis        x;  //distance;

            // Note: tracks slightly offset so as not to be on a face
            start       (-1.001 -0.05 0.0011);
            end         (-1.001 -0.05 1.0011);
            nPoints     20;
        }
    }
2017-04-20 09:14:48 +01:00
765c430748 STYLE: only count processors if required
- POSIX specifies '-c' for counting the number of matching lines,
  so we can just use that instead of 'wc' in wmake
2017-04-19 19:13:23 +02:00
4d29c32e9b ENH: improve handling of wmakeLnIncludeAll default search directories
- if called from the top-level project directory ($WM_PROJECT_DIR)
  default to using {applications,src} directories. This avoids
  erroneous linking of etc/codeTemplates and avoids the lengthy
  scanning of the tutorials directory
2017-04-19 18:31:21 +02:00
d4c7d8c6e5 ENH: add possibility to enable/disable profiling globally (issue #441)
- use InfoSwitch to disable, or via static method.

- respect the state of the argList banner when deciding to emit
  initialization information. Can otherwise end up with unwanted
  output rubbish on things like foamDictionary and foamListTimes.
2017-04-19 17:04:37 +02:00
c072f911c9 BUG: Corrected compilation errors 2017-04-19 13:44:54 +01:00
5844d337a0 STYLE: remove unneeded includes from iso-surface 2017-04-19 11:29:43 +02:00
e55339d1e1 BUG: name collision on profiling (issue #440) 2017-04-19 11:04:32 +02:00
6a583851bc ENH: support profiling on Time loop (issue #441)
- patch from Bernhard Gschaider
2017-04-19 09:52:17 +02:00
1b5a56476c Merge branch 'BUG_GL_449' into 'master'
BUG: adding case path to support parallel execution (Fixes #449)

Closes #449

See merge request !101
2017-04-19 08:40:53 +01:00
fa10d97b76 COMP: avoid nested classes for profiling (related to issue #441)
- nested classes can't be forward declared and thus less flexible
  than desired
2017-04-19 01:08:39 +02:00
27776b09b0 ENH: support default profiling settings from etc/controlDict (issue #441)
- patch from Bernhard Gschaider
2017-04-19 01:20:51 +02:00
befb49af10 STYLE: add parameter names for Time.H (doxygen)
- consistent use of watchIndex vs watchFd
2017-04-19 09:34:27 +02:00
da6e90de63 Merge branch 'feature-readNow' into 'develop'
Feature read now

See merge request !102
2017-04-19 17:22:28 +01:00
1170eda7b4 COMP: snappyHexMesh: adding missing functions in .H file 2017-04-19 16:31:40 +01:00
6285afdade BUG: timeActivatedFileUpdate: fix setting of distributed from decomposeParDict.
Fixes #420.
2017-04-19 09:28:12 +01:00
969083fd55 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-04-19 09:07:57 +01:00
4fea83d198 BUG: snappyHexMesh: trying to extrude non-manifold patches fails.
The typical topology is the one where boundary faces share non-consecutive
points (checkMesh reports this as 'Number of faces with non-consecutive shared points')
This is handled by no-extruding any of the vertices of both faces. Fixes #391.
2017-04-19 09:03:10 +01:00
73460a2993 Test on second order restart using backward time scheme 2017-04-18 14:04:27 -07:00
bfd376a8fa COMP: cleanup linking of MGridGen
- use similar semantics as used for dealing with metis, scotch
2017-04-18 18:46:11 +02:00
0c8ea34b44 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-04-18 11:37:45 +01:00
5f17b01998 TUT: Updated gamma value in sonicFoam tutorial - see #455 2017-04-18 11:37:34 +01:00
ea257737df codeTemplates: The copyright year is now set automatically 2017-04-18 11:01:41 +01:00
aec35ee51a BUG: paraFoam inside processor directory always looks for parent (fixes #452) 2017-04-18 09:40:17 +02:00
23d9e2e912 Admin: fixed file permissions from wall boiling model refinements 2017-04-16 18:27:19 +01:00
f95dbc2049 ENH: refineWallLayer: enable parallel operation. Fixes #454. 2017-04-13 16:30:46 +01:00
448561718c fvOption::radiation: New fvOption providing the radiation source to the energy equation
Radiative heat transfer may now be added to any solver in which an energy
equation is solved at run-time rather than having to change the solver code.

For example, radiative heat transfer is now enabled in the SandiaD_LTS
reactingFoam tutorial by providing a constant/fvOptions file containing

radiation
{
    type            radiation;
    libs ("libradiationModels.so");
}

and appropriate settings in the constant/radiationProperties file.
2017-04-13 14:03:58 +01:00
af2810149e porosityModel: The "<porosityModel>Coeffs" sub-dictionary is now optional
For example the porosity coefficients may now be specified thus:

porosity1
{
    type            DarcyForchheimer;

    cellZone        porosity;

    d   (5e7 -1000 -1000);
    f   (0 0 0);

    coordinateSystem
    {
        type    cartesian;
        origin  (0 0 0);
        coordinateRotation
        {
            type    axesRotation;
            e1      (0.70710678 0.70710678 0);
            e2      (0 0 1);
        }
    }
}

rather than

porosity1
{
    type            DarcyForchheimer;
    active          yes;
    cellZone        porosity;

    DarcyForchheimerCoeffs
    {
        d   (5e7 -1000 -1000);
        f   (0 0 0);

        coordinateSystem
        {
            type    cartesian;
            origin  (0 0 0);
            coordinateRotation
            {
                type    axesRotation;
                e1      (0.70710678 0.70710678 0);
                e2      (0 0 1);
            }
        }
    }
}

support for which is maintained for backward compatibility.
2017-04-13 14:00:00 +01:00
1805b3c98f radiationModel: Added "he" argument to the "Sh" function
for consistency with the other energy sources.
2017-04-13 13:57:33 +01:00
8b55ea4fb1 fvOptions: The "<type>Coeffs" sub-dictionary is now optional
For example the actuationDiskSource fvOption may now be specified

disk1
{
    type            actuationDiskSource;

    fields      (U);

    selectionMode   cellSet;
    cellSet         actuationDisk1;
    diskDir         (1 0 0);    // Orientation of the disk
    Cp              0.386;
    Ct              0.58;
    diskArea        40;
    upstreamPoint   (581849 4785810 1065);
}

rather than

disk1
{
    type            actuationDiskSource;
    active          on;

    actuationDiskSourceCoeffs
    {
        fields      (U);

        selectionMode   cellSet;
        cellSet         actuationDisk1;
        diskDir         (1 0 0);    // Orientation of the disk
        Cp              0.386;
        Ct              0.58;
        diskArea        40;
        upstreamPoint   (581849 4785810 1065);
    }
}

but this form is supported for backward compatibility.
2017-04-13 13:30:17 +01:00
dbc1e37a62 BUG: shm: layerSets gets removed. Fixes #453. 2017-04-13 11:26:35 +01:00
e9ba8242ca FieldFieldFunctionsM: Corrected macro names and order for binary functions 2017-04-12 14:33:45 +01:00
5fd814896a reactingtwoPhaseEulerFoam: Wall boiling model refinements
Patch contributed by Juho Peltola, VTT.

Resolves patch request https://bugs.openfoam.org/view.php?id=2521
2017-04-12 14:31:35 +01:00
aef09b8daf tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/steamInjection: Improved stability
Main changes in the tutorial:
  - General cleanup of the phaseProperties of unnecessary entries
  - sensibleEnthalpy is used for both phases
  - setTimeStep functionObject is used to set a sharp reduction in time step near the start of the injection
  - Monitoring of pressure minimum and maximum

Patch contributed by Juho Peltola, VTT.
2017-04-11 20:48:32 +01:00
88b65189d8 BUG: adding case path to support parallel execution (Fixes #449) 2017-04-11 17:47:35 +05:30
cd5ca147a7 ENH: multiple surfaces, self-intersection in surfaceFeatureExtract (issue #450)
- If the dictionary is named 'surfaces', a 'surfaces' entry is mandatory.
  This is a list of wordRe, which is used to load multiple surfaces from
  constant/triSurface directory.

- Other dictionaries may contain a 'surfaces' entry.
  In which case the behaviour is as above (loading multiple surfaces).
  The dictionary name will *NOT* be taken as a surface name itself.

- Regardless of how the surfaces are loaded or features extracted,
  an additional selfIntersection test may be used.

  Eg,

    surfaces
    {
        extractionMethod    extractFromSurface;

        surfaces            (surface1.stl surface2.nas);

        // Generate features from self-intersect
        selfIntersection    true;

        // Base output name (optiona)
        output              surfaces;

        // Tolerance for self-intersect
        planarTolerance     1e-3;

        extractFromSurfaceCoeffs
        {
            includedAngle   120;

            // Do not mark region edges
            geometricTestOnly       yes;
        }
    }
2017-04-11 11:46:00 +02:00
707abb910e DPMDyMFoam, MPPICDyMFoam: New dynamic mesh versions of DPMFoam and MPPICFoam
supporting both mesh morphing and topology change.
2017-04-11 10:33:34 +01:00
837cbafcf3 ENH: improve handling of surface self-intersection (issue #450)
- provide a dedicated constructor to handle this special case.

  Tolerancing when cutting between two surfaces likely needs some
  more attention.
2017-04-11 10:31:23 +02:00
f2e3c1c422 ENH: provide HashTable::iterator::found() method
- This can be used as a convenient alternative to comparing against end().
  Eg,

    dictionaryConstructorTable::iterator cstrIter =
        dictionaryConstructorTablePtr_->find(methodType);

    if (cstrIter.found())
    {
        ...
    }
  vs.
    if (cstrIter != dictionaryConstructorTablePtr_->end())
    {
        ...
    }
2017-04-11 09:55:54 +02:00
b56227ee2b ENH: simplify HashSet equality test
- reduce the amount of checking.
  Equivalent logic to what HashTable has.
2017-04-11 09:34:51 +02:00
31da01d1ea STYLE: cleanup doxygen for HashTable/HashSet
- remove stray canonicalSize declaration
2017-04-11 09:32:53 +02:00
ef88dd3e44 Merge remote-tracking branch 'origin/master' into develop 2017-04-11 10:18:41 +02:00
9f3e27e0aa BUG: indexing in extendedEdgeMesh::add fails (fixes #448)
- 1st problem arises when there are edges, but edgeNormals is empty.
  The UIndirectList fails (zero elements, non-zero addressing)

- further problem occurs if there is a mismatch in the number of edges
  and edges normals (incorrect indexing on loop).
2017-04-11 00:53:03 +02:00
96bc1191b7 ENH: make maxTreeDepth optional in triSurfaceSearch constructor
- makes it easier to construct with a tolerance only
2017-04-10 21:13:50 +02:00
140c5110fe STYLE: remove tabs from files and shorten line-length. 2017-04-10 16:11:33 +02:00
5c62d81880 radiation: Corrected the name of the radiative heat flux from Qr to qr
The standard naming convention for heat flux is "q" and this is used for the
conductive and convective heat fluxes is OpenFOAM.  The use of "Qr" for
radiative heat flux is an anomaly which causes confusion, particularly for
boundary conditions in which "Q" is used to denote power in Watts.  The name of
the radiative heat flux has now been corrected to "qr" and all models, boundary
conditions and tutorials updated.
2017-04-08 22:23:40 +01:00
861b273e56 externalWallHeatFluxTemperatureFvPatchScalarField: Added "power" heat source option
by combining with and rationalizing functionality from
turbulentHeatFluxTemperatureFvPatchScalarField.
externalWallHeatFluxTemperatureFvPatchScalarField now replaces
turbulentHeatFluxTemperatureFvPatchScalarField which is no longer needed and has
been removed.

Description
    This boundary condition applies a heat flux condition to temperature
    on an external wall in one of three modes:

      - fixed power: supply Q
      - fixed heat flux: supply q
      - fixed heat transfer coefficient: supply h and Ta

    where:
    \vartable
        Q  | Power [W]
        q  | Heat flux [W/m^2]
        h  | Heat transfer coefficient [W/m^2/K]
        Ta | Ambient temperature [K]
    \endvartable

    For heat transfer coefficient mode optional thin thermal layer resistances
    can be specified through thicknessLayers and kappaLayers entries.

    The thermal conductivity \c kappa can either be retrieved from various
    possible sources, as detailed in the class temperatureCoupledBase.

Usage
    \table
    Property     | Description                 | Required | Default value
    mode         | 'power', 'flux' or 'coefficient' | yes |
    Q            | Power [W]                   | for mode 'power'     |
    q            | Heat flux [W/m^2]           | for mode 'flux'     |
    h            | Heat transfer coefficient [W/m^2/K] | for mode 'coefficent' |
    Ta           | Ambient temperature [K]     | for mode 'coefficient' |
    thicknessLayers | Layer thicknesses [m] | no |
    kappaLayers  | Layer thermal conductivities [W/m/K] | no |
    qr           | Name of the radiative field | no | none
    qrRelaxation | Relaxation factor for radiative field | no | 1
    kappaMethod  | Inherited from temperatureCoupledBase | inherited |
    kappa        | Inherited from temperatureCoupledBase | inherited |
    \endtable

    Example of the boundary condition specification:
    \verbatim
    <patchName>
    {
        type            externalWallHeatFluxTemperature;

        mode            coefficient;

        Ta              uniform 300.0;
        h               uniform 10.0;
        thicknessLayers (0.1 0.2 0.3 0.4);
        kappaLayers     (1 2 3 4);

        kappaMethod     fluidThermo;

        value           $internalField;
    }
    \endverbatim
2017-04-08 22:06:41 +01:00
b257e80d9a Merge remote-tracking branch 'origin/master' into develop 2017-04-07 09:28:26 +02:00
d794f599d8 ENH: added bin/tools/ change-sitedir.sh, change-userdir.sh
- can be useful with compiling additional OpenFOAM programs
  that use FOAM_USER_APPBIN, FOAM_USER_LIBBIN for their build,
  to avoid conflicts with the normal user bin/lib files.

- or to force relocation of FOAM_SITE_APPBIN, FOAM_SITE_LIBBIN
  during packaging of OpenFOAM
2017-04-07 09:10:06 +02:00
30a49678d1 STYLE: add help to some thermophysical utilities and remove useless options 2017-04-07 08:32:36 +02:00
e1f64efdb1 STYLE: remove stray log files 2017-04-07 08:32:13 +02:00
5d15a13247 STYLE: use FOAM_UTILITIES in Make/options
- consistent with use of FOAM_SOLVERS, and reduces reliance on the FOAM_APP
  env variable
2017-04-07 08:17:43 +02:00
90eeafb43e BUG: typo in addProfiling0 macro (fixes #446) 2017-04-07 07:46:17 +02:00
96fd3c9367 STYLE: consistent use of LIB_SRC in Make/options
- had occasional remnant use of FOAM_SRC
2017-04-06 23:56:23 +02:00
498fa94cb3 ENH: timeActivatedFileUpdate: avoid copying on master; simplified logic; Fixes #420. 2017-04-06 14:45:16 +01:00
2da2970c7c BUG: timeActivatedFileUpdate: was potentially rereading itself!
Fixed by setting flag which then gets queried by Time. Fixes #420.
2017-04-06 10:26:16 +01:00
aecf9b9112 Test on re-start backward time scheme. 2017-04-05 18:17:30 -07:00
982c28d545 BUG: Gitlab issue 442. Resetting allLambda for phases in the alphaEqns.H for interMixingFoam 2017-04-05 13:58:45 -07:00
97d12d8b43 surfaceTensionModels::liquidProperties: New temperature-dependent surface tension model
Description
    Temperature-dependent surface tension model in which the surface tension
    function provided by the phase Foam::liquidProperties class is used.

Usage
    \table
        Property     | Description               | Required    | Default value
        phase        | Phase name                | yes         |
    \endtable

    Example of the surface tension specification:
    \verbatim
        sigma
        {
            type    liquidProperties;
            phase   water;
        }
    \endverbatim

for use with e.g. compressibleInterFoam, see
tutorials/multiphase/compressibleInterFoam/laminar/depthCharge2D
2017-04-05 14:36:11 +01:00
eb6fb7f7e3 ENH: make FOAM_EXT_LIBBIN optional in the configuration files
- useful for builds that don't use the ThirdParty directory at all
2017-04-04 17:11:36 +02:00
1bdb57985f COMP: drop FOAM_EXT_LIBBIN dependency for VTK-related items
- they don't use scotch/metis anyhow, which are the only things
  placed in FOAM_EXT_LIBBIN
2017-04-04 16:22:12 +02:00
dd78e042fe ENH: reduce reliance on FOAM_EXT_LIBBIN during builds
- just check WM_PROJECT_DIR instead.

- provide a fallback value when FOAM_EXT_LIBBIN might actually be needed.

Only strictly need FOAM_EXT_LIBBIN for scotch/metis decomposition, and
when these are actually supplied by ThirdParty.
All other ThirdParty dependencies are referenced by BOOST_ARCH_PATH etc.

Can therefore drop the FOAM_EXT_LIBBIN dependency for VTK-related
things, which do not use scotch/metis anyhow.
2017-04-04 15:28:42 +02:00
7d048c71be Merge remote-tracking branch 'origin/master' into develop 2017-04-04 16:15:10 +02:00
638aded7cc BUG: bad shell construct for building optional component 2017-04-04 14:13:55 +02:00
111c1d2d12 ENH: Added include file to calculate the mechanical energy 2017-04-04 12:51:35 +01:00
37b0d85dc4 ENH: Updated for setting of old time values 2017-04-04 12:50:42 +01:00
c13d59fa51 STYLE: updated debug message 2017-04-04 12:42:39 +01:00
95c37c0cbb ENH: Updated second-order restart for thermo fields 2017-04-04 12:41:35 +01:00
0a20a8177f template cases: added minor comment to blockMeshDict files 2017-04-04 12:36:50 +01:00
8bfaa34e24 template cases: added nCellsBetweenLevels to snappyHexMeshDict files 2017-04-04 12:33:17 +01:00
97e84f5880 template cases: added cylindrical background mesh in rotating geometry cases
snappyHexMesh produces a far better quality AMI interface using a cylindrical background mesh,
leading to much more robust performance, even on a relatively coarse mesh.  The min/max AMI
weights remain close to 1 as the mesh moves, giving better conservation.

The rotating geometry template cases are configured with a blockMeshDict file for a cylindrical
background mesh aligned along the z-axis.  The details of use are found in the README and
blockMeshDict files.
2017-04-04 12:24:01 +01:00
5617219185 template cases: minor edit to README files 2017-04-04 11:48:29 +01:00
ede46c3cae template cases: added pre-commented external patches to blockMeshDict
Uncommenting the patches provides a convenient way to use the patches in the background mesh
to define the external boundary of the final mesh.  Replaces previous setup with a separate
blockMeshDict.extPatches file.
2017-04-04 10:47:04 +01:00
c164e91b0a surfaceFilmModels::perturbedTemperatureDependentContactAngleForce: New contact angle model
Combining a Function1 temperature dependency with a distributionModel stochastic
perturbation.
2017-04-04 00:09:38 +01:00
91b0a9379b STYLE: mention clang-4.0 in the bashrc, cshrc files 2017-04-03 08:31:04 +02:00
ae0718a0f5 BUG: avoid absolute path for 'lsof'
- has different locations on different systems
  (eg, /usr/bin/lsof or /sbin/lsof)
2017-04-03 08:31:04 +02:00
af49eaf625 ENH: default jobControl now under the '~/.OpenFOAM/jobControl' directory
- this implies that jobControl is a user-resource for OpenFOAM.
  It was previously located under $WM_PROJECT_INST_DIR/jobControl,
  but few users will have write access there.

- an unset FOAM_JOB_DIR variable is treated as "~/.OpenFOAM/jobControl",
  which can partially reduce environment clutter.

- provide argList::noJobInfo() to conveniently suppress job-info on an
  individual basis for short-running utilities (eg, foamListTimes) to
  avoid unneeded clutter.
2017-04-03 08:28:15 +02:00
08f6f78471 chemistrySolver::EulerImplicit: Corrected thermodynamics update to mass basis
Resolves bug-report https://bugs.openfoam.org/view.php?id=2513
2017-03-31 22:34:47 +01:00
dd1ca3302e surfaceFilmModels::contactAngleForces: Provide empty list default value for zeroForcePatches 2017-03-31 22:33:41 +01:00
a067151810 surfaceFilmModels::contactAngleForce: Use of boundary values of surface tension and contact angle 2017-03-31 20:46:52 +01:00
2b31d91a78 functionObjects:functionObjects:: Corrected documentation 2017-03-31 20:46:03 +01:00
1f5b9dbbcf tutorials/multiphase: Removed unnecessary specification of name and dimensions for transport properties 2017-03-31 17:11:30 +01:00
332c8acdcd ENH: Clean-up after latest Foundation integrations 2017-03-31 15:36:28 +01:00
fb724ce113 MRG: Integrated Foundation code to commit 9f37c3c 2017-03-31 15:34:28 +01:00
dfd611aeac surfaceTensionModels: New class hierarchy for run-time selectable surface tension models
These models have been particularly designed for use in the VoF solvers, both
incompressible and compressible.  Currently constant and temperature dependent
surface tension models are provided but it easy to write models in which the
surface tension is evaluated from any fields held by the mesh database.
2017-03-31 14:32:38 +01:00
c341b22f9d STYLE: use hard-coded user resource directory name for foamEtcFile
- previously used the value of $WM_PROJECT, but this is potentially
  inconsistent with what Foam::etcFiles uses.
2017-03-31 09:54:20 +02:00
970da5aa75 BUG: waveModels - corrected reference water levels - thanks to Gabi Barajas 2017-03-30 14:57:36 +01:00
836d04ffc1 ENH: various general improvments to the POSIX functions
- ensure proper and sensible handling of empty names.
  Eg, isDir(""), isFile("") are no-ops, and avoid file-stat

- rmDir:
  * optional 'silent' option to suppress messages.
  * removes all possible sub-entries, instead of just giving up on
    the first problem encountered.

- reduced code duplication in etcFiles

ENH: provide WM_USER_RESOURCE_DIRNAME define (in foamVersion.H)

- this is still a hard-coded value, but at least centrally available
2017-03-30 11:45:25 +02:00
982300f0d8 faceOnlySet, uniformSet: Reset mesh.moving before returning
Resolves bug-report https://bugs.openfoam.org/view.php?id=2514
2017-03-29 23:15:32 +01:00
446b8e7188 STYLE: respect WM_DIR value when building wmake tools
- minor bug: 'wclean empty' may have had issues with logical vs physical path
2017-03-29 13:49:15 +02:00
3ece6e521a ENH: improve MPI configuration possibilities
- permit SYSTEMMPI user adjustments via
      etc/config.{csh,sh}/mpi-system
  This can be a convenient place for setting up SYSTEMMPI for OpenFOAM
  without adjusting bashrc, prefs.sh ...

- add a USERMPI type. This represents any generic mpi implementation.
  The user is responsible for supplying an appropriate
  wmake/rules/General/mplibUSERMPI file and managing all settings.

  This type of setup can be useful in combination with specific build
  systems (SPACK, EASYBUILD, etc) or module systems for which the MPI
  variant is part of the installed configuration.
2017-03-29 13:48:54 +02:00
e6b67f6790 ENH: Clean-up after latest Foundation integrations 2017-03-28 14:21:07 +01:00
45381b1085 MRG: Integrated Foundation code to commit 19e602b 2017-03-28 11:30:10 +01:00
07ce0a547a COMP: try harder to find/use zoltan library 2017-03-28 10:57:37 +02:00
c88e95436c Merge branch 'master' into develop 2017-03-30 14:58:05 +01:00
09620ce0ed regionModels: Renamed owner->region in regionModel and owner->film in surfaceFilmModel
This update does not change the operation or controls of the regionModels, it is
to aid understanding of the code.
2017-03-28 08:30:46 +01:00
1dd74551da Updated header 2017-03-28 08:30:06 +01:00
9f37c3c537 transportModels::interfaceProperties: simplified interface 2017-03-28 08:29:28 +01:00
ddc694e632 reactingParcelFilmFoam tutorials: Updated contact-angle specification 2017-03-28 08:27:48 +01:00
cbed107ce1 surfaceFilmModels::contactAngleForces: Corrected headers 2017-03-27 20:07:47 +01:00
054eec50ea surfaceFilmModels::contactAngleForce: Added temperatureDependentContactAngleForce
Created a base-class from contactAngleForce from which the
distributionContactAngleForce (for backward compatibility) and the new
temperatureDependentContactAngleForce are derived:

Description
    Temperature dependent contact angle force

    The contact angle in degrees is specified as a \c Function1 type, to
    enable the use of, e.g.  contant, polynomial, table values.

See also
    Foam::regionModels::surfaceFilmModels::contactAngleForce
    Foam::Function1Types

SourceFiles
    temperatureDependentContactAngleForce.C
2017-03-27 20:03:28 +01:00
b708c23cfc ENH: Clean-up after latest Foundation integrations 2017-03-27 14:34:01 +01:00
b3d4b836c8 ENH: readFields function object - added flag to read fields on construction 2017-03-27 09:10:01 +01:00
5efae4cadf reactingTwoPhaseEulerFoam: Small change to avoid warning from wmkdep 2017-03-24 17:27:43 +00:00
65a4a357b5 COMP: Corrected ambiguous construction from tmp errors 2017-03-24 15:50:27 +00:00
39977c64c3 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-03-24 14:59:06 +00:00
e14769f224 lagrangian::ThermoSurfaceFilm: Updated adhesion->splash transition Weber number
according to

        Bai et al, `Modelling of gasoline spray impingement', Atom. Sprays,
        vol 12, pp 1-27, 2002

Resolves bug-report https://bugs.openfoam.org/view.php?id=2478
2017-03-24 14:56:47 +00:00
4c52f8ff1d sloshingCylinder tutorial: sloshing in cylinder under zero gravity
Demonstrates meshing a cylinder with hemispehrical ends using snappyHexMesh with
a polar background mesh that uses the point and edge projection feature of blockMesh.
The case prescribes a multiMotion on the cylinder, combining an oscillatingLinearMotion
and transverse rotatingMotion.
2017-03-24 14:43:53 +00:00
f3feb1aa0a tutorials: moved laminar interDyMFoam examples into "laminar" directory 2017-03-24 12:33:37 +00:00
3b983739d2 postProcessing: changed isosurface to use isoSurfaceCell algorithm 2017-03-24 11:40:36 +00:00
dcb1a95e35 MRG: Integrated Foundation code to commit 7d6845d 2017-03-23 14:33:33 +00:00
436ec1cf1f MRG: Integrated Foundation code to commit ba4dbed 2017-03-23 12:11:49 +00:00
1fc82434ba CrankNicolsonDdtScheme: Reorganized the code to simplify maintenance 2017-03-23 12:11:24 +00:00
04c3d535b0 MRG: Integrated Foundation code to commit 47bd8e1 2017-03-23 10:12:38 +00:00
bad27c45fc ENH: several improvements to foamEtcFile
- lazier evaluation of project name and version based on the directory
  name. Avoids heuristics based on directory names unless really needed.

- cope with alternative directory locations.
  For example, OpenFOAM+VERSION etc.

The combination of the two above appears to be sufficient to open up
the directory naming possibilities.

- additional -list-test option (tests for existence of directory).
2017-03-23 10:31:05 +01:00
e6e617ed47 STYLE: suppress unalias warnings/errors
- cleanup variables last in etc/bashrc for a clean exit code
2017-03-23 10:16:05 +01:00
68851ce4f0 Merge branch 'foundation-github-tmp' into develop 2017-03-23 09:07:39 +00:00
92b6f3dcfa CrankNicolsonDdtScheme: Added option "ramp" function to smoothly transition from Euler
Off-centering is specified via the mandatory coefficient \c ocCoeff in the
    range [0,1] following the scheme name e.g.
    \verbatim
    ddtSchemes
    {
        default         CrankNicolson 0.9;
    }
    \endverbatim
    or with an optional "ramp" function to transition from the Euler scheme to
    Crank-Nicolson over a initial period to avoid start-up problems, e.g.
    \verbatim
    ddtSchemes
    {
        default         CrankNicolson
        ocCoeff
        {
            type scale;
            scale linearRamp;
            duration 0.01;
            value 0.9;
        };
    }
    \endverbatim

Note this functionality is experimental and the specification and implementation
may change if issues arise.
2017-03-22 22:27:47 +00:00
aae3705bdc functionObjects::fieldAverage: Initialize totalTime_ for new fields following restart
Patch contributed by Timo Niemi, VTT.
Resolves bug-report https://bugs.openfoam.org/view.php?id=2510
2017-03-22 18:30:51 +00:00
ad65ac255a Diffusion number: Corrected in chtMultiRegionFoam and pyrolysisModels::reactingOneDim
Resolves bug-report https://bugs.openfoam.org/view.php?id=2512
2017-03-22 17:13:53 +00:00
0be6269add Added robust primitive cubic/quadratic/linear equation solutions.
Applied to eigen-value calculations. Fixed repeated-eigen-value issues
in eigen-vector generation.
2017-03-22 15:11:54 +00:00
1be180b99f ENH: source 'other' prefs before user/group
- this allows the sys-admin to provide base values independent of any
  WM_PROJECT_SITE value.
2017-03-22 15:33:51 +01:00
406a2c5d20 applyBoundaryLayer: Ensure nut is up-to-date with the current turbulence fields
Resolves bug-report https://bugs.openfoam.org/view.php?id=2511
2017-03-22 10:08:37 +00:00
3d05295abd STYLE: Corrected typo 2017-03-22 09:11:47 +00:00
ace5565f96 ENH: improve foamEtcFile support for alternative naming conventions
- support names like openfoam-<VERSION> (eg, what spack uses).
- robustness improvements
2017-03-22 09:08:52 +01:00
399df1a20d ENH: also accept 'lib' for metis and scotch libraries
- this corresponds to what various module or build systems provide.
  ThirdParty builds are unaffected since they install into FOAM_EXT_LIBBIN
2017-03-21 16:55:27 +01:00
eaf1e6263f applyBoundaryLayer: Provide non-const access to nut, k and epsilon 2017-03-21 15:07:13 +00:00
6b3742c3f1 BUG: Missed change during fix for #437 2017-03-21 13:57:55 +00:00
bbe490506e STYLE: Minor documentation update 2017-03-21 13:35:22 +00:00
e6d9402e5a BUG: nacaAirfoil tutorial - updated patches used by forceCoeffs function object. Fixes #438 2017-03-21 13:34:57 +00:00
69bc13f300 BUG: Function objects - updated to enable user time emtries, e.g. if using engineTime. Fixes #437 2017-03-21 13:32:55 +00:00
6ebaa63d1c BUG: forceCoeffs - corrected handling of pDyn for compressible cases. Fixes #436 2017-03-21 13:27:47 +00:00
cf1df0542f BUG: wallHeatFlux FO - corrected output of header info tofile. Fixes #435 2017-03-21 13:23:52 +00:00
489ff68e6b Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-03-20 17:57:57 +00:00
bf43e16dca setTimeStepFunctionObject: Corrected typo
Resolves bug-report https://bugs.openfoam.org/view.php?id=2507
2017-03-20 17:57:06 +00:00
c9831529b3 Case templates: updated dynamicMeshDict for syntax change to solid body motion 2017-03-20 12:27:07 +00:00
e66e402976 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-03-18 17:19:35 +00:00
864fc239c8 tutorials/combustion/reactingFoam/RAS/DLR_A_LTS: Reduced the endTime 2017-03-18 17:15:58 +00:00
14601aa8c2 Function1::Scale: New function to scale a given function by a scalar function, e.g. a ramp
For example in the potentialFreeSurfaceFoam/oscillatingBox tutorial it is
cleaner to apply the "linearRamp" function to the "sine" function rather than
using an amplitude table:

    floatingObject
    {
        type            fixedNormalInletOutletVelocity;

        fixTangentialInflow false;

        normalVelocity
        {
            type            uniformFixedValue;

            uniformValue
            {
                type        scale;

                value
                {
                    type sine;

                    frequency   1;
                    amplitude   0.025;
                    scale       (0 1 0);
                    level       (0 0 0);
                }

                scale
                {
                    type linearRamp;

                    duration 10;
                }
            }
        }

        value           uniform (0 0 0);
    }
2017-03-18 17:11:11 +00:00
98de229365 Function1: Added "Ramp" to the names of the ramp functions to avoid conflict
with more general forms of those functions.
2017-03-18 17:10:48 +00:00
44ac4449f9 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2017-03-17 17:37:31 +00:00
dc5a8671bd PatchInteractionModel: Skip application of patch interaction model for
coupled patches, to prevent rebound/stick/etc... on these patches. Also
added "none" interaction type to LocalInteraction, which reverts the
patch interaction to the fundamental behaviour. This is primarily useful
for non-coupled constraint types.

Resolves https://bugs.openfoam.org/view.php?id=2458
2017-03-17 17:26:39 +00:00
6f5caf28d5 pitzDaily tutorials: updated blockMeshDict files to use multi-grading
The pitzDaily case uses a lot of mesh grading close to walls and the shear layer.
Prior to v2.4, blockMesh only permitted grading in one direction within a single block,
so the pitzDaily mesh comprised of 13 blocks to accommodate the complex grading pattern.

blockMesh has multi-grading that allows users to divide a block in a given direction and
apply different grading within each division.  The mesh generated with blockMesh using
13 blocks has been replaced with a mesh of 5 blocks that use multi-grading.  The new
blockMeshDict configuration produces a mesh very similar to the original 13-block mesh.
2017-03-17 12:42:13 +00:00
29137345bf Merge branch 'master' of https://github.com/OpenFOAM/OpenFOAM-dev 2017-03-17 11:30:27 +00:00
d401f1cfb4 reactingMultiphaseEulerFoam: Ensure that an unordered phase pair gets
generated whenever a BlendedInterfacialModel is created.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2472
2017-03-17 11:26:24 +00:00
dd15478158 combustionModels::EDC: New Eddy Dissipation Concept (EDC) turbulent combustion model
including support for TDAC and ISAT for efficient chemistry calculation.

Description
    Eddy Dissipation Concept (EDC) turbulent combustion model.

    This model considers that the reaction occurs in the regions of the flow
    where the dissipation of turbulence kinetic energy takes place (fine
    structures). The mass fraction of the fine structures and the mean residence
    time are provided by an energy cascade model.

    There are many versions and developments of the EDC model, 4 of which are
    currently supported in this implementation: v1981, v1996, v2005 and
    v2016.  The model variant is selected using the optional \c version entry in
    the \c EDCCoeffs dictionary, \eg

    \verbatim
        EDCCoeffs
        {
            version v2016;
        }
    \endverbatim

    The default version is \c v2015 if the \c version entry is not specified.

    Model versions and references:
    \verbatim
        Version v2005:

            Cgamma = 2.1377
            Ctau = 0.4083
            kappa = gammaL^exp1 / (1 - gammaL^exp2),

            where exp1 = 2, and exp2 = 2.

            Magnussen, B. F. (2005, June).
            The Eddy Dissipation Concept -
            A Bridge Between Science and Technology.
            In ECCOMAS thematic conference on computational combustion
            (pp. 21-24).

        Version v1981:

            Changes coefficients exp1 = 3 and exp2 = 3

            Magnussen, B. (1981, January).
            On the structure of turbulence and a generalized
            eddy dissipation concept for chemical reaction in turbulent flow.
            In 19th Aerospace Sciences Meeting (p. 42).

        Version v1996:

            Changes coefficients exp1 = 2 and exp2 = 3

            Gran, I. R., & Magnussen, B. F. (1996).
            A numerical study of a bluff-body stabilized diffusion flame.
            Part 2. Influence of combustion modeling and finite-rate chemistry.
            Combustion Science and Technology, 119(1-6), 191-217.

        Version v2016:

            Use local constants computed from the turbulent Da and Re numbers.

            Parente, A., Malik, M. R., Contino, F., Cuoci, A., & Dally, B. B.
            (2016).
            Extension of the Eddy Dissipation Concept for
            turbulence/chemistry interactions to MILD combustion.
            Fuel, 163, 98-111.
    \endverbatim

Tutorials cases provided: reactingFoam/RAS/DLR_A_LTS, reactingFoam/RAS/SandiaD_LTS.

This codes was developed and contributed by

    Zhiyi Li
    Alessandro Parente
    Francesco Contino
    from BURN Research Group

and updated and tested for release by

    Henry G. Weller
    CFD Direct Ltd.
2017-03-17 09:44:15 +00:00
b68043256c Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2017-03-17 09:04:09 +00:00
a384d76745 functionObjects::systemCall: Removed redundant Make directory 2017-03-17 09:02:59 +00:00
15aec3649e BUG: incorrect patch lookup in ensight conversion (fixes #430) 2017-03-17 09:09:31 +01:00
ab65533e8e rigidBodyMeshMotion: Added optional force damping ramp function
to provide smoother behavior on start-up when an acceleration impulse is
applied, e.g. if the body is suddenly released.  e.g.

dynamicFvMesh       dynamicMotionSolverFvMesh;

motionSolverLibs   ("librigidBodyMeshMotion.so");

solver             rigidBodyMotion;

rigidBodyMotionCoeffs
{
    report          on;

    solver
    {
        type    Newmark;
    }

    ramp
    {
        type     quadratic;
        start    0;
        duration 10;
    }
.
.
.

will quadratically ramp the forces from 0 to their full values over the first
10s of the run starting from 0.  If the 'ramp' entry is omitted no force ramping
is applied.
2017-03-16 21:01:45 +00:00
1e592a128a Function1::ramp: New set of scalar ramp functions
Description
    Ramp function base class for the set of scalar functions starting from 0 and
    increasing monotonically to 1 from \c start over the \c duration and
    remaining at 1 thereafter.

    Usage:
    \verbatim
        <entryName> <rampFunction>;
        <entryName>Coeffs
        {
            start     10;
            duration  20;
        }
    \endverbatim
    or
    \verbatim
        <entryName>
        {
            type      <rampFunction>;
            start     10;
            duration  20;
        }
    \endverbatim

    Where:
    \table
        Property | Description  | Required | Default value
        start    | Start time   | no       | 0
        duration | Duration     | yes      |
    \endtable

The following common ramp functions are provided: linear, quadratic, halfCosine,
quarterCosine and quaterSine, others can easily be added and registered to the run-time
selection system.
2017-03-16 20:56:57 +00:00
32052dce23 postProcessing/noise: Updated for changes to Function1 2017-03-16 20:56:09 +00:00
2e2bfd237a Function1: Rationalized construction to support the simpler sub-dictionary format
e.g.
    ramp
    {
        type     quadratic;
        start    200;
        duration 1.6;
    }

but the old format is supported for backward compatibility:

    ramp linear;
    rampCoeffs
    {
        start    200;
        duration 1.6;
    }
2017-03-16 20:53:08 +00:00
b1199f6559 Updated header 2017-03-16 20:51:14 +00:00
19e602b065 dictionary: Added lookupType function for convenient lookup and setting of value
of the specified type
2017-03-16 20:50:11 +00:00
2c31e665ba autoPtr: Added assignment to pointer 2017-03-16 20:49:21 +00:00
9d2ba29710 Function1: Added zero and one constant functions for convenience 2017-03-16 20:48:26 +00:00
78eba84ee3 BernardCells: tutorial demonstrating Bernard cells
2D buoyancy-driven flow between flat plates with small temperature difference
2017-03-15 19:18:37 +00:00
7276dbd38d foamCreateVideo: avoid dropping frames for some color depths 2017-03-15 19:10:10 +00:00
1fea6fee98 postProcess: Added support for dsmcFields
e.g. postProcess -time 0.001 -func dsmcFields

Resolves bug-report https://bugs.openfoam.org/view.php?id=2499
2017-03-14 15:22:59 +00:00
dc328945b1 reactingEulerFoam: Added fvOption support for incompressible phases 2017-03-14 11:56:01 +00:00
502c9ceb71 etc/bashrc: Updated to better support zsh
Resolves patch request https://bugs.openfoam.org/view.php?id=2490
2017-03-13 19:41:38 +00:00
47d7240412 turbulenceModels::RAS: Corrected sign of "C3" dilatation term
Set default value of C3 to 0
Set C3 to -0.33 in the engineFoam/kivaTest tutorial.

Resolves bug-report https://bugs.openfoam.org/view.php?id=2496
2017-03-13 18:01:39 +00:00
d40363079c laplacianFoam: added fvOptions library
Resolves bug-report https://bugs.openfoam.org/view.php?id=2492
2017-03-13 08:50:17 +00:00
96ad725a0b Updated UPstream::commsTypes to use the C++11 enum class 2017-03-10 19:54:55 +00:00
812a9a53ed Upgraded to OpenMPI-2.0.2 2017-03-10 17:08:16 +00:00
215349aa69 BUG: in wordRe::operator=(const keyType&)
- the regex was not being unset on assignment.
- drop unused recompile() method as being dubious
2017-03-10 13:05:35 +01:00
11a2ea7c61 CrankNicolsonDdtScheme: Corrected fvcDdtUfCorr for compressible flow
Resolves bug-report https://bugs.openfoam.org/view.php?id=2491
2017-03-10 11:08:10 +00:00
af088a5c78 turbulenceModels::LES::dynamicLagrangian: Converted advection to compressible convection form
Formally this is equivalent to the previous formulation but more convenient to
use given that for compressible flow the mass flux rather than the volume flux
is available.
2017-03-10 11:07:41 +00:00
942338b06c sixDoFRigidBodyDisplacementPointPatchVectorField, uncoupledSixDoFRigidBodyDisplacementPointPatchVectorField: removed
These legacy boundary conditions are no longer needed and have been superseded
by the more flexible sixDoFRigidBodyMotion and rigidBodyMotion solvers.  See tutorials:

incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam
multiphase/interDyMFoam/RAS/DTCHull
multiphase/interDyMFoam/RAS/floatingObject

Resolves bug-report https://bugs.openfoam.org/view.php?id=2487
2017-03-09 23:12:06 +00:00
7f5c135020 wingMotion tutorial: Corrected fvSolution file 2017-03-09 23:11:30 +00:00
c4e63c4c24 functionObjects::functionObjects: Corrected initial totalTime for cases with variable time-step
Resolves bug-report https://bugs.openfoam.org/view.php?id=2459
2017-03-09 17:39:27 +00:00
f5e88d6eb3 LES::dynamicLagrangian: Corrected access to the volumetric flux for compressible flow
Resolves bug-report https://bugs.openfoam.org/view.php?id=2489
2017-03-09 09:37:59 +00:00
14da5d4ee2 Updated header 2017-03-08 11:51:36 +00:00
1be5f699e5 decomposePar: Added 'copyZero' option
Using

decomposePar -copyZero

The mesh is decomposed as usual but the '0' directory is recursively copied to
the 'processor.*' directories rather than decomposing the fields.  This is a
convenient option to handle cases where the initial field files are generic and
can be used for serial or parallel running.  See for example the
incompressible/simpleFoam/motorBike tutorial case.
2017-03-08 11:48:06 +00:00
7a99465d2a verticalChannel tutorial: removed 'bounded' from the 'div(phid,p)' scheme. 2017-03-08 11:34:08 +00:00
7aed8c2904 tutorials: Updated pcorr settings in fvSolution to provide pcorrFinal if required 2017-03-07 11:48:20 +00:00
55e7a77ac6 tutorials/incompressible/pisoFoam/LES/motorBike/motorBike/Allrun: Remove previous 0 directories
Patch contributed by Mattijs Janssens
2017-03-06 23:18:13 +00:00
b535c05fa6 CrankNicolsonDdtScheme, backwardDdtScheme: Ensure V00 is available for moving meshes 2017-03-06 23:15:54 +00:00
86dc955605 interFoam family of solvers: Improved Crank-Nicolson implementation
Fewer limiter iterations are now required to obtain sufficient boundedness and
restart is more consistent.
2017-03-06 17:34:10 +00:00
c6bcd65dfd STYLE: minor simplification of coding in dictionary 2017-03-06 18:32:48 +01:00
093ede5d32 CorrectPhi: only use the "Final" tolerance for the last non-orthogonal iteration 2017-03-03 22:05:24 +00:00
9b7a4accda GAMGSolverScale: minor update 2017-03-03 22:04:41 +00:00
94c209c6d6 CrankNicolsonDdtScheme, backwardDdtScheme: Ensure the V00 field is cached 2017-03-03 22:03:29 +00:00
f05be160e2 BUG: dictionary entries not being properly merged/overwritten (closes #418)
STYLE: update dictionary documentation
2017-03-03 11:36:24 +01:00
2853678a60 ENH: support operations on surfFields in surfaceFieldValue
- this makes it possible to perform additional operations
  on surface values that have been previously sampled.

- support vectorField for weighting operations.

- reduce overhead by avoiding creation of weight fields, Sf fields
  and combined surface geometries unless they are actually required.

- extend some similar concepts and operations to volFieldValue
2017-03-02 14:50:36 +01:00
b3bfdd0bb8 Merge branch 'Fix_GL_416' into 'master'
Fixes #416

Closes #416

See merge request !96
2017-03-02 08:57:49 +00:00
6253452dcf Fixes #416 2017-03-02 10:22:24 +05:30
0723800d75 PBiCGStab: Instantiate for symmetric and asymmetric matrices
PBiCGStab has proved more reliable than PCG for solving the pressure equation in
compressible systems.
2017-02-28 20:08:38 +00:00
05de53d086 ENH: Minor modification to the description 2017-02-28 10:37:43 -08:00
62197e9ccd ENH: Correcting coefficient description in solarCalculator.H header 2017-02-28 10:35:55 -08:00
fe548839c5 tutorials/incompressible/pisoFoam/LES/motorBike: Removed unused $1 arguments to xargs
Resolves bug-report https://bugs.openfoam.org/view.php?id=2475
2017-02-28 11:27:28 +00:00
50516486a4 rhoPimpleFoam: Added support for transonic flow of liquids and real gases
Both stardard SIMPLE and the SIMPLEC (using the 'consistent' option in
fvSolution) are now supported for both subsonic and transonic flow of all
fluid types.

rhoPimpleFoam now instantiates the lower-level fluidThermo which instantiates
either a psiThermo or rhoThermo according to the 'type' specification in
thermophysicalProperties, see also commit a1c8cde310
2017-02-28 11:14:59 +00:00
09c9e1a89a ENH: Adding skyCloudCoverFraction to SunLoadFairWeatherConditions mode in the solarCalculator.
This scalar allows to introduce a factor for cloudy sky between 0 (clear) and 1 (fully cloudy)
2017-02-27 16:46:12 -08:00
7515ea7550 reactingTwoPhaseEulerFoam::Lavieville: Corrected fLiquid function
Resolves bug-report https://bugs.openfoam.org/view.php?id=2477
2017-02-27 09:39:46 +00:00
5fc6c3ca34 ENH: provide FOAM_EXECUTABLE as environment variable in argList
- can be used directly from within an application or function-object.
  Makes it available for dictionaries.
2017-02-24 17:48:13 +01:00
7d6845defa rhoSimpleFoam: Added support for transonic flow of liquids and real gases
Both stardard SIMPLE and the SIMPLEC (using the 'consistent' option in
fvSolution) are now supported for both subsonic and transonic flow of all
fluid types.
2017-02-24 16:20:06 +00:00
3f1c72356f STYLE: clear names of selected fields when re-reading 2017-02-24 14:51:26 +01:00
a203d0a344 STYLE: relocate deprecated utilities into separate directory
- makes it easier to identify at a later stage
2017-03-20 15:16:06 +01:00
b970ba0901 ENH: minor improvements to environment
- handle sourcing bashrc with a relative path (issue #383)
- handle sourcing from bash and zsh.
  Still need manual intervention when sourcing dash, sh, or ksh.
- replace grep in etc/cshrc with sed only
- logical instead of physical path for WM_PROJECT_DIR (issue #431).
  Doesn't seem to be possible for csh/tcsh.

  * Continue using physical locations when comparing directories,
    but not for the top-level FOAM_INST_DIR, WM_PROJECT_DIR.

- relocate WM_CC, WM_CXX overrides from etc/config.*/compiler
  to etc/config.*/settings to ensure that they are left untouched
  when etc/config.sh/compiler is sourced while making third-party
  packages (eg, gcc, llvm, CGAL).

- provide fallback FOAM_TUTORIALS setting in RunFunctions

STYLE: remove "~OpenFOAM" fallback as being too rare, non-obvious
2017-03-20 08:57:12 +01:00
5d62a7430d GIT: adjust gitignore
- ignore top-level /build and /platforms directories
2017-03-15 15:10:05 +01:00
249f334f83 ENH: respect '-silent' option for cmake builds
- minor cleanup of wmake sources
2017-03-15 13:06:45 +01:00
4339d93c8e STYLE: drop _foamSource definition (unneeded). 2017-03-14 17:24:23 +01:00
f1112fc357 CONFIG: update paraview 5.3.0, openmpi 2.0.2, mpich 3.2, fftw 3.3.6-pl1 2017-03-14 10:38:54 +01:00
7848953b21 ENH: equationInitialResidualCondition - updated to support user-time, e.g. engineTime 2017-03-21 16:56:21 +00:00
eed3b77060 ENH: Function objects - updated logic to determine whether or not to instantiate a time-based function object. Fixes #439 2017-03-21 16:55:24 +00:00
694a03dfeb Merge branch 'master' into develop 2017-03-21 13:58:06 +00:00
2f41df18e3 Merge branch 'master' into develop 2017-03-21 13:36:26 +00:00
2b03d9615e ENH: perfectGasI - added #include "thermodynamicConstants.H" to enable builds for derived classes 2017-03-21 13:00:05 +00:00
cbf793fca2 ENH: Updated header file documentation 2017-03-21 09:40:35 +00:00
e9355df198 ENH: [surface|vol]FieldValue - added name of weight field to output file header if used 2017-03-21 09:38:36 +00:00
2271bd4ca4 ENH: timeActivatedFileUpdate: early reading of changed files. Fixes #420. 2017-03-15 13:15:36 +00:00
1abcdcc58a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-03-15 12:01:55 +00:00
986e4656ae BUG: topoSet: nearestToCell/Point return nearest on all processors. Fixes #427. 2017-03-15 12:01:23 +00:00
de3f38da3d Merge branch 'feature-noise-additions' into 'develop'
ENH: Feature noise additions

See merge request !98
2017-03-15 11:08:56 +00:00
a7a3126a76 ENH: noiseModels - re-worked output directories to avoid clashes. Fixes
Both point- and surfaceNoise utilities can operate on multiple input
files.  However, if the files had the same name, the output would be
overwritten.  To avoid this, the output files are now written to a
sub-directory including the path '/input<input-file-index>/', e.g.

  postProcessing/noise/surfaceNoise/input0/nearWall/[fft|oneThirdOctave]

An optional 'outputPrefix' can be included (defaults to empty), e.g.
when set to 'test1':

  postProcessing/noise/test1/surfaceNoise/input0/nearWall/[fft|oneThirdOctave]
2017-03-14 13:15:39 +00:00
a886410d16 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-03-13 12:02:22 +00:00
f6cc25f5eb ENH: cellSetOption: suppress printing of excess messages. Fixes #415. 2017-03-13 12:01:05 +00:00
8db517bfbb CONFIG: provide Clang38, Clang39 compiler settings
- easier to test or use different versions

- change WM_CXXFLAGS to -std=c++11 instead of -std=c++0x
2017-03-10 18:13:49 +01:00
f760352c8f COMP: avoid null reference in FieldMapper.H (issue #405) 2017-03-10 17:58:45 +01:00
39e81ce5ec BUG: subsequent command options are ignored (issue #424)
- adjust so that the final -option is taken. This is consistent with
  other Unix tools.

ENH: short-circuit to avoid directory check on non-master node
2017-03-10 14:52:39 +01:00
b21242c14c Merge branch 'feature-noise-additions' of develop.openfoam.com:Development/OpenFOAM-plus into feature-noise-additions 2017-03-10 13:08:17 +00:00
f8e0231672 STYLE: removed mutable variable/methods from regExp
- tends to obscure what is going on and isn't needed either.

STYLE: adjust documentation. Accept std::string as parameter in more places.
2017-03-10 12:42:59 +01:00
aa6b835104 ENH: use fileName::nameLessExt() instead of fileName::name(bool)
- the purpose is more explicit, without needing to check documentation
  about what the bool parameter means.

STYLE: improve formatting of fileName documentation
2017-03-10 11:49:56 +01:00
9077098935 ENH: provide string removeStart, removeEnd convenience methods 2017-03-10 11:39:40 +01:00
4bc957cc3e ENH: surfaceNoise - updated surface output 2017-03-10 09:08:46 +00:00
518bb6e8fc ENH: surfaceNoise - updated surface output 2017-03-10 09:08:46 +00:00
a2f54aef3c ENH: surfaceNoise - warn if no data available to process 2017-03-06 12:09:05 +00:00
f3abf405a8 ENH: noiseModels - updated frequency bounds handling 2017-03-03 14:24:56 +00:00
9741ce6e0d ENH: noise models - expand input file name before check for isAbsolute 2017-03-02 12:39:03 +00:00
34bc14a53d ENH: noiseModel updates
- Limit output to frequency range given by fLower and fUpper (if supplied)
- Enable noise models to be run outside of $FOAM_CASE directory
  - if relative paths are used, $FOAM_CASE is prepended to the noise
    dict and input file names
- Enable output to be customised, e.g.

    // Optional write options dictionary (all default to 'yes')
    writeOptions
    {
        writePrmsf  no;
        writeSPL    yes;
        writePSD    yes;
        writePSDf   no;
        writeOctaves yes;
    }
2017-03-01 13:55:05 +00:00
2ce0aaddd4 ENH: splitMeshRegions: correct header. 2017-03-01 11:48:00 +00:00
4401c0ee87 BUG: Time: time step adjustment not robust. Fixes #414. 2017-03-01 11:43:00 +00:00
bcde59e646 STYLE: Minor typo corrections 2017-03-01 10:53:18 +00:00
cf4ff7b381 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-02-27 11:50:20 +00:00
b71c4676ce ENH: cyclicACMI: report number of blended faces. Fixes #411. 2017-02-27 11:49:19 +00:00
f9599010ca Merge branch 'build' into 'develop'
Improvements, adjustments for build scripts and infrastructure

See merge request !94
2017-02-24 18:31:57 +00:00
9810c68e76 ENH: support default/alternate values for env-vars in dictionary lookup
- was previously only within string expansions, but cover dictionaries
  as well for consistency

ENH: replace the never-used fileName::caseName() functionality

- stringOps::inplaceReplaceVar() is more general

     stringOps::inplaceReplaceVar(myfile, "FOAM_CASE");

STYLE: relax parameter passing when calling some POSIX 'query' functions.

- A std::string is sufficient since the functions use a plain C-string.
  Eg, getEnv("SOMETHING").
  Retain more stringent Foam::word for things like setEnv, since this
  could be useful.
2017-02-24 17:37:48 +01:00
49d0b7552e STYLE: use initializer_list syntax when building system command 2017-03-10 10:34:37 +01:00
383fdb04ae COMP: suppress warnings about MPI old-style cast (GCC only) 2017-03-10 10:27:17 +01:00
31555346cc Merge remote-tracking branch 'origin/master' into develop 2017-03-10 13:30:39 +01:00
9faf186b9f ENH: provide xferFaces mechanism for triSurface for symmetry with MeshedSurface 2017-03-09 13:56:54 +01:00
10fc0646fb BUG: 'make clean' failed for wmake/src
- caused by the typo '@E' instead of '$E' (commit 997f1713cb)

ENH: minor improvements for wmake/src makefile

- 'make clean' now also tries to remove the parent platforms/
  directory if possible.

- the flex intermediate build target is placed into the platforms/
  directory to avoid touching the src/ directory at all.

- suppress warnings about unused functions (GCC only)
2017-03-09 11:48:52 +01:00
2bfd17cf8d ENH: add 'wmkdep' to warnings and error messages from wmkdep
- makes it possible to filter out or highlight messages originating
  from wmkdep in the build process.
2017-03-09 10:20:14 +01:00
89ac2e551a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-03-08 08:47:04 -08:00
42ebb30c0c ENH: Re-formatting the inertia trem in turbulentTemperatureRadCoupledMixedFvPatchScalarField.C
And correcting bool entry from dictionary in fanFvPatchField BC
2017-03-08 08:45:50 -08:00
37e7fca9dc BUG: STL ASCII being incorrectly detected as BINARY (fixes #422)
- now explicitly check for "SOLID" or "solid" in the header

- does not affect triSurface in the master branch, since that used a
  different parser.
2017-03-08 13:30:43 +01:00
8060792b92 ENH: provide canRead, canWrite tests for triSurface
- for symmetry with MeshedSurface etc.
2017-03-08 13:15:28 +01:00
7d3eb76f75 Merge branch 'subset-list' into 'develop'
Subset list

See merge request !97
2017-03-08 12:31:26 +00:00
3d3c14cbff ENH: add inplaceUniqueSort function
- determines a unique sort order (as per uniqueOrder) and uses that to
  reorder the list and possibly truncate it.
2017-03-08 11:10:16 +01:00
b7dc6d0441 ENH: add subsetList/inplaceSubsetList functions with unary predicate
- these are suitable for use with lambda functions.

- Deprecate the unused 3-parameter version of subset/inplaceSubset.

- Deprecate initList and initListList in favour of initializer_list

STYLE: adjust some comments, remove dead code in regionSizeDistribution.C
2017-03-07 17:00:30 +01:00
865f09e623 STYLE: comments in codedFvOptionTemplate 2017-03-07 18:48:57 +01:00
4b93333292 ENH: improve handling of noFunctionObjects / withFunctionObjects (issue #352)
- do not enable function objects by default if there is no means of
  disabling them.
2017-03-07 10:53:40 +01:00
cb38533096 ENH: Adding thermal inertia to coupled BC.
This helps on bounding Twall on cases where large inertia is found in the first cell
next to the fluid (i.e large cell, rho or Cp)
2017-03-06 09:43:10 -08:00
6057479926 ENH: provide wcleanBuild and improve wcleanPlatform
- new behaviour is to do nothing if no platform was specified.
  This helps avoid inadvertently removing files.

- support special platforms for compatibility with wmake/wclean targets.
  Eg, "wcleanPlatform all"

- allow use from ThirdParty top-level as well, since the directory
  structure is similar.

BUG: fix regression in wcleanLnIncludeAll introduced by 9e2e111518
2017-02-24 12:20:45 +01:00
a1c8cde310 rhoSimpleFoam: added support for compressible liquid flows
rhoSimpleFoam now instantiates the lower-level fluidThermo which instantiates
either a psiThermo or rhoThermo according to the 'type' specification in
thermophysicalProperties, e.g.

thermoType
{
    type            hePsiThermo;
    mixture         pureMixture;
    transport       sutherland;
    thermo          janaf;
    equationOfState perfectGas;
    specie          specie;
    energy          sensibleInternalEnergy;
}

instantiates a psiThermo for a perfect gas with JANAF thermodynamics, whereas

thermoType
{
    type            heRhoThermo;
    mixture         pureMixture;
    properties      liquid;
    energy          sensibleInternalEnergy;
}

mixture
{
    H2O;
}

instantiates a rhoThermo for water, see new tutorial
compressible/rhoSimpleFoam/squareBendLiq.

In order to support complex equations of state the pressure can no longer be
unlimited and rhoSimpleFoam now limits the pressure rather than the density to
handle start-up more robustly.

For backward compatibility 'rhoMin' and 'rhoMax' can still be used in the SIMPLE
sub-dictionary of fvSolution which are converted into 'pMax' and 'pMin' but it
is better to set either 'pMax' and 'pMin' directly or use the more convenient
'pMinFactor' and 'pMinFactor' from which 'pMax' and 'pMin' are calculated using
the fixed boundary pressure or reference pressure e.g.

SIMPLE
{
    nNonOrthogonalCorrectors 0;

    pMinFactor      0.1;
    pMaxFactor      1.5;

    transonic       yes;
    consistent      yes;

    residualControl
    {
        p               1e-3;
        U               1e-4;
        e               1e-3;
        "(k|epsilon|omega)" 1e-3;
    }
}
2017-02-24 11:18:01 +00:00
a748ce1eaf STYLE: resolve COMP_FLAGS, COMPILE_FLAGS mismash in favour of COMP_FLAGS 2017-02-23 16:25:38 +01:00
c84b9aaac6 ENH: use new foamEtcFile options to simplify syntax when sourcing files
Can now use this:
    _foamSourceEtc config.sh/scotch
    _foamSourceEtc config.csh/scotch

instead of this:
    _foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch)
    _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/scotch`

In the bash/sh version, leave the _foamSource function for now, since
ThirdParty is still relying on it.

STYLE: elminate while-loop for _foamAddPath etc since this type of
construct isn't readily possible for csh and isn't being used anywhere.
2017-02-23 15:55:38 +01:00
c393b268a5 MULES: Adjust limiter only at boundaries for which the field value is fixed
Resolves bug-report https://bugs.openfoam.org/view.php?id=2470
2017-02-23 12:03:50 +00:00
c9e4fd77fd ENH: add options for foamEtcFile and shell evaluation
- Eg, instead

      if file=$(foamEtcFile filename)
      then
          . $file
      fi

  can write

      eval "$(foamEtcFile -sh filename)"

  Also supports -verbose reporting, which is especially useful for csh,
  since it allows simplification of aliases and allows the message to
  land on stderr instead of stdout.

      eval `foamEtcFile -csh -verbose filename`
2017-02-23 12:48:43 +01:00
e9bce5c331 Merge branch 'Fix_GL_409' into 'master'
Use subDict for changeDictionary, Fixes #409

Closes #409

See merge request !95
2017-02-23 11:02:21 +00:00
07ec2b3abd STYLE: eliminate most use of _foamSource outside of the etc/ hierarchy 2017-02-23 10:58:55 +01:00
cc51def1fd STYLE: minor cleanup of foamEtcFile 2017-02-23 09:17:46 +01:00
a3ff45d50a Use subDict for changeDictionary, Fixes #409 2017-02-23 11:33:29 +05:30
c1ca2f4a38 BUG: missing chdir in Allwclean for wallFunctionTable
STYLE: improve consistency in Allwclean scripts
2017-02-23 01:07:10 +01:00
e5cc374d8e MULES: Adjust limiter only at boundaries for which the field value is fixed
Resolves bug-report https://bugs.openfoam.org/view.php?id=2470
2017-02-22 15:34:13 +00:00
12dd3c9c6b GeometricField: corrected assignment to tmp which wraps a non-tmp 2017-02-22 13:20:49 +00:00
5991e30fc1 functionObjects::fieldCoordinateSystemTransform: added coordinateSystem sub-dict and updated the description
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2454
2017-02-22 13:20:15 +00:00
32a78d12e2 ENH: wclean all now finds Allwclean files too (issue #408)
- this may still need more testing, but the basic idea is to find
  directories with 'Allwclean' or 'Make' and process them (once!)
2017-02-21 19:40:35 +01:00
9e2e111518 STYLE: adjust ordering of 'find' command arguments
- use -name test before -type test to avoid calling stat(2) on every file.
- use -delete instead of -exec rm to avoid forking
2017-02-21 19:19:04 +01:00
bec7091e21 chemkinToFoam: Increase the precision of the thermophysical coefficient written 2017-02-21 11:59:49 +00:00
a6d37e5728 COMP: silence some compiler warnings
- remove some spurious regExp includes
2017-02-21 12:56:27 +01:00
c1795a30b8 Merge branch 'listoutput' into 'develop'
Flat list output

See merge request !93
2017-02-20 18:47:24 +00:00
3deb5f4d19 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-02-20 10:37:28 -08:00
a37dffad4f ENH:Delete 'not Implemented' function updateCoeffs() in slicedFvPatchField. ACMI patch is used with mesh.C() in isoSurface
which uses slicedFvPatch.
2017-02-20 10:34:01 -08:00
a06cd912d8 solidMixtureProperties: Updated documentation, removed unused functions and corrected remaining 2017-02-20 15:30:25 +00:00
e5ecc28891 liquidMixtureProperties: Updated documentation 2017-02-20 15:30:07 +00:00
403520cee5 ENH: add tags marking user configuration sections
- as per bashrc,cshrc delimit with
      "# USER EDITABLE PART"
      "# END OF (NORMAL) USER EDITABLE PART"

  this can help simplify any patching for system-building scripts etc.
2017-02-20 10:57:30 +01:00
1ed5b35049 CONFIG: pass-through icc compiler choice for KNL, add gcc 6.3.0
- bump ADIOS version to 1.11.1
2017-02-20 10:47:45 +01:00
28a8e5a61b STYLE: use flatOutput when reporting known file-extensions 2017-02-20 10:32:40 +01:00
a843d84f80 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-02-20 09:31:38 +00:00
a7eaf8199b BUG: shm: fast bounding box - triangle intersection disabled. Works around #404.
For certain combinations of rays and triangles the fast bb-triangle intersection
routine is not correct. For now revert to slow edge-by-edge intersection.
2017-02-20 09:29:45 +00:00
d3911dd167 STYLE: avoid old-style shell backticks in various places 2017-02-20 09:30:58 +01:00
f6dacfb484 liquidThermo: rhoThermo instantiated on liquidProperties
This allows single, multi-phase and VoF compressible simulations to be performed
with the accurate thermophysical property functions for liquids provided by the
liquidProperty classes.  e.g. in the
multiphase/compressibleInterFoam/laminar/depthCharge2D tutorial water can now be
specified by

thermoType
{
    type            heRhoThermo;
    mixture         pureMixture;
    properties      liquid;
    energy          sensibleInternalEnergy;
}

mixture
{
    H2O;
}

as an alternative to the previous less accurate representation defined by

thermoType
{
    type            heRhoThermo;
    mixture         pureMixture;
    transport       const;
    thermo          hConst;
    equationOfState perfectFluid;
    specie          specie;
    energy          sensibleInternalEnergy;
}

mixture
{
    specie
    {
        molWeight   18.0;
    }
    equationOfState
    {
        R           3000;
        rho0        1027;
    }
    thermodynamics
    {
        Cp          4195;
        Hf          0;
    }
    transport
    {
        mu          3.645e-4;
        Pr          2.289;
    }
}

However the increase in accuracy of the new simpler and more convenient
specification and representation comes at a cost: the NSRDS functions used by
the liquidProperties classes are relatively expensive to evaluate and the
depthCharge2D case takes ~14% longer to run.
2017-02-19 16:44:00 +00:00
d2be645483 thermophysicalProperties: New base-class for liquidProperties and in the future gasProperties
Description
    Base-class for thermophysical properties of solids, liquids and gases
    providing an interface compatible with the templated thermodynamics
    packages.

liquidProperties, solidProperties and thermophysicalFunction libraries have been
combined with the new thermophysicalProperties class into a single
thermophysicalProperties library to simplify compilation and linkage of models,
libraries and applications dependent on these classes.
2017-02-18 21:53:20 +00:00
de44d09ad9 liquidProperties, solidProperties: Simplified input
The entries for liquid and solid species can now be simply be the name unless
property coefficients are overridden in which are specified in a dictionary as
before e.g. in the tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek case
the water is simply specified

liquids
{
    H2O;
}

and solid ash uses standard coefficients but the coefficients for carbon are
overridden thus

solids
{
    C
    {
        rho             2010;
        Cp              710;
        kappa           0.04;
        Hf              0;
        emissivity      1.0;
    }

    ash;
}
2017-02-18 12:43:10 +00:00
9b4f327e2b liquidProperties: Simplified dictionary format
The defaultCoeffs entry is now redundant and supported only for backward
compatibility.  To specify a liquid with default coefficients simply leave the
coefficients dictionary empty:

    liquids
    {
        H2O {}
    }

Any or all of the coefficients may be overridden by specifying the properties in
the coefficients dictionary, e.g.

    liquids
    {
        H2O
        {
            rho
            {
                a 1000;
                b 0;
                c 0;
                d 0;
            }
        }
    }
2017-02-17 22:08:42 +00:00
a6fd99b874 liquidProperties: simplified and generalized the IO
When liquids are constructed from dictionary the coefficients are now first
initialized to their standard values and overridden by the now optional entries
provided in the dictionary.  For example to specify water with all the standard
temperature varying properties but override only the density with a constant
value of 1000 specify in thermophysicalProperties

liquids
{
    H2O
    {
        defaultCoeffs   no;

        H2OCoeffs
        {
            rho
            {
                a 1000;
                b 0;
                c 0;
                d 0;
            }
        }
    }
}
2017-02-17 20:29:58 +00:00
ba9d58a26f thermophysicalModels: Ostream operator calls write(os) for consistent IO 2017-02-17 16:35:43 +00:00
72b705edbd thermophysicalModels: Removed unused and unmaintained Istream constructors 2017-02-17 15:50:00 +00:00
3e4d253cc1 liquidProperties: Removed unused construction from Istream 2017-02-17 13:41:05 +00:00
c52e4b58a1 thermophysicalModels: Changed specie thermodynamics from mole to mass basis
The fundamental properties provided by the specie class hierarchy were
mole-based, i.e. provide the properties per mole whereas the fundamental
properties provided by the liquidProperties and solidProperties classes are
mass-based, i.e. per unit mass.  This inconsistency made it impossible to
instantiate the thermodynamics packages (rhoThermo, psiThermo) used by the FV
transport solvers on liquidProperties.  In order to combine VoF with film and/or
Lagrangian models it is essential that the physical propertied of the three
representations of the liquid are consistent which means that it is necessary to
instantiate the thermodynamics packages on liquidProperties.  This requires
either liquidProperties to be rewritten mole-based or the specie classes to be
rewritten mass-based.  Given that most of OpenFOAM solvers operate
mass-based (solve for mass-fractions and provide mass-fractions to sub-models it
is more consistent and efficient if the low-level thermodynamics is also
mass-based.

This commit includes all of the changes necessary for all of the thermodynamics
in OpenFOAM to operate mass-based and supports the instantiation of
thermodynamics packages on liquidProperties.

Note that most users, developers and contributors to OpenFOAM will not notice
any difference in the operation of the code except that the confusing

    nMoles     1;

entries in the thermophysicalProperties files are no longer needed or used and
have been removed in this commet.  The only substantial change to the internals
is that species thermodynamics are now "mixed" with mass rather than mole
fractions.  This is more convenient except for defining reaction equilibrium
thermodynamics for which the molar rather than mass composition is usually know.
The consequence of this can be seen in the adiabaticFlameT, equilibriumCO and
equilibriumFlameT utilities in which the species thermodynamics are
pre-multiplied by their molecular mass to effectively convert them to mole-basis
to simplify the definition of the reaction equilibrium thermodynamics, e.g. in
equilibriumCO

    // Reactants (mole-based)
    thermo FUEL(thermoData.subDict(fuelName)); FUEL *= FUEL.W();

    // Oxidant (mole-based)
    thermo O2(thermoData.subDict("O2")); O2 *= O2.W();
    thermo N2(thermoData.subDict("N2")); N2 *= N2.W();

    // Intermediates (mole-based)
    thermo H2(thermoData.subDict("H2")); H2 *= H2.W();

    // Products (mole-based)
    thermo CO2(thermoData.subDict("CO2")); CO2 *= CO2.W();
    thermo H2O(thermoData.subDict("H2O")); H2O *= H2O.W();
    thermo CO(thermoData.subDict("CO")); CO *= CO.W();

    // Product dissociation reactions

    thermo CO2BreakUp
    (
        CO2 == CO + 0.5*O2
    );

    thermo H2OBreakUp
    (
        H2O == H2 + 0.5*O2
    );

Please report any problems with this substantial but necessary rewrite of the
thermodynamic at https://bugs.openfoam.org

Henry G. Weller
CFD Direct Ltd.
2017-02-17 11:22:14 +00:00
973cf0397d CONFIG: provide foamConfigurePaths -mpi option
- makes it easier to switch between mpi implementations (eg, openmpi, intelmpi etc)

- add comment about compiler setting for KNL
2017-02-16 09:14:17 +01:00
48eb1aee84 ENH: treeDataPrimitivePatch: skip surplus test 2017-02-15 12:58:53 +00:00
376912eff2 ENH: adding runTime selectable wallDist calculation to inverseDistanceDiffusivity 2017-02-14 08:30:53 -08:00
2f5185a048 functionObjects::scalarTransport: Corrected typo 2017-02-13 18:25:33 +00:00
ae9522f017 functionObjects::scalarTransport: Added support for optional laminar and turbulent diffusion coefficients
Description
    Evolves a passive scalar transport equation.

    - To specify the field name set the \c field entry
    - To employ the same numerical schemes as another field set
      the \c schemesField entry,
    - A constant diffusivity may be specified with the \c D entry,

    - Alternatively if a turbulence model is available a turbulent diffusivity
      may be constructed from the laminar and turbulent viscosities using the
      optional diffusivity coefficients \c alphaD and \c alphaDt (which default
      to 1):
      \verbatim
          D = alphaD*nu + alphaDt*nut
      \endverbatim

Resolves feature request https://bugs.openfoam.org/view.php?id=2453
2017-02-12 17:19:27 +00:00
689ee6e0ea Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-02-10 11:41:53 -08:00
4f736b5c41 temperatureCoupledBase: alphaAni set to none by default
boundaryRadiationProperties: updating to new format
dynamicMeshDict and snappyHexMeshDict in utorials/multiphase/interDyMFoam/RAS/motorBike to follow Mattijs Git lab id 381
2017-02-10 11:40:15 -08:00
957635200a ENH: build into build/ directory instead of platforms/ (issue #312)
- makes it slightly easier when packaging various binaries, or when
  building packages for installation via modules etc.
2017-02-10 20:30:15 +01:00
3d02c8a530 ENH: improve isolation of shell variables in wmake scripts
- reduces unexpected interactions between various make elements
2017-02-10 16:13:54 +01:00
cf501ffa0f Merge branch 'master' into develop 2017-02-10 14:00:26 +00:00
f77bbf4179 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-02-10 13:57:55 +00:00
84aa391403 BUG: noise - updated creation of control dictionary to allow -case option and env variables. Fixes #402 2017-02-10 13:57:36 +00:00
7e20157d95 ENH: setSystem*Dictionary - expand file names to enable the use of 2017-02-10 13:56:42 +00:00
e82a029453 ENH: add help/usage for dirToString, wmkdep. Add dirToString -strip option.
- The dirToString -strip option is simple, but reduces effort for the caller.
2017-02-10 14:10:00 +01:00
46ecad8f7a STYLE: make wmake scripts look more POSIX-like
- also add some comments about the side-effects
2017-02-10 11:38:12 +01:00
6343e1e3b3 ENH: have wmake and wclean do something sensible with a filename as target
- For convenience, let "wmake some/path/filename.C"
  behave similar to    "wmake some/path"
  and trace back for the Make directory.
2017-02-10 10:33:50 +01:00
e3d9084c62 ENH: support ASCII List output on a single-line
- Introduce writeList(Ostream&, label) method in various List classes to
  provide more flexibility and avoid hard-coded limits when deciding if a
  list is too long and should be broken up into multiple lines (ASCII only).

- The old hard-code limit (10) is retained in the operator<< versions

- This functionality is wrapped in the FlatOutput output adapter class
  and directly accessible via the 'flatOutput()' function.

Eg,
    #include "ListOps.H"
    Info<< "methods: " << flatOutput(myLongList) << endl;

    // OR

    Info<< "methods: ";
    myLongList.writeList(os) << endl;
2017-02-10 09:55:37 +01:00
53502f79b8 BUG: Correcting calculation of azimuth angle in the solar direction 2017-02-09 13:13:45 -08:00
dd8b8bceac csvSetWriter: Corrected axis header
Resolves bug-report https://bugs.openfoam.org/view.php?id=2455
2017-02-09 17:47:56 +00:00
b167c95f19 compressibleInterFoam: Completed LTS and semi-implicit MULES support
Now the interFoam and compressibleInterFoam families of solvers use the same
alphaEqn formulation and supporting all of the MULES options without
code-duplication.

The semi-implicit MULES support allows running with significantly larger
time-steps but this does reduce the interface sharpness.
2017-02-09 17:31:57 +00:00
2049c5c2a4 BUG: using tmp() instead of tmp.ref() in combineFields (closes #400)
- templated code that is not actually be used yet.

ENH: avoid combineFields for serial case

Note: a 'master-only' variant with combineList only on the master and
without scatter can be pursued later.
2017-02-09 15:19:47 +01:00
0067c9e369 STYLE: avoid spurious messages when cloning cases
- either (or both) of 0/, 0.orig/ may exist, so error messages about
  one of them being missing is a bit misleading
2017-02-09 13:41:48 +01:00
ff2a335310 ENH: add tutorials/Allrun -collect option
- collects the log information only, without running any cases.
  This can be useful if the user has terminated the test prematurely
  but nonetheless wishes to summarize the log output.
2017-02-09 13:07:48 +01:00
26cd9ae174 STYLE: update foam comment template 2017-02-09 11:52:32 +01:00
6fc2a3dc58 compressibleInterFoam: More consistent with interFoam and added partial support for LTS 2017-02-08 20:50:07 +00:00
ba4eefae1d interFoam, interDyMFoam: Removed duplicate include 2017-02-08 20:47:59 +00:00
3879cf48fb interMixingFoam: Renamed alphaEqns.H and alphaEqnsSubCycle.H for consistency with interFoam 2017-02-08 20:46:31 +00:00
285442776c STYLE: minor code adjustments
- constness on local variables, pre-increment on loops, parameter names
2017-02-08 19:32:38 +01:00
9d85d34f3a functionObjects::scalarTransport: Corrected FatalError 2017-02-08 16:57:30 +00:00
2f091ae6c7 STYLE: make UList::writeEntry(Ostream&) protected
- outputs compound tags etc.
  Should only be called by itself or by a derived class.
2017-02-08 14:22:19 +01:00
160efd89a6 porosityModels::solidification: Added optional phase-fraction for VoF solvers etc.
Description
    Simple solidification porosity model

    This is a simple approximation to solidification where the solid phase
    is represented as a porous blockage with the drag-coefficient evaluated from

        \f[
            S = - \alpha \rho D(T) U
        \f]

    where
    \vartable
        \alpha  | Optional phase-fraction of solidifying phase
        D(T)    | User-defined drag-coefficient as function of temperature
    \endvartable

    Note that the latent heat of solidification is not included and the
    temperature is unchanged by the modelled change of phase.

    Example of the solidification model specification:
    \verbatim
        type            solidification;

        solidificationCoeffs
        {
            // Solidify between 330K and 330.5K
            D table
            (
                (330.0     10000) // Solid below 330K
                (330.5     0)     // Liquid above 330.5K
            );

            // Optional phase-fraction of solidifying phase
            alpha alpha.liquid;

            // Solidification porosity is isotropic
            // use the global coordinate system
            coordinateSystem
            {
                type    cartesian;
                origin  (0 0 0);
                coordinateRotation
                {
                    type    axesRotation;
                    e1      (1 0 0);
                    e2      (0 1 0);
                }
            }
        }
    \endverbatim
2017-02-08 10:40:14 +00:00
47b48217ba Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-02-08 08:46:23 +00:00
63b2ab8069 ENH: surfaceMeshTriangulate: handle absolute paths. Fixes #398. 2017-02-08 08:45:40 +00:00
974624766f porosityModels::solidification: New porosity model to simulate solidification
Description
    Simple solidification porosity model

    This is a simple approximation to solidification where the solid phase
    is represented as a porous blockage with the drag-coefficient evaluated from

        \f[
            S = - \rho D(T) U
        \f]

    where
    \vartable
        D(T) | User-defined drag-coefficient as function of temperature
    \endvartable

    Note that the latent heat of solidification is not included and the
    temperature is unchanged by the modelled change of phase.

    Example of the solidification model specification:
    \verbatim
        type            solidification;

        solidificationCoeffs
        {
            // Solidify between 330K and 330.5K
            D table
            (
                (330.0     10000) // Solid below 330K
                (330.5     0)     // Liquid above 330.5K
            );

            // Solidification porosity is isotropic
            // use the global coordinate system
            coordinateSystem
            {
                type    cartesian;
                origin  (0 0 0);
                coordinateRotation
                {
                    type    axesRotation;
                    e1      (1 0 0);
                    e2      (0 1 0);
                }
            }
        }
    \endverbatim
2017-02-07 19:02:30 +00:00
c5e7f356c9 porosityModel::powerLaw: Added groupName to rho lookup to support multiphase 2017-02-07 19:01:34 +00:00
5f25843392 porosityModels: Corrected documentation 2017-02-07 19:00:58 +00:00
29e83f3958 compressibleInterFoam: Added support for fvOptions in both the U and T equations 2017-02-07 18:59:40 +00:00
8264c3b988 interDyMFoam: Reinstate alphaPhiCorr0 for moving meshes without topology change 2017-02-07 09:59:19 +00:00
ddf1268e73 functionObjects:surfaceFieldValue, volFieldValue: Added weightedSum and weighted[Area|Vol]Integrate
Patch contributed by Timo Niemi, VTT.
Resolves patch request https://bugs.openfoam.org/view.php?id=2452
2017-02-06 15:48:11 +00:00
7b09bab34f DOC: adjust doxygen tag for 4-digit release tags 2017-02-06 09:15:18 +01:00
3e5307111c STYLE: unify cd, check for the cwd and error message 2017-02-06 09:13:59 +01:00
aaeab42691 ENH: provide -git option for Alltest
- fast means of ensuring we are only testing what is contained in the
  repository
2017-02-06 08:49:04 +01:00
23809f7ae7 PBiCG: Suggest changing to the more robust PBiCGStab solver
if convergence is not achieved within the maximum number of iterations.

Sometimes, particularly running in parallel, PBiCG fails to converge or diverges
without warning or obvious cause leaving a solution field containing significant
errors which can cause divergence of the application.  PBiCGStab is more robust
and does not suffer from the problems encountered with PBiCG.
2017-02-03 18:36:40 +00:00
9f91084eef ENH: provide word::validated() static method
- Constructs a validated word, in which all invalid characters have
  been stripped out and any leading digit is '_'-prefixed.
  Words with leading digits cause parse issues when read back later.

- Replaces previous functionally identical code from src/conversion

--
COMP: test against nullObject instead of checking address for null pointer.
2017-02-03 15:13:13 +00:00
7a7fa4350d Time: when "writeFormat" is set to "binary" disallow compression
Compressing and decompressing binary files introduces a significant IO overhead
without a providing significant reduction in file-size.
2017-02-03 14:51:04 +00:00
f532a99dc3 ENH: logFiles - minor change to suppress compiler warning 2017-02-03 14:34:19 +00:00
7612b51828 lagrangian::NonInertialFrameForce: Use field references rather than copies
Patch contributed by Mattijs Janssens
2017-02-03 14:29:07 +00:00
78ee6c2abb Time: When increasing precision check if the time name is unchanged
Patch contributed by Mattijs Janssens
2017-02-03 14:27:38 +00:00
83787036a9 functionObjects::streamLine: Reinstated default "U" 2017-02-03 14:25:02 +00:00
d62e301b4b Merge branch 'master' into develop 2017-02-03 12:29:49 +00:00
21636f241a Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-02-03 12:28:12 +00:00
9e8031f285 BUG: RunFunctions - updated retrieval of nProcs to suppress warning when no system/deomposeParDict 2017-02-03 12:27:50 +00:00
417ff3bc2a BUG: waveModels - corrected wavelength calculation for StokesV model; code clean-up 2017-02-03 12:17:42 +00:00
b4f0b2930d STYLE: Minor code tidying 2017-02-03 12:20:58 +00:00
74f38251f8 kOmegaSSTSato: removed debug message 2017-02-03 11:37:56 +00:00
1e9e164be0 Merge branch 'feature-bbox-improvements' into 'develop'
Feature bbox improvements

See merge request !92
2017-02-03 10:56:51 +00:00
93fbd41785 kOmegaSSTBase: make correctNut(S2, F2) virtual
kOmegaSSTSato: Change correctNut() to correctNut(S2, F2)

Resolves bug-report https://bugs.openfoam.org/view.php?id=2450
2017-02-03 10:52:35 +00:00
ec94c078e3 BUG: STL patch names not being passed through
- regression introduced by a719528832

STYLE: add meaningful solid names for some stl files
2017-02-03 09:33:22 +00:00
ba4dbeda77 NamedEnum: Updated to support C++11 scoped enumerations 2017-02-02 17:02:59 +00:00
e76d5ce567 ENH: use invertedBox instead of greatBox for signalling no clipping
- more stable/predictable to check for a bounding box !empty() rather
  than comparing to greatBox directly.
2017-02-01 14:31:09 +00:00
0ffae6461a ENH: creating a bounding box without points yields an inverted box
- The code create a box with a (0,0,0) point.
  The new definition is more logical and makes it very easy to grow
  the bounding box to include new points. It also simplifies much of
  the logic in the constructors.

- Use ROOTVGREAT instead of VGREAT for sizing greatBox and invertedBox.
  Avoids some overflow issues reported by Mattijs (thus GREAT has been
  used in treeBoundBox), but might still need further revision.
2017-02-01 12:15:00 +00:00
d29420817d ENH: Modification of the start point for ray shooting to avoid self-hit in distorted meshes 2017-01-31 16:06:44 -08:00
3d315f09f9 alphatWallBoilingWallFunctionFvPatchScalarField: Resolve restart issue
Patch contributed by Juho Peltola, VTT
Resolves patch request https://bugs.openfoam.org/view.php?id=2446
2017-01-30 16:39:36 +00:00
d951f7aaaf movingConeTopoFvMesh: M_PI -> Foam::constant::mathematical::pi 2017-01-30 16:38:58 +00:00
9812d957c9 ThermalPhaseChangePhaseSystem: Improved robustness
Patch contributed by Juho Peltola, VTT.
Resolves patch request https://bugs.openfoam.org/view.php?id=2443
2017-01-30 16:37:27 +00:00
70ac064f21 codedFunctionObject: Updated documentation
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2441
2017-01-28 18:01:11 +00:00
1d211874aa functionObjects::streamLine,wallBoundedStreamLine: Removed outdated check for 'UName'
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2444
2017-01-28 17:59:34 +00:00
f92862a42c Allwmake: Provides clearer message when OpenFOAM environment is not loaded
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2424
2017-01-28 17:57:13 +00:00
7a2eb63824 Corrected spelling mistake 2017-01-26 20:18:50 +00:00
d4aba02652 combustionModels: Minor cleanup 2017-01-26 17:48:31 +00:00
5dd24f4968 Removed unhelpful clutter 2017-01-26 17:47:24 +00:00
de5688e095 ENH: expose HashTable iterator object() methods
- to the referenced object via a method name, which may be clearer
  than deferencing the iterator

     [key, value] =>  iter.key(), *iter
     [key, value] =>  iter.key(), iter()
     [key, value] =>  iter.key(), iter.object()
2017-01-26 18:11:02 +01:00
2b9b2dd865 BUG: HashPtrTable has problems with null pointers (issue #395)
- print and copy operations should not be allowed to dereference a
  nullptr.
2017-01-26 18:00:33 +01:00
1c1a69cabc patchInjectionBase: Improved particle positioning
Patch contributed by Timo Niemi, VTT.
Resolves bug-report https://bugs.openfoam.org/view.php?id=2442
2017-01-26 15:34:51 +00:00
af4429f94c STYLE: reduce bounding box list via list-combine-gather/scatter 2017-01-25 23:03:41 +01:00
722d23f59c ENH: additional methods/operators for boundBox (related to #196)
- Constructor for bounding box of a single point.

- add(boundBox), add(point) ...
  -> Extend box to enclose the second box or point(s).

  Eg,
      bb.add(pt);
  vs.
      bb.min() = Foam::min(bb.min(), pt);
      bb.max() = Foam::max(bb.max(), pt);

Also works with other bounding boxes.
  Eg,
      bb.add(bb2);
      // OR
      bb += bb2;
  vs.
      bb.min() = Foam::min(bb.min(), bb2.min());
      bb.max() = Foam::max(bb.max(), bb2.max());

'+=' operator allows the reduction to be used in parallel
gather/scatter operations.

A global '+' operator is not currently needed.

Note: may be useful in the future to have a 'clear()' method
that resets to a zero-sized (inverted) box.

STYLE: make many bounding box constructors explicit
2017-01-25 19:26:50 +01:00
17d76e6261 ENH: boundBox 'reduce' method (related to #196)
reduce()
- parallel reduction of min/max values.
  Reduces coding for the callers.

  Eg,
      bb.reduce();

  instead of the previous method:
      reduce(bb.min(), minOp<point>());
      reduce(bb.max(), maxOp<point>());

STYLE:

- use initializer list for creating static content
- use point::min/point::max when defining standard boxes
2017-01-25 18:52:37 +01:00
1cb2966722 ENH: add blockMesh -sets option to write cellZones as cellSets (closes #348) 2017-01-25 13:16:49 +01:00
8f7228d6f3 interDyMFoam: delete alphaPhiCorr0 if the mesh changes
The previous time-step compression flux is not valid/accurate on the new mesh
and it is better to re-calculate it rather than map it from the previous mesh to
the new mesh.
2017-01-25 11:54:12 +00:00
a719528832 ENH: use STL reader from surfMesh library for triSurface as well (issue #294)
- initial step in reducing duplicate IO for triSurface.

- write STL triangle using common core routines from fileFormats
2017-01-25 11:58:55 +01:00
14d8f6cb17 DEFEATURE: remove writers for OpenDX format (issue #294)
- last OpenDX release/news was from 2007.
  Cannot maintain or verify if the writers are correct.
2017-01-25 11:51:14 +01:00
4e5dc43418 snappyHexMesh: Added "noRefinement" writeFlag to control the writing of cellLevel, pointLevel etc. files
By default snappyHexMesh writes files relating to the hex-splitting process into
the polyMesh directory: cellLevel level0Edge pointLevel surfaceIndex

but by setting the noRefinement flag:

writeFlags
(
    noRefinement
    .
    .
    .
);

these optional files which are generally not needed are not written.

If you run the three stages of snappyHexMesh separately or run a dynamic mesh
solver supporting refinement and unrefinement these files are needed
and "noRefinement" should not be set.
2017-01-24 22:28:36 +00:00
9b319dab61 blockMesh: Delete the polyMesh directory before meshing
unless the blockMeshDict is in the polyMesh directory or the "-noClean" option
is specified.

This avoids problems running snappyHexMesh without first clearing files from
polyMesh which interfere with the operation of snappyHexMesh.
2017-01-24 16:18:20 +00:00
192b5d91a0 snappyHexMesh: Write correct refinement files once only
The files relating to the hex refinement are written out explicitly both by
snappyHexMesh and dynamicRefineFvMesh and hence should be set "NO_WRITE" rather
than "AUTO_WRITE" to avoid writing them twice.  This change corrects the
handling of the "refinementHistory" file which should not be written by
snappyHexMesh.
2017-01-24 08:15:43 +00:00
9d63cc5ca8 ENH: add versioning for VTK library to runTimePostProcessing (issue #370)
Eg,
    librunTimePostProcessing.so
    librunTimePostProcessing.so.7 -> librunTimePostProcessing.so.7.1.0
    librunTimePostProcessing.so.7.1.0

- centralize handling of paraview/vtk versioning into wmake/cmakeFunctions
2017-01-23 13:37:42 +01:00
77a3022c43 BUG: boundaryDataTemplates - make dir before writing to stream. Fixes #390 2017-01-23 08:41:43 +00:00
1c26f6a457 chemistryModel: General cleanup 2017-01-20 18:22:48 +00:00
1e36c99588 PaSR: Removed deprecated "turbulentReaction" switch
To run with laminar reaction rates choose the "laminar" combustion model rather
than setting "turbulentReaction no;" in the "PaSR" model.
2017-01-20 17:17:14 +00:00
3ca17d43a2 meshSearch: Add support for cell decomposition mode CELL_TETS
Resolves bug-report https://bugs.openfoam.org/view.php?id=2428
2017-01-20 10:47:15 +00:00
8632583934 Removed trailing blank lines
Resolves bug-report https://bugs.openfoam.org/view.php?id=2438
2017-01-19 20:17:47 +00:00
2c388220aa Merge branch 'master' into develop 2017-01-19 13:31:11 +00:00
f1e415266d BUG: wave models - corrected setting of U for shallowWaterAbsorption. Fixes #388 2017-01-19 13:30:59 +00:00
e1730cf1f1 setsToZones: Add support for multi-region cases
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2437
2017-01-19 08:17:54 +00:00
c7300716f6 Updates for clang++-3.9 2017-01-18 21:45:26 +00:00
1d8b31d390 Updates for clang++-3.9 2017-01-18 18:12:45 +00:00
8112172e5b eConstThermo: Corrected entropy function
Resolves bug-report https://bugs.openfoam.org/view.php?id=2436
2017-01-18 10:10:30 +00:00
1c2093c8b3 Multi-phase solvers: Improved handling of inflow/outflow BCs in MULES
Avoids slight phase-fraction unboundedness at entertainment BCs and improved
robustness.

Additionally the phase-fractions in the multi-phase (rather than two-phase)
solvers are adjusted to avoid the slow growth of inconsistency ("drift") caused
by solving for all of the phase-fractions rather than deriving one from the
others.
2017-01-17 22:43:47 +00:00
1abec0652d tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC: Added deltaT to TDAC controls 2017-01-17 22:41:30 +00:00
740dbc4a37 Merge branch 'bugFix_GL_384' into 'develop'
adding viewFactorWall to inGroups fixes #384

@Sergio

See merge request !91
2017-01-17 12:45:59 +00:00
eeb486c38d adding viewFactorWall to inGroups fixes #384 2017-01-17 11:27:42 +00:00
2cc23a23e7 BUG: missing specializations in foamVtkPTraits header 2017-01-17 08:54:07 +01:00
f265b0484c BUG: extra newline in foamVtkAppendBase64Formatter flush()
Enhancements

- introduce intermediate layer for base64 foamVtk formatting
- add encodedLength() method, which is useful for xml appended output
2017-01-17 08:42:05 +01:00
d404ef954b BUG: incorrect super-cells for foamVtkCells decomposition (fixes #385) 2017-01-16 18:25:03 +01:00
a99143506d BUG: not incrementing when reading via singly-linked list 2017-01-24 12:59:13 +01:00
7af6fa7b67 ENH: freshen code in labelRange classes
- misc improvements in functionality.
2017-01-23 17:09:26 +01:00
2fa6ae6f62 STYLE: use pre-increment and cbegin/cend form for forAll* macros
- no reason to use post-increment in forAll() macro.

- use C++11 cbegin()/cend() method names for forAll*Iter() macros.
  These method names have been in OpenFOAM since 2009 and are also
  used by C++11 containers.

STYLE: nullptr instead of 0 in UList
2017-01-20 21:13:38 +01:00
fe0bb227ae STYLE: adjust documentation for scalarTransport FO 2017-01-18 11:31:15 +01:00
1ddaec3fc0 CodedSource: Corrected documentation
Patch contributed by zhulianhua
Resolves bug-report https://bugs.openfoam.org/view.php?id=2427
2017-01-13 14:14:06 +00:00
237c90820b species::thermo<Thermo, Type>::T: Check for negative initial temperature
Starting from an negative initial temperature causes non-convergence and a
misleading error, now a specific message is generated.
2017-01-13 14:11:28 +00:00
e0b157c0c0 fieldMinMax: Added cell index to output
e.g.

fieldMinMax fieldMinMax write:
    min(T) = 291 in cell 255535 at location (-0.262546 -0.538933 1.00574) on processor 9
    max(T) = 336.298 in cell 419031 at location (1.7468 0.758405 8.10989) on processor 1
    min(mag(U)) = 0 in cell 14990 at location (-0.0824383 1.68479 1.5349) on processor 0
    max(mag(U)) = 652.341 in cell 218284 at location (0.609849 0.167247 1.00091) on processor 12
2017-01-13 14:10:04 +00:00
5649bda951 realizableKE: Removed unused Cmu coefficient
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2431
2017-01-13 14:08:41 +00:00
512bfcfd6b CloudFunctionObjects::ParticleCollector: Corrected handling of "concentricCircle" mode
Patch contributed by Karl Meredith, FM Global.
2017-01-13 14:06:45 +00:00
f47e8513d7 ENH: avoid deprecated paraview method SetImmediateUpdate()
- add support for patch names in block mesh reader.
2017-01-12 11:41:15 +01:00
23d24a511e ENH: command-line query for the OPENFOAM_PLUS wmake value (issue #378)
Examples,

    wmakePrintBuild -plus

Check if value is known
(ie, everything configured and also OpenFOAM+):

    if wmakePrintBuild -plus >/dev/null 2>&1
    then
        echo YES
    else
        echo NO
    fi

Check if version is new enough

    if ofver=$(wmakePrintBuild -plus 2>/dev/null) && [ "$ofver" -ge 1612 ]
    then
        echo YES
    else
        echo NO
    fi

Conditionals

    ofver=$(wmakePrintBuild -plus 2>/dev/null)
    case "${ofver:=0}" in
    1612)
        echo "something for 1612
        ;;
    1706)
        echo "something for 1706
        ;;
    esac
2017-01-12 11:25:37 +01:00
ecb80a2ee8 ENH: refactor paraview readers code to avoid duplication
- as originally intended years ago, but never actually done.

- use 'foamPvCore' instead of 'vtkPVReaders' to avoid potential name
  collisions with any 'vtk*' files and since we may reuse these
  functions in other foam-paraview modules (not just readers).

STYLE: use same font size/colour for patch-names as for point-numbers

BUG: repair issue with single time-step

- paraview time-selector returns '0' as the requested time if there is
  only one time step. However, if we have skipped the 0/ directory,
  this single time step is likely a non-zero value.
2017-01-12 06:40:58 +01:00
46c644fa89 ENH: GAMGSolver: use raw pointers in critical loops. Fixes #379. 2017-01-11 17:23:10 +00:00
fbc02a9172 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-01-11 10:46:29 +00:00
aca1aa0b57 ENH: polyMeshGeometry: normalise cellDeterminant calculation. Fixes #380. 2017-01-11 10:46:06 +00:00
8233fa8f50 Merge branch 'master' into develop 2017-01-10 17:03:25 +00:00
084963143c BUG: meshToMesh - corrected indexing of cutting patches. Fixes #376 2017-01-10 17:02:58 +00:00
934764d700 ENH: optionally eliminate duplicates on hashedWordList construction (issue #375)
- makes it easier to use as a wordHashSet replacement for situations
  where we want to avoid duplicates but retain the input order.

- support construction from HashTable, which means it works like the
  HashTable::sortedToc but with its own hashing for these keys.

- expose rehash() method for the user. There is normally no need for
  using it directly, but also no reason to lock it away as private.
2017-01-10 12:42:40 +01:00
47bd8e13f7 TDACChemistryModel: simplified, rationalized and automated the handling of variableTimeStep 2017-01-09 21:40:39 +00:00
d08a5193fb stressComponents, wallGradU: Additional backward-compatibility info scripts
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2423
2017-01-09 14:33:47 +00:00
f53293441b Corrected spelling mistake existance -> existence
Patch provided by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2425
2017-01-08 23:08:41 +00:00
1b34f84298 TDACChemistryModel: resolved issue with single-precision build 2017-01-07 18:12:38 +00:00
7e22440dc5 TDACChemistryModel: Added support for variable time-step and LTS in ISAT
New reactingFoam tutorial counterFlowFlame2DLTS_GRI_TDAC demonstrates this new
functionality.

Additionally the ISAT table growth algorithm has been further optimized
providing an overall speedup of between 15% and 38% for the tests run so far.

Updates to TDAC and ISAT provided by Francesco Contino.

Implementation updated and integrated into OpenFOAM-dev by
Henry G. Weller, CFD Direct Ltd with the help of Francesco Contino.

Original code providing all algorithms for chemistry reduction and
tabulation contributed by Francesco Contino, Tommaso Lucchini, Gianluca
D’Errico, Hervé Jeanmart, Nicolas Bourgeois and Stéphane Backaert.
2017-01-07 16:29:15 +00:00
126125c185 Rationalized the keyword to specify a file name in a dictionary to 'file'
e.g. in tutorials/heatTransfer/buoyantSimpleFoam/externalCoupledCavity/0/T

    hot
    {
        type            externalCoupledTemperature;
        commsDir        "${FOAM_CASE}/comms";
        file            "data";
        initByExternal  yes;
        log             true;
        value           uniform 307.75; // 34.6 degC
    }

Previously both 'file' and 'fileName' were used inconsistently in different
classes and given that there is no confusion or ambiguity introduced by using
the simpler 'file' rather than 'fileName' this change simplifies the use and
maintenance of OpenFOAM.
2017-01-07 09:38:54 +00:00
c0900fcdb4 triSurfaceMesh: Added support for specifying the tri-surface file name:
e.g.

motorBike
{
    type triSurfaceMesh;
    file "motorBike.obj";
}

Based on patch provided by Mattijs Janssens
Resolves part of bug-report https://bugs.openfoam.org/view.php?id=2396
2017-01-07 09:23:43 +00:00
3eb706a380 BUG: turbulentDFSEMInlet BC - corrected singleProc usage for parallel runs. Fixes #374 2017-01-06 10:55:46 +00:00
7f2104c9a7 foamDictionary: Removed unnecessary spaces and blank lines from output
Resolves bug-report https://bugs.openfoam.org/view.php?id=2422
2017-01-05 20:19:30 +00:00
f8e9a0dbf5 fluentMeshToFoam: Added '-2D' option consistent with plot3dToFoam
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2238
2017-01-05 15:59:42 +00:00
7a90f5e6fb ENH: add versioning to paraview plugin support libraries (issue #370)
- use "-pvMAJ.MIN" suffix for similarity with the paraview convention

- use sentinel file to ensure clean change of intermediate targets

- ensure all library files are being properly removed
2017-01-05 16:22:07 +01:00
2c96ec7550 ENH: update QT interface code for ParaView reader (issue #337)
- remove old (ParaView-3) files

- Works in 4.4.0, 5.0.1, 5.2.0 etc

STYLE:
- slots now use SM properties directly without a second lookup.
  This reduces exposure of the QT elements and simplifies the coding.

- avoid focus borders on the Qt elements

- place the "use Polyhedron" checkbox into a column

- move "Cache Mesh" down in the GUI (an advanced feature and thus
  should be less prominent)

- obtain button labels/tooltip directly from the XML content
2017-01-05 11:31:11 +01:00
24610c7c0a STYLE: Updated README text 2017-01-04 16:09:00 +00:00
7655304b5e STYLE: Documentation updates - fixes #371 2017-01-04 16:05:47 +00:00
59dacd3145 BUG: ISLList - did not close #ifdef with #endif 2017-01-04 16:00:37 +00:00
fbeaad7e58 BUG: test-mesh updated to test polyMesh constructor. Fixes #372 2017-01-04 15:59:49 +00:00
4eb679614c ENH: update blockMesh reader (issue #337)
- use property group customization instead of individual pqPropertyWidget
2017-01-04 12:27:36 +01:00
7feca8497b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-01-04 11:17:58 +00:00
680ba0f214 BUG: timeControl: add tolerance to timeStart, timeEnd. Fixes #367. 2017-01-04 11:17:12 +00:00
71ea6bec62 ENH: update blockMesh reader for paraview 5.2 (issue #337)
- although this is not the final desired form, since it uses
  individual pqPropertyWidget customizations (ie, ugly layout, too
  many bits of code), but is an interesting intermediate solution
  that may be useful in other contexts.
2017-01-04 10:48:13 +01:00
801076f8d0 ENH: adjust header management for foamVtk output
- provide headerType typedef in foamVtkFormatter, foamVtkOutput

- remove byteOrder and headerType constants from foamVtkFormatter
  since the same strings can also be obtained from foamVtkPTraits

- additional convenience methods in foamVtkFormatter
2017-01-17 10:14:15 +01:00
0761974aa1 BUG: Incomplete cleanup of paraview environment (fixes #369)
- LD_LIBRARY_PATH was not being cleaned at all when switching between
  paraview versions.

- PATH was cleaned against the third-party paraview-*, although 3rd
  party paraview is installed as ParaView-*.
  The additional cleanup for ParaView_DIR may not catch this (if it
  was unset elsewhere).
2017-01-03 17:12:02 +01:00
fa6320d93a Updated tutorial scripts 'createGraphs' and 'patchifyObstacles' for clearer messages
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2411
2016-12-27 15:44:30 +00:00
c21d0d3642 Make/options: Added -lscotchDecomp where appropriate
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2410
2016-12-27 15:26:53 +00:00
dfaf90301e Documentation updates
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2409
2016-12-27 14:35:39 +00:00
2a95bdc2a4 wmake: Corrected comments
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2408
2016-12-27 14:15:32 +00:00
2c778ce54e STYLE: Tutorial - updated keyword 2016-12-23 14:20:30 +00:00
79ee563e32 BUG: pointNoise model - avoid double read 2016-12-23 14:18:18 +00:00
89517146b2 BUG: pressure FO - create new tmp to avoid db clash 2016-12-23 14:17:39 +00:00
b8f328c7f2 STYLE: Header updates 2016-12-23 11:15:32 +00:00
58b6fae81a BUG: Corrected logFiles usage for parallel running; doc updates. Fixes #366 2016-12-23 10:30:29 +00:00
13395c17f4 STYLE: Corrected fieldNames -> fields. Fixes #365 2016-12-23 09:12:36 +00:00
8701c57ecb BUG: Removed call to topoChanging(false) in interDyMFoam and compressibleInterDyMFoam - see #363 and 03db8627 2016-12-23 09:09:30 +00:00
81d958c5df STYLE: Updated README.md 2016-12-23 09:08:01 +00:00
b04305bb43 ENH: add small tool for listing the available EXE targets (based on git grep)
Example use

    foamGrepExeTargets           > targets-available
    foamGrepExeTargets -appbin   > targets-created

    diff -uw targets-available targets-created
2016-12-23 09:13:44 +01:00
195a37cdb5 STYLE: avoid specifying the path to 'date' (issue #364)
- this is apparently not uniform across systems

STYLE: unify the date format in logfile
2016-12-23 08:03:09 +01:00
ed20508db0 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-22 09:32:33 -08:00
03db86279c ENH: setting topoChanging flag to false if there are no topo changes in polyTopoChanger::update.
This reset the flag from any previous topo changes
2016-12-22 09:30:09 -08:00
d2fc56d6be STYLE: added note about limitation of the ccm conversion 2016-12-22 17:44:21 +01:00
608bb5d83b COMP: update lnInclude directories when building (issue #364)
- Could be related to interrupted builds.
  So if there are any parts of the build that rely on an explicit
  'wmakeLnInclude', make sure that the contents are properly updated.

--

ENH: improved feedback from top-level Allwmake

- Report which section (libraries, applications) is being built.

- Provide final summary of date, version, etc, which can be helpful
  for later diagnosis or record keeping.

- The -log=XXX option for Allwmake now accepts a directory name
  and automatically appends an appropriate log name.
  Eg,
      ./Allwmake -log=logs/  ->> logs/log.linux64GccDPInt32Opt

  The default name is built from the value of WM_OPTIONS.

--

BUG: shell not exiting properly in combination with -log option

- the use of 'tee' causes the shell to hang around.
  Added an explicit exit to catch this.

--

- Detecting the '-k' (-non-stop) option at the top-level Allwmake, which
  may improve robustness.

- Explicit continue-on-error for foamyMesh (as optional component)

- unify format of script messages for better readability

COMP: reduce warnings when building Pstream (old-style casts in openmpi)
2016-12-22 11:26:29 +01:00
5f811ac09d STYLE: confusing wm32, wm64 aliases (issue #364)
- wm32/wm64 were for changing between -m32, -m64 builds on x86_64
  architectures. This is seldom enough not to warrant a special alias.
  Also ambiguous if these could refer to label sizes.

- Remove wm32,wm64 aliases.
- Add wmInt32, wmInt64 aliases for switching WM_LABEL_SIZE.
2016-12-22 11:49:46 +01:00
f4adb1f189 DOC: update BuildIssues
- can compile with icc 17.0.1
- note the min gcc versions needed to compile clang
2016-12-22 09:15:13 +01:00
3fc66cb710 ENH: make resetOnRestart optional for valueAverage (issue #360)
ENH: ensure averaging flags are not 'sticky' (see issue #331)
2016-12-22 13:00:05 +01:00
9e645179ad BUG: fluxSummary - updated constructor for writeFile. Fixes #362 2016-12-22 10:34:36 +00:00
02ba3a2d44 ENH: InjectedParticleDistributionInjection model - added protection for the case of zero particles; updated tutorial scripts. See #363 2016-12-22 10:30:15 +00:00
c3df4b9368 BUG: Tutorial updates - updated rhoSimpleFoam thermo to use rhoThermo after commit a7c8d1c - see #355 2016-12-22 10:14:34 +00:00
40e0fb2eac ENH: Field function objects using fieldExpression - tidied outpu. See #359 2016-12-22 10:09:12 +00:00
33f2559a98 ENH: relativeMotion: new tutorial demonstrating relative motion 2016-12-21 13:40:32 +00:00
0211b0a43b STYLE: correct the documented input names in header files (fixes #360) 2016-12-21 12:15:03 +01:00
33811401d6 ENH: blendingFactor function object - suppress warning and correct docs. Fixes #359 2016-12-21 08:12:46 +00:00
a807d1e18e STYLE: Minor code formatting 2016-12-20 23:07:16 +00:00
af434646d3 Adding flux to Make/files. And updating scalarTransport header instructions
scalarTransport does not generate its own phiMean anymore but it is given from the user.
This "flux" can be generated using the "flux" FO
2016-12-20 12:27:36 -08:00
fa32677e7a ENh: Adding flux FO 2016-12-20 12:26:47 -08:00
8d65da5b5c ENH: Adding parallel running for compressibleDyInterFoam tutorial 2016-12-20 09:45:52 -08:00
0a5d158991 ENH: scalarTransport function object updates 2016-12-20 17:18:34 +00:00
e0244a74ed Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-20 16:58:34 +00:00
46ce5659b4 STYLE: scalarTransport function object clean-up 2016-12-20 16:54:00 +00:00
484e59aefb Merge branch 'develop' of https://develop.openfoam.com/Development/OpenFOAM-plus into develop 2016-12-20 15:43:51 +01:00
f816c2d0bc COMP: include BuildIssues.txt for known build issues
- fixed library path for VTK.
  They should use lib/ and not lib64/
2016-12-20 15:33:16 +01:00
953594286f BUG: fieldAverage - read state properties using getDict. Fixes #358 2016-12-20 13:09:15 +00:00
0869f832be Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-20 11:17:59 +00:00
6ee70e4b4d BUG: surfaceInterpolate function object - corrected evaluation. Foxes #335 2016-12-20 11:17:51 +00:00
482f8ceeb4 BUG: localMin scheme - was using minMod instead of min 2016-12-20 10:09:11 +00:00
c537e4e8ac ENH: Updated output to use the writer class 2016-12-19 20:38:27 +00:00
83a874cdba functionObjects::volRegion: Improved parallel efficiency
Based on patch contributed by Kevin Nordin-Bates
Resolves bug-report https://bugs.openfoam.org/view.php?id=2401
2016-12-19 19:20:09 +00:00
5fdb20c35e STYLE: bump min gcc for foamInstallationTest
- cleanup some code in foamInstallationTest
2016-12-19 18:04:12 +01:00
b7d0939482 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-19 14:24:44 +00:00
a529ced473 ENH: Aachen bomb tutorial - added example of particleSistribution function object 2016-12-19 14:24:35 +00:00
6cae0fdacb reactingFoam::setRDeltaT: Add support for limiting the local time-step by the reaction rates
e.g. in the reactingFoam/laminar/counterFlowFlame2DLTS tutorial:

PIMPLE
{
    momentumPredictor no;
    nOuterCorrectors  1;
    nCorrectors     1;
    nNonOrthogonalCorrectors 0;

    maxDeltaT       1e-2;
    maxCo           1;
    alphaTemp       0.05;
    alphaY          0.05;
    Yref
    {
        O2          0.1;
        ".*"        1;
    }
    rDeltaTSmoothingCoeff 1;
    rDeltaTDampingCoeff 1;
}

will limit the LTS time-step according to the rate of consumption of 'O2'
normalized by the reference mass-fraction of 0.1 and all other species
normalized by the reference mass-fraction of 1.  Additionally the time-step
factor of 'alphaY' is applied to all species.  Only the species specified in the
'Yref' sub-dictionary are included in the LTS limiter and if 'alphaY' is omitted
or set to 1 the reaction rates are not included in the LTS limiter.
2016-12-19 14:19:31 +00:00
75e86eb413 ENH: particleDistribution function object - updated output 2016-12-19 14:17:07 +00:00
ebb2ec504c STYLE: Updated header documentation 2016-12-19 14:16:13 +00:00
23a6cadfa6 BUG: redistributePar: remove inconsistent *ProcAddressing. Fixes #351. 2016-12-19 12:58:49 +00:00
1422c1aa3a BUG: etc: use of wrong variable name 2016-12-19 10:01:31 +00:00
7b4680482e ENH: use string endsWith in a few places
fieldName.endsWith("_0")
vs
    fieldName.size() > 2 && fieldName(fieldName.size()-2, 2) == "_0"
2016-12-18 23:58:45 +01:00
2b14360662 ENH: additional startsWith(), endsWith() string methods
- As the names describe, check if the string starts or ends with a
  particular value. Always true if the given text is empty or if the
  string is identical to the given text.
2016-12-18 23:21:51 +01:00
4d6ac7ddf8 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-18 21:54:38 +00:00
519248d3f4 ENH: fieldExpression - added verbose flag to foundObject 2016-12-18 21:44:25 +00:00
03e1f9c433 ENH: Removed unused files 2016-12-18 21:28:35 +00:00
23dfba2f64 STYLE: Updated header documentation 2016-12-18 21:25:12 +00:00
e379720053 ENH: additional fileName methods
- add an extension to the file name
   - remove a file extension
   - check if a file name has an extension
   - check if a file name has a particular extension (as word),
     or matches a particular grouping of extensions (as wordRe).
2016-12-18 20:40:03 +01:00
b08dadff62 ENH: initializer list constructor for fileName
This slightly more convenient when working with char[] input:

     fileName file1{ "path", "name", "to", "file.ext" };
vs.  fileName file1 = fileName(path)/"name"/"to"/"file.ext";

But is a bit more efficient since it avoid most of the intermediate
copying and resizing incurred by the '/' operator.
2016-12-18 20:09:58 +01:00
f45db9cec9 ENH: argList option to remove the noFunctionObjects option (issue #352) 2016-12-19 20:08:58 +01:00
c2b0531081 ENH: only report the architecture information for binary output files
- not required for ASCII, and makes normal dictionaries too noisy.

STYLE: move archHint to be a file-scope static
2016-12-19 00:24:54 +01:00
6f5cece322 STYLE: documentation for wordRe DETECT vs REGEXP was swapped around
- Use wordRe::REGEXP (not wordRe::DETECT) if the content is known to
  be a regular expression anyhow.
2016-12-18 22:35:20 +01:00
8a11a492f1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-19 15:42:01 -08:00
a7c8d1cfca ENH: changing rhoSimpleFoam to rhothermo and bounding thermo.rho between minRho and maxRho.
Bounding thermo.rho in rhoPorousSimpleFoam.
Changing initial time step in externalSolarLoad tutorial.
Commenting out momemtun source term in steamInjection which causes problems
2016-12-19 15:39:13 -08:00
7acef189cf ENH: provide machine/OpenFOAM architecture hint in output files (issue #271)
FoamFile
  {
      version     2.0;
      format      binary;
      arch        "LSB;label=32;scalar=64";
      class       vectorField;
      object      points;
  }

There is otherwise no simple indication in any of the files as to the
sizes used (Int32 vs Int64, SP vs DP). This makes it difficult for the
end-user and also for any third-party consumers.

--
The architecture information contains three items in the following format:

    (LSB|MSB);label=(32|64);scalar=(32|64)

- The endian value always appears first, without any leading space.
  This make it trivial to check later. Either the first 3 letters (LSB
  vs MSB) or even just the first letter ('L' vs 'M').

- Subsequent key=value pairs for 'label' and 'scalar' are separated
  by semicolons. The ordering of label vs scalar is not specified.

Note that this 'arch' information is purely informational.
It is currently not used by the OpenFOAM input mechanism itself.
2016-12-18 01:43:58 +01:00
db0d8de756 ENH: Streamline function object - report velocity field being employed - see #323 2016-12-16 20:59:13 +00:00
16f1d748ec BUG: Corrected function object usage documentation. Fixes #349 2016-12-16 20:45:13 +00:00
f41c88000f ENH: Tutorial updates 2016-12-16 20:24:02 +00:00
8b86d8b1b2 BUG: waveMOdels - corrected error introduced in commit 95f3adb1 2016-12-16 20:23:47 +00:00
6e78da0db6 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-16 19:54:52 +00:00
901ee44827 BUG: Re-applying commit e73d2c5d 2016-12-16 19:53:57 +00:00
e50108e428 ENH: adding header description for eddyDissipationModel 2016-12-16 09:56:06 -08:00
b53389edef GIT: Resolved conflict merging master into develop 2016-12-16 17:10:38 +00:00
91f8176a75 STYLE: using messaging macros when referring to function name 2016-12-16 16:56:55 +00:00
4cff9286c8 BUG: corrected Allwclean 2016-12-16 15:04:39 +00:00
ff6e15a136 ENH: Added local Allwclean to ensure wclean cleans all... 2016-12-16 14:40:50 +00:00
06dfbe9b0c ENH: Added local Allwclean to ensure wclean cleans all... 2016-12-16 14:40:50 +00:00
28e37bbec9 STYLE: Consistency updates 2016-12-16 14:36:48 +00:00
a956e0f73a ENH: blendingFactor function object - always include field name in result name 2016-12-16 14:25:58 +00:00
267903077b ENH: interCondensingEvaporatingFoam - updated for postProcess utility; tidying 2016-12-16 13:33:19 +00:00
bd86b155aa Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-16 13:26:39 +00:00
30d8fc3459 ENH: Tutorial updates and clean-up 2016-12-16 13:26:28 +00:00
0087bb8027 foamList: removed '-lreactingMultiphaseSystem' to avoid duplicate name conflict
Resolves bug-report https://bugs.openfoam.org/view.php?id=2398
2016-12-16 10:12:09 +00:00
9b1fcb0f73 ENH: increase coverage for foamConfigurePaths script
- can adjust many more values
2016-12-16 08:17:38 +01:00
3f362fd7ec CONFIG: add config files for VTK, MESA
- sometimes used for off-screen rendering.
  Only add to library-path when they are actually available
2016-12-16 08:17:29 +01:00
ade1cbb40a Merge branch 'bugFix_surfaceCheck' into 'develop'
added optional argument description (Fixes #347)

Optional argument listed.

@andy @mark Could you confirm/merge?

See merge request !90
2016-12-16 07:13:23 +00:00
528881cf47 BUG: missing surfaceCheck -outputThreshold option (fixes #347)
- The value from -outputThreshold was used in the code,
  but the option definition itself was somehow missed.
2016-12-16 05:14:46 +00:00
c3c963bcaf STYLE: Minor typo corrections 2016-12-15 21:18:22 +00:00
af74809786 ENH: increase precision of points for some mesh conversion applications 2016-12-15 21:35:14 +01:00
a32a915d2e BUG: polyMesh removeFiles side-effect for blockMesh viewer (issue #346)
- polyMesh constructor from cell shapes invoked 'removeFiles'.
  This may or may not be what the caller wants or expects.
  With the ParaView blockMesh viewer, this behaviour causes deletion of
  all mesh data (points, faces, etc) when the viewer is refreshed.

  Triggered even when just building the blockMesh topology.

- only a few places that construct a polyMesh from cell shapes
  (mostly mesh conversion utilities).
  Ensure that the file removal (if any) occurs in the application
  and *not* as a side-effect of calling the polyMesh constructor.

--

  blockMesh (application)
    - The placement of the removeFiles seems to also remove freshly
      generated sets (Bug or feature to remove sets?)

  +-----------------------+---------------+------------------+
  | Application           | Constructor   | removeFiles      |
  |                       | (patch info)  | new / existing   |
  +-----------------------+---------------+------------------+
  | blockMesh             | dictionary    | existing         |
  | ansysToFoam           | names         | new              |
  | cfx4ToFoam            | dictionary    | new              |
  | fluentMeshToFoam      | names         | new              |
  | gambitToFoam          | dictionary    | new              |
  | gmshToFoam            | names         | new              |
  | ideasUnvToFoam        | names         | new              |
  | kivaToFoam            | dictionary    | new              |
  | mshToFoam             | names         | new              |
  | netgenNeutralToFoam   | names         | new              |
  | plot3dToFoam          | names         | new              |
  | tetgenToFoam          | names         | new              |
  | vtkUnstructuredToFoam | names         | new              |
  +-----------------------+---------------+------------------+
2016-12-15 19:07:05 +01:00
141dd02477 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-15 17:47:01 +00:00
501ad5a607 ENH: Tutorial script update 2016-12-15 17:46:37 +00:00
2786625fa0 Merge branch 'surfField-sampling' into 'develop'
Surf field sampling

See merge request !87
2016-12-15 17:34:45 +00:00
b99817d924 Rationalized heat release rate functions
Combined 'dQ()' and 'Sh()' into 'Qdot()' which returns the heat-release rate in
the normal units [kg/m/s3] and used as the heat release rate source term in
the energy equations, to set the field 'Qdot' in several combustion solvers
and for the evaluation of the local time-step when running LTS.
2016-12-15 17:10:21 +00:00
38e40ffb95 BUG: foamList - removed link against randomProcesses lib. Fixes #343 2016-12-15 16:31:38 +00:00
a80dc41138 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-15 16:28:47 +00:00
7e985a9b7c BUG: tutorial - corrected runTimePostProcessing intput. See #340 2016-12-15 16:28:36 +00:00
9a56896380 Merge branch 'feature-runtime-post-pro-clean-objects' into 'develop'
ENH: runTimePostProcessing - added option to clear/remove objects after use

When specifying line and surface function-object-based visualisation, use the optional `clearObjects` flag to indicate that source objects should be removed/cleared after use.

Test case: [cavity.tgz](/uploads/62cc2761d132f42456f2af08f1499eba/cavity.tgz)

Syntax:

```
    surfaces
    {
        cuttingPlane1
        {
            type            functionObject;
            functionObject  cuttingPlane;
            clearObjects    yes;              // new option
            ...
```

Note: only files that have been used will be removed, e.g. if a function object has created multiple surface files, unused files will remain at the end of the run - in the attached case the p surface remains...

See merge request !89
2016-12-15 15:51:14 +00:00
4ff1c7dca4 ENH: runTimePostProcessing - added option to clear/remove objects after use 2016-12-15 15:45:02 +00:00
500dc5d3a3 DEFEATURE: remove unused fvMesh constructor using cellShapes 2016-12-15 15:48:09 +01:00
83dab87568 ENH: foamList lib updates 2016-12-15 14:26:56 +00:00
78da6865c6 COMP: reduce warnings when building sloan renumber
- boost uses old-style casts for null and others
2016-12-15 15:15:56 +01:00
d5301772f7 Update of interCondensingEvaporatingFoam and its tutorial 2016-12-15 12:36:48 -08:00
6baf1d7d8f Merge branch 'integration-ihcantabria' into 'develop'
Integration of ihcantabria wave models

Integration of functionality produced by The Environmental Hydraulics Institute "IHCantabria" (http://www.ihcantabria.com/en/)

- Original code introduced in commit 95e9467e
- Restructured and updated by OpenCFD into a new `waveModels` library available to the interFoam family of solvers

Main source:
`$FOAM_SRC/waveModels`

Tutorials:
`$FOAM_TUTORIALS/multiphase/interFoam/waveExample*`

Capabilities include:
- Wave generation
- Solitary wave using Boussinesq theory
- Cnoidal wave theory
- StokesI, StokesII, StokesV wave theory
    
- Active wave absorption at the inflow/outflow boundaries based on shallow water theory

IHCantabria Authors:
- Javier Lopez Lara (jav.lopez@unican.es)
- Gabriel Barajas (barajasg@unican.es)
- Inigo Losada (losadai@unican.es)

See merge request !88
2016-12-15 13:38:13 +00:00
10753b77e7 ENH: Code/doc tidying 2016-12-15 13:22:37 +00:00
06900449ab ENH: Removed old wave model integration files 2016-12-15 13:08:15 +00:00
bf9fcba645 ENH: Added waveModels library to interFoam family of solvers 2016-12-15 13:07:00 +00:00
95f3adb1fb ENH: waveModels - moved to main source tree and simplified 2016-12-15 12:45:14 +00:00
5e9d916fd3 CONFIG: add ADIOS configuration information for early adopters
- the configuration settings can be used for the third-party build,
  but the configuration is not yet actively enabled in
  etc/bashrc, etc/cshrc
2016-12-15 13:29:30 +01:00
91b7ede14b STYLE: adjust log name for 'Allwmake -log' (issue #333)
- now defaults to 'log.$WM_OPTIONS' (eg, log.linux64GccDPInt32Opt)
  for more clarity and fewer potential name clashes when building
  multiple versions.
2016-12-15 13:20:21 +01:00
e6f8d27553 ENH: integrate surfField-based fluxSummary
- additional surface and surfaceAndDirection modes
2016-12-15 12:59:35 +01:00
4a845f5c41 ENH: newly structured surface 'sources' for sampling.
- extend the sampling concept to include surfMeshes and surfFields
  for storage.

- Note the createOnRead switch in surfMeshSamplers can be desirable in
  some situations to force creation of the surface faces within the
  constructor.
2016-12-15 09:54:25 +01:00
b073c0a104 ENH: postOperation for surfaceFieldValue
- currently only 'none' or 'sqrt', which can be useful in combination
  with integrate or averaging functions.
2016-12-15 09:46:00 +01:00
001a2e4a37 ENH: add surfField support to various field function objects
- fieldAverage
  - mag
  - magSqr
  - readFields
  - fieldsExpression (add, subtract)
2016-12-15 09:32:53 +01:00
b0433d93f8 ENH: add ZoneMesh names(), sortedNames() methods
- similar to functionality available for IOobjectList, objectRegistry
2016-12-15 00:16:51 +01:00
fcd3f50672 BUG: foamToEnsight faceZones are mangled (issue #334)
- was using the ids coming from the zones instead of the sorted order
  from ensightFaces, which led to a clash in the mesh point maps that
  were manifest as a jumbled order.

BUG: missing newlines in foamToEnsight nfaced/nsided ASCII output

- was correct for foamToEnsightParts, but not for foamToEnsight

--
* Many thanks to Justin Graupman for all of his testing,
  which has been a great help in isolating and fixing various issues.
2016-12-15 00:09:10 +01:00
8b5516abd9 Template function objects: added read rhoInf entry 2016-12-14 15:30:04 +00:00
4de91b22d8 Template function objects: forces and forceCoeffs correction/tidy 2016-12-14 14:38:04 +00:00
0256c5de51 Template function objects: corrected forces and forceCoeffs for code correction
See bug-report https://bugs.openfoam.org/view.php?id=2387
2016-12-14 14:10:24 +00:00
86c5f9e3b6 BUG: allocation mismatch in fluxSummary (issue #342)
ENH: reduce number of variables, simplify code

- Note: use boolList instead of scalarList for managing the face signs
  since its lazy evaluation can be convenient when sign information is
  not required.
2016-12-14 12:21:45 +01:00
e7a4a3a73d STYLE: some documentation for sampledSurfaces specification 2016-12-14 17:54:23 +01:00
36173b5306 COMP: compile with single-precision 2016-12-14 14:21:33 +01:00
abc941a0f1 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-14 17:22:48 +00:00
4f4b1d76c4 BUG: renumberMesh: Checking for cellProcAddressing after deleting it.
This is part of #340.
2016-12-14 17:21:56 +00:00
688558998f Merge branch 'feature-extract-eulerian-particles' into 'develop'
New feature extract eulerian particles

New functionality to extract particle data from multiphase calculations and replay the data in lagrangian cases, using both the raw input particle data, and data processed into a (smaller) set of injection locations.

See merge request !82
2016-12-14 15:57:12 +00:00
f0a046fa81 GIT: Resolved conflict 2016-12-14 15:56:58 +00:00
7f2907f617 ENH: Added tutorials to show extraction of particle data from eulerian cases and subsequent injjection via lagrangian cases 2016-12-14 15:51:11 +00:00
7af521e0be ENH: Added new injection models to intermediate and spray libraries 2016-12-14 15:50:12 +00:00
3938c03c57 ENH: Added new InjectedParticleInjection lagrangian injection model
Description
    Replays an set of particle data based on an injectedParticleCloud,
    using the assumption of one particle per parcel.

Usage
    \verbatim
    model1
    {
        type            injectedParticleInjection;
        SOI             0;
        massTotal       0; // Place holder only
        parcelBasisType fixed;
        nParticle       1; // 1 particle per parcel
        cloud           eulerianParticleCloud;
        positionOffset  (-0.025 2 -0.025);
    }
    \endverbatim
2016-12-14 15:48:38 +00:00
f9a9c7148e ENH: Added new injectedParticleDistributionInjection lagrangian injection model
Description
    Interrogates an injectedParticleCloud to convert the raw particle
    data into a set of 'binned' injectors.

    The bins are set according to the particle \c tag property, from which:
    - diameters are converted into \c general distributions with a
      user-specified bin width
    - raw velocity and diameter data are resampled and stored to provide
      variations per injector

    The mass to inject can be set according to the raw input data mass total
    by using the \c applyDistributionMassTotal switch

Usage
    \verbatim
    model1
    {
        type            injectedParticleDistributionInjection;
        SOI             0;
        parcelBasisType mass;
        cloud           eulerianParticleCloud;
        positionOffset  (-0.025 2 -0.025);
        binWidth        0.1e-3;
        parcelsPerInjector 500;
        resampleSize    100;                    // optional
        applyDistributionMassTotal yes;

        // Placeholder only when using applyDistributionMassTotal
        massTotal       0;
    }
    \endverbatim

Note
    The each injector location is assumed to be operating under steady
    conditions, i.e. using a constant flow rate profile

SourceFiles
    InjectedParticleDistributionInjection.C

See also
    Foam::injectedParticle
    Foam::injectedParticleCloud
    Foam::functionObjects::extractEulerianParticles
    Foam::distributionModels::general
2016-12-14 15:47:15 +00:00
e8171d0150 STYLE: Updated header documentation 2016-12-14 15:43:57 +00:00
f59c9762bb Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-14 07:37:06 -08:00
730231446a ENH: extractEulerianParticles function object parallel and usability updates 2016-12-14 15:28:55 +00:00
76023b38ad BUG: Corrected coding error 2016-12-14 15:27:39 +00:00
6a3c2c2fbc STYLE: Updated comment 2016-12-14 15:27:19 +00:00
26ac7e11fd ENH: Lagrangian injection - cache volumeTotal for continuous restart 2016-12-14 15:26:28 +00:00
43e4571143 ENH: subModelBase - added function to get a dictionary 2016-12-14 15:25:39 +00:00
8c8cf9210f ENH: distributionModels - pass in construction dict instead of parent dict 2016-12-14 15:25:00 +00:00
a3ef5cd137 Merge branch 'feature-chunkingComms' into 'develop'
Pstream: added maxCommsSize setting to do (unstructured) parallel transfers in blocks.

Tested:
- with maxCommsSize 0 produces exactly same result as plus.develop
- compiles with label64
- with maxCommsSize e.g. 3 produces exactly same result as plus.develop
- with maxCommsSize=0 exactly the same messages (with Pstream::debug = 1) as plus.develop

See merge request !85
2016-12-14 15:18:42 +00:00
6acd407f8a STYLE: Time: indentation 2016-12-14 14:10:50 +00:00
00ac073e17 ENH: fvMotionSolvers: added solidBodyDisplacementLaplacian
Applies a displacementLaplacian on top of a solid-body motion function
2016-12-14 13:00:14 +00:00
4ff163aed7 COMP: combinePatchFaces: missing include file 2016-12-14 11:45:32 +00:00
1f87361208 ENH: snappyMultiRegionHeater: remove confusing README 2016-12-14 11:30:33 +00:00
0e7e5734c2 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-14 11:28:09 +00:00
4c607b91d9 Merge branch 'bugFixes' into 'develop'
ENH: Usage of locationsInMesh for tutorial and other fix

- Example for Using multiple locations in mesh
- bugFix for rhoPimpleFoam case

See merge request !86
2016-12-14 11:17:22 +00:00
67ea233d21 ENH: Usage of locationsInMesh for tutorial and other fix 2016-12-14 11:04:15 +00:00
62fb508c63 functionObjects::forceCoeffs: Corrected setting of rhoRef for compressible flow
Resolves bug-report https://bugs.openfoam.org/view.php?id=2387
2016-12-14 10:39:32 +00:00
5292ef36bf ENH: controlDict: extended comment 2016-12-14 09:17:29 +00:00
6fc22debc8 reactingTwoPhaseEulerFoam: Removed temporary debug option 2016-12-14 09:00:14 +00:00
5cd1ad04a7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-14 08:37:38 +00:00
bc1678581e ENH: Updated compiler scripts. Fixes #341 2016-12-14 08:37:28 +00:00
9ffd7aed3f BUG: Tutorial update - see #336 2016-12-14 08:31:03 +00:00
162a0eac4d Adding autoPtr clone constructors and correcting T.oldTime() 2016-12-13 13:30:42 -08:00
13c3b1d617 ENH: Allwmake -log=name option to specify log name (issue #333)
- helpful when testing various builds
2016-12-13 20:53:05 +01:00
dfb5fae5de BUG: Fixing oldTime Tw and Reference Value of humidityTemperatureCoupledMixed BC 2016-12-13 09:44:25 -08:00
b77dbc9c6c ENH: effectivenessHeatExchangerSource - updated output 2016-12-13 15:50:16 +00:00
b1107081cc ENH: effectivenessHeatExchangerSource - updated output 2016-12-13 15:47:42 +00:00
ab1fc22398 reactingTwoPhaseEulerFoam: Updated LTS support in the cell-based momentum algorithm 2016-12-13 15:47:24 +00:00
164e2d4c53 Removed blank-line 2016-12-13 15:46:39 +00:00
965287d70c ENH: effectivenessHeatExchangerSource - protected divisions 2016-12-13 15:33:14 +00:00
36f8895e78 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-13 07:20:39 -08:00
5514b74922 sprayFoam: Explicitly write cloud when not solving flow 2016-12-13 13:19:22 +00:00
ad0338123a BUG: Tutorial update - fixes #336 2016-12-13 12:45:01 +00:00
7063555abb BUG: Tutorial update - fixes #339 2016-12-13 12:43:02 +00:00
ad807e8d31 BUG: Updates to DyM tutorials - see #340 2016-12-13 12:40:58 +00:00
eefddbc8a8 reactingTwoPhaseEulerFoam::partitioningModels::cosine: Corrected slope
Patch contributed by Juho Peltola, VTT.
2016-12-13 12:03:56 +00:00
3fee08b034 ENH: cshrc: suppress printing 2016-12-13 09:24:25 +00:00
c0a2c16f6c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-12 10:36:33 -08:00
88128e0392 ENH: compressibleInterDyMFoam enhancements for mesh motion and sphere drop test case tutorial 2016-12-12 10:34:49 -08:00
e453f0bf02 ENH: Pstream: added maxCommsSize setting to do (unstructured) parallel transfers in blocks.
This is controlled by the setting maxCommsSize in etc/controlDict which
specifies the max number of bytes per exchange. If set to <= 0 it
is ignored. This max size of messages is important when doing e.g.
load balancing which can send over whole meshes.
2016-12-12 17:32:24 +00:00
141a1df59b wallBoilingSubModels: Corrected references
Patch contributed by Juho Peltola, VTT
2016-12-12 16:58:52 +00:00
f3d8be7abe ENH: dynamicMultiMotionSolverFvMesh: new dynamicFvMesh type.
Takes cellZones and motionSolver per cellZone. See also dynamicMotionSolverListFvMesh.
2016-12-12 16:05:21 +00:00
f31623d337 pimpleControl: Added optional 'solveFlow' control
sprayFoam: Added support for the optional 'solveFlow' control to allow
           simulation of the spray evolution with all sub-models in a 'frozen'
           flow-field.
2016-12-12 14:35:21 +00:00
16c178be66 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-12 13:10:06 +00:00
98a2527087 ENH: foamList - updated link libs to avoid error on exiting 2016-12-12 12:37:57 +00:00
28bd150db6 ENH: foamList - updated link libs to avoid error on exiting 2016-12-12 12:37:57 +00:00
989883d62b GIT: Resolved merge conflict 2016-12-12 12:23:45 +00:00
e2cdac590f STYLE: removed unused code to avoid compiler warning 2016-12-12 12:15:40 +00:00
164c545b47 ENH: blockEdge - updated bezier 2016-12-12 12:15:01 +00:00
4c79a85baa ENH: combustion models - updated for current API 2016-12-12 12:14:26 +00:00
6408cd1fbb ENH: outletMappedUniformInlet BC - Cp only calculated for patch and not entire domain; input keywords updated for consistency 2016-12-12 12:13:53 +00:00
c0f44ac4f3 MRG: Integrated foundation code 2016-12-12 12:10:29 +00:00
8ddfe86d1d functionObjects::writeLocalObjects: Provides support for controlled writing of field
defined by functionObjects, e.g. wallHeatFlux, wallShearStress and yPlus.

Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2353
2016-12-09 21:54:13 +00:00
1a9ee8f07b COMP: ubuntu build with CGAL lacks dependency on gmp/mpfr (issue #288)
- slightly odd. Building CGAL on other Linux systems have a proper
  ldd dependency for gmp/mpfr, but ubuntu doesn't
2016-12-09 16:55:04 +00:00
83f3044db9 tutorials/compressible/rhoSimpleFoam/squareBend: Stabilize by further relaxing e
Patch contributed by Mattijs Janssens
http://bugs.openfoam.org/view.php?id=2382
2016-12-09 16:53:35 +00:00
e8aba1e6e9 gaussConvectionScheme: Removed temporary warnUnboundedGauss debug switch
which provided warning about backward-compatibility issue with setting div
schemes for steady-state.  It caused confusion by generating incorrect warning
messages for compressible cases for which the 'bounded' should NOT be applied to
the 'div(phid,p)'.
2016-12-09 16:36:56 +00:00
7d54e57fa0 Renamed searchableCurve -> searchableExtrudedCircle
to clarify purpose.

Patch contributed by Mattijs Janssens
2016-12-09 16:30:46 +00:00
b17a568569 MRFZone: Do not correct boundary conditions when inactive
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2380
2016-12-09 16:29:27 +00:00
1b3d98586a PBiCGStab: Corrected to support processorAgglomerator
Patch contributed by Battijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2383
2016-12-09 16:27:54 +00:00
b4b77e76c9 mappedFieldFvPatchField: Corrected autoMap function
Patch contributed by Mattijs Janssens
2016-12-09 15:08:43 +00:00
eb00c8021d ENH: provide log option for top-level builds (issue #333) 2016-12-09 14:44:26 +00:00
27ae7d5b00 STYLE: minor comments added to ensightSurfaceReader 2016-12-09 14:38:15 +00:00
e256e72039 fieldAverageTemplates: General clean-up 2016-12-09 14:28:04 +00:00
97a27dc172 dynamicMotionSolverListFvMesh: Ensure independence of zone-based motion 2016-12-09 14:19:07 +00:00
b6d79ed4ce BUG: scaleFactor for fieldValue function-objects is 'sticky' (issue #331)
- if set in a dictionary and later removed, the intermediate value is
  retained rather than reverting to a normal default value.

- same applies for a few other function objects and their variables
2016-12-08 11:33:39 +00:00
422993f9a5 ENH: add weightedAreaIntegrate operation for surfaceFieldValue 2016-12-08 11:00:18 +00:00
b4182c60a3 BUG: inconsistency in periodic restart for fieldAverage (issue #330)
- the interval for the next restart was not being adjusted when the
  file was reread, or when doing a complete simulation restart.
2016-12-08 09:32:55 +00:00
1b2cfde773 STYLE: minor typo in mapFields documentation 2016-12-08 09:19:32 +00:00
7354efa462 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-12-07 13:04:33 -08:00
11479c51d7 ENH: Changes in handling topological changes in VOF solvers
1) Using divU instead of fvc::absolute(phi,U) in TEqn as the latter uses latest time meshPhi which is inconsistent
2) Adding fvc::interpolate(U) when topo changes
3) in pEq for compressible dgdt is updated using the latest rho1 and rho2 after compressible effects are considered
2016-12-07 12:57:32 -08:00
08f0f3dddb STYLE: avoid refCast in favour of the fvMeshFunctionObject mesh_ variable 2016-12-07 17:32:31 +00:00
d2f6f7e391 tutorials/incompressible/pisoFoam/les/motorBike/motorBike/Allrun: Removed spurious '-parallel' option
Resolves bug-report http://bugs.openfoam.org/view.php?id=2378
2016-12-07 15:39:40 +00:00
2c7eff8d6b Merge remote-tracking branch 'origin/feature-cellSetRemove' into develop 2016-12-07 14:13:00 +00:00
e518acb594 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-07 13:16:05 +00:00
72465aaba7 BUG: displacementMotionSolver: access incorrect region. Fixes #327. 2016-12-07 13:15:37 +00:00
8321f1ffcc ENH: initial support for handling subRegions in regionFunctionObject
- propagate updated objectRegistry methods (eg, lookupObjectRef etc)
  into regionFunctionObject
2016-12-07 12:09:21 +00:00
7d61b870c2 BUG: injectedParticle/Cloud updates 2016-12-07 09:26:58 +00:00
87056a2308 ENH: pairPatchAgglomeration - updated constructors 2016-12-07 09:25:42 +00:00
56071431ac STYLE: minor spelling correction 2016-12-07 09:25:08 +00:00
e73d2c5d29 BUG: surfaceNoise - corrected fftWriteInterval operation 2016-12-06 16:19:01 +00:00
3d08651324 PVReaders: Update link order to avoid problems on Ubuntu
Resolves bug-report http://bugs.openfoam.org/view.php?id=2372
2016-12-06 10:57:35 +00:00
5f9be34a42 Merge branch 'feature-objectRegistry' into 'develop'
ENH: improve objectRegistry functionality (issue #322)

- Recursive searching for objects within a registry is now optional
  (previous it was always done).

  A recursive search effectively blocks the construction of sub-sub-registries
  if their names are 'masked' by some parent level sub-registry with
  the same name! (BUG)

- Recursive search is now turned OFF by default, which makes it consistent
  with dictionary and probably causes the least number of surprises.

----
Various new convenience methods added:

lookupObjectRef()
- returns a non-const reference.
  For example,

      volScalarField& U = mesh().lookupObjectRef<volScalarField>("U");

  Instead of

      volScalarField& U = const_cast<volScalarField&>
      (
          mesh().lookupObject<volScalarField>("U")
      );

--
lookupObjectPtr()
- returns a const pointer, and nullptr on failure.
  For example,

      const volScalarField* Uptr = mesh().lookupObjectPtr<volScalarField>("U");
      if (Uptr)
      {
          const volScalarField& U = *Uptr;
          ...
      }

  Instead of

      if (mesh().foundObject<volScalarField>("U"))
      {
          const volScalarField& U = mesh().lookupObject<volScalarField>("U");
          ...
      }

--
lookupObjectRefPtr()
- returns a non-const pointer, and nullptr on failure.
  For example,

      volScalarField* Uptr = mesh().lookupObjectRefPtr<volScalarField>("U");
      if (Uptr)
      {
          volScalarField& U = *Uptr;  // use as reference
          (*Uptr) = ...;              // or use directly
      }

  Instead of

      if (mesh().foundObject<volScalarField>("U"))
      {
          volScalarField& U = const_cast<volScalarField&>
          (
              mesh().lookupObject<volScalarField>("U")
          );
      }

--
sortedNames()
- now works with template parameters and with regular expression
  matching as well.
  For example,

      wordList names  = mesh().sortedNames();
      wordList fields = mesh().sortedName<volScalarField>();

  Instead of

      wordList names  = mesh().sortedNames();
      wordList fields = mesh().names<volScalarField>();
      Foam::sort(fields);

--

See merge request !83
2016-12-06 10:48:43 +00:00
5c7b3c7886 reactingTwoPhaseEulerFoam: Corrected LTS support
Resolves bug-report http://bugs.openfoam.org/view.php?id=2374
2016-12-06 09:30:50 +00:00
b5f0aa7ff7 Merge branch 'feature-runtime-post-pro-camera-update' into 'develop'
runTimePostProcessing FO camera update

- Removed the camera 'mode'
    - The (old) static camera was only appropriate when parallel
      projection was inactive, and the view was centred at (0 0 0)
    - Camera input now always requires 'position' and 'focalPoint'
    - Clip box is now optional.  Note that this is applied after the
      camera
      set-up and so will override the camera position
    - View angle is only appropriate when not using parallel projection
    - Zoom now required, applied after all other operations
      - 1 = do nothing, >1 = zoom in, <1 = zoom out

    Example input:

```
        camera
        {
            // Total number of frames to generate
            nFrameTotal 1;

            // Parallel projection flag
            parallelProjection no;

            focalPoint  (0 0 0);
            up          (0 1 0);
            position    (0 0 1);

            // Optional entries
            clipBox     (-0.0206 -0.0254 -0.0005) (0.29 0.0254 0.0005);
            viewAngle   20;
            zoom        1.1;
        }
```

See merge request !81
2016-12-06 09:24:23 +00:00
aa9d90c495 ENH: runTime pp - updated header documentation 2016-12-06 09:23:55 +00:00
6508c4e9b7 ENH: runTime pp - new zoom entry now optional 2016-12-06 09:17:54 +00:00
db3699f8ab ENH: redistributePar: remove shm data 2016-12-06 09:10:30 +00:00
c0de376b2a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop
Conflicts:
	src/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/outletMappedUniformInletHeatAddition/outletMappedUniformInletHeatAdditionFvPatchField.H
2016-12-05 15:32:26 -08:00
81f1072fb0 ENH: Adding maxDeltaxyzCubeRootLESDelta LES delta model 2016-12-05 15:24:50 -08:00
d6db12b549 STY: Adding documentation for volume sampling in regionSizeDistribution FO 2016-12-05 15:07:13 -08:00
fc8f2ac94b ENH: Adding tutorial for outletMappedUniformInletHeatAddition 2016-12-05 14:40:11 -08:00
a95b7aa6b7 alphatWallBoilingWallFunctionFvPatchScalarField.H: corrected mode 2016-12-05 20:08:24 +00:00
6eeba45c21 advectiveFvPatchField, waveTransmissiveFvPatchField: Updated docs
Resolves bug-report http://bugs.openfoam.org/view.php?id=2373
2016-12-05 20:07:40 +00:00
4a77294c7c ENH: renumberMesh: remove old files 2016-12-05 15:24:52 +00:00
789cef44fc Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-05 08:54:15 +00:00
94fd633243 thermalBaffle: ensure mappedPatchBase is updated following mesh topology changes
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2323
2016-12-05 08:44:43 +00:00
304af9fc5f reactingTwoPhaseEulerFoam: Added LTS support to the face-momentum algorithm 2016-12-04 10:14:43 +00:00
2b551d8751 metisDecomp: Corrected return from metisDecomp::decompose
Resolves bug-report http://bugs.openfoam.org/view.php?id=2370
2016-12-03 19:26:21 +00:00
2fa6436b6e setFields: Added '-dict' option
Resolves bug-report http://bugs.openfoam.org/view.php?id=2366
2016-12-03 11:45:36 +00:00
b57859269b tmp: Removed temporary global functions 2016-12-03 11:44:18 +00:00
f303f2a289 motionSolver: Removed unused member data 2016-12-02 12:44:09 +00:00
c300fd5ca8 dictionary: Handle the distinction between '.' as a keyword character and a scope operator
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2358
2016-12-02 12:23:17 +00:00
ab760b6cd1 tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling.*: Correct q entry
Patch contributed by Mattijs Janssens
2016-12-02 12:22:30 +00:00
6534b58784 processorMeshes::read destruct before de-register
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2368
2016-12-01 22:07:50 +00:00
64548a6283 meshToMesh0: fixed segmentation fault
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2363
2016-12-01 19:55:39 +00:00
0030d9ea35 etc/bashrc,cshrc: Added FJMPI and INTELMPI
Resolves request http://bugs.openfoam.org/view.php?id=2367
2016-12-01 19:53:08 +00:00
031c75374e ENH: Relocated injectedParticle class to lagrangian library 2016-12-01 17:04:37 +00:00
458357226a BUG: Removing code unintenionally committed 2016-12-01 16:59:47 +00:00
1d3782a8af ENH: improve IOobjectList functionality (issue #322)
- provide additional filtering methods on names(), sortedNames()
  For example,

      IOobjectList objects = ...;
      wordReList selection = ...;

      objects.sortedNames(VolFieldType::typeName, selection);
2016-12-01 17:59:38 +01:00
8602fd13f4 ENH: Initial commit of new particleDistribution FO - generates 'general' distribution for lagrangian particle clouds 2016-12-01 16:52:37 +00:00
6d8281e217 ENH: extractEulerianParticles FO updates 2016-12-01 16:51:11 +00:00
f666f54984 ENH: distributionModels - refactored binned and general models 2016-12-01 16:50:13 +00:00
c0f1a87d54 STYLE: Code clean-up 2016-12-01 16:49:34 +00:00
445513a1dc mixerVesselAMI2D/constant/dynamicMeshDict: Removed unused motionSolverLibs entry 2016-12-01 16:13:18 +00:00
1c687baa35 dynamicMotionSolverListFvMesh: New mesh-motion solver supporting multiple moving regions
e.g. the motion of two counter-rotating AMI regions could be defined:

dynamicFvMesh   dynamicMotionSolverListFvMesh;

solvers
(
    rotor1
    {
        solver solidBody;

        cellZone        rotor1;

        solidBodyMotionFunction  rotatingMotion;
        rotatingMotionCoeffs
        {
            origin        (0 0 0);
            axis          (0 0 1);
            omega         6.2832; // rad/s
        }
    }

    rotor2
    {
        solver solidBody;

        cellZone        rotor2;

        solidBodyMotionFunction  rotatingMotion;
        rotatingMotionCoeffs
        {
            origin        (0 0 0);
            axis          (0 0 1);
            omega         -6.2832; // rad/s
        }
    }
);

Any combination of motion solvers may be selected but there is no special
handling of motion interaction; the motions are applied sequentially and
potentially cumulatively.

To support this new general framework the solidBodyMotionFvMesh and
multiSolidBodyMotionFvMesh dynamicFvMeshes have been converted into the
corresponding motionSolvers solidBody and multiSolidBody and the tutorials
updated to reflect this change e.g. the motion in the mixerVesselAMI2D tutorial
is now defined thus:

dynamicFvMesh   dynamicMotionSolverFvMesh;

solver solidBody;

solidBodyCoeffs
{
    cellZone        rotor;

    solidBodyMotionFunction  rotatingMotion;
    rotatingMotionCoeffs
    {
        origin        (0 0 0);
        axis          (0 0 1);
        omega         6.2832; // rad/s
    }
}
2016-12-01 15:57:15 +00:00
85036f78ab orthogonalSnGrad, uncorrectedSnGrad: Improved documentation
Resolves request http://bugs.openfoam.org/view.php?id=2364
2016-12-01 15:17:14 +00:00
144e08e213 reactingEulerFoam: Updated to support zoneCombustion models 2016-12-01 15:16:19 +00:00
4427d9e49c Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-12-01 14:32:02 +00:00
450d84bd77 BUG: surfaceNormalFixedValue: do not use ptf.patch(). Fixes #319 2016-12-01 14:31:22 +00:00
d5e2b73500 STYLE: simplify logic statement 2016-12-01 14:25:38 +01:00
92fa5a1921 ENH: improve objectRegistry functionality (issue #322)
- Recursive searching for objects within a registry is now optional
  (previous it was always done).

  A recursive search effectively blocks the construction of sub-sub-registries
  if their names are 'masked' by some parent level sub-registry with
  the same name! (BUG)

- Recursive search is now turned OFF by default, which makes it consistent
  with dictionary and probably causes the least number of surprises.

----
Various new convenience methods added:

lookupObjectRef()
- returns a non-const reference.
  For example,

      volScalarField& U = mesh().lookupObjectRef<volScalarField>("U");

  Instead of

      volScalarField& U = const_cast<volScalarField&>
      (
          mesh().lookupObject<volScalarField>("U")
      );

--
lookupObjectPtr()
- returns a const pointer, and nullptr on failure.
  For example,

      const volScalarField* Uptr = mesh().lookupObjectPtr<volScalarField>("U");
      if (Uptr)
      {
          const volScalarField& U = *Uptr;
          ...
      }

  Instead of

      if (mesh().foundObject<volScalarField>("U"))
      {
          const volScalarField& U = mesh().lookupObject<volScalarField>("U");
          ...
      }

--
lookupObjectRefPtr()
- returns a non-const pointer, and nullptr on failure.
  For example,

      volScalarField* Uptr = mesh().lookupObjectRefPtr<volScalarField>("U");
      if (Uptr)
      {
          volScalarField& U = *Uptr;  // use as reference
          (*Uptr) = ...;              // or use directly
      }

  Instead of

      if (mesh().foundObject<volScalarField>("U"))
      {
          volScalarField& U = const_cast<volScalarField&>
          (
              mesh().lookupObject<volScalarField>("U")
          );
      }

--
sortedNames()
- now works with template parameters and with regular expression
  matching as well.
  For example,

      wordList names  = mesh().sortedNames();
      wordList fields = mesh().sortedName<volScalarField>();

  Instead of

      wordList names  = mesh().sortedNames();
      wordList fields = mesh().names<volScalarField>();
      Foam::sort(fields);

--
2016-12-01 13:04:07 +01:00
8628ddac43 ENH: add Test-objectRegistry (issue #322)
- test clearly shows failure to insert a sub-registry when it has
  the same name as one of the parent sub-registry.
2016-12-01 12:30:38 +01:00
9e910e6c14 Merge branch 'feature-extract-eulerian-particles' of develop.openfoam.com:Development/OpenFOAM-plus into feature-extract-eulerian-particles 2016-11-30 23:32:51 +00:00
78bb633dfc ENH: extractEulerianParticles FO - refactored to output a cloud of particles - distribution analysis to follow... 2016-11-30 23:32:33 +00:00
6486209aa2 ENH: Lagrangian - added functions to add particle data as fields on an object registry 2016-11-30 17:18:48 +00:00
99a1eee024 ENH: Lagrangian - added functions to add particle data as fields on an object registry 2016-11-30 17:18:48 +00:00
5d7f8f11d6 GIT: rearrange files for surface sampling sources
- isolate the surface source (plane, iso-surface etc), from sampling
2016-11-30 10:31:07 +01:00
8b75035f29 ENH: change UnsortedMeshedSurface -> meshedSurface for sampledTriSurfaceMesh
- all sampled surface types now consistently use the same storage,
  which allows some more simplifications in the future.

- before/after comparison of the sampledTriSurfaceMesh tested with
  motorbike passenger helmet (serial and parallel). Use the newly added
  'keepIds' functionality to retain the original ids, and can also
  compare them to the original obj file with "GenerateIds" in paraview.
2016-11-29 22:56:08 +01:00
3c41b80b38 ENH: change from triSurface to meshedSurface storage for iso-surfaces
- this makes it easier to reuse the code, and sampledSurface expect
  a face (not a labelledFace), so this also eliminates a translation
  level and simplifies memory management.

- before/after comparison of the sampled iso-surfaces tested with
  iso-surfaces from interFoam/RAS/angledDuct tutorial (serial and
  parallel)
2016-11-29 17:24:26 +01:00
690f58d2cb ENH: support retention of original surface ids when sampling (related to issue #104)
For example,
    surfaces
    (
        helmet
        {
            type        sampledTriSurfaceMesh;
            surface     motorBike-passenger-helmet.obj;
            source      cells;
            keepIds     true;  <<-- NEW
        }
    );

    This will create an additional "Ids" field that can be used to sort
    or as a faceMap to recover the original face order.
2016-11-29 17:14:56 +01:00
fbd4ff38b0 STYLE: correct the documented behaviour of 'none' for function objects
- cf. Line 224 of timeControl.C
2016-12-13 10:11:17 +01:00
6f2b2aff40 STYLE: reduce script verbosity 2016-12-13 08:15:00 +01:00
17bedf58d9 STYLE: consistent of enumerations between ensight components 2016-12-13 08:09:26 +01:00
9041c9083e BUG: incorrect addressing in ensight faces/cells (issue #334)
- was erroneously using global sizing for offsets instead the processor
  local sizing.

--

STYLE: adjust variable naming, indentation for consistency
2016-12-12 17:52:02 +01:00
271c8c8c6e ENH: Added new extractEulerianParticles function object
Generates discrete particle data from multiphase calculations by
interrogating the phase fraction field at a faceZone.

Data is written in raw form, i.e. per particle collected, with
as an optional binned distribution
2016-11-29 14:56:48 +00:00
47439e4917 ENH: pairPatchAgglomeration - multiple updates 2016-11-29 14:46:19 +00:00
86982f5eb7 ENH: writeFile - return bool on successful read 2016-11-29 14:45:45 +00:00
89b1b64414 ENH: distributionModels - added new binned model to add discrete binned sizes 2016-11-29 14:45:33 +00:00
c6acd68618 ENH: Added new regionSplit2D to split 2-D regions based on an indicator field 2016-11-29 14:41:02 +00:00
966b6e730e CONFIG: incorrect MPI_HOME for (unsupported) mpich 2016-11-29 13:06:03 +01:00
026ed13c10 ENH: warn user when using constant/polyMesh/blockMeshDict (issue #309)
- the user might otherwise be unaware of the changed location
2016-11-29 12:14:48 +01:00
75b30cfb2c STYLE: eliminate the last vestiges of unallocLabelList in favour of labelUList
- both are typedefs for UList<label>
2016-11-29 11:49:46 +01:00
4ab9806348 BUG: foamToEnsight -faceZones fails (issue #317)
- was using direct face ids instead of appropriate sub-lists
- also removed typo that wasn't helping much either
2016-11-29 11:45:01 +01:00
d45d5a9e0a STYLE: remove definition of unimplemented faceZone method 2016-11-29 11:08:31 +01:00
05df4c71b6 ENH: Lagrangian models - added headers to enable derived libraries to compile 2016-11-29 09:10:37 +00:00
fcd8d71ef9 STYLE: ensightCells, ensightFaces sub-lists are always allocated
- remove remnant nullptr check
2016-11-29 09:06:30 +01:00
a2bba390f2 COMP: improve robustness of cmake (vtk) builds when directories have moved 2016-11-28 23:28:21 +01:00
b69ab6c895 COMP: reduce compile noise for paraview modules
- vtkkwiml headers use old-style casts, so reduce compile-time warnings
2016-11-28 22:34:38 +01:00
f281f77e4a Updated member type comments
Resolves bug-report http://bugs.openfoam.org/view.php?id=2356
2016-11-28 21:23:00 +00:00
e35a566302 CONFIG: downgrade back to paraview-5.0.1
- newer versions of paraview build fine, and so do the reader modules,
  but the reader modules won't load (need to upgrade the classes).
2016-11-28 22:14:01 +01:00
4013532aaa STYLE: simplify adios rules
- now that adios_config flags are largely working in ThirdParty
2016-11-28 22:12:01 +01:00
dec8bd46c3 BUG: _foamAddPath not available when foamPV alias/function is used
STYLE: only use paraview settings when actually available

- this means executing makeParaView prior to building OpenFOAM itself,
  but is consistent with the instructions given by makeParaView,
  and elminates anticipating the source location from the paraview
  config file, which increases the build flexibilty for ThirdParty
2016-11-28 15:35:27 +01:00
39e032aef6 ENH: runTimePostProcessing FO camera update
- Removed the camera 'mode'
    - The (old) static camera was only appropriate when parallel
      projection was inactive, and the view was centred at (0 0 0)
    - Camera input now always requires 'position' and 'focalPoint'
    - Clip box is now optional.  Note that this is applied after the
      camera
      set-up and so will override the camera position
    - View angle is only appropriate when not using parallel projection
    - Zoom now required, applied after all other operations
      - 1 = do nothing, >1 = zoom in, <1 = zoom out

    Example input:

        camera
        {
            // Total number of frames to generate
            nFrameTotal 1;

            // Parallel projection flag
            parallelProjection no;

            // Optional clippling box
            clipBox     (-0.0206 -0.0254 -0.0005) (0.29 0.0254 0.0005);
            focalPoint  (0 0 0);
            up          (0 1 0);
            position    (0 0 1);
            viewAngle   20;
            zoom        1.1;
        }
2016-11-28 14:21:11 +00:00
21251970ac Merge branch 'feature-noise-multiple-files' into 'develop'
Feature noise multiple files

Enabled pointNoise and surfaceNoise models to operate on multiple input files
- For each model, the files should be specified by the `inputFiles` keyword
- When applied to pointNoise, the file is no longer required when specifying the CSV input data
- the singular `inputFile` entry is still available to the surfaceNoise model for backwards compatibilty

See merge request !80
2016-11-28 13:50:14 +00:00
494ce72e3b ENH: surfaceNoise - provide backwards compatibility for inputFile keyword 2016-11-28 13:44:53 +00:00
414b128f7f combustionModels::zoneCombustion: Corrected base-class
to avoid duplicate instantiation of the thermodynamics package.

The 'zoneCombustion' model is now selected in constant/combustionProperties by
either

combustionModel zoneCombustion<psiCombustionModel>;

or

combustionModel zoneCombustion<rhoCombustionModel>;

as appropriate.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2354
2016-11-28 11:59:17 +00:00
f4e53b2d3a Merge branch 'feature-functionObject-consistentWrite' into 'develop'
Function objects - ensure objects are up-to-date when writing

See merge request !79
2016-11-28 09:51:07 +00:00
2903722a39 Revert "ENH: ensure written and evaluated values correspond (issue #311)"
This reverts commit c554dc7b7d.

Functionality available in more general change in commit fb78378
2016-11-28 09:48:06 +00:00
3077a11c0d Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-28 09:33:23 +00:00
da4dad4382 ENH: snappyHexMesh: improved comment 2016-11-28 09:32:58 +00:00
1022f4fc49 STYLE: Minor code formatting 2016-11-28 09:27:13 +00:00
3e8415e119 BUG: enightPartFaces - use virtual size() function in write method 2016-11-28 09:26:51 +00:00
8b219feda2 Updated member type comments
See http://bugs.openfoam.org/view.php?id=2356
2016-11-28 09:22:56 +00:00
00c3c6f9a7 ENH: improve configuration of gperftools (now at version 2.5)
- support gperftools-none, gperftools-system configurations
  as per other third-party packages.

STYLE: clean up more environment variables

CONFIG: testing adios rule
2016-11-27 16:24:40 +01:00
0013284e94 tensor::eigenValues: Test the magnitude of 'QQ' before dividing by it.
Resolves bug-report http://bugs.openfoam.org/view.php?id=2351
2016-11-26 20:49:54 +00:00
9c4653e9c1 functionObject.H: Updated documentation
Patch contributed by Bruno Santos
Resolves patch request http://bugs.openfoam.org/view.php?id=2355
2016-11-26 18:42:25 +00:00
25e0a41eef functionObjects::yPlus: Removed the AUTO_WRITE option on yPlus
Writing is controlled directly by the functionObject
2016-11-26 17:30:52 +00:00
6a26ac850b POSIX: removed spurious double literal suffix 2016-11-25 22:40:49 +00:00
1d1f71f7cd foamDictionary: Added support for manipulating lists of dictionaries
- provides support for manipulating polyMesh/boundary

  - changed behaviour of disableFunctionEntries option to preserve
    #include

  - dictionary: added reading of lists of dictionaries.
    + each list element may be accessed using the 'entryDDD' keyword
      according to their list index.

Patch contributed by Mattijs Janssens
2016-11-25 20:33:03 +00:00
dc1c37e464 COMP: add in plain lib/ directories for boost, cgal, fftw
- these directories are sometimes used for a central, non-thirdparty, non-system
  installation

- leave gmp and mpfr as is, since it is not clear how these would interact with system
  versions
2016-11-25 20:43:27 +01:00
81de1dc9ac topoSet: cellZoneSet, pointZoneSet extensions
cellZones and pointZones can now be created in one action without the
need to first create a cellSet or pointSet and converting that to the
corresponding zone, e.g.

actions
(
    // Example: create cellZone from a box region
    {
        name    c0;
        type    cellZoneSet;
        action  new;
        source  boxToCell;
        sourceInfo
        {
            box   (0.04 0 0)(0.06 100 100);
        }
    }
);
2016-11-25 16:01:41 +00:00
bf326cc4f7 fileModification: time checking now with nano-second precision
fileModificationSkew: now a floating-point number to support sub-second
specification.

Patch contributed by Mattijs Janssens
2016-11-25 15:36:10 +00:00
5272d324a4 functionObjects::timeActivatedFileUpdate: Copy file then move
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2324
2016-11-25 14:37:24 +00:00
bdfa4f9c05 functionObjects::fieldExpression: Correct and improve warning messages
postProcess -func MachNo

previously generated the warning

Executing functionObjects
--> FOAM Warning :     functionObjects::MachNo MachNo cannot find required field U

which is incorrect; the field 'U' is available but the
thermophysicalProperties is not.  Now 'postProcess' generates the
warning:

Executing functionObjects
--> FOAM Warning :     functionObjects::MachNo MachNo cannot find required object thermophysicalProperties of type fluidThermo
--> FOAM Warning :     functionObjects::MachNo MachNo failed to execute.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2352
2016-11-25 12:20:07 +00:00
a14267d83b BUG: pointNoise - corrected base file name 2016-11-25 12:15:06 +00:00
8462be6a46 zoneCombustion: New cellZone based combustion model
in which the reactions are enabled only in the specified list of
cellZones.  e.g. in constant/combustionProperties

combustionModel zoneCombustion<psiChemistryCombustion>;

active  true;

zoneCombustionCoeffs
{
    zones (catalyst);
}

and in constant/zoneCombustionProperties

combustionModel laminar<psiChemistryCombustion>;

active  true;

laminarCoeffs
{}
2016-11-25 11:20:07 +00:00
2790d64c4f ENH: waveModels - new and updated tutorials 2016-11-25 11:16:20 +00:00
21b3f88a72 ENH: waveModels - refactored time scaling coefficient 2016-11-25 10:49:53 +00:00
02e9433d73 BUG: Boussinesq wave model - corrected coefficient reported by Gabi 2016-11-25 10:49:23 +00:00
043bf18d98 functionObjects::grad: Avoid cache conflict with 'postProcess' utility
Resolves bug-report http://bugs.openfoam.org/view.php?id=2350
2016-11-24 23:04:01 +00:00
00174405c6 ENH: noiseModels - enable models to accept lists of file names 2016-11-24 21:31:08 +00:00
9aa9d1d1b4 ENH: improve interoperability of triSurface with other surface mesh classes
- make it easier to transfer triSurface information into MeshedSurface
  etc.
2016-11-24 18:28:57 +01:00
c3005794ab ENH: provide triSurfaceTools::validTri() method to reduce code duplication
- identical code was present in surfaceCheck (original source),
  and isoSurface, isoSurfaceCell (copies).

- add in a MeshedSurface<face> variant as well, since this will likely
  be needed in the near future
2016-11-24 15:31:32 +01:00
da78cba7da BUG: surfMesh.write() not working with AUTO_WRITE off
- add writeObject method
2016-12-01 15:15:50 +01:00
46e396af49 ENH: surfMesh::setWriteOption to adjust the write option of all components
- otherwise difficult to avoid auto-write etc.

- propagate similar changes to MeshedSurfaceAllocator, where is makes
  the most sense.
2016-12-01 15:07:16 +01:00
7b450a2915 BUG: update points reference in surfMesh fails (issue #320)
- Should be updating references (shallow copy), but triggers a deep copy
  instead. Likely introduced by 6e573ad7e8.
2016-11-30 14:13:01 +01:00
ed27b25ff8 STYLE: use meshCells() instead of cutCells() for consistency
- other sampled surface types use meshCells() throughout.
  Only cuttingPlane was different.
2016-11-24 15:33:17 +01:00
907bde821d STYLE: fixup usage for -clean/-noClean options 2016-11-25 01:10:25 +01:00
0142c83068 ENH: add motorBike-passenger-helmet.obj for test cases
- This is simply the normal helmet geometry, but shifted to where a
  passenger head may be. It can be used for surface sampling etc.
2016-12-02 10:10:32 +01:00
8563f892a9 ENH: provide a 'dimensioned' null-like constructor for dimensionedType
- The null constructor already creates a dimensionless Zero,
  but named "undefined".

  Provide an constructor for a dimensioned Zero,
  but named "0" for universal clarity to its value.
2016-12-02 08:48:01 +01:00
fb78378959 ENH: Function objects - ensure objects are up-to-date when writing 2016-11-24 12:36:52 +00:00
7734d7ffd7 ENH: Tutorial updates 2016-11-24 12:11:43 +00:00
b7ea6ee24e Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-24 12:05:24 +00:00
9316088550 STYLE: Relocated DFSEM tutorial 2016-11-24 12:05:12 +00:00
58fad3ab79 BUG: snappyHexMesh with -decomposeParDict option (issue #265)
- only occurs in combination with distributedTriSurfaceMesh in snappy.

- workaround similar to that previously used for surfaceRedistributePar
  (issue #60).

Minor adjustment of incompressible motorBike tutorial to detect use of
distributedTriSurfaceMesh.
2016-11-24 12:02:11 +01:00
55ed6ec776 STYLE: use MUST_READ consistently for decomposeParDict
- there was a slight mix of MUST_READ and MUST_READ_IF_MODIFIED
  but with no obvious code to handle runtime modified values
  of the decomposition, or how this works with alternative
  dictionaries.
2016-11-24 11:26:03 +01:00
0bb9459cfc primitiveShapes::plane: Removed redundant 'explicit'
Declaration of 'explicit' constructor without a single argument are redundant.
2016-11-23 16:22:10 +00:00
7f330cef40 etc/caseDicts/postProcessing/fields: New 'add' and 'subtract' functionObjects 2016-11-23 16:21:38 +00:00
bc05a40b56 ENH: waveModel - updated restart method 2016-11-23 15:48:56 +00:00
c7b51f98e7 ENH: waveModel - enable restart 2016-11-23 14:57:45 +00:00
e9e9760329 CONFIG: bump versions of various third-party sources
* boost 1_62_0 (Sept 2016)

* CGAL 4.9 (Sept 2016)
  - now has headers-only mode that could be interesting

* FFTW 3.3.5 (Jul 2016)

* openmpi 1.10.4 (Sept 2016)
  - the first openmpi 2.x release is also available, but too early to switch

* paraview 5.2.0 (Nov 2016)
  - builds without additional patching

STYLE: removed unneeded CMake environment variables
2016-11-23 14:14:06 +01:00
fa430cc407 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-23 12:10:33 +00:00
8c08ad6667 ENH: mergeOrSplitBaffles: allow operation on selected patches. Fixes #314. 2016-11-23 12:09:31 +00:00
ba6ae13b5a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-23 11:22:01 +00:00
dd989a8600 BUG: Corrected constructor initialisation error introduced in last commit; code tidying 2016-11-23 11:21:23 +00:00
0b83cebd12 BUG: wave model active absorption loop should be over all patch faces 2016-11-23 10:41:37 +00:00
a895f20759 BUG: waveModel - set U to zero in else branch 2016-11-22 15:42:12 +00:00
87a566c11c STYLE: minor code typo corrections 2016-11-22 15:34:37 +00:00
7eaa46a08b massRosinRammler: New Lagrangian size-distribution model
Corrected form of the Rosin-Rammler distribution taking into account the
    varying number of particels per parces for for fixed-mass parcels.  This
    distribution should be used when
    \verbatim
        parcelBasisType mass;
    \endverbatim

    See equation 10 in reference:
    \verbatim
        Yoon, S. S., Hewson, J. C., DesJardin, P. E., Glaze, D. J.,
        Black, A. R., & Skaggs, R. R. (2004).
        Numerical modeling and experimental measurements of a high speed
        solid-cone water spray for use in fire suppression applications.
        International Journal of Multiphase Flow, 30(11), 1369-1388.
    \endverbatim
2016-11-22 15:25:43 +00:00
558006afd2 BUG: Corrections to commit 1f826361 for issue #306 2016-11-22 15:12:10 +00:00
1248851fa4 BUG: waveModel - removed direction() function - co-ordinate system takes care of direction 2016-11-22 15:04:05 +00:00
e619a82ae6 COMP: minor adjustments for compiling with single-precision 2016-11-22 15:58:54 +01:00
1f826361c6 STYLE: Consistency updates to change input of <var>Name to <var>. Fixes #306 2016-11-22 14:50:33 +00:00
19bd06c850 COMP: adjust vtk formatting for 64-bit labels 2016-11-22 10:27:11 +01:00
f911344ccb Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-11-21 12:10:21 -08:00
5325af4626 BUG: Following issue 284 for particle switching processors flag 2016-11-21 11:54:31 -08:00
143e99194f ENH: Adding functionality to scalarTransport FO and residence time tutorials for VOF
and single phase cases. Registration of the compressed flux in interFoam as it is
needed for the FO if used.
2016-11-21 09:21:45 -08:00
d9740aa33e ENH: redistributePar: remove pointFields 2016-11-21 17:20:34 +00:00
dfbb9d0900 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop
Conflicts:
	tutorials/combustion/fireFoam/LES/compartmentFire/Allclean
2016-11-21 07:39:46 -08:00
ab40ddaaf3 Adding fireCompartment tutorial for new pyrolysis thermo, thermocouple FO and EDC combustion model 2016-11-21 07:36:05 -08:00
784461b2fa ENH: make search of instances in IOobject::typeHeaderOk optional (issue #245)
- in specific cases it can be useful to suppress searching the instances.
  For example, if one only wishes to check if a "points" is available at
  the given time instance, without searching backwards through all
  times.
2016-11-21 14:28:40 +01:00
cf4d945aa1 Matrix: Minor reformatting 2016-11-21 11:47:25 +00:00
c554dc7b7d ENH: ensure written and evaluated values correspond (issue #311)
- Avoids possible discrepancy when the user selects non-coincidental
  values for executeInterval and writeInterval.

- zeroGradient and ddt2 function objects
2016-11-21 12:36:04 +01:00
c7c2808bee Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-11-21 09:44:54 +00:00
19cb3b0454 STYLE: porosityModel - minor cleanup of bounds output 2016-11-21 09:44:00 +00:00
cbf43acd30 ENH: provide static uniq method in wordReListMatcher (issue #259)
- this functionality will be more frequently used in the future,
  thus place in a commonly available location.
2016-11-21 10:38:22 +01:00
a6a90838fa STYLE: adjust tutorial Allrun scripts (issue #310)
- A few without a 'cd' at the start.
  Use $(getApplication) directly in more places (for clarity).
2016-11-21 10:18:00 +01:00
21679c04e4 STYLE: adjust tutorial Allclean scripts (issue #310)
- A few without a 'cd' at the start.
  Several remove files that are already covered by the cleanCase function.
2016-11-20 17:26:44 +01:00
f3cc16e42c ENH: Avoid constant/polyMesh/blockMeshDict (issue #309)
- relocate to system/blockMeshDict, which avoids it being cleaned out
  accidentally
2016-11-20 16:50:47 +01:00
8ba4e3c370 ENH: make search of time instances in IOobject optional (issue #245)
- Still needs more attention.

--
STYLE: fix minor typos in documentation
2016-11-20 14:41:43 +01:00
5c15769dfe GIT: revert back to system openmpi (issue #308)
- consistently use SYSTEMOPENMPI for both sh and csh versions
  (inadvertently changed in ee5251a7bb).
2016-11-20 13:12:02 +01:00
95e7faf309 STYLE: use the more succinct forms for argList (issue #307)
* args[int]   vs  args.args()[int]
  * args[word]  vs  args.options()[word]
  etc.
2016-11-20 13:06:57 +01:00
7b9fde84ce STYLE: consistent naming of 'kappa' instead of 'kappaName' etc (issue #305)
- purely cosmetic (documentation) changes
2016-11-20 11:41:52 +01:00
f55b15e387 Merge branch 'master' into 'develop'
Merge master changes/bugfixes into develop branch

See merge request !78
2016-11-20 09:48:38 +00:00
7d39328b5a functionObjects::add: Add list of fields
The operation can be applied to any volume or surface fields generating a
    volume or surface scalar field.

    Example of function object specification:
    \verbatim
    Ttot
    {
        type            add;
        libs            ("libfieldFunctionObjects.so");
        fields          (T Tdelta);
        result          Ttot;
        executeControl  writeTime;
        writeControl    writeTime;
    }
    \endverbatim

Also refactored functionObjects::fieldsExpression to avoid code
duplication between the 'add' and 'subtract' functionObjects.
2016-11-19 21:48:48 +00:00
9b66285c22 Merge remote-tracking branch 'origin/externalCoupled' into develop
- update tutorial and adjust function object for updated infrastructure.
2016-11-19 18:43:34 +01:00
8b4dfe24f1 Merge remote-tracking branch 'origin/decomposeParDict' into develop 2016-11-19 15:34:36 +01:00
f021d3b665 Removed temporary file 2016-11-18 22:43:52 +00:00
0eca493cb8 functionObjects::subtract: From the first field subtract the remaining fields in the list
The operation can be applied to any volume or surface fields generating a
    volume or surface scalar field.

    Example of function object specification:
    \verbatim
    Tdiff
    {
        type            subtract;
        libs            ("libfieldFunctionObjects.so");
        fields          (T Tmean);
        result          Tdiff;
        executeControl  writeTime;
        writeControl    writeTime;
    }
    \endverbatim
2016-11-18 22:20:22 +00:00
1254be97e3 lagrangian::patchInjectionBase: corrected initialization of tetFaceI and tetPtI
Patch contributed by Timo Niemi, VTT.
Resolved bug-report http://bugs.openfoam.org/view.php?id=2286
2016-11-18 14:31:51 +00:00
ee26cbeae9 lagrangian::InjectionModel.C: Corrected indentation 2016-11-18 14:31:18 +00:00
8a9618be52 functionObjects::fieldValueDelta: Corrected documentation 2016-11-18 14:30:42 +00:00
0de810db37 viscosityModels::strainRateFunction: New run-time selected strain-rate function non-Newtonian viscosity model
Uses 'Function1' to provide support for an extensible range of run-time
selected functions including interpolation of tabulated data etc.
2016-11-17 22:33:48 +00:00
c659d99368 ENH: Check if the Lagragian cloud is active before reading massTotal & SOI in InjectionModel.C
If the cloud was inactive, massTotal and SOI were needed even for steady Lagrangian
2016-11-17 11:48:13 -08:00
4b4e912226 ENH: Adding writing of the motionSolver dictionary for sixDoFRigidBodyDisplacementPointPatchVectorField BC 2016-11-17 08:46:27 -08:00
de7b4b96a2 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-11-17 08:41:38 -08:00
b7c370d76a Correcting header information for IDDESDelta 2016-11-17 08:41:08 -08:00
88c8297211 ENH: Porosity model - output cellZone bounds in the local co-ordinate system. Fixes #300 2016-11-17 13:35:35 +00:00
9a10efc6fa ENH: waveModel - using class varaiable instead of a static to update the model 2016-11-17 10:30:00 +00:00
ce7cc3a744 ENH: Wave code tidying 2016-11-17 08:52:15 +00:00
2d36cc97a7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-16 16:27:36 -08:00
dbb8b04f5d ENH: Correcting Nu correlation for thermoCoupleProbes 2016-11-16 16:27:11 -08:00
d93c037914 etc/config.sh/aliases: Use 'declare' instead of 'type' for bash/zsh compatibility
Resolves bug-report http://bugs.openfoam.org/view.php?id=2333
2016-11-16 22:33:16 +00:00
ae3d2f4d57 ENH: topoSet: clear sets upon writing modified mesh. Fixes #129. 2016-11-16 14:58:46 +00:00
95dc43e5cb ENH: Updated IHCatabria test cases to use new functionality 2016-11-16 14:17:03 +00:00
95c34ea8ff INT: Initial commit for IHCantabria test cases 2016-11-16 14:14:48 +00:00
b3b0704202 ENH: Initial integration of IHCantrabria wave functionality
- Wave models significantly restructured and refactored into a hierarchy of run-time selecatable models
- Gravity no longer hard-coded
- Ability to use any direction as the gravity direction
- Boundary conditions simplified and take reference to the wave model
  - removes a lot of code duplication and new code is ~30% faster
- Removed unused functions

Requires further testing
- Restart behaviour needs to be addressed
2016-11-16 14:05:46 +00:00
95e9467e84 INT: Integration of functionality produced by The Environmental Hydraulics Institute "IHCantabria" (http://www.ihcantabria.com/en/)
Capabilities include:
- Wave generation
  - Solitary wave using Boussinesq theory
  - Cnoidal wave theory
  - StokesI, StokesII, StokesV wave theory

- Active wave absorption at the inflow/outflow boundaries based on
  shallow water theory

Authors:
- Javier Lopez Lara (jav.lopez@unican.es)
- Gabriel Barajas (barajasg@unican.es)
- Inigo Losada (losadai@unican.es)
2016-11-16 14:02:14 +00:00
d29a8afbec GIT: Resolve merge conflict 2016-11-15 10:04:08 +00:00
d2328f78cf Merge branch 'externalCoupled' into 'master'
External coupled

Improvements and bugfixes for externalCoupledFunctionObject - issues #278 #269

See merge request !72
2016-11-15 09:49:58 +00:00
b20ae1f790 Merge branch 'decomposeParDict' into 'master'
BUG: resolve some decomposeParDict problems (issues #60, #265).

- Cleanup/centralize handling of -decomposeParDict by relocating
  common code into argList. Ensures that all processes receive
  identical information about the -decomposeParDict opton.

- Only use alternative decomposeParDict for simpleFoam/motorBike
  tutorial so that this will be included in the test loop for snappy.

- Added Mattijs' fix for surfaceRedistributePar.

See merge request !73
2016-11-15 09:46:03 +00:00
f3b1676326 TurbulenceModels::ReynoldsStress: Added support for incompressible VoF solvers
and other incompressible mixture-based multiphase solvers.
2016-11-14 17:59:07 +00:00
328204dc1e TurbulenceModels::ReynoldsStress: remove the spherical part of the wall-function Reynolds stress
The spherical part of the Reynolds stress is included in the pressure so
that the wall boundary condition for the pressure is zeroGradient.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2325
2016-11-14 15:03:08 +00:00
fff2ee5440 Merge branch 'surface-declutter' into 'develop'
Surface declutter - issue #294

Removing various clutter from surfMesh and triSurface
- unused classes/files (backup copies on non-release repo)
- relocate some triSurface-related classes to where they make more sense, and where they can be reused.
- improve handling of various face types in MeshedSurface and UnsortedMeshedSurface (to bridge the gap to triSurface)
- improve transfer methods for reclaiming/reusing surface allocations

See merge request !77
2016-11-14 12:43:38 +00:00
5ffdb2d4b3 wmake/scripts/AllwmakeParseArguments: Avoid duplicate command message
when Allwmake is called from wmake -all
2016-11-14 12:37:52 +00:00
aeca671672 VectorSpace: Added cmptSqr 2016-11-14 11:22:43 +00:00
5050a6cf10 wmkdep.l: Removed redundant #include 2016-11-14 11:22:00 +00:00
01a0fcb996 wclean: Removed duplicate echo of directory 2016-11-14 08:54:53 +00:00
11ee31d17a wmake: Removed redundant QUIET_OP 2016-11-14 08:39:55 +00:00
2dbfe2a75e wmake: Moved wmkdep messages into rules/General/transform makefile 2016-11-14 08:32:30 +00:00
e112eb503b ENH: provide ModifiableMeshedSurface class
- A special purpose MeshedSurface that exposes the stored values
  for direct modification.

- Its usage should be restricted to special cases where the surface
  needs modifications as an atomic operation.
2016-11-14 00:45:41 +01:00
961b653183 wmake: Suppress the "is up to date" messages
Avoids a lot of unnecessary clutter in the compilation log.
2016-11-13 22:41:42 +00:00
b50d7d78f7 wmake: Removed unnecessary '->>' line from output
Changed 'ld' line to include path of target library or executable.
2016-11-13 22:14:53 +00:00
704620aea1 ENH: simplify check for metis sizes (issue #290)
- Now that the metisDecomp uses the metis definition for float/double,
  do not need to verify the scalar sizes.

Note:
- could drop precision qualifier for metis, scotch installation
  (include, lib) as being unneeded, but it is simpler to keep them
  and continue to use the FOAM_EXT_LIBBIN path
  (in case other ThirdParty software is compiled with different
  precisions).
2016-11-13 19:53:11 +01:00
82faf7eff0 wmake: Indent the 'result' message 2016-11-13 18:42:08 +00:00
80db302666 Allwmake: Remove 'set -x' which generates a lot of noise
'set -x' should be used for debugging.

Added command printing into wmake and Allwmake as a replacement for
'set -x' to log current target.
2016-11-13 18:08:22 +00:00
5981836326 renumberMesh/Allwmake: Removed 'set -x' 2016-11-13 15:27:25 +00:00
985abe023e wmake: Declare all makefiles to be specifically GNU make files 2016-11-13 15:18:09 +00:00
8a4c43e377 wmake: suppress "Nothing to be done for" messages 2016-11-13 15:16:42 +00:00
79081ba3bb wmake: Simplified QUIET_MESSAGE function 2016-11-13 11:19:29 +00:00
8b0ec47566 wmake/src/Makefile: Removed additional $E 2016-11-13 10:24:16 +00:00
d676ccf01d wmake/rules/General/yacc: Added QUIET_MESSAGE 2016-11-13 10:23:53 +00:00
52b6c49b4f ENH: provide xfer methods for the meshed surface components.
- the surfMesh classes where originally designed with limited
  (protected) access to the underlying components. This is to
  avoid unintentional direct changes, since these can quickly
  lead to inconsistencies with the topology addressing etc.

  However, if we wish to efficiently adjust surfaces, it is useful
  to modify the components directly.
  The compromise is to provide 'xfer' methods:
    - xferFaces()
    - xferPoints()
    - xferZones()
  These transfer the contents to an Xfer container for reuse, while
  also resetting the topology addressing.  To apply the changes,
  the reset() method is used.
2016-11-12 23:42:17 +01:00
d2b4284271 BUG: all addressing not being cleared when transfer/resetting surfMesh 2016-11-14 00:42:52 +01:00
997f1713cb wmake: Update '-s' option to print the files processed without the rules
Based on patch contributed by Alexey Matveichev
Resolves feature request http://bugs.openfoam.org/view.php?id=2328
2016-11-12 22:01:44 +00:00
c56edc262c ENH: add read/write for labelledTri surfaces (issue #294)
- extends existing surfaceFormats to include surfaces with
  labelledTri as their face representation.
2016-11-12 12:05:45 +01:00
d026f90827 ENH: support writing of unsorted surface for AC3D format (issue #294)
- needed for triSurface output (when it comes)
2016-11-13 23:05:43 +01:00
b799b5d65d ENH: surfMesh support for reading compressed binary stl files (issue #294)
- increases coverage.

STYLE: relocate some core pieces into fileFormats
2016-11-13 23:04:38 +01:00
88876e46c1 ENH: better handling of various face types in MeshedSurface (issue #294)
- ensure that MeshedSurface and UnsortedMeshedSurface can also work
  with labelledTri faces.

- nTriangles() convenience method for meshed surfaces

- MeshedSurface::addZonesToFaces() method to copy zone information
  into the labelledTri per-face region storage.
  The goal is to replace the triSurface reading routines with
  run-time selectable ones from surfMesh.
2016-11-12 23:42:00 +01:00
a32eff4e59 ENH: ensure face, triFace and labelledTri all work consistently (issue #294)
- triFace() now initialized with '-1', which makes it behave
  equivalently to face(label).

- supply default region=0 for some labelledTri constructors.
  This allows labelledTri to work more like a triFace and makes it
  easier to use in templated methods and eases conversion from
  triFace to a labelledTri.

- labelledTri(const labelUList&) can now be used when converting
  from a face. It can have 3 values (use default region)
  or 4 values (with region).

- face, triFace, labelledTri now all support construction with
  initializer lists. This can be useful for certain types of code.
  Eg,
      triFace     f1{a, b, c};
      face        f2{a, b, c};
      labelledTri f3{a, b, c};

  Work without ambiguity.
  Also useful for templated methods:

      FaceType f{remap[a], remap[b], remap[c]};
2016-11-12 20:57:48 +01:00
4fbb59de5d STYLE: rename MeshedSurfaceProxyCore -> MeshedSurfaceProxys for consistency
- it doesn't actually contain 'core' code, but rather various
  instances of MeshedSurfaceProxy.
2016-11-12 20:54:50 +01:00
0b4ff45541 metisDecomp: Use real_t for processor weights
Based on patch contributed by Alexey Matveichev
Resolves feature-request http://bugs.openfoam.org/view.php?id=2330
2016-11-12 09:03:56 +00:00
28c75d8d7d BUG: Field construct from Xfer<Field> fails (issued #298)
- Cannot pass through to underlying list constructor directly.

- As this constructor was broken, there seem to be a number of
  workarounds scattered in the code. Could revisit them in the future
  as part of code-style:

      edgeMesh(const Xfer<pointField>&, const Xfer<edgeList>&);
      CompactIOField(const IOobject&, const Xfer<Field<T>>&);
      GlobalIOField(const IOobject&, const Xfer<Field<Type>>&);
      IOField(const IOobject&, const Xfer<Field<Type>>&);
2016-11-13 14:37:40 +01:00
c09c8e36c7 BUG: unallocated list in triSurface vtk reader (issue #297)
- Condition is there to catch cases where the vtkSurfaceFormat returns
  no zones (which should never be the case), but assigns a fallback
  value without first resizing.
2016-11-13 12:33:47 +01:00
eeedf4a35d DEFEATURE: remove VRML/97 output - superseded long ago by x3d (issue #294) 2016-11-12 23:30:44 +01:00
bd9626f95c DEFEATURE: remove broken OFS surfaceFormat (issue #296, #294)
- This format is fortunately little-used (or never used) since its
  inception.

  Using raw stream operators to write zones, points and faces in a
  single file was not well thought out - the output content varies
  with the Face template type (face, triFace, labelledFace), which
  makes it not very robust at all.

  The static read in OFSsurfaceFormat also has a bug - keeping
  transcribed faces from being passed through.

  Conclusion: removing it makes more sense that repairing and still
  not having something good.

  Do retain stream operators for MeshedSurface and UnsortedMeshedSurface,
  since they are useful for passing around data
  (eg, between processors), but they shouldn't be used for files.
2016-11-12 23:22:47 +01:00
d37e86d185 metisDecomp: Use real_t for processor weights
Based on patch contributed by Alexey Matveichev
Resolves feature-request http://bugs.openfoam.org/view.php?id=2330
2016-11-12 09:03:56 +00:00
48762a8c58 STLpoint: declare operator point() for double-precision only
The base-class provides the point for single-precision.
2016-11-12 09:02:51 +00:00
06f638b09d STYLE: provide WM_CC, WM_CXX values for Icc.
- since Icc is actually mentioned in bashrc/cshrc it is consistent to
  set these values accordingly.
2016-11-11 19:25:52 +01:00
1752bdc4b9 CONFIG: bump paraview version to 5.1.2 (July 2016) release 2016-11-11 19:25:25 +01:00
f6e170dcd3 foamDictionary: Corrected error message type 2016-11-11 17:21:13 +00:00
8e30111b44 DEFEATURE: drop reader module support for paraview 3.x (issue #295)
- Cannot test if these older reader modules actually build,
  owning largely to build issues since with paraview 3.14 (Feb 2012)
  and paraview 3.98 (Dec 2012) themselves.
2016-11-11 13:30:30 +01:00
23795a7fb5 PVblockMeshReader: Removed unnecessary 'UpdateGUI' button
The 'Refresh' button updates the blockMesh and the GUI.
2016-11-11 12:17:53 +00:00
fbba6cd714 blockMesh: corrected debug messages
Patch contributed by Mattijs Janssens
2016-11-11 11:19:55 +00:00
7aeaf61cda ENH: getting foamToTecplot working again
- updated code to use current API level 142.

- ThirdParty build of tecio now uses CMake.
2016-11-11 09:42:28 +01:00
a3fd21b306 Merge branch 'feature-convert' into 'develop'
Improvements to the conversion utilities

Various changes associated with issue #204.

* Reduced code duplication for handling prostar conversion and IO
* Simple conversion to/from AVL/FIRE geometries
* New library basis for conversion to/from CCM geometries - handles multiple regions, conformal interfaces etc. No support for film or 2d shell geometries
* Improved infrastructure for writing VTK content. Will propagate usage through other parts of the code in the future.

See merge request !76
2016-11-10 14:34:30 +00:00
af02ff3600 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-09 15:23:21 +00:00
2a9c95e56e BUG: surfaceAdd: incorrect size when not merging regions. Fixes #144. 2016-11-09 15:22:59 +00:00
a6665e395b Merge branch 'feature-keep-sampled-pids' into 'develop'
Feature keep sampled pids

Rebased version of merge request !58, following ticket closure for issue #104 .

See merge request !75
2016-11-09 14:58:42 +00:00
aabf0094a5 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-09 14:43:14 +00:00
0026347c0e ENH: cloudSet: report the number of missing points 2016-11-09 14:42:12 +00:00
c7d7cbca28 BUG: foamConfigurePaths -foamInstall fails (related to issue #280)
- relied on 'export' keyword, which was removed in commit b844867112

--
ENH: foamConfigurePaths support for additional items:

    -label 32|64            specify label size
    -system name            specify 'system' compiler to be used
    -thirdParty name        specify 'ThirdParty' compiler to be used

    -boost ver              specify boost_version
    -boostArchPath dir      specify BOOST_ARCH_PATH
    -cgal ver               specify cgal_version
    -cgalArchPath dir       specify CGAL_ARCH_PATH
    -clang ver              specify clang_version for ThirdParty Clang
    -cmake ver              specify cmake_version
    -fftw ver               specify fffw_version
    -fftwArchPath dir       specify FFTW_ARCH_PATH
    -metis ver              specify METIS_VERSION
    -metisArchPath dir      specify METIS_ARCH_PATH
2016-11-09 14:38:15 +01:00
3b3e19b3f3 .gitignore: Ignore emacs projectile configuration files 2016-11-09 11:23:20 +00:00
ad476af9b3 reactingEulerFoam, twoPhaseEulerFoam: Reinstated interfacial pressure-work
Added the interfacial pressure-work terms according to:

Ishii, M., Hibiki, T.,
Thermo-fluid dynamics of two-phase flow,
ISBN-10: 0-387-28321-8, 2006

While this is the most common approach to handling the interfacial
pressure-work it introduces numerical stability issues in regions of low
phase-fraction and rapid flow deformation.  To alleviate this problem an
optional limiter may be applied to the pressure-work term in either of
the energy forms.  This may specified in the
"thermophysicalProperties.<phase>" file, e.g.

pressureWorkAlphaLimit 1e-3;

which sets the pressure work term to 0 for phase-fractions below 1e-3.

For particularly unstable cases a limit of 1e-2 may be necessary.
2016-11-09 11:14:26 +00:00
5e69858283 foamTags: Rationalized tagging
The best of the current options is to use the latest version of
exuberant ctags (which has a new C++ parser) to generate both
declaration and definition tags.

gtags works to some extent and provides additional information about the
function signatures but the C++ parser is not accurate and misses scope
information.  gtags can be used with the ctags parser which is effective
but looses the primary advantage of gtags being able to provide function
signatures so support has been switched-off by default.

ebrowse does not appear to be very useful for traversing the OpenFOAM
class tree and the support has been switched-off by default.
2016-11-09 11:07:29 +00:00
b048cacc7b ENH: robuster handling of system or central installation (issue #290)
- Follow similar pattern as per boost/CGAL with the '*-none' to disable,
  and '*-system' for system installations.

  Also support central non-ThirdParty installations by specifying the
  version as "*-system", but also providing the fully qualified
  *_ARCH_PATH too.

--
ENH: Verify label and scalar sizes used in the metis header.

- ensure they match with expected values, which can be obtained via
  the OpenFOAM definitions for WM_LABEL_SIZE and WM_PRECISION_OPTION
2016-11-09 11:10:53 +01:00
66678267dc Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-09 09:24:15 +00:00
6be5816815 STYLE: snappyHexMeshDict: duplicate information. Fixes #286. 2016-11-09 09:23:46 +00:00
b06c4280c7 Revert "twoPhaseEulerFoam::EEqns: Updated pressure-work"
This reverts commit f7996e45a0.
2016-11-09 08:44:36 +00:00
0c02a265a2 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-08 14:37:55 +00:00
a95bf1be58 COMP: Minor edit to avoid compiler warning 2016-11-08 14:37:39 +00:00
407a47572e ENH: thermoCoupleProbes - store properties under FO name to avoid clashes with other instances 2016-11-08 14:37:01 +00:00
57d81c179c BUG: runTimePostProcessing - updated due to changes in stateFunctionObject 2016-11-08 14:36:14 +00:00
f7996e45a0 twoPhaseEulerFoam::EEqns: Updated pressure-work
See commit b5206472b5
2016-11-07 23:14:13 +00:00
cb872a90af Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-07 14:25:55 +00:00
9d63e7f78c ENH: cloudSet: report missing samples. (fixes #228) 2016-11-07 14:15:27 +00:00
6ef91c9489 ENH: cloudSet: report missing samples. (fixes #22) 2016-11-07 14:15:27 +00:00
a20a17f54b Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-07 09:29:36 +00:00
82fd902b3e ENH: snappyHexMeshDict: fix comment 2016-11-07 09:29:22 +00:00
a06cef31fa functionObjects::yPlus: Call read() in constructor to set base-class controls
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2320
2016-11-06 10:31:07 +00:00
da3deb60c8 kOmegaSSTBase: Corrected read() to re-read the base-class settings
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2318
2016-11-05 23:25:58 +00:00
74cfb6bf34 PVblockMeshReader: Remove old vertex labels on refresh 2016-11-05 21:41:32 +00:00
fe415ff8f7 Cloud: Added 'td.switchProcessor' check to processor transfer logic
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2315
2016-11-05 21:16:22 +00:00
fb95a08e20 indexedOctree: Corrected comment
Resolves bug-report http://bugs.openfoam.org/view.php?id=2319
2016-11-05 21:00:16 +00:00
c9a8ff349f foamTags: Changed ectags -> ctags-exuberant
ctags-exuberant is now the more common name for the exuberant ctags
program.

Commented-out gtags as it is not commonly available.
2016-11-05 18:31:19 +00:00
0ed96603d4 driftFluxFoam: Corrected Udm BCs
Added 'READ_IF_PRESENT' option to support overriding of the default BCs
for complex problems requiring special treatment of Udm at boundaries.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2317
2016-11-05 18:17:24 +00:00
a21c3d6332 PVblockMeshReader: Added "Refresh" button to update the blockMesh
Reconstructs the blockMesh and updates the display from the current
blockMeshDict so that any changes can viewed without exiting
paraFoam -block
2016-11-04 20:50:13 +00:00
1f2ba25184 STYLE: inconsistency in scotch, metis library locations (issue #290)
- Only reference the FOAM_EXT_LIBBIN locations when linking.
  The respective SCOTCH_ARCH_PATH/lib, METIS_ARCH_PATH/lib locations
  either do not exist, or are possibly inconsistent and won't be
  seen at run-time anyhow.

- Incorporate decompose/metisDecomp/Allwmake into the top-level
  decompose/Allwmake
2016-11-04 20:01:44 +01:00
3ab919d407 paraFoam -block: Added support for vertex and block names
Patch contributed by Mattijs Janssens
2016-11-04 17:29:02 +00:00
7781656347 pointConstraint: Added constrainDisplacement
which directly applies the constraint to the displacement without
external tensor ops.

Patch contributed by Mattijs Janssens
2016-11-04 17:13:04 +00:00
9efe94407f foamLog: Added clockTime
Patch contributed by Paul Edwards, Intel
2016-11-04 14:33:47 +00:00
535831422e etc/bashrc: Added support for sourcing etc/bashrc with relative path
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2310
2016-11-04 13:12:30 +00:00
91d5efdc38 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-04 12:28:32 +00:00
78964897ce BUG: readFields function object - corrected reading of fields from file. Fixes #289 2016-11-04 12:28:28 +00:00
b5206472b5 reactingEulerFoam: Corrected and rationalized pressure-work
In many publications and Euler-Euler codes the pressure-work term in the
total enthalpy is stated and implemented as -alpha*dp/dt rather than the
conservative form derived from the total internal energy equation
-d(alpha*p)/dt.  In order for the enthalpy and internal energy equations
to be consistent this error/simplification propagates to the total
internal energy equation as a spurious additional term p*d(alpha)/dt
which is included in the OpenFOAM Euler-Euler solvers and causes
stability and conservation issues.

I have now re-derived the energy equations for multiphase flow from
first-principles and implemented in the reactingEulerFoam solvers the
correct conservative form of pressure-work in both the internal energy
and enthalpy equations.

Additionally an optional limiter may be applied to the pressure-work
term in either of the energy forms to avoid spurious fluctuations in the
phase temperature in regions where the phase-fraction -> 0.  This may
specified in the "thermophysicalProperties.<phase>" file, e.g.

pressureWorkAlphaLimit 1e-3;

which sets the pressure work term to 0 for phase-fractions below 1e-3.
2016-11-04 12:07:09 +00:00
e8f6099a1f COMP: Newer CGAL versions break current CGAL wmake rules (issue #288)
On 64-bit systems, the system installations of boost, cgal are under
lib64/. The behaviour for a ThirdParty build is mostly lib/ but this
can also be changing.

    Boost 1_62_0 and older build into 'lib/'.
    CGAL-4.9 builds into 'lib64/', older versions into 'lib/'.

Future-proof things by using lib$WM_COMPILER_LIB_ARCH for boost and
cgal build rules, and forcing these as build targets in the ThirdParty
makeCGAL as well.

--
STYLE: check for boost/version.hpp, CGAL/version.h instead their directories
2016-11-04 12:05:35 +01:00
55d3950b12 BUG: mesh reader does not preserve physicalType (closes #287)
- was incorrectly writing it as "startFace", which would be
  immediately overwritten anyhow

STYLE: avoid noisy output when adding the boundary 'type' in mesh conversion.
2016-11-03 15:09:22 +01:00
d2fc2c9edc ENH: improved infrastructure for writing VTK content
Note: classes are prefixed with 'foamVtk' instead of 'vtk' to avoid potential
conflicts with VTK itself.

foamVtkCore
~~~~~~~~~~~
- General very low-level functionality.

foamVtkPTraits
~~~~~~~~~~~~~~
- Traits type of functionality for VTK

foamVtkOutputOptions
~~~~~~~~~~~~~~~~~~~~
- The various format output options as a class that can be passed to
  formatters etc.

foamVtkCells
~~~~~~~~~~~~
- Intended for unifying vtkTopo and PV-Reader code in the future.
- Handles polyhedron decompose internally etc

foamVtkOutput, foamVtkFormatter
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Output helpers.
- Selector for individual formatters.
  Currently write all scalar data a 'float' (not 'double'). Can
  revisit this in the future.
2016-11-03 14:24:00 +01:00
82f9089b6a Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-03 12:12:35 +00:00
e3420b8a27 STYLE: Corrected typo 2016-11-03 12:12:27 +00:00
c4c57690c6 ENH: function objects - use Info on construction/read, and Log for all other messages 2016-11-03 12:11:20 +00:00
f0107b47f5 Merge branch 'ensight-preview' into 'develop'
Reworking of the ensight infrastructue and new ensightWrite function object



See merge request !70
2016-11-03 08:24:52 +00:00
15047d60ae Merge branch 'surface-area' into 'develop'
Provide common face area/normal support in PrimitivePatch

For polyPatch, both the faceAreas() and faceCentres() are masked by their subField equivalents.
Since there is no polyPatch method for magFaceAreas(), the PrimitivePatch method will be seen.

See merge request !74
2016-11-03 08:20:43 +00:00
c299b89ff8 STYLE: note new magSf() for use in surfaceNoise
- still needs to be applied and tested
2016-11-03 08:05:31 +01:00
54c40e7393 ENH: consistent output format for coupled geometry description (issue #278)
- In the corner case with few faces or points, the normal List I/O
  results in a compact list representation.

  This is less than desirable for external programs with simple
  line-based parsers.

- Write exactly the following

*Faces*
// Patch: <word-Region> <word-Patch>
<int-nFaces>
(
<int-faceSize>(<int> .. <int>)
...
)

*Points*
// Patch: <word-Region> <word-Patch>
<int-nPoints>
(
(<float-x> <float-y> <float-z>)
...
)

STYLE: only use serial form of createExternalCoupledPatchGeometry in tutorial

- less confusing for the user, who wonders why it is being done twice.
2016-11-02 17:26:25 +01:00
40252e99aa COMP: surfaceCheck: edgei vs edgeI 2016-11-02 14:55:13 +00:00
b6ecddedaf Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-02 14:48:25 +00:00
e8e0cfb416 ENH: mergeMeshes: in parallel make sure to put processor patches last. Fixes #239 2016-11-02 14:47:55 +00:00
880c136af4 ENH: applyBoundaryLayer - simplified setting of internal velocity field 2016-11-02 13:06:53 +00:00
ac49daaf4d Merge remote-tracking branch 'origin/develop' into develop
Conflicts:
	applications/utilities/surface/surfaceCheck/surfaceCheck.C
2016-11-02 12:06:05 +00:00
40ed1952c3 ENH: noise models - enable the use of environment variables in input file names. Fixes #285 2016-11-01 20:51:51 +00:00
b9d5e5bab1 STYLE: tutorial updates 2016-11-01 16:55:58 +00:00
74194c8391 STYLE: forces FO - updated to form that does not create a file ptr by default 2016-11-01 16:49:50 +00:00
d3f0cb33d9 BUG: forces FO - corrected after bugs introduced by last merging effort 2016-11-01 16:36:15 +00:00
b4b4e1a02c buoyantBoussinesqSimpleFoam: Correct laminar and turbulent Prandtl numberl
Resolves bug-report http://bugs.openfoam.org/view.php?id=2314
2016-11-01 16:07:52 +00:00
c10177fc6f BUG: writeFile - fileName was not set after last merge 2016-11-01 16:05:18 +00:00
7c76819f39 STYLE: re-applied Sergio's restructuring of interDyMFoam tutorials 2016-11-01 15:57:58 +00:00
f80e5164d8 ENH: Tutorial corrections 2016-11-01 15:40:27 +00:00
99151638e3 STYLE: moved les tut file to LES directory 2016-11-01 15:36:11 +00:00
40b8f365b5 STYLE: moved ras tut case to RAS directory 2016-11-01 15:33:19 +00:00
adaa14a8d9 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-11-01 14:46:56 +00:00
d709dce799 ENH: DEShybrid - exposed threshold limit for B function to user. Patch contributed by Marian Fuchs 2016-11-01 14:46:51 +00:00
902f333b06 BUG: VectorSpaceI.H - corrected invalid code 2016-11-01 14:41:11 +00:00
c499de996b ENH: Removed unused file 2016-11-01 14:29:20 +00:00
9a155dd0d5 blockMesh: Added edge projection
New functionality contributed by Mattijs Janssens:
  - new edge projection: projectCurve for use with new geometry
    'searchableCurve'
  - new tutorial 'pipe'
  - naming of vertices and blocks (see pipe tutorial). Including back
    substitution for error messages.
2016-10-31 18:00:15 +00:00
d8e9decdcc etc/config.csh/paraview: avoid ParaView_DIR: Undefined variable.
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2309
2016-10-31 15:49:19 +00:00
46b8bfb25f codedFunctionObject.H: Corrected docs
Resolved bug-report http://bugs.openfoam.org/view.php?id=2313
2016-10-31 15:45:59 +00:00
1b1b2ba2b7 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-31 08:43:38 -07:00
83028b94b9 ENH: Adding outletMappedUniformInletHeatAddition 2016-10-31 08:42:43 -07:00
c90e6ed48c ENH: surfaceCheck: additional printing. Additional self-intersect test with reverse ray 2016-10-31 15:41:34 +00:00
e0574c471f chemFoam: Construct fields on the mesh database for consistency 2016-10-31 13:15:48 +00:00
4bcb0d71ca ENH: Provide boundary field writeEntries method (issue #283)
- Write the individual contents, without a surrounding 'boundaryField'
  block. Similar to what dictionary::writeEntries() offers.
2016-10-31 13:09:54 +01:00
a6918385b7 reactingEulerFoam: Correct continuity error at the end of the energy correction loop
to handle the change in density generated by the temperature correction.
2016-10-31 08:23:51 +00:00
c836a017e6 ENH: allow specific restart time for field averaging (issue #282)
- Can currently have a periodic restart, but for simulations with a
  known run-up, it can be useful to have a specific time to restart
  the averaging.

- Note that the restartTime acts as a 'single-shot'. If the
  restartTime is already in the past when a simulation is started, it
  is ignored. If, during a simulation, the restartTime is crossed, it
  will be triggered and then set itself to be ignored in the future.
2016-10-31 08:26:06 +01:00
a05493db41 CONFIG: csh not unsetting old paraview/cmake environment (related to #281)
- On the first call, ParaView_DIR is unset and thus the clean-path
  fails with the warning "ParaView_DIR: Undefined variable."

  This looks messy, but is of no _major_ consequence since paraview
  doesn't need to be removed anyhow. The only slight risk is that the
  path to a third-party cmake might not be cleaned.

- Patch as per Bruno's suggestion.
2016-10-31 07:00:57 +01:00
18d2b2e0c8 etc/cshrc: Removed echo $FOAM_INST_DIR 2016-10-30 09:38:23 +00:00
429ca91216 etc/config: Removed references to gcc versions < 4.8
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2312
2016-10-30 00:01:48 +01:00
b844867112 BUG: etc/bashrc incorrect behaviour if sourced locally (issue #280)
- It is incorrect to prefix the assignment with an 'export' since this
  automatically marks the overall command as successful and circumvents
  the fallback.

  There is no simple way to have proper behaviour when sourced with a
  local directory path, but at least it now uses the fallback.

  It is still easy to wreak the mechanism with valid but confusing input.
  For example,

     ". /path/to/openfoam/etc/././bashrc"

  The only real certainty is that "${BASH_SOURCE%/*}"
  should point to the 'etc/' directory. In which case,

      cd ${BASH_SOURCE%/*}    # <- now in the etc/ directory
      pwd=$(pwd -P)           # <- fully-qualified path to etc/
      pwd=${pwd%/*/*}         # <- up two parent levels

  - This works with ". ./bashrc", but fails with ". bashrc"
    (probably not so common).
  - Con: The construct requires an additional sub-shell.
2016-10-28 16:48:30 +02:00
00939bcba9 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-28 14:56:16 +01:00
a224366c28 BUG: etc/bashrc - use \cd to avoid problem when cd is aliased. Fixes #280 2016-10-28 14:55:46 +01:00
be2a4319bd STYLE: rationalize tutorial CleanFunctions (related to issue #279)
- include cleanup of other postProcessing directories:
  * Ensight, EnSight, ensightWrite

- don't need to remove files that cleanSnappyFiles already removed:
  * 0/cellLevel 0/pointLevel

- bundle removal of constant/ items together:
  * constant/cellDecomposition constant/polyMesh constant/tetDualMesh
2016-10-28 13:23:13 +02:00
9ab0406b47 BUG: tutorial RunFunctions ignore non-standard decomposeParDict (issue #279) 2016-10-28 13:22:19 +02:00
a4ac4ac268 STYLE: Tutorial cleanup 2016-10-28 12:16:29 +01:00
f2ce1fa9ac twoPhaseEulerFoam::twoPhaseSystem: Ensure inlet flow of BOTH phases matches the BCs
Previously the inlet flow of phase 1 (the phase solved for) is corrected
to match the inlet specification for that phase.  However, if the second
phase is also constrained at inlets the inlet flux must also be
corrected to match the inlet specification.
2016-10-28 10:50:10 +01:00
aca0b1ca04 COMP: ensight writer compilation for 64-bit labels (issue #263)
GIT: added missing source file.

ENH: add tutorial example under incompressible/simpleFoam/motorBike
2016-10-28 11:49:05 +02:00
053b22a969 STYLE: incorrect project setting in etc/bashrc 2016-10-28 10:38:48 +02:00
19758c666f ENH: Adding lumpedMassWallTemperature BC and adding usage tutorial in buoyantPimpleFoam/hotRoom 2016-10-27 15:06:42 -07:00
aace62a1b8 Revert "VectorSpace: Added printing of out-of-range index"
This reverts commit d881d2afe6.
2016-10-27 20:57:10 +01:00
2ba5a7c3bc Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-27 08:50:38 -07:00
ccf3b9db13 BUG: Changing init for thermocouple FO. Changing radiation.correct in fireFoam to allow
correct case re-start
2016-10-27 08:49:47 -07:00
91459881a3 ENH: streamLineBase - set tracking velocity field name to U by default 2016-10-27 16:15:43 +01:00
99c62425a9 ENH: streamLineBase - set tracking velocity field name to U by default 2016-10-27 16:15:26 +01:00
b2ee629a94 BUG: removed oddness in pointer allocations (ensight parts).
- manifest in some parallel operations.

STYLE: update foamToEnsight, foamToEnsightParts to use C++ initializer_list

- avoid warning message when removing a non-existent directory (ensight output).
2016-10-27 15:11:30 +02:00
50b80aa1b8 MRG: Resolved git conflict 2016-10-27 10:06:35 +01:00
bc03c94f4e ENh: Adding clone member to sixDoFSolvers 2016-10-26 14:53:26 -07:00
d5a9fea36e Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-10-26 11:56:31 -07:00
f223e8c6f0 ENH: Changing radiation correct in YEEq.H in fireFoam.
Adding clone member functions to motion solvers
2016-10-26 11:45:57 -07:00
f4d80786eb Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-26 08:31:08 -07:00
aa0b3934b0 ENH: snappyHexMeshDict: improved comment 2016-10-26 16:03:41 +01:00
efb7cd84f3 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-10-26 15:55:24 +01:00
a992eafb9f Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-26 15:54:11 +01:00
5488298771 ENH: effectivenessHeatExchangerSource - calculate upstream average temperature by default 2016-10-26 15:54:03 +01:00
708bfda5cb MRG: Resolve conflict when merging branch merge-foundation 2016-10-26 15:48:39 +01:00
af81184ecf MRG: Resolve conflict with latest foundation merge 2016-10-26 15:37:15 +01:00
3b96a557e2 CONFIG: remove non-POSIX use of 'type' (issue #176)
- In the foundation version they introduced a construct to handle
  the transition from 'wmRefresh' as an alias to 'wmRefresh' as
  a shell function. This transition is unnecessary for OpenFOAM+
  since 1606 used wmREFRESH (not wmRefresh) as an alias.

  For portability it is important to avoid this non-POSIX
  "type -t". It causes issues with dash and with zsh
  (mentioned in issue #277).

        type -t dash  ->   -t: not found
        type -t zsh   ->  zsh: bad option: -t

Note: zsh users may still noticed other problems.
For example, the POSIX 'unset -f' normally has no output, but in zsh
it reports an error and has exit code 1 if the function was not
previously defined. Whereas in POSIX (including bash, dash) it only
returns non-zero if the name(s) could not be unset.
2016-10-26 12:14:11 +02:00
a375d6b2ed solidRegionDiffNo: Include the boundary faces in the calculation of the diffusion number
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2303
2016-10-25 18:33:59 +01:00
52d0289ee1 BUG: resolve some decomposeParDict problems (issues #60, #265).
- Cleanup/centralize handling of -decomposeParDict by relocating
  common code into argList. Ensures that all processes receive
  identical information about the -decomposeParDict opton.

- Only use alternative decomposeParDict for simpleFoam/motorBike
  tutorial so that this will be included in the test loop for snappy.

- Added Mattijs' fix for surfaceRedistributePar.
2016-10-25 18:19:19 +02:00
d881d2afe6 VectorSpace: Added printing of out-of-range index
Patch contributed by Mattijs Janssens
2016-10-25 17:08:11 +01:00
8a87558577 foamCleanPath: Changed sed delimiter from '@' to '|' to allow Email addresses
Patch contributed by Bruno Santos
http://bugs.openfoam.org/view.php?id=2306
2016-10-25 17:06:59 +01:00
3d5fb08693 ENH: provide separate geometry description per region/patch (issue #278)
- Also fixed bug noted in issue #269

- Previous implementation had all faces together, which made
  it difficult (impossible) for external applications to
  figure out which geometry was being referred to.

- Provide separate region/patches as follows:

    // Patch: <regionName> <patchName>

  For example,

    // Group: coupleGroup
    // Patch: heater minY
    8( ... )

  The region-name is always present, even if there is only one region.

- This change is a partial reversion to the behaviour in 2.4.x, except
  that we can now also handle multi-region geometries.

  Changing the leading comment from "# " to "// " facilitates parsing
  of the files with OpenFOAM itself if necessary.
2016-10-25 15:43:46 +02:00
8e2b13386b ENH: enable 'status=done' when finishing an externalCoupled FO
- This provides a mechanism for the external code to detect when
  OpenFOAM is done.

- Adjust tutorial to use the mechanism. Also test in parallel.
2016-10-25 15:43:27 +02:00
567e1f2dbf ENH: Tutorial update 2016-10-25 14:26:20 +01:00
85e2b7e94b BUG: thermoCoupleProbes - can only create the solver after setting the number of samples 2016-10-25 14:25:40 +01:00
196a4ea4e5 ENH: setTimeStep: adjust timestep for adjustableRunTime writeInterval. Fixes #268. 2016-10-24 13:07:51 +01:00
2f2fa53b09 ENH: thermoCoupleProbes - simplified initialisation 2016-10-21 17:02:07 +01:00
3c9e050d6e ENH: stateFunctionObject - separated dictionary access and updated api to return result status for retrieving properties 2016-10-21 17:01:35 +01:00
1b51b7743b blockMesh::projectEdge: Added support for point position adjustment
Re-positions points after projection to correct distribution

Patch contributed by Mattijs Janssens
2016-10-21 12:10:48 +01:00
eed875e1fa primitiveMeshEdges: Added support for edges with duplicate vertices
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2301
2016-10-21 12:08:18 +01:00
fb0b764466 STYLE: Documentation updates 2016-10-20 11:08:50 +01:00
bfaa9da93c SpalartAllmarasDES: Recalculate fv1 for the update of nut
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2292
2016-10-20 09:08:48 +01:00
2857e9512f ENH: propagate face area to sampling (issue #266)
- make top-level Sf(), magSf(), Cf() pure virtual since the
  sub-classes will always be providing the face/point storage,
  with either triSurface or MeshedSurface in the background
2016-10-20 08:58:27 +02:00
fb9f93dd7c ENH: propogate face area support into surface-type meshes (issue #266)
* MeshedSurface / surfMesh / triSurface

- use shorter method names similar to those from volume meshes:

      Sf(), magSf(), Cf()

  instead of the longer ones from PrimitivePatch:

      faceAreas(), magFaceAreas(), faceCentres()

- similar names throughout to ease switching between triSurface and
  MeshedSurface storage.
2016-10-20 08:36:02 +02:00
caba74dcfa ENH: add face area support into PrimitivePatch (issue #266) 2016-10-20 08:32:05 +02:00
95347013a8 ENH: function object clean-up 2016-10-19 15:28:55 +01:00
22dfcb7bc6 sixDoFSolvers::symplectic: Removed the restriction on outer iteration
Resolves bug-report http://bugs.openfoam.org/view.php?id=2297
2016-10-19 15:10:52 +01:00
4408d47075 MRG: Merged develop branch and resolved conflicts 2016-10-19 13:33:00 +01:00
fdf326f88c blockMesh: Update the curved-edge consistency checking
Loop over the edges of each block rather than the edgeList of the
topological mesh due to problems with calcEdges for blocks with repeated
point labels
2016-10-19 13:28:56 +01:00
e24917a7af Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-19 13:20:52 +01:00
a7bdbccaed STYLE: Corrected typo 2016-10-19 13:20:18 +01:00
509517e996 ENH: gmshToFoam: Updated for line entries 2016-10-19 13:20:02 +01:00
3c496ae4c7 ENH: noiseModel: Updated check for uniform time step size 2016-10-19 13:19:34 +01:00
9d21d5b55b Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-10-19 11:52:49 +01:00
b8bb55507e ENH: Coded fvOption - updated construction of the redirectFvOption to simplify user input 2016-10-19 11:52:00 +01:00
08d78d47ef blockMesh: Added checks for duplicate and unmatched curved-faces 2016-10-19 09:54:19 +01:00
175c7744c0 STYLE: adjust mergePoints to ease adoption of different list types (issue #250)
- A preliminary minor adjustment only.
2016-10-19 10:42:47 +02:00
7c10b89a56 Merge branch 'initialier_list-updates' into 'merge-foundation'
ENH: Support more C++11 initializer lists (issue #261)

DynamicList
-----------
  - construction, assignment and append

HashSet
-------
  - construction, insert, set.
  - assignment will use the implicit List constructor

hashedWordList
--------------
  - construction, assignment
  - additional sort() and uniq() methods.
  - Readonly access to HashTable information via lookup() method.
  - NB: could avoid 'const char**' constructors in the future


Some tests are included

See merge request !67
2016-10-18 19:31:45 +01:00
1967fd3dad ENH: Support more C++11 initializer lists (issue #261)
DynamicList
-----------
  - construction, assignment and append

HashSet
-------
  - construction, insert, set.
  - assignment will use the implicit List constructor

hashedWordList
--------------
  - construction, assignment
  - additional sort() and uniq() methods.
  - Readonly access to HashTable information via lookup() method.
  - NB: could avoid 'const char**' constructors in the future
2016-10-18 20:08:37 +02:00
d2b96d88da foamDictionary: Added '-diff <dict>' option
- Write differences with respect to the specified dictionary
    (or sub entry if -entry specified)

  - Write the differences with respect to a template dictionary:
      foamDictionary 0/U -diff $FOAM_ETC/templates/closedVolume/0/U

  - Write the differences in boundaryField with respect to a
    template dictionary:
      foamDictionary 0/U -diff $FOAM_ETC/templates/closedVolume/0/U \
        -entry boundaryField

Patch contributed by Mattijs Janssens
2016-10-18 18:23:24 +01:00
7a5dff9167 Merge branch 'endian_base64' into 'merge-foundation'
Common endian handling. Provide base64 output encoding.



See merge request !71
2016-10-18 17:05:18 +01:00
919c486871 blockMesh: Added check for duplicate curved-edge definitions 2016-10-18 15:18:52 +01:00
3773db53e9 blockMesh: Added projected vertices and edges
Patch contributed by Mattijs Janssens

    - Added projected vertices
    - Added projected edges
    - Change of blockEdges API (operate on list lambdas)
    - Change of blockFaces API (pass in blockDescriptor and blockFacei)
    - Added sphere7ProjectedEdges tutorial to demonstrate vertex and edge projection
2016-10-18 14:06:23 +01:00
b84618a3c8 blockMesh: Added check for curved-edge/block-edge consistency 2016-10-18 13:05:20 +01:00
03b5d5c108 BUG: foamCleanPath problem if path contains @ (closes #264)
- Can occur with some user names, or mounted paths.
  Resolve by using '?' for the separation character.

  Since '?' is a shell-glob, it is highly unlikely to occur appear in
  filenames.  Additionally, it is not a meta-character in standard sed,
  nor in the GNU extension (which uses '\?').
2016-10-18 09:52:37 +02:00
fe6ea956f7 COMP: compile issue with gcc-5.2 (closes #273)
- Superfluous #include "FieldFunctions.H" provokes warnings/errors
  with newer gcc.
2016-10-17 21:50:30 +02:00
cfe909d77b inletOutletTotalTemperature,waveTransmissiveFvPatchField: default psi -> thermo:psi
Resolves bug-report http://bugs.openfoam.org/view.php?id=2294
2016-10-17 19:12:55 +01:00
39c1722ec3 BUG: Corrected error from commit C45d092f when converting namespaces 2016-10-17 13:19:45 +01:00
4ee8ba4ae6 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-17 12:28:33 +01:00
82c3eed531 BUG: snappyHexMesh: findCellZoneTopo was copying same value but still setting
changed flag which caused infinite while loop. Background info:
- findCellZoneTopo tries to find for all named surface intersections
which side of the face is in the faceZone
- i.e. it tries to make the cellZone consistent with the faceZone
(to fix small problems)
- this had some logic to assign the neighbour cellZone to the owner cellZone
- which didn't check for the neighbour being the same value as the owner
- but still set a 'changed' flag which caused the loop to never end.
2016-10-17 12:25:03 +01:00
c4a4c38858 ENH: subTriSurfaceMesh: fixed comment 2016-10-17 12:24:11 +01:00
33d9b7e867 Add base64 encoding layer (issue #272)
- Can be attached to any currently open std::ostream.
2016-10-17 12:05:29 +02:00
2c06a905ab Cleanup endian support (closes #271)
- Place common code under OSspecific.

By including "endian.H", either one of WM_BIG_ENDIAN or WM_LITTLE_ENDIAN
will be defined.

Provides inline 32-bit and 64-bit byte swap routines that can be
used/re-used elsewhere.

The inplace memory swaps currently used by the VTK output are left for
the moment pending further cleanup of that code.
2016-10-17 12:02:01 +02:00
dccee2bae7 tutorials/mesh/blockMesh/sphere7: New 7-block sphere mesh example
Contributed by Georg Skillas
2016-10-16 15:14:26 +01:00
550206b5fd blockMesh::BSplineEdge: Updated #ifndef BSplineEdge_H to #ifndef blockEdges_BSplineEdge_H 2016-10-15 14:31:06 +01:00
2339d607ee blockMesh: Added support for run-time selectable methods to set the block vertex locations 2016-10-15 14:24:36 +01:00
d750eb4e5c GIT: remove vagabond files from compartmentFire tutorial 2016-10-14 10:26:20 +02:00
009203188f blockMesh: New experimental support for projecting block face point to geometric surfaces
For example, to mesh a sphere with a single block the geometry is defined in the
blockMeshDict as a searchableSurface:

    geometry
    {
        sphere
        {
            type searchableSphere;
            centre (0 0 0);
            radius 1;
        }
    }

The vertices, block topology and curved edges are defined in the usual
way, for example

    v 0.5773502;
    mv -0.5773502;

    a 0.7071067;
    ma -0.7071067;

    vertices
    (
        ($mv $mv $mv)
        ( $v $mv $mv)
        ( $v  $v $mv)
        ($mv  $v $mv)
        ($mv $mv  $v)
        ( $v $mv  $v)
        ( $v  $v  $v)
        ($mv  $v  $v)
    );

    blocks
    (
        hex (0 1 2 3 4 5 6 7) (10 10 10) simpleGrading (1 1 1)
    );

    edges
    (
        arc 0 1 (0 $ma $ma)
        arc 2 3 (0 $a $ma)
        arc 6 7 (0 $a $a)
        arc 4 5 (0 $ma $a)

        arc 0 3 ($ma 0 $ma)
        arc 1 2 ($a 0 $ma)
        arc 5 6 ($a 0 $a)
        arc 4 7 ($ma 0 $a)

        arc 0 4 ($ma $ma 0)
        arc 1 5 ($a $ma 0)
        arc 2 6 ($a $a 0)
        arc 3 7 ($ma $a 0)
    );

which will produce a mesh in which the block edges conform to the sphere
but the faces of the block lie somewhere between the original cube and
the spherical surface which is a consequence of the edge-based
transfinite interpolation.

Now the projection of the block faces to the geometry specified above
can also be specified:

    faces
    (
        project (0 4 7 3) sphere
        project (2 6 5 1) sphere
        project (1 5 4 0) sphere
        project (3 7 6 2) sphere
        project (0 3 2 1) sphere
        project (4 5 6 7) sphere
    );

which produces a mesh that actually conforms to the sphere.

See OpenFOAM-dev/tutorials/mesh/blockMesh/sphere

This functionality is experimental and will undergo further development
and generalization in the future to support more complex surfaces,
feature edge specification and extraction etc.  Please get involved if
you would like to see blockMesh become a more flexible block-structured
mesher.

Henry G. Weller, CFD Direct.
2016-10-13 15:05:24 +01:00
12d0707b84 foamCleanTutorials: Simplified cleaning the mesh by removing the constant/polyMesh directory 2016-10-13 15:02:32 +01:00
7edc2495e0 twoPhaseEulerFoam, reactingTwoPhaseEulerFoam: Corrected support for implicitPhasePressure with nAlphaCorr > 1
Resolves bug-report http://bugs.openfoam.org/view.php?id=2290
2016-10-12 18:43:18 +01:00
eb5e2c923c snappyHexMesh: Added support for scotch redistribution
Requires scotch-6.?.?
2016-10-12 16:28:26 +01:00
e08c9ab8b7 reactingTwoPhaseEulerFoam wallBoiling.* tutorials: only run start-up in test-mode 2016-10-11 08:44:36 +01:00
8dd18cc077 vtkPVblockMeshConvert: Updated to use the new blockDescriptor::edgesPointsWeights 2016-10-09 17:52:52 +01:00
e53520ecbf blockMesh::blockDescriptor: Generate the edge points and weights on demand 2016-10-09 15:16:41 +01:00
2997bfbdfd etc/config.*/unset: unset FOAM_ETC
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2285
2016-10-09 15:15:29 +01:00
42c2e6baca wmake/rules/General/transform: added filter for third-party paths
Resolves bug-report http://bugs.openfoam.org/view.php?id=2283
2016-10-09 15:14:19 +01:00
3ea71fb56a foamToTecplot360: Updated to use tmp.ref()
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2288
2016-10-09 15:13:50 +01:00
50b549f368 blockMesh: rationalizing class and member names 2016-10-08 19:48:39 +01:00
da70f6734a blockMesh: Simplify reading of curvedEdges 2016-10-07 20:31:36 +01:00
ec5eec3a27 Allrun modification for compartmentFire tutorial 2016-10-07 12:02:24 -07:00
d2c53f354e Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-10-07 11:57:29 -07:00
6a8948bb4f Changing permissions 2016-10-07 11:56:11 -07:00
be148fa44f File styles and permissions 2016-10-07 11:54:11 -07:00
97c0acd643 ENH: Adding compartmentFire and thermo pyrolysis model 2016-10-07 11:46:51 -07:00
53faca832d Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-10-07 10:20:45 -07:00
b9b2ac694a ENH: Adding eddyDissipationDiffusionModel, thermocouple probe and thermocoupleTestCase 2016-10-07 10:17:43 -07:00
91ed12d91c ENH: update nacaAirfoil tutorial to use prostar4 mesh
- Replaces prostar3 mesh format, which we no longer support.
- Update initial conditions to use regex and include file.
2016-10-07 19:11:50 +02:00
8f22c5d1ec movingWallVelocityFvPatchVectorField: Removed incorrect documentation concerning MRF
Resolves bug-report http://bugs.openfoam.org/view.php?id=2287
2016-10-07 17:38:17 +01:00
70be3aa189 foamDictionary: New '-remove' to remove a dictionary entry
Patch contributed by Mattijs Janssens
2016-10-07 17:35:39 +01:00
ba6f59a79e ENH: provide isParallel test in RunFunctions
- allows writing Allrun scripts that can be easily tested in
  serial or parallel
2016-10-07 18:00:00 +02:00
9ae5e37a63 ENH: residuals function object - store results for further processing 2016-10-07 14:21:00 +01:00
76742baf40 GIT: Resolved conflict 2016-10-07 12:27:03 +01:00
8ff2e8f14d BUG: Corrected assignment to reference object 2016-10-07 12:26:09 +01:00
9df2523ef5 Merge branch 'issue258-adjustment' into 'merge-foundation'
STYLE: reinstate targetType when building paraview modules (related to #258)

- potentially useful for static builds

See merge request !68
2016-10-07 11:02:41 +01:00
831cd15f03 Merge branch 'merge-preconvert' into 'merge-foundation'
Merge preconvert

Very basic cleanup of some of the mesh conversion infrastructure prior to binging in large pieces of code.

- Remove ancient samm, pro-am, prostar3 routines as being unused and unsupportable (since the original products ceased existence over 10 years ago).
- Open protected access to some meshReader bits, to help when implementing polyhedral readers.
- Drop meshReaders/meshWriters namespace, use fileFormats instead.
- Reorganize file-structure within src/conversion.

See merge request !69
2016-10-07 11:02:07 +01:00
3915942195 ENH: cleanup ensightParts to use updated infrastructure (issue #241).
- Use ensightCase for case writing.
  Rebase ensightPartCells/ensightPartFaces on
  ensightCells/ensightFaces routines.

- Greatly reduces code duplication potential source of errors.
2016-10-07 11:24:47 +02:00
9b3f36d593 STYLE: reinstate targetType when building paraview modules (related to #258)
- potentially useful for static builds
2016-10-07 10:51:32 +02:00
b92754311a reactingTwoPhaseEulerFoam::IATE: Added phaseChange source
to handle the effect of condensation and evaporation on bubble size
2016-10-07 09:34:35 +01:00
803f4e66c2 plane: Make constructors explicit
Resolves bug-report http://bugs.openfoam.org/view.php?id=2284
2016-10-06 14:20:59 +01:00
d6b404dba2 reactingTwoPhaseEulerFoam::IATE: Added wallBoiling sub-model
to handle the size of bubbles created by boiling.  To be used in
conjunction with the alphatWallBoilingWallFunction boundary condition.

The IATE variant of the wallBoiling tutorial case is provided to
demonstrate the functionality:

tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoilingIATE
2016-10-06 12:40:58 +01:00
749d68f888 Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation
Conflicts:
	src/mesh/snappyHexMesh/snappyHexMeshDriver/snappyLayerDriver.C
2016-10-05 17:58:13 +01:00
762a202810 BUG: snappyHexMesh: assing to boundaryField. Fixes #260. 2016-10-05 17:52:54 +01:00
07bbb1852e STYLE: Updated Doxygen comment markers 2016-10-05 15:16:12 +01:00
9ae7fd8725 BUG: corrected constructor 2016-10-05 15:15:55 +01:00
54da8848ba ENH: add in ensightWrite function object (issue # 241)
- Currently no writing of clouds.
  Managing restarts needs more thought.
2016-10-05 13:13:23 +02:00
b04a6a05e5 GIT: relocate ensight components to library locations 2016-10-05 13:13:12 +02:00
e57ca15bda ENH: complete reworking of foamToEnsight to make into a library (issue #241)
- eliminate ensightAsciiStream, ensightBinaryStream, ensightStream in
  favour of using ensightFile and ensightGeoFile classes throughout.

- encapsulate mesh-parts sorting with the ensightCells, ensightFaces
  class.

- handle of patches/faceZones entirely within ensightMesh for a lighter
  interaction with field output. Both faceZones and point fields need
  more testing to see if they behave properly for all cases.

- move some output functionality into its own namespace
  'ensightOutput', move into a library.

- use the ensightCase class to open new ensight output streams
  in the proper sub-directory locations.
2016-10-06 10:43:22 +02:00
e1240ece7b ENH: add ensightCase management to fileFormats
- part of generalizing the ensight infrastructure (issue #241)

- General bookkeeping when creating ensight files.
2016-10-05 12:59:24 +02:00
0d66ffcce8 twoPhaseEulerFoam: Corrected kineticTheory frictional stress at walls
Patch contributed by Juho Peltola, VTT

The new JohnsonJacksonSchaefferFrictionalStress model is included.

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2058
2016-10-05 09:27:28 +01:00
96d86ec6f1 tutorials/multiphase/reactingTwoPhaseEulerFoam: Initialize by first running without boiling
then restart with boiling.

Contributed by Juho Peltola, VTT
2016-10-04 16:39:49 +01:00
daf57eddf6 alphatWallBoilingWallFunctionFvPatchScalarField: Evaluate alphatConv_ outside loop to improve speed
Patch contributed by Juho Peltola
2016-10-04 16:37:32 +01:00
f8d8b3ad5e Merge branch 'issue258-merge-foundation' into 'merge-foundation'
BUG: paraview plugin not being built in merged version (closes #258)

change in configuration got missed

See merge request !66
2016-10-04 15:28:17 +01:00
68ad4c50b2 BUG: paraview plugin not being built in merged version (closes #258) 2016-10-04 15:58:24 +02:00
6823cb02ab Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-10-04 14:49:34 +01:00
58d16674a0 COMP: Corrected Clang-reported errors 2016-10-04 14:49:26 +01:00
a5fb96f124 Merge branch 'output-format' into 'merge-foundation'
Output format

Output changes (issues #253 , #254 , #255 , #256) as well as minor change (issue #257).
Usage of the new methods to be applied as a later patch.

See merge request !65
2016-10-04 10:28:29 +01:00
8016af3704 reactingTwoPhaseEulerFoam: Enhanced support for wall boiling
Contributed by Juho Peltola, VTT

Notable changes:

    1. The same wall function is now used for both phases, but user must
       specify phaseType ‘liquid’ or ‘vapor’

    2. Runtime selectable submodels for:
       - wall heat flux partitioning between the phases
       - nucleation site density
       - bubble departure frequency
       - bubble departure diameter

    3. An additional iteration loop for the wall boiling model in case
       the initial guess for the wall temperature proves to be poor.

The wallBoiling tutorial has been updated to demonstrate this new functionality.
2016-10-04 09:53:09 +01:00
7c106cd43e GIT: Resolved conflict 2016-10-04 09:45:46 +01:00
55c9238259 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-10-04 09:35:11 +01:00
35fc264a2e Merge branch 'feature-wallDistanceCalcInterval' into 'develop'
ENH: wallDist - added option to evaluate every XXX steps

Added functionality to update the wall distance every XXX steps

Note: only applies to movePoints() - topology change bypasses the update interval and triggers a re-calculation
Syntax:
```
wallDist
{
    method          ...
    updateInterval 5; // optional - default is 1
}
```

Test case: [mixerVesselAMI2D.tgz](/uploads/c0bee1decc0337018272f3566b6a4416/mixerVesselAMI2D.tgz)

See merge request !62
2016-10-04 08:58:05 +01:00
6c9622b356 Merge branch 'doxygen-style' into 'merge-foundation'
STYLE: minor adjustments to doxygen comments



See merge request !64
2016-10-04 08:45:37 +01:00
3e0e4532fd STYLE: minor adjustments to doxygen comments 2016-10-04 09:16:08 +02:00
6c3c2f1399 icpc rules: removed another unimportant warning 2016-10-04 08:10:28 +01:00
9c2892cd82 Removed #define __STDC_LIMIT_MACROS needed for C++ < 11
See http://bugs.openfoam.org/view.php?id=1474
2016-10-04 08:08:42 +01:00
8dc3bbe6fd ENH: remove unneeded lines in List binary output (issue #256)
Writing an empty list in binary results in unnecessary newlines that
make the output 'noisier'.

Old output
~~~~~~~~~~
ASCII
    someEmptyList___0();

Binary
    someEmptyList___
    0
    ;

Updated
~~~~~~~
ASCII
    someEmptyList___0();

Binary
    someEmptyList___0;
2016-10-04 08:40:55 +02:00
56787c8074 STYLE: extraneous UINT64_MIN macros (issue #257) 2016-10-03 17:20:14 +02:00
96c3a09024 ENH: provide direct access to raw pointer/reference from autoPtr (issue #252)
All of the access methods for autoPtr include validity checks and will
fail if the underlying point is NULL. In some cases, however, we'd
like to retain the automatic deletion mechanism, but still address a
nullptr. This is mostly for cases in which a file-stream should be
allocated, but only on the master process. For these cases we'd still
like to pass through and reference the underlying pointer (eg, to
obtain the correct method call) without tripping the pointer check
mechanism. If we attempt to use the ptr() method, the autoPtr memory
management is bypassed and we risk memory leaks.

Instead provide an alternative mechanism to obtain the raw underlying
pointers/references. Use rawPtr() and rawRef() for these potentially
useful, but also potentially dangerous, operations.
2016-10-03 16:38:19 +02:00
598da1ac25 ENH: surfaceCheck: added -outputThreshold option to manage file writing 2016-10-03 13:55:30 +01:00
6a489bd8a6 Updated header 2016-10-03 09:12:55 +01:00
48a2356953 fieldTypes: Using C++11 __VA_ARGS__ functionality created the FOR_ALL_FIELD_TYPES macro
This supports the abstraction of the set of fields from the field code
generation macros making it easier to change the set of fields supported
by OpenFOAM.  This functionality is demonstrated in the updated
fvPatchFields macros and will be applied to the rest of the field code
generation macros in the future.
2016-10-03 09:08:01 +01:00
182f0a72ae MRG: Incremental foundation merge 2016-10-03 08:27:06 +01:00
3df66b25ec STYLE: minor updates 2016-10-03 08:24:22 +01:00
dd31eb9e6e ENH: Adding autoMap and rMap tp greyDiffusiveViewFactorFixedValueFvPatchScalarField 2016-09-30 11:03:10 -07:00
3f4f05b6e0 Map, SortableList: Added constructors from and assignment to initializer list
Patch based on contribution from Mattijs Janssens
Resolves http://bugs.openfoam.org/view.php?id=2276
2016-09-30 18:49:38 +01:00
ec9883f389 Field: Added constructor from UIndirectList
Patch contributed by Mattijs Janssens
2016-09-30 18:48:26 +01:00
6a3d6e52ea Merge branch 'adjust-config-foundation-merge' into 'merge-foundation'
Adjust config foundation merge

Rationalize config files, foamy build, tutorials.

See merge request !63
2016-09-30 17:06:34 +01:00
22a7a70256 Merge remote-tracking branch 'origin/merge-foundation' into adjust-config-foundation-merge 2016-09-30 17:50:20 +02:00
4bdf712b35 triangle storage: Return barycentric coordinates as FixedList instead of List
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2278
2016-09-30 16:22:55 +01:00
e98e372f8e ENH: Tutorial updates 2016-09-30 15:31:35 +01:00
54042b08df ENH: Function objects - first pass at updating read functionality
Note: should be using the result of the parent::read(dict) when
deciding whether to read local entries...
2016-09-30 13:24:58 +01:00
839f14afcd ENH: Code clean-up 2016-09-30 12:30:02 +01:00
64560defc5 ENH: wallDist - suppress calc if updateInterval is zero 2016-09-30 11:47:38 +01:00
e072a2be33 ENH: add -noZero option for foamToEnsight* conversion
- The zero directory is incomplete, skip these entries.
2016-09-30 12:44:00 +02:00
bd0e982d99 MRG: Initial commit after latest Foundation merge 2016-09-30 11:16:28 +01:00
1e00bd7f45 GIT: resolve merge errors to ddt2, zeroGradient functionObjects
- the function objects are from issue #224 and issue #235
2016-09-30 11:26:58 +02:00
3c86995198 COMP: remove boost/mpfr/gmp linkage for foamyMesh components.
- CGAL itself includes its library dependencies, we only need to
  provide the -L... option to the proper ThirdParty locations.

  Should help improve general build robustness.
2016-09-30 17:00:05 +02:00
f3888f0a2a Merge branch 'merge-foundation' of develop.openfoam.com:Development/OpenFOAM-plus into merge-foundation 2016-09-29 16:24:12 +01:00
60d7a71eaf STYLE: forceCoeffs - minor code updates 2016-09-29 16:24:08 +01:00
aa78b03011 ENH: functionObjects - do not add to list if error on read 2016-09-29 16:19:15 +01:00
6d380dddf6 ENH: Updated kOmegaSST family of models 2016-09-29 11:40:30 +01:00
84683b5f90 CONFIG: remove foundation use of FOAMY_HEX_MESH control.
- instead we use the CGAL settings directly since they have the
  same option of (version | system | none)

- may wish to review this again in the future.
2016-09-29 12:36:27 +02:00
6645d6d1cd STYLE: Added header documentation to function 2016-09-29 10:30:30 +01:00
5c921caa55 fvOptions: Corrected docs: 'fieldName' -> 'fields'
Resolves bug-report http://bugs.openfoam.org/view.php?id=2273
2016-09-28 19:42:07 +01:00
3c790e2316 Correcting Typo in SolarLoad radiation model 2016-09-28 10:42:21 -07:00
361ed6420d Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-09-28 09:06:35 -07:00
5c4bd557cb ENH: wallDist - added option to evaluate every XXX steps 2016-09-28 16:59:57 +01:00
ee5251a7bb keep bas 2016-09-28 08:54:41 -07:00
95c74f9b93 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-09-28 12:26:58 +01:00
1c2aadb8d8 ENH: distributedTriSurfaceMesh: bail out if getting stuck due to precision errors 2016-09-28 12:26:23 +01:00
6d7ff59fc8 ENH: provide refOrNull method for autoPtr.
- Normally use '()' to deference. This has extra safety and issues a
  fatal error if the underlying pointer is not valid.

  However, in some cases we are happy with getting a null reference.
  The refOrNull() method returns the reference without any checking.

  Usage example:

      autoPtr<OFstream> osPtr;
      if (Pstream::master())
      {
          osPtr.reset(new OFstream(...));
      }
      writeViaMaster(osPtr.refOrNull());

      - The writeViaMaster() call takes an OFstream reference,
        but this is only used directly on the master.
        The slaves will pass things through to the master.
2016-09-28 11:26:42 +02:00
3dbd39146c STYLE: consistency updates 2016-09-27 15:17:55 +01:00
df9d406816 ENH: add in code for ensightCells, ensightFaces
- intended as a base for various ensight-related handling
2016-09-27 13:38:43 +02:00
bbec683e42 ENH: provide list of enums for NamedEnum
- can be used to loop over all enumerations in the order of definition.
2016-09-27 12:40:17 +02:00
c9cf232a02 ENH: add some convenience methods in ensightFile, ensightGeoFile
- Some commonly used write methods that are independent of
  the calling context (ie, 2D/3D data, geometry, fields)

- Provide singleton null() for ensightFile, ensightGeoFile.
  Can be used for MPI slaves that need a file reference for their
  methods, but will never write to it, but it is also reasonable
  to use an autoPtr with rawRef() for that as well.
2016-09-27 10:08:07 +02:00
405210a4f2 STYLE: relocate commonly used ensight components to fileFormats
- use explicit names within ensightPTraits
2016-09-27 09:02:35 +02:00
89d9fd1550 ENH: Tutorial updates 2016-09-26 13:00:49 +01:00
47eb24bed5 GIT: Resolved conflicts arising from merge with develop branch 2016-09-26 10:57:34 +01:00
ad1e798293 ENH: Initial testing updates 2016-09-26 09:28:31 +01:00
ba249f8e76 STYLE: minor adjustment to echoed information 2016-09-26 08:02:03 +02:00
3c935ca89e Fix tensor names in foamToEnsightParts case file (fixes #243) 2016-09-26 07:41:02 +02:00
025791559d blockMesh: Added printing of the block description to the '-help' output
blockMesh -help

Usage: blockMesh [OPTIONS]
options:
  -blockTopology    write block edges and centres as .obj files
  -case <dir>       specify alternate case directory, default is the cwd
  -dict <file>      specify alternative dictionary for the blockMesh description
  -noFunctionObjects
                    do not execute functionObjects
  -region <name>    specify alternative mesh region
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

Block description

  For a given block, the correspondence between the ordering of
  vertex labels and face labels is shown below.
  For vertex numbering in the sequence 0 to 7 (block, centre):
    faces 0 (f0) and 1 are left and right, respectively;
    faces 2 and 3 are bottom and top;
    and faces 4 and 5 are front the back:

           4 ---- 5
      f3   |\     |\   f5
      |    | 7 ---- 6   \
      |    0 |--- 1 |    \
      |     \|     \|    f4
      f2     3 ---- 2

            f0 ----- f1

Using: OpenFOAM-dev (see www.OpenFOAM.org)
Build: dev-dc59c63351e7
2016-09-25 20:05:12 +01:00
abb4d67134 pre-commit-hook: Added checks for multi-level template parameters and 'NULL'
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2267

   1. Spaced ending of multi-level template parameters are not allowed, such as:

       List<List<scalar> >

     which instead should be:

       List<List<scalar>>

   2. The use of the 'NULL' macro should be replaced by 'nullptr'
2016-09-25 18:43:50 +01:00
a2a6fedf9f blockMesh::blockDescriptor: Added block indexing description 2016-09-25 18:38:31 +01:00
1649b57a40 processorFvPatchField: If the value is not supplied set to the internal field 2016-09-25 18:38:06 +01:00
dc59c63351 processorFvPatchField: Reinstate 'value' as an optional entry 2016-09-25 16:54:20 +01:00
fdece9b2ce tutorials/incompressible/shallowWaterFoam/squareBump/.gmtcommands4: deleted
Resolves bug-report http://bugs.openfoam.org/view.php?id=2268
2016-09-25 16:53:37 +01:00
b6feaea53b fvPatchFields: Constructors from dictionary now call the corresponding constructor of the fvPatchField base-class
to ensure 'patchType' is set as specified.

Required substantial change to the organization of the reading of the
'value' entry requiring careful testing and there may be some residual
issues remaining.  Please report any problems with the reading and
initialization of patch fields.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2266
2016-09-25 09:11:53 +01:00
93530f1747 blockMesh: Added support for (<block> <face>) specification of patch faces
e.g. for the cavity tutorial the moving wall patch can be specified in
terms of the block vertices as before:

boundary
(
    movingWall
    {
        type wall;
        faces
        (
            (3 7 6 2)
        );
    }
    .
    .
    .

or the new specification of the face as block 0, block face 3:

boundary
(
    movingWall
    {
        type wall;
        faces
        (
            (0 3)
        );
    }
2016-09-24 08:40:13 +01:00
cff8efb98b ENH: reduce startup time for foamToVTK conversion
- Similar to ensight converters (issue #240),
  improve speed for detection of lagrangian clouds.

- provide a -noLagrangian option for symmetry
2016-09-23 18:45:06 +02:00
1fbcb686ff STYLE: Consistency updates 2016-09-23 16:52:46 +01:00
88ca081c8c ENH: reduce startup time for ensight conversion (issue #240).
- Less looping when detecting lagrangian clouds and their fields.

- Avoid using Time::setTime() and IOobjectList in tight loops.
  They both kill performance immensely.

ENH: provide a -noLagrangian option to foamToEnsight and foamToEnsightParts
for even more control.
2016-09-23 17:45:47 +02:00
b9940cbbb1 COMP: Multiple changes - first clean build after latest merge - UNTESTED 2016-09-23 15:36:53 +01:00
3503c872a5 STYLE: add OpenFOAM version to ensight geom file description.
- More informative than a horizonal line, can help when debugging.

STYLE: remove unused write field methods from ensightParts
2016-09-23 14:53:01 +02:00
06699f17f5 BUG: ensight output failing with dimensioned field (fixes #244)
- The new field needs initialization with a dimensioned<Type> not just
  the dimensionSet.

- The new field was also incorrectly being registered, which could
  cause issues later.
2016-09-23 13:13:12 +02:00
3c25f26aab BUG: incorrect symmTensor order for some ensight output (fixes #243)
- affects foamToEnsightParts, sampled surfaces

- Use ensightPTraits mechanism throughout to avoid this issue
2016-09-23 09:10:57 +02:00
f066a9b54e Updated template formatting
Resolves bug-report http://bugs.openfoam.org/view.php?id=2264
2016-09-22 21:03:30 +01:00
447cdc2098 globalMeshData: Revert NULL -> nullptr 2016-09-22 14:22:26 +01:00
c0f841e4f7 globalIndexAndTransform: Support any number of transforms but no more than 3 per point
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=1815
2016-09-22 14:10:45 +01:00
40f8709488 wmake: export WM_SCHEDULER from sub-shell for non-POSIX bash compliance 2016-09-22 08:34:15 +01:00
9e1e9011a5 decomposePar: Corrected construction of cloud for processors
Resolves bug-report http://bugs.openfoam.org/view.php?id=2239
2016-09-21 17:19:58 +01:00
0c168c43fa ENH: improve startup time for foamToEnsight conversion (issue #240).
Old code:
    Found 10990 time steps
    Search for moving mesh ... no moving mesh detected.
    Startup in 329.09 s

Updated:
    Found 10990 time steps
    Search for moving mesh ... no moving mesh detected.
    Startup in 1.6 s

- Cause was checking "polyMesh/points" via an IOobject.
  Short-circuit with a check for a polyMesh/ directory first.

  Limit the check to the master-node as well to further reduce
  load on the file-system.

------------------------------

ENH: improve per-step conversion times for foamToEnsight.

Old code:
    Converting 11001 time steps
    Time [0] = 0       Wrote in 1.53 s
    Time [1] = 1       Wrote in 1.52 s
    ...
    Time [100] = 100   Elapsed time 205.35 s

Updated:
    Converting 11001 time steps
    Time [0] = 0       Wrote in 1.4 s
    Time [1] = 1       Wrote in 0.07 s
    ...
    Time [100] = 100   Elapsed time 42.4 s

- Speedup by hashing test results from the first conversion step
  instead of checking each time.

  Check data on all nodes to avoid problems with incomplete writes.

------------------------------

BUG: moving mesh detection failed for foamToEnsightParts

- adjusted to agree with updated foamToEnsight

------------------------------

Note:

- foamToEnsightParts (serial) still has about twice the throughput of
  foamToEnsight.
2016-09-21 18:15:19 +02:00
481f8e5b97 linearUpwind: Simplified the vector specialization 2016-09-21 11:09:59 +01:00
bd0b363292 linearUpwind: Specialize for volVectorField to support cached gradients 2016-09-21 09:50:49 +01:00
1d08519d6e linearUpwind: Evaluate the gradient of each component of the field to provide support all field types
Also reduces peak-storage as it now generates a volVectorField for each component
rather than the gradient of the field type.
2016-09-20 21:34:47 +01:00
9da9a78cee turbulentTransportModels: Add new Maxwell model 2016-09-20 21:11:41 +01:00
1e94682f24 tutorials: Renamed sub-directories ras -> RAS and les -> LES 2016-09-20 19:03:40 +01:00
bb3c0c3593 Maxwell model for viscoelasticity using the upper-convected time
derivative of the stress tensor.  See
http://en.wikipedia.org/wiki/Upper-convected_Maxwell_model

The model includes an additional viscosity (nu) from the transport
model from which it is instantiated, which makes it equivalent to the
Oldroyd-B model for the case of an incompressible transport model.
See https://en.wikipedia.org/wiki/Oldroyd-B_model
2016-09-20 18:38:15 +01:00
6baa2aaf58 Organisation of pimpleFoam tutorials into categories of turbulence modelling 2016-09-20 18:24:09 +01:00
6c56d61846 ENH: fvc: instantiating 2D volVectorField 2016-09-20 17:07:30 +01:00
6b42dbae41 TurbulenceModels: Created a general base-class and selection mechanism for laminar stress models
Renamed the original 'laminar' model to 'Stokes' to indicate it is a
linear stress model supporting both Newtonian and non-Newtonian
viscosity.

This general framework will support linear, non-linear, visco-elastic
etc. laminar transport models.

For backward compatibility the 'Stokes' laminar stress model can be
selected either the original 'laminar' 'simulationType'
specification in turbulenceProperties:

    simulationType laminar;

or using the new more general 'laminarModel' specification:

    simulationType laminar;

    laminar
    {
        laminarModel        Stokes;
    }

which allows other laminar stress models to be selected.
2016-09-20 15:05:43 +01:00
49d3b6eae9 foamList: Added missing -I$(LIB_SRC)/meshTools/lnInclude needed for recent changes to AMI 2016-09-20 14:51:13 +01:00
e468d1ecc9 reactingParcelFilmFoam: Corrected support for -postProcess option 2016-09-20 14:50:41 +01:00
9fbd612672 GIT: Initial state after latest Foundation merge 2016-09-20 14:49:08 +01:00
19d4355387 Merge branch 'Fix_GL_224' into 'develop'
BUG: output field name instead of field (fixes #224)



See merge request !59
2016-09-20 10:53:54 +01:00
4dc06c656d BUG: output field name instead of field (fixes #224) 2016-09-20 15:15:19 +05:30
b32bd3f295 solvers: Moved createRDeltaT.H into createFields.H so that it is available with the -postProcess option
Required to support LTS with the -postProcess option with sub-models dependent on ddt
terms during construction, in particular reactingTwoPhaseEulerFoam.
2016-09-19 22:08:39 +01:00
3aa78f2bf3 blockMesh: Added block face orientation checks to aid debugging
Individual inward-pointing faces are checked and if all faces are
inward-pointing the block is inside-out.  These errors are fatal and the
message indicates which block the error occurs in and where in the
blockMeshDict the block is defined.
2016-09-19 07:52:42 +01:00
fd2ac09c4e mapFields: reset the FOAM_CASE environment variable
Patch proveded by Alexey Matveichev
Resolves bug-report http://bugs.openfoam.org/view.php?id=2229
2016-09-17 14:53:15 +01:00
91c8c053a9 setInitialMultiRegionDeltaT: update to be consistent with the standard setInitialDeltaT
Resolves bug-report http://bugs.openfoam.org/bug_change_status_page.php
2016-09-16 17:39:50 +01:00
899fe81eba PatchToPatchInterpolate: Update to use the tmp ref() non-const access function
Resolves bug-report http://bugs.openfoam.org/view.php?id=2248
2016-09-16 14:49:50 +01:00
b4d83b8f83 ENH: more flexible selection/naming for ddt2 FO (issue #224)
- bugfix (empty patches), and added detection of steady-state
  scheme.

Caveat: when called via execFlowFunctionObjects will always produce a
  zero field, since the oldTime field is not available for this mode.
2016-09-16 14:49:47 +02:00
3008d80bc7 ENH: runTime calculation of zeroGradient volume fields (issue #235)
Extrapolate internal field to walls for post-processing.
Uses as new syntax for handling the naming of multiple fields.

The input fields are selected via a wordReList.
For example,

    fields      (U "(T|k|epsilon|omega)");

The names of the resulting output fields use placeholder tokens for
flexibility. For example,

    result      zeroGradient(@@);

The '@@' placeholder is replaced by the name of the input field.
Eg,
    fields      (U T);
    result      zeroGradient(@@);
->  zeroGradient(U), zeroGradient(T)

Or,
    fields      (U T);
    result      @@nearWall;
->  UnearWall, TnearWall

NOTE:
    The function object will skip over fields that only have
    processor, empty, zeroGradient patches. The operation does not
    make much sense for these, and it avoids inadvertently
    re-processing fields twice.
2016-09-16 21:33:40 +02:00
7cc35abc3a GAMGAgglomeration: corrected continueAgglomerating
Patch provided by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2226
2016-09-16 11:10:03 +01:00
f281477d85 rigidBodyMotion: Change the transform averaging to use approximate inverse-distance weighting
Now works correctly for an arbitrary number of bodies
Resolves bug-report http://bugs.openfoam.org/view.php?id=2211
2016-09-14 14:14:14 +01:00
d3d693e17c ENH: runTime calculation of (dp/dt)^2 - issue #224
- implemented using magSqr() instead of sqr().
  For scalar fields they are the same, but can be useful
  if this function object is extended for more field types.
2016-09-14 14:02:40 +02:00
8dc78d188a rigidBodyMeshMotionSolver: experimental nDoF mesh-motion solver supporting the displacement-based elliptic solvers
Specification for the tutorials/multiphase/interDyMFoam/ras/floatingObject case:

dynamicFvMesh       dynamicMotionSolverFvMesh;

motionSolverLibs   ("librigidBodyMeshMotion.so" "libfvMotionSolvers.so");

solver             rigidBodyMotionSolver;

rigidBodyMotionSolverCoeffs
{
    report          on;

    meshSolver
    {
        solver displacementLaplacian;

        displacementLaplacianCoeffs
        {
            diffusivity inverseDistance (floatingObject);
        }
    }
.
.
.
2016-09-14 09:59:02 +01:00
e75d811b7d MGridGenGAMGAgglomeration: Update call to continueAgglomerating
Resolves bug-report http://bugs.openfoam.org/view.php?id=2244
2016-09-14 09:41:03 +01:00
9de4a75813 ENH: expand data mask for foamToEnsight (issue #231)
- Default is a width of 8 characters, but this can be extended up to 31
  characters via the '-width' command-line option.

- Now use a similar structure as foamToEnsightParts for the masking.
  This reduces the clutter within the directory, makes it easier to
  selectively delete some time steps (using shell commands).

- Added in a "time" information data in each sub-directory to
  make it possible to reconstruct the case file with an external
  script.

- Conversion of cloud data should now also work in parallel
  (may need more testing).

- Support binary output for cloud data.

- Better avoidance of illegal ensight variable names.
  But still partially incomplete (due to patch fields).

==================================================
Example of NEW file structure:

    EnSight/verticalChannel.case        # case name
    EnSight/geometry                    # for non-moving geometry

    EnSight/data/                       # time-varying data
    EnSight/data/00000000/
    EnSight/data/00000001/
    ...

  Fields are stored by name within the data/********/ directories:

    EnSight/data/00000001/time          # human-readable time info
    EnSight/data/00000001/U
    EnSight/data/00000001/p
    ...
    EnSight/data/00000001/geometry      # for moving geometry

  Clouds are stored at the next sub-directory level:

    EnSight/data/00000001/lagrangian/<cloudName>/positions
    EnSight/data/00000001/lagrangian/<cloudName>/U
    ...

==================================================
The old structure was significantly more cluttered:

    EnSight/verticalChannel.case
    EnSight/verticalChannel.0000.mesh
    EnSight/verticalChannel.0001.p
    EnSight/verticalChannel.0001.<cloudName>
    EnSight/verticalChannel.0001.<cloudName>.U

==================================================
2016-09-13 18:26:00 +02:00
d56924624b COMP: CGAL rules should use lib64/ (fixes #234)
- 64-bit builds of gcc/mpfr/gmp use lib64/ for their installation path.
  Use this for the wmake rules as well.
2016-09-13 08:58:00 +02:00
04300070cf BUG: metisDecomp compile failure for WM_DP (closes #232)
- spurious use of floatScalar instead of scalar for processor weights.

STYLE: partially updated dummy metis.h to reflect metis-5.1.0 API
2016-09-13 08:51:03 +02:00
b3e5224753 GAMGSolverSolve: Replace PBiCG with PBiCGStab to solve the coarsest-level of asymmetric matrices 2016-09-10 16:44:01 +01:00
5c1a647092 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-09-09 21:49:06 +01:00
34928b7c82 reactingEulerFoam/interfacialModels/dragModels: Corrected file permissions 2016-09-09 21:48:29 +01:00
b5e263be0d foamEtcFile: replaced redundant package directory name 2016-09-09 20:00:26 +01:00
86ccbca390 combustionModels/FSD: Corrected
Renamed 'omega' to 'FSDomega' to avoid a clash with the k-omega
turbulence models.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2237
2016-09-09 16:23:28 +01:00
8e37aa0a37 renumberMethods: Added missing .C file for structuredRenumber 2016-09-09 14:54:12 +01:00
0a1300d882 wmake: Updated '-q' option to work on Ubuntu and other 'dash'-based GNU/Linux distributions 2016-09-09 14:53:10 +01:00
4fcdb0b4e4 codedFvOption: Added cellSet support
Patch provided by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2240
2016-09-09 12:29:06 +01:00
cb1a012b66 structuredRenumber: Corrected to run in parallel
Patch contributed by Mattijs Janssens
2016-09-09 12:20:25 +01:00
8e0981d9ed functionObjectList::readFunctionObject: Added support for region specification
Now the postProcess utility '-region' option works correctly, e.g. for
the chtMultiRegionSimpleFoam/heatExchanger case

postProcess -region air -func "mag(U)"

calculates 'mag(U)' for all the time steps in region 'air'.
2016-09-09 11:01:37 +01:00
4ea1613653 Merge branch 'master' into develop 2016-09-08 12:00:46 +01:00
360ab50ed6 tutorials/multiphase/interFoam/ras/weirOverflow: Updated to improve robustness
Resolves bug-report http://bugs.openfoam.org/view.php?id=2236
2016-09-07 14:05:37 +01:00
b2694847d6 STYLE: PrimitivePatch: undefined function 2016-09-07 12:40:35 +01:00
ae9643e181 ENH: snappyHexMesh: combine previous zone based algorithm with v3+ one.
Fixes #66.
2016-09-07 12:38:59 +01:00
4dcbb32d24 BUG: runTimePostProcessing - corrected surface visualisation caused by regression update/bug 2016-09-07 10:02:02 +01:00
03cb76a213 BUG: Non-const dereferencing of tmp in fvc:dt2dt2 (closes #227) 2016-09-07 09:33:26 +02:00
17f0aa1db8 STYLE: propogate WM_CC for CMake (fixes #226)
- reported by Bruno
2016-09-06 16:17:20 +02:00
99efe5f8d8 BUG: triSurface IO operators are asymmetrical (fixed #225)
- Also reported as http://bugs.openfoam.org/view.php?id=2188
2016-09-06 14:57:40 +02:00
29d5a10f97 ENH: add stream operators for MeshedSurface, UnsortedMeshedSurface
- add corrsponding testing into surfaceMeshConvertTesting too
2016-09-06 14:45:44 +02:00
427f2c65b9 GAMGAgglomeration: Add support for nCellsInCoarsestLevel = 1 and better agglomeration termination
Patch provided by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2226
2016-09-06 13:29:05 +01:00
41eeaaede4 algebraicPairGAMGAgglomeration: agglomerate based on the maximum of the upper and lower coefficients
Patch provided by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2234
2016-09-06 12:56:54 +01:00
31f70137af etc/config.sh/settings: Updated set of WM_CC, WM_CXX etc. variables to compile ThirdParty software
Patch provided by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2051
2016-09-05 20:48:50 +01:00
e86688a53c Solvers: Corrected typo 2016-09-05 11:58:41 +01:00
4502b7a557 Updated header 2016-09-05 11:57:41 +01:00
0857f479a8 PBiCGStab: New preconditioned bi-conjugate gradient stabilized solver for asymmetric lduMatrices
using a run-time selectable preconditioner

References:
    Van der Vorst, H. A. (1992).
    Bi-CGSTAB: A fast and smoothly converging variant of Bi-CG
    for the solution of nonsymmetric linear systems.
    SIAM Journal on scientific and Statistical Computing, 13(2), 631-644.

    Barrett, R., Berry, M. W., Chan, T. F., Demmel, J., Donato, J.,
    Dongarra, J., Eijkhout, V., Pozo, R., Romine, C. & Van der Vorst, H.
    (1994).
    Templates for the solution of linear systems:
    building blocks for iterative methods
    (Vol. 43). Siam.

See also: https://en.wikipedia.org/wiki/Biconjugate_gradient_stabilized_method

Tests have shown that PBiCGStab with the DILU preconditioner is more
robust, reliable and shows faster convergence (~2x) than PBiCG with
DILU, in particular in parallel where PBiCG occasionally diverges.

This remarkable improvement over PBiCG prompted the update of all
tutorial cases currently using PBiCG to use PBiCGStab instead.  If any
issues arise with this update please report on Mantis: http://bugs.openfoam.org
2016-09-05 11:46:42 +01:00
b19fa43100 polyMesh: clear cellTree if mesh moves
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2235
2016-09-04 21:16:55 +01:00
49bce39429 PV*Readers/Allwmake: set CXX and CC if required
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2233
2016-09-04 21:05:20 +01:00
8f2b34dc06 polyBoundaryMesh: Remove patchGroups which clash with patch names
This allows freedom in the naming of patches when patchGroup-based
boundary specification is not used.

Patch contributed by Mattijs Janssens
2016-09-04 10:35:19 +01:00
9c7101739b tutorials/multiphase/interDyMFoam/ras/DTCHull: Corrected specification of restraints
Resolves bug-report http://bugs.openfoam.org/view.php?id=2224
2016-09-03 21:14:17 +01:00
15fda67bbc decomposePar: corrected decomposeParDict read using -region option
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2227
2016-09-03 20:54:16 +01:00
c193493822 EulerCoordinateRotation,STARCDCoordinateRotation: Corrected typo
Resolves bug-report http://bugs.openfoam.org/view.php?id=2225
2016-09-03 16:46:01 +01:00
96f2562e93 OpenFOAM-dev/etc/bashrc: Use 'pwd -P' to handle relative paths and links
Resolves bug-report http://bugs.openfoam.org/view.php?id=2223
2016-09-03 15:57:52 +01:00
292c522c71 ENH: Adding iso-plane histogram to regionSizeDistribution 2016-09-02 12:28:20 -07:00
ddda616919 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-09-02 11:52:59 -07:00
a4b62e6549 Adding area weighted average to U mean calculation for uniformJump option in fan BC 2016-09-02 11:51:59 -07:00
1589e8d431 BUG: buoyantPimpleFoam - div term should be present for both compressible and incompressible 2016-09-02 08:14:10 +01:00
8185f1d62e Revert "polyBoundaryMesh::groupPatchIDs(): Make name clash between patch and group name fatal"
This reverts commit f38f0d3e86.
2016-08-26 11:44:56 +01:00
6ffdce83aa STYLE: Corrected spelling error 2016-08-25 17:28:50 +01:00
f38f0d3e86 polyBoundaryMesh::groupPatchIDs(): Make name clash between patch and group name fatal
If this clash is allowed boundary conditions set by wildcards are
processed incorrectly.
2016-08-25 16:42:08 +01:00
16e4b25ac0 BUG: Corrected Doxygen style sheet - patch contributed by Bruno Santos. Fixes #217 2016-08-25 13:36:43 +01:00
bc5c6d83df BUG: incompressible/icoFoam/cavityMappingTest - renamed Allrun-serial->Allrun. Fixes #220 2016-08-25 13:34:17 +01:00
ac42dd2494 BUG: mesh/filter case - corrected Allrun script. Fixes #219 2016-08-25 13:32:45 +01:00
74e1352cc2 src/Pstream: Added Allwclean consistent with the Allwmake
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2218
2016-08-25 08:25:12 +01:00
bf9c6b6d17 foamToVTK, PVFoamReader: Resolve problems converting VTK_WEDGE
- There will be triangles rendered inside the mesh (when
    surface-rendering), because one of the cell's triangles is defined
    as a quadrangle in VTK_WEDGE.

  - Therefore, this VTK_WEDGE representation is only used when
    decomposing the mesh, otherwise the correct representation is done
    by VTK_POLYHEDRON.

  - Furthermore, using VTK_PYRAMID gave worse result, because it renders
    2 triangles inside the mesh for the collapsed quadrangle, likely due
    to mismatch with the adjacent cell's face.

  - Using VTK_HEXAHEDRON was not tested in this iteration, given that it
    should give even worse results, when compared to using VTK_PYRAMID.

Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2099
2016-08-24 22:08:10 +01:00
e476f80e7a functionObjects: Improved handling of multi-file indexing and code style
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2216
2016-08-24 19:34:00 +01:00
fc44390db3 forceCoeffs: Removed duplicate header writing
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2216
2016-08-24 16:01:29 +01:00
c6f9ed748a functionObjects::forces: Corrected file names when using the 'binData' option
Resolves bug-report http://bugs.openfoam.org/view.php?id=2214
2016-08-24 11:24:27 +01:00
655fb3841a foamToVTK::vtkTopo: Apply fix from #1633
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2213
2016-08-24 09:45:23 +01:00
5c9b80a083 functionObjects::volRegion: Cache integral properties for writeFileHeader 2016-08-24 09:32:34 +01:00
428b1d8866 Updated headers 2016-08-24 08:57:44 +01:00
962910bd43 lagrangian::Analytical: improved analytical integration for the U-equation
Patch contributed by Timo Niemi
In response to bug-report http://bugs.openfoam.org/view.php?id=2199
2016-08-23 22:03:24 +01:00
a778622dfa src/parallel/decompose: Remove dependency on "SCOTCH_ROOT" and repair "decompose/Allwclean"
Patch contributed by Bruno Santos
Resolves patch request http://bugs.openfoam.org/view.php?id=2212
2016-08-23 21:53:35 +01:00
c482490a60 etc/bashrc, etc/config.sh:
- "$FOAM_USER_APPBIN" and "$FOAM_USER_LIBBIN" have been added to
    "foamOldDirs" in "etc/bashrc" and "etc/config.sh/unset"

  - "$OPAL_PREFIX" is now undefined in the option "SYSTEMOPENMPI" within
    "etc/config.sh/mpi", but only if the path defined in this variable
    is cleaned when using "foamCleanPath".

  - "$OPAL_PREFIX" is now also conditionally undefined in
    "etc/config.sh/unset" when the path is picked up by "foamCleanPath".

Patch contributed by Bruno Santos
Resolved bug-report http://bugs.openfoam.org/view.php?id=2210
2016-08-23 21:02:55 +01:00
f75e69b5f7 wmake/rules/linux64.*KNL: Improved optimization option for Intel MIC (Knights Landing) processor
Patch contributed by Paul Edwards, Intel.
2016-08-22 16:27:46 +01:00
e6057ee3ec Corrected documentation in classes derived from temperatureCoupleBase
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2207
2016-08-22 14:31:40 +01:00
0ea2023ae0 codingStyleGuide: Improved formatting
Resolves bug-report http://bugs.openfoam.org/view.php?id=2194
2016-08-20 09:33:11 +01:00
181558028c septernion: Correct quaternion normalization after averaging
Resolves bug-report http://bugs.openfoam.org/view.php?id=2203
2016-08-19 20:32:30 +01:00
8e3dd09425 BUG: ensightSurfaceReader - enabled reading of data from sub-directory and updated field mask (See #215) 2016-08-18 15:29:56 +01:00
16b516bba3 ENH: noise functionality robustness improvements 2016-08-18 15:24:13 +01:00
9fb439bb46 BUG: Corrected FFTW_ARCH_PATH - patch contributed by Bruno Santos. Fixes #210 2016-08-18 11:22:25 +01:00
b075f10053 /primitives/triad: Initialize array to avoid warning from icpc 2016-08-18 11:22:15 +01:00
6635d2edfe ODESolvers::adaptiveSolver: Changed functions which need not be to non-virtual
Resolves warnings from clang
2016-08-18 10:36:52 +01:00
ab7dcca8a6 functionObjects::writeObjects: Corrected namespace for the definition of the NamedEnum
Resolves compilation failure with clang
2016-08-18 10:36:04 +01:00
4a766d28cb epsilonWallFunction, omegaWallFunction: Removed unused variabl 2016-08-18 08:23:54 +01:00
8d036e2750 multivariateScheme: Correct local typedef name 2016-08-17 23:04:00 +01:00
1d308b2ead Update header 2016-08-17 23:03:49 +01:00
4d2e628b61 primitives/hashes/SHA1: undef macros 2016-08-17 23:03:27 +01:00
a9280d103f sigWriteNow, sigStopAtWriteNow: Change runTimePtr_ to static member 2016-08-17 23:02:58 +01:00
30e456a641 fvDOM radiation model: Removed unreliable 'cacheDiv' option
Resolves bug-report http://bugs.openfoam.org/view.php?id=2182
2016-08-17 17:12:20 +01:00
b2e9655495 functionObjects::writeObjects: improved code and docs
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2090
2016-08-17 14:41:42 +01:00
e078fa031b viscosityModels::Casson: Added example specification for blood
Contributed by Sergey Sindeev
2016-08-17 13:46:46 +01:00
e670c3e356 viscosityModels::Casson: Updated constructor to avoid the need to specify the dimensions of the coefficients 2016-08-17 13:45:18 +01:00
40b0be0376 ODESolvers: Updated references to APA style 2016-08-17 10:27:15 +01:00
35f12bb6bd viscosityModels::Casson: New viscosity model
Description
    An incompressible Casson non-Newtonian viscosity model.

    References:
    \verbatim
        Casson, N. (1959).
        Rheology of disperse systems.
        In Proceedings of a Conference Organized by the
        British Society of Rheology.
        Pergamon Press, New York.

        Fournier, R. L. (2011).
        Basic transport phenomena in biomedical engineering.
        CRC Press.
    \endverbatim

Contributed by Sergey Sindeev
2016-08-17 09:38:17 +01:00
73cef20494 viscosityModels: State virtual functions are virtual also in the derived classes 2016-08-17 09:37:37 +01:00
79530dc8e3 surfacePatch.C: Corrected formatting 2016-08-17 08:08:21 +01:00
9a739863e5 functionObjects::writeObjects: Added option "writeOption"
Description
    Allows specification of different writing frequency of objects registered
    to the database.

    It has similar functionality as the main time database through the
    \c writeControl setting:
      - timeStep
      - writeTime
      - adjustableRunTime
      - runTime
      - clockTime
      - cpuTime

    It also has the ability to write the selected objects that were defined
    with the respective write mode for the requested \c writeOption, namely:
      - \c autoWrite - objects set to write at output time
      - \c noWrite   - objects set to not write by default
      - \c anyWrite  - any option of the previous two

    Example of function object specification:
    \verbatim
    writeObjects1
    {
        type        writeObjects;
        libs        ("libutilityFunctionObjects.so");
        ...
        objects     (obj1 obj2);
        writeOption anyWrite;
    }
    \endverbatim

Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2090
2016-08-16 23:41:22 +01:00
63010615ae fvMesh,dynamicRefineFvMesh: Rename writeObjects -> writeObject for consistency with regIOobject 2016-08-16 23:40:27 +01:00
14a0a94c01 dlLibraryTable: Add support for library path expansion
Patch contributed by Mattijs Janssens
Resolves patch request http://bugs.openfoam.org/view.php?id=2195
2016-08-16 16:12:19 +01:00
e44cc9697b AMIInterpolation: Make tracking across AMI more robust
If a suitable face an the receiving side of the AMI cannot be found the
particle is marked for deletion.
2016-08-16 11:33:27 +01:00
bc71a7d208 lagrangian: Delete lost particles on restart
Warning messages are generated for each particle deleted
2016-08-16 11:32:27 +01:00
3f82568b74 lagrangian::Cloud: Removed unused function 2016-08-16 11:31:51 +01:00
b23d80916b lagrangian:: hasWallImpactDistance() need not be virtual 2016-08-16 11:31:14 +01:00
aaf8819c92 tetPtI -> tetPti 2016-08-16 11:30:17 +01:00
72bd9fd6cd ParaView: GUI resource files in plugins are no longer supported
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2192
2016-08-16 08:46:39 +01:00
caa354aa95 codingStyleGuide: Corrected typos
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2193
2016-08-16 08:36:36 +01:00
e371de3a6f fvMatrixSolve: Set the solver name to that used to solve the components
Resolves bug-report http://bugs.openfoam.org/view.php?id=2189
2016-08-14 21:39:58 +01:00
ddd4f9f2ef functionObject: change default behavior of 'end()' to do nothing rather than calling execute and write
Time: call functionObject 'execute()' and 'end()' for last time-step

Now the operation of functionObject 'end()' call is consistent between running and post-processing
2016-08-12 21:46:21 +01:00
0f36cce1b5 Revert "functionObject: change default behavior of 'end()' to do nothing rather than calling execute and write"
This reverts commit 32e2e1bc76.
2016-08-12 21:34:37 +01:00
32e2e1bc76 functionObject: change default behavior of 'end()' to do nothing rather than calling execute and write 2016-08-12 21:28:00 +01:00
45409b3fdc LduMatrix/SolverPerformance: Changed nIterations from label to labelType corresponding to the type solved
Now the number of iterations to solve each component in a segregated
solution are stored and returned in the SolverPerformance class.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2189
2016-08-12 14:56:03 +01:00
873628e7b4 ILList: Added doc for assignment 2016-08-12 13:28:56 +01:00
fc923ba55a OpenFOAM/containers/LinkedLists: Replaced partially specialized template classes with C++11 template aliases
This feature of C++11 avoids complex code duplication simplifies code maintenance
2016-08-12 13:21:05 +01:00
d048b857dc functionObjects::surfaceFieldValue: New rational name for the surfaceRegion functionObject
surfaceRegion will be the name of a class to provide support for surface
region selection.
2016-08-12 10:04:11 +01:00
659076c0fa LList, SLList: Added construction from and assignment to initializer_list
SLList: now a C++11 template alias rather than a wrapper-class.
2016-08-12 10:01:41 +01:00
f846706229 OpenFOAM/containers: Standardized assignment docs 2016-08-12 10:00:48 +01:00
ba413e1f9a ENH: minor adjustments to surfZoneIdentifier
- gearing to make it more reusable in triSurface
2016-08-12 10:05:01 +02:00
fc714ed67b ENH: surfaceCheck: survive triangles with duplicate vertices. Fixes #222 2016-08-31 16:47:36 +01:00
30442158b1 ENH: snappyHexMesh: added -region option (fixes #223) 2016-08-31 09:44:34 +01:00
66eb48c3a4 BUG: snappyHexMesh: patch intersections of mesh was using cell zone information.
This was going wrong in a fair few cases where you would get regions which
were delimited by a combination of intersections with unnamed surfaces (wall)
and named surfaces (faceZone surface) but not with either of these sets
individually. This would cause there to be unvisited cells (zone = -2)
next to a visited cells but separated by a named surface only (and not an
unnamed surface). Fixed by using direct surface intersection in the removal
part. Related to #66.
2016-08-19 10:48:35 +01:00
78bbfc4409 COMP: foamDebugSwitches: support for missing randomProcesses. Fixes #213. 2016-08-19 10:46:53 +01:00
ef720003c3 FixedList: Added void operator=(std::initializer_list<T>) 2016-08-11 22:02:05 +01:00
900c804bf0 HashTable: Added void operator=(std::initializer_list<Tuple2<Key, T>>) 2016-08-11 21:41:55 +01:00
d1d453f065 STYLE: relocate surfZoneIdentifier into OpenFOAM/meshes/Identifiers (issue #294)
Note that since these actually act more like 'patches'
(ie, contiguous addressing) it might be reasonable to rename as

    surfPatchIdentifier / surfacePatchIdentifier
2016-08-11 21:44:14 +02:00
b012e1c738 STYLE: relocate labelledTri into OpenFOAM/meshes/meshShapes (issue #294)
- was originally in triSurface, but is used in multiple other places
2016-08-11 20:00:09 +02:00
c7a291aca8 STYLE: relocate faceTriangulation, labelPairLookup into meshTools (issue #294)
- were in triSurface, but only actually used within meshTools
2016-08-11 19:38:29 +02:00
f81c7a036c DEFEATURE: remove unused surfacePatchIOList class (issue #294) 2016-08-11 21:22:21 +02:00
4dda4ad197 DEFEATURE: remove unused meshTriangulation class (issue #294) 2016-08-11 19:35:22 +02:00
5707b20e50 DEFEATURE: remove unused hashSignedLabel, sortLabelledTri classes (issue #294) 2016-08-11 17:55:40 +02:00
434afda523 specieReactionRates: Corrected namespace of the debug switches 2016-08-11 16:27:05 +01:00
9b36f9f445 chemistryModel: Minor clean-up 2016-08-11 16:26:50 +01:00
3c5d30867b chemPointISAT: Removed deprecated 'register' type specifier 2016-08-11 16:26:19 +01:00
82aa78a4d4 wmake/rules/linux.*Icc: Removed a new unhelpful warning message 2016-08-11 16:25:53 +01:00
40b3f8b62c functionObjects::volFieldValue: Updated to use the new volRegion functionObject 2016-08-11 16:25:27 +01:00
4e6ec7d20d functionObjects::specieReactionRates: Added volRegion support
Now the specie reaction rates may be averaged over the entire domain or
a specified cellZone.
2016-08-11 15:15:45 +01:00
7b788f0922 functionObjects::volRegion: General base-class to handle vol (cell) region processing
Renamed the original volRegion -> volFieldValue to clarify the purpose
of this class to process vol fields on a volRegion.
2016-08-11 15:11:19 +01:00
c79544b197 ENH: mergedSurf helper class (fixes #104)
- For merging meshedSurf content from parallel sources.
  Ensures zoneIds are properly preserved for sampling in parallel.

Current state
~~~~~~~~~~~~~

Current producers of the region information:
 * sampledTriSurfaceMesh

Current consumers of the region information:
 * nastran writer. The zone ids passed through as PSHELL Ids (with offset 1).

Limitations

  The per-face region association is preserved, but the face/element
  sort order gets lost in reconstruction. Would need to attach
  additional information to the sampled surface and use that for
  sorting, but this would also imply that sampled values be written
  indirectly (or resorted) too to match the order. Zone ids are passed
  through, but not their names. After reconstruction, zone ids are no
  longer contiguous. Re-sorting (as mentioned above) would solve this
  too, but again at the cost of more complexity when writing.
2016-08-11 13:25:51 +02:00
6afc9fb15d ENH: tetOverlapVolume - improved robustness. Fixes #207 2016-08-11 12:14:43 +01:00
582ee21ef0 ENH: plane - updated construct from components to optionally normalise the normal vector 2016-08-11 12:14:34 +01:00
f8bb01e9f1 STYLE: harmonize nastran writer with more standard method calls
- unhide indexing of element/property ids (pass as const parameters).
  Proper indexing is the responsiblity of the caller.
2016-08-10 21:05:15 +02:00
225c6777b2 functionObjects::specieReactionRates: New functionObject to write the domain averaged reaction rates for each specie for each reaction 2016-08-10 19:48:43 +01:00
cefe2ea541 BUG: singleCellMesh: writes constant mesh to 0 directory instead.
Fixes partially #93.
2016-08-10 15:49:09 +01:00
1fc2a73213 ENH: use meshedSurf API for surface writers (issue #104)
- Allows passing of additional information (per-face zone ids) or possibly
  other things, while reducing the number of arguments to pass.

- In sampledTriSurfaceMesh, preserve the region information that was
  read in, passing it onwards via the UnsortedMeshSurface content.

  The Nastran surface writer is currently the only writer making use
  of this per-face zone information.
  Passing it through as a PSHELL attribute, which should retain the
  distinction for parts. (issue #204)
2016-08-10 15:41:24 +02:00
9ab4bf4001 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-08-10 13:33:06 +01:00
44416dd44f ENH: sampledSets: warn for no fields (fixes #206) 2016-08-10 13:32:47 +01:00
eee0dd02c5 ENH: meshedSurf API for passing around points/faces (issue #104) 2016-08-10 14:09:09 +02:00
2da5570c92 functionObjects: Further simplification and rationalization using the fvMeshFunctionObject base-class 2016-08-10 12:29:19 +01:00
3dffee8a6a STYLE: change MeshedSurface 'faces' access to 'surfFaces' (related to issue #104)
- use surfFaces() to return the templated list of faces.
  This frees up the method 'faces()' to be used as a virtual method,
  which will be needed at a later stage.
2016-08-10 10:03:51 +02:00
8339b57255 List: Added void operator=(std::initializer_list<T>) 2016-08-09 20:36:32 +01:00
5b1ae76abf reconstructPar: Handle the copy of the 'uniform' directory when only 1 region is reconstructed
Resolves bug-report http://bugs.openfoam.org/view.php?id=2186
2016-08-09 16:42:48 +01:00
8509fc3ce4 BUG: blendingFactor function object updated to handle bounded schemes. Fixes #205 2016-08-09 15:38:40 +01:00
a29ff3f6f2 ENH: boundedConvection scheme - added access function to the underlying scheme 2016-08-09 15:33:46 +01:00
d73bf4af51 kOmegaSSTLM: Corrected coefficient in Fsublayer 2016-08-09 13:54:10 +01:00
c5630e5cb1 Corrected nullptr collateral damage
Resolves bug-report http://bugs.openfoam.org/view.php?id=2181
2016-08-08 15:38:53 +01:00
95962d7780 ENH: provide conversion to/from ccm meshes (issue #204) 2016-08-08 12:50:26 +02:00
1d194d1629 CONFIG: allow static or dynamic linkage for optional conversion utility 2016-08-08 11:58:52 +02:00
cce64df23c CONFIG: use src/conversion/Allwmake when building source
- existed, but was not being called
2016-08-08 11:38:38 +02:00
6f098748cc functionObjects: Separated writeFile and logFiles (previously writeFiles) from regionFunctionObject
Now the functionality to write single graph files or log files (vs time)
may be used in the creation of any form of functionObject, not just
those relating to a mesh region.
2016-08-07 15:23:55 +01:00
076c4c6e82 HashTable: Added C++11 initializer_list constructor
e.g.
    HashTable<label, string> table1
    {
        {"kjhk", 10},
        {"kjhk2", 12}
    };

    HashTable<label, label, Hash<label>> table2
    {
        {3, 10},
        {5, 12},
        {7, 16}
    };
2016-08-05 22:30:26 +01:00
2bb52eff6e Test-fileName: Added recent etcFiles.H 2016-08-05 17:25:56 +01:00
58f905ff70 C++11: Replaced the C NULL with the safer C++11 nullptr
Requires gcc version 4.7 or higher
2016-08-05 17:19:38 +01:00
7996a9138f C++11: Update compilation rules to specify C++11 support and conformance
The change from C++0x to C++11 allows all of C++11 functionality to be
used in OpenFOAM, in particular constructor delegation which avoids code
duplication or constructor helper functions.  However, this also means a
change to the minimum gcc version supported which is now 4.7 rather than
4.5.

Note that gcc-4.7 does not support the entire C++11 standard but does
support all of the functionality currently needed for further OpenFOAM
development.  The minimum gcc-version which supports the entire C++11
standard is 4.8 which is now the recommended minimum gcc version.
2016-08-05 16:28:19 +01:00
7a299ed7cb FixedList: Add constructors from iterators and C++11 initializer_list using C++11 constructor delegation 2016-08-05 16:25:18 +01:00
3c423d64d2 Test-List: Add demonstration of C++11 initializer list in conjunction with uniform initialization of vector
List<vector> list5
     {
         {5, 3, 1},
         {10, 2, 2},
         {8, 1, 0}
     };
2016-08-05 16:22:51 +01:00
d8abc128f9 ENH: provide conversion to/from AVL/FIRE meshes (issue #204) 2016-08-05 13:22:22 +02:00
74f2d7f0a3 ENH: cleanup starcd (prostar) mesh conversion (issue #204)
- Reduce code duplication by moving out common functionality
  into STARCDCore.
2016-08-05 10:35:55 +02:00
e5d9fd13c2 ENH: relocate meshSubsetHelper into dynamicMesh for re-use
- reuse for foamToTecplot360 and foamToVTK.
- remove dependency on vtkMesh where possible.
2016-11-09 23:33:24 +01:00
72ec8e0574 BrunDrippingInjection: Corrected default type of deltaStable 2016-08-05 08:26:45 +01:00
55065d6302 epsilonWallFunction, omegaWallFunction: Set generation to zero in laminar sub-layer
Improves stability for complex flows
2016-08-04 22:25:27 +01:00
7e4f200bd6 GIT: rearrange files for lib-conversion
- re-group according to file-format instead of reader/writer
2016-08-04 16:57:56 +02:00
b475ae851e DEFEATURE: remove samm, pro-am, prostar3 convertors (issue #204)
- these frontends are defunct and their formats were quite a mess.
  Prostar 4 versions (star4ToFoam, foamToStarMesh) should be used
  instead.
2016-08-05 11:05:30 +02:00
c5e364dd38 STYLE: Remove meshReaders/meshWriters namespace (issue #204)
- Relocate classes (STARCDMeshReader, STARCDMeshWriter)
  into fileFormats namespace instead.
2016-08-05 12:00:00 +02:00
b0dcf59307 ENH: ease access restrictions on meshReader data structures (issue #204)
- helps when implementing polyhedral readers.
2016-08-05 10:00:00 +02:00
dd659dccb0 BrunDrippingInjection: Simplified implementation 2016-08-04 15:20:53 +01:00
c022e5ade3 BrunDrippingInjection: Calculate drop diameter from the capillary length
The diameter of the drops formed are obtained from the local capillary
length multiplied by the \c dCoeff coefficient which defaults to 3.3.

Reference:
    Lefebvre, A. (1988).
    Atomization and sprays
    (Vol. 1040, No. 2756). CRC press.
2016-08-04 15:02:51 +01:00
6131d5c1a3 omegaWallFunction: Improved low-Reynolds number behavior and consistency with the epsilonWallFunction
Changed default mode of operation to use standard y+ based switching
rather than the previous ad hoc blending and added consistent handling
of the near-wall generation term.

This boundary condition provides a wall constraint on turbulnce specific
dissipation, omega for both low and high Reynolds number turbulence models.

The near-wall omega may be either blended between the viscous region and
logarithmic region values using:

    \f[
        \omega = sqrt(\omega_{vis}^2 + \omega_{log}^2)
    \f]

where

\vartable
    \omega_{vis} | omega in viscous region
    \omega_{log} | omega in logarithmic region
\endvartable

see eq.(15) of:
\verbatim
    Menter, F., Esch, T.
    "Elements of Industrial Heat Transfer Prediction"
    16th Brazilian Congress of Mechanical Engineering (COBEM),
    Nov. 2001
\endverbatim

or switched between these values based on the laminar-to-turbulent y+ value
derived from kappa and E.  Recent tests have shown that the standard
switching method provides more accurate results for 10 < y+ < 30 when used
with high Reynolds number wall-functions and both methods provide accurate
results when used with continuous wall-functions.  Based on this the
standard switching method is used by default.
2016-08-04 10:59:23 +01:00
712f62773a epsilonWallFunction: Updated to work with both low- and high-Reynolds number turbulence models
This boundary condition provides a turbulence dissipation wall constraint
for low- and high-Reynolds number turbulence models.

The condition can be applied to wall boundaries for which it
- calculates \c epsilon and \c G
- specifies the near-wall epsilon value

where

\vartable
    epsilon | turblence dissipation field
    G       | turblence generation field
\endvartable

The model switches between laminar and turbulent functions based on the
laminar-to-turbulent y+ value derived from kappa and E.

Recent tests have shown that this formulation is more accurate than
the standard high-Reynolds number form for 10 < y+ < 30 with both
standard and continuous wall-functions.

Replaces epsilonLowReWallFunction and should be used for all
low-Reynolds number models for which the epsilonLowReWallFunction BC was
recommended.
2016-08-04 10:52:12 +01:00
273197e20e TurbulenceModels::derivedFvPatchFields: standardized the cell index of the 'faceCell' 2016-08-04 10:51:09 +01:00
4652677f76 ORourkeCollision: Corrected probability test
Resolves bug-report http://bugs.openfoam.org/view.php?id=2097
2016-08-04 10:04:06 +01:00
777bc83d14 FixedList: Corrected checkSize
Resolves bug-report http://bugs.openfoam.org/view.php?id=2178
2016-08-03 19:45:31 +01:00
449a4e7353 surfaceFilmModels::BrunDrippingInjection: New dripping model based on the Rayleigh-Taylor stability analysis
of film flow on an inclined plane by Brun et.al.

    Brun, P. T., Damiano, A., Rieu, P., Balestra, G., & Gallaire, F. (2015).
    Rayleigh-Taylor instability under an inclined plane.
    Physics of Fluids (1994-present), 27(8), 084107.
2016-08-02 21:35:37 +01:00
0a2c2d76de RunFunctions: corrected typo $SUFFIX -> $LOG_SUFFIX
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2176
2016-08-02 21:32:38 +01:00
70ba9e0cc0 For issue #202, re-adjust commit c3ec65d35b to use zero-gradient instead
- consistent with approach used elsewhere. Generates smaller files.
2016-08-02 21:56:40 +02:00
2ab457015d tutorials: corrected scripts ']; then' -> ' ]; then'
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2175
2016-08-02 19:15:40 +01:00
a95ca8293a BUG: runParallel ignores presence of log file (closes #203)
- was a small typo
2016-08-02 18:31:50 +02:00
2e1557a79e tutorials Allrun scripts: Update running of postProcess application
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2173
2016-08-02 16:24:28 +01:00
c3ec65d35b ENH: decomposePar -cellDist misses patches (issue #202)
- Propagate cellDist information from internal to patch fields too

NOTE: uses C++11 'auto' and a range-based for loop
2016-08-02 16:39:20 +02:00
d01eb45cfc List: Reinstated construction from two iterators and added construction from an initializer list
Until C++ supports 'concepts' the only way to support construction from
two iterators is to provide a constructor of the form:

        template<class InputIterator>
        List(InputIterator first, InputIterator last);

which for some types conflicts with

        //- Construct with given size and value for all elements
        List(const label, const T&);

e.g. to construct a list of 5 scalars initialized to 0:

    List<scalar> sl(5, 0);

causes a conflict because the initialization type is 'int' rather than
'scalar'.  This conflict may be resolved by specifying the type of the
initialization value:

    List<scalar> sl(5, scalar(0));

The new initializer list contructor provides a convenient and efficient alternative
to using 'IStringStream' to provide an initial list of values:

    List<vector> list4(IStringStream("((0 1 2) (3 4 5) (6 7 8))")());

or

    List<vector> list4
    {
        vector(0, 1, 2),
        vector(3, 4, 5),
        vector(6, 7, 8)
    };
2016-08-02 09:31:41 +01:00
b8614eca07 Make/options: Removed duplicate entries
Thanks to Bruno Santos for providing the script to check the files
Resolves bug-report http://bugs.openfoam.org/view.php?id=2169
2016-08-01 20:55:16 +01:00
32fe670d1e tutorials/incompressible/boundaryFoam/boundaryWallFunctionsProfile: Corrected typo
Resolves bug-report http://bugs.openfoam.org/view.php?id=2170
2016-08-01 20:10:19 +01:00
778abb4087 tutorials/multiphase/reactingTwoPhaseEulerFoam: Corrected regular expressions
Resolves bug-report http://bugs.openfoam.org/view.php?id=2167
2016-08-01 17:11:44 +01:00
90d6c956da fvAgglomerationMethods/Allwmake: Removed reference to Scotch
Resolves bug-report http://bugs.openfoam.org/view.php?id=2168
2016-08-01 17:05:16 +01:00
bfbe1e32be DimensionedField<scalar, volMesh> -> volScalarField::Internal
DimensionedField<vector, volMesh> -> volVectorField::Internal
2016-08-01 14:28:54 +01:00
cd2b0ff742 meshToMeshTemplates: Updated non-const access to the source patch field
Resolves bug-report http://bugs.openfoam.org/view.php?id=2165
2016-08-01 14:28:18 +01:00
49c7b37705 BUG: 'processor' in directory name causes issues (issue #199)
- previously just detected the presence of "processor" in the case
  path name. Restrict to checking the final portion.
  Does not solve all problems, but solves ones like this:

      test-new-processor-generation/....
2016-08-01 14:11:05 +02:00
e9edf89a5d BUG: maxDeltaxyz LES delta - updated calculation. Fixes #200 2016-08-01 12:59:24 +01:00
f0fdd1c203 scalarTransport function: renamed scalar field -> s 2016-07-31 17:12:49 +01:00
ff9ad39f82 CrankNicolsonDdtScheme: Corrected handling of the boundary field to avoid premature reset of the time-index
Resolves bug-report http://bugs.openfoam.org/view.php?id=2162
2016-07-29 17:48:04 +01:00
157fa46f9c tutorials/multiphase/interDyMFoam/ras/floatingObject/constant/dynamicMeshDict.sixDoF: Renamed 'rho' -> 'rhoSolid'
to avoid name clash
2016-07-29 17:47:20 +01:00
46ba7267de TurbulenceModels: Reorganized support macros to simplify the creation of additional turbulence model libraries 2016-07-29 15:59:09 +01:00
04f73903b4 tutorials/incompressible/simpleFoam/T3A: ERCOFTAC T3A 3% test-case for the kOmegaSSTLM model
References:
    Savill, A. M. (1993).
    Some recent progress in the turbulence modelling of by-pass transition.
    Near-wall turbulent flows, 829-848.

    Savill, A. M. (1996).
    One-point closures applied to transition.
    In Turbulence and transition modelling (pp. 233-268).
    Springer Netherlands.

Based on case contributed by Florian Schwertfirm, Kreuzinger und Manhart Turbulenz GmbH.
2016-07-29 10:51:42 +01:00
d9aa056163 TurbulenceModels::kOmegaSSTLM: New correlation-based turbulent transition model
Description
    Langtry-Menter 4-equation transitional SST model
    based on the k-omega-SST RAS model.

    References:
        Langtry, R. B., & Menter, F. R. (2009).
        Correlation-based transition modeling for unstructured parallelized
        computational fluid dynamics codes.
        AIAA journal, 47(12), 2894-2906.

        Menter, F. R., Langtry, R., & Volker, S. (2006).
        Transition modelling for general purpose CFD codes.
        Flow, turbulence and combustion, 77(1-4), 277-303.

        Langtry, R. B. (2006).
        A correlation-based transition model using local variables for
        unstructured parallelized CFD codes.
        Phd. Thesis, Universität Stuttgart.

Implemented by Henry G. Weller, CFD Direct in collaboration with Florian
Schwertfirm, Kreuzinger und Manhart Turbulenz GmbH.
2016-07-29 10:45:49 +01:00
51ea906a20 fvMatrixSolve: Corrected ref() access to field
Resolves bug-report http://bugs.openfoam.org/view.php?id=2163
2016-07-28 18:00:21 +01:00
84d90563bc Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-07-28 13:52:27 +01:00
1a69e4315b functionObjects::wallShearStress: Corrected dimensions for compressible cases 2016-07-28 13:51:13 +01:00
a867e68573 kOmegaSSTSAS: Updated header 2016-07-28 13:50:58 +01:00
3dd3288561 TurbulenceModels::kOmegaSST.*: Updated source-terms and associated functions to use volScalarField::Internal
This is more efficient, avoids divide-by-0 when evaluating unnecessary
boundary values and avoids unnecessary communications when running in parallel.
2016-07-28 13:48:38 +01:00
3a3966d400 wmake/rules/linux.*Icc: Updated for icpc (ICC) 16.0.3 20160415 2016-07-28 13:47:44 +01:00
466a2631c7 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-07-27 08:56:24 -07:00
14f5239e5b ENH: Adding optional uniform jump switch to fan BC 2016-07-27 08:55:52 -07:00
785b32830d STYLE: fanFvPatchField - updated example usage to reflect change in CSV specification. Fixes #177 2016-07-27 13:06:22 +01:00
b8cf59e869 BUG: snappyHexMesh: compacting list w/o checking for aliasing. Fixes #197 2016-07-27 13:06:01 +01:00
6539c1d311 Merge branch 'develop' 2016-07-27 12:51:50 +01:00
b2722eb66b STYLE: externalCoupledFunctionObject: typo 2016-07-27 10:38:58 +01:00
143800ab3d BUG: Turbulence DFSEM - protect sigFpe for reconstruct - see #194 2016-07-26 15:33:10 +01:00
f7999317ac Merge branch 'style-compile-def' into 'develop'
ENH: distinguish OpenFOAM version for user-coding (fixes #195)

The pre-processor macro 'OPENFOAM_PLUS' is defined with a numerical
value equal to the currently compatible version number.

This can be used judiciously within user coding to help with minor
differences between OpenFOAM versions. For example,

    #ifdef OPENFOAM_PLUS
        #if (OPENFOAM_PLUS >= 1612)
        ...
        #endif
    #endif

or simply

    #if (OPENFOAM_PLUS >= 1612)
    ...
    #endif

See merge request !56
2016-07-26 15:27:24 +01:00
e2935fa680 Merge branch 'fix-systemcall' into 'develop'
replace system() call with vfork/exec combination (issue #185)

Tested systemCall function object, dynamicCode, but should be rechecked with IB+openmpi
@Prashant

See merge request !55
2016-07-26 15:26:00 +01:00
b460e096ae Merge branch 'feature-symlinks' into 'develop'
ENH: OSspecific - softlink handling (fixes #164)

Links are followed in most cases, with some notable exceptions:

- mv, mvBak:
  renames the link, not the underlying file/directory

- rmDir:
  remove the symlink to a directory, does not recurse into the
  underlying directory

See merge request !51
2016-07-26 15:25:33 +01:00
9b481e7992 foamNewBC: removes phip completely for fixedValue condition 2016-07-26 15:25:18 +01:00
1b55666ec7 ENH: distinguish OpenFOAM version for user-coding (fixes #195)
The pre-processor macro 'OPENFOAM_PLUS' is defined with a numerical
value equal to the currently compatible version number.

This can be used judiciously within user coding to help with minor
differences between OpenFOAM versions. For example,

    #ifdef OPENFOAM_PLUS
        #if (OPENFOAM_PLUS >= 1612)
        ...
        #endif
    #endif

or simply

    #if (OPENFOAM_PLUS >= 1612)
    ...
    #endif
2016-07-26 14:02:40 +02:00
2d96fc5011 BUG: mapFields function object - evaluate constraint patches after mapping. Fixes #190 2016-07-26 12:05:15 +01:00
bac94fc564 ENH: regIOobject: use reverse order scatter for dictionary
Fixes #192
2016-07-25 14:14:05 +01:00
ee9e7cf037 lagrangian::BrownianMotionForce: Changed from a cubic to a spherical distribution
See also: StochasticDispersionRAS
Resolves bug-report http://bugs.openfoam.org/view.php?id=2153
2016-07-23 11:53:48 +01:00
5d3b25a472 BrownianMotionForce: Removed the spurious additional 'eta'
Resolves bug-report http://bugs.openfoam.org/view.php?id=2153
2016-07-22 21:12:09 +01:00
2564362542 decomposePar: Speed-up decomposing with constraints
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2159
2016-07-22 17:19:21 +01:00
799b2fc748 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-07-22 16:58:22 +01:00
aa30d0e7d5 checkMesh: Added option to write sets
- the checking for point-connected multiple-regions now also writes the
    conflicting points to a pointSet
  - with the -writeSets option it now also reconstructs & writes pointSets
2016-07-22 16:53:49 +01:00
5344c7eb26 lagrangian::BrownianMotion: Corrected Boltzmann constant used in the force expression
Resolves bug-report http://bugs.openfoam.org/view.php?id=2153
2016-07-22 16:15:04 +01:00
cd8be89b28 BUG: runTimePostProcessing - correct the glyph behaviour when dealing with cell data. Fixes #186 2016-07-22 15:32:17 +01:00
e6f9c67b64 snappyHexMesh: points on more than one cell region now duplicated if detected on any processor
rather than all processor
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=1936
2016-07-22 14:48:38 +01:00
d51687eb66 forces: Updated reading of 'nu'
Resolves bug-report http://bugs.openfoam.org/view.php?id=2158
2016-07-22 09:56:02 +01:00
43df3e4192 reconstructPar: Added support for decomposing "uniform" directories in multi-region cases
Resolves bug-report http://bugs.openfoam.org/view.php?id=2156
2016-07-20 18:47:58 +01:00
ef54ab7c59 decomposePar: Added support for decomposing "uniform" directories in multi-region cases
Resolves bug-report http://bugs.openfoam.org/view.php?id=2156
2016-07-20 16:41:45 +01:00
2d695acf49 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2016-07-19 10:53:34 -07:00
4dcfd245d6 BUG: Taken out mesh flux from the hEqn for Solid to Gas reactions 2016-07-19 10:51:50 -07:00
b8bb388ffd reactingEulerFoam, twoPhaseEulerFoam: Added fvOption sources to the face-based momentum equations 2016-07-19 16:33:07 +01:00
115a291b8a postProcess: Added call to functionObject::end() at end of time-loop
Resolves bug-report http://bugs.openfoam.org/view.php?id=2148
2016-07-19 11:57:37 +01:00
6f84555305 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-07-18 16:09:17 +01:00
c4c60fad80 BUG: polyMesh::movePoints: clear cellTree since gets constructed using current geometry
so will be out of date (w.r.t bounding box, subdivisions) when the mesh moves.
Only when all cells stays in all the same boxes can you skip rebuilding it
so this was not deemed worthwhile. Fixes #172
2016-07-18 16:07:15 +01:00
dad1fd51c5 Scalar.H: Minor reorganization 2016-07-18 16:02:29 +01:00
e46e25fdcc Merge branch 'style-codedbc-cleanup' into 'develop'
STYLE/ENH: reduce code duplication for coded boundary conditions (issue #184)

- relocate common dictionary output into codedBase class

@Mattijs please test with a few examples as well

See merge request !54
2016-07-18 15:19:22 +01:00
586b7ca30e STYLE: codedBase: indentation 2016-07-18 15:18:40 +01:00
5f85329c85 SVD: VSinvUt is not always needed and is now calculated and returned by the 'VSinvUt()' function
rather than being calculated on construction and stored as member data.

The convergence warning has be replaced with the 'convergence()' member
function which returns 'true' if the SVD iteration converged, otherwise 'false'.
2016-07-18 13:15:25 +01:00
fa73844438 scalarMatrices: update [i][j] -> (i, j) 2016-07-18 13:12:26 +01:00
8bb78dda60 ENH: provide a vfork/exec version of system (issue #185)
The normal library system() command uses 'fork', which causes
problems on IB+OPENMPI.

STYLE: add Foam:: qualifier to system calls to make them easier to spot.
2016-07-18 13:37:39 +02:00
b3c9e9d277 ISAT::chemPointISAT: Use scalarMatrices::SVD 2016-07-18 07:49:53 +01:00
13e8fce173 wmake: Use functions from wmakeFunctions to avoid code duplication
wclean: added support for automatic searching up the tree for the Make directory if in a sub-directory
2016-07-17 22:59:55 +01:00
8f16204390 basicMultiComponentMixture: Improved the handling of Ydefault 2016-07-17 22:59:25 +01:00
1d57269680 TDACChemistryModel: New chemistry model providing Tabulation of Dynamic Adaptive Chemistry
Provides efficient integration of complex laminar reaction chemistry,
combining the advantages of automatic dynamic specie and reaction
reduction with ISAT (in situ adaptive tabulation).  The advantages grow
as the complexity of the chemistry increases.

References:
    Contino, F., Jeanmart, H., Lucchini, T., & D’Errico, G. (2011).
    Coupling of in situ adaptive tabulation and dynamic adaptive chemistry:
    An effective method for solving combustion in engine simulations.
    Proceedings of the Combustion Institute, 33(2), 3057-3064.

    Contino, F., Lucchini, T., D'Errico, G., Duynslaegher, C.,
    Dias, V., & Jeanmart, H. (2012).
    Simulations of advanced combustion modes using detailed chemistry
    combined with tabulation and mechanism reduction techniques.
    SAE International Journal of Engines,
    5(2012-01-0145), 185-196.

    Contino, F., Foucher, F., Dagaut, P., Lucchini, T., D’Errico, G., &
    Mounaïm-Rousselle, C. (2013).
    Experimental and numerical analysis of nitric oxide effect on the
    ignition of iso-octane in a single cylinder HCCI engine.
    Combustion and Flame, 160(8), 1476-1483.

    Contino, F., Masurier, J. B., Foucher, F., Lucchini, T., D’Errico, G., &
    Dagaut, P. (2014).
    CFD simulations using the TDAC method to model iso-octane combustion
    for a large range of ozone seeding and temperature conditions
    in a single cylinder HCCI engine.
    Fuel, 137, 179-184.

Two tutorial cases are currently provided:
    + tutorials/combustion/chemFoam/ic8h18_TDAC
    + tutorials/combustion/reactingFoam/laminar/counterFlowFlame2D_GRI_TDAC

the first of which clearly demonstrates the advantage of dynamic
adaptive chemistry providing ~10x speedup,

the second demonstrates ISAT on the modest complex GRI mechanisms for
methane combustion, providing a speedup of ~4x.

More tutorials demonstrating TDAC on more complex mechanisms and cases
will be provided soon in addition to documentation for the operation and
settings of TDAC.  Also further updates to the TDAC code to improve
consistency and integration with the rest of OpenFOAM and further
optimize operation can be expected.

Original code providing all algorithms for chemistry reduction and
tabulation contributed by Francesco Contino, Tommaso Lucchini, Gianluca
D’Errico, Hervé Jeanmart, Nicolas Bourgeois and Stéphane Backaert.

Implementation updated, optimized and integrated into OpenFOAM-dev by
Henry G. Weller, CFD Direct Ltd with the help of Francesco Contino.
2016-07-17 15:13:54 +01:00
2d54b1d42b fvPatchField: Minor reformatting 2016-07-17 14:45:24 +01:00
7cbe9153b2 LUscalarMatrix: Added processor-local matrix inverse function 2016-07-17 14:44:50 +01:00
e07327fef4 ENH: provide access to the underlying patch types of generic patches (issue #188) 2016-07-15 16:24:46 +02:00
30cf340d8b uint: Changed 'uint' to 'unsigned int'
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2152
2016-07-15 11:44:56 +01:00
2f3945e6b3 STYLE: missing include in codeStream test dictionary 2016-07-15 09:05:44 +02:00
813a1d69fb Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2016-07-13 11:40:15 +01:00
9e2259c19c STYLE: clean out clutter in paraview config files (issue #176)
Now reduced to 3 environment variables:
    ParaView_DIR         - paraview installation directory
    ParaView_INCLUDE_DIR - paraview include directory
    PV_PLUGIN_PATH       - paraview plugin directory for OpenFOAM modules

Previously also had (ParaView_MAJOR, ParaView_VERSION).

ThirdParty makeParaView adjusted accordingly.

ENH: improved configuration possibility for non-ThirdParty paraview
installation.

BUG: csh foamPV alias was completely incorrect.
2016-07-13 09:57:58 +02:00
ab84d6941f Updated template formatting to C++11 2016-07-12 20:03:29 +01:00
c535f6a3c4 ODESolvers::seulex: Corrected 'expo' and added 'table_' resize 2016-07-12 20:02:16 +01:00
787b19c4e4 STYLE: cleanup compiler settings (issue #176)
- export/setenv WM_COMPILER_TYPE as suggested by Mattijs.

- for overall consistency, don't carp about an unset WM_COMPILER_TYPE,
  since this would only be on the first instance (prior to the
  export/setenv) and would be confusing about why/when this message
  may occur.

- reduce clutter: only use (system|ThirdParty) for WM_COMPILER_TYPE.
  Drop the old 'OpenFOAM' setting for WM_COMPILER_TYPE, which was
  transitional in early 2011.

- make the error messages more meaningful
2016-07-12 17:19:06 +02:00
fae40c5def STYLE: use POSIX 'unset -f' for functions (affects dash) 2016-09-29 14:10:49 +02:00
9a82743d32 STYLE: bump to v1609+ for foundation merge version 2016-09-29 12:00:00 +02:00
ecfbdce3da ENH: avoid deprecated resource xml when building paraview plugins (fixes #181)
- remove old VTK_CONVEX_POINT_SET code, since VTK_POLYHEDRON exists
  since several years

ENH: improve robustness of paraFoam script

- only check the relevant plugin types,
  fallback to native reader if needed/possible.
2016-07-12 11:17:57 +02:00
ff49c1b882 foamCleanPolyMesh: No need to warn about missing 'polyMesh' directories 2016-07-12 09:07:15 +01:00
1c38fbcef0 Updated headers 2016-07-12 09:07:04 +01:00
b00e67ca37 foamChemistryReader: Added support for elements and specie composition
Based on a patch contributed by Francesco Contino, Tommaso Lucchini,
Gianluca D’Errico, Hervé Jeanmart, Nicolas Bourgeois and Stéphane
Backaert.
2016-07-12 09:05:00 +01:00
a9fed233db CONFIG: remove engridFoam start script
- no engrid development since 2013
2016-07-12 08:19:54 +02:00
a6a8069d84 BUG: incorrect wmakePrintBuild -check behaviour when outside of git (issue #174)
- return 0 if not under git, since nothing particular can be said
  about the build number.

- explicitly define which git-dir is to be used.
  This ensure we don't accidentally get some values from some unrelated
  project in the parent directory.
2016-07-12 17:37:30 +02:00
a5d7374737 ODESolvers: Add support for efficient ODE solver resizing
Note: this reuses the existing storage rather than costly reallocation
which requires the initial allocation to be sufficient for the largest
size the ODE system might have.  Attempt to set a size larger than the
initial size is a fatal error.
2016-07-11 17:27:04 +01:00
b36e1c7c1b Merge branch 'master-update' into 'master'
Master update for adjusted config and compile with WM_LABEL_SIZE=64



See merge request !52
2016-07-11 11:49:32 +01:00
47b9b3a88a AllwmakeParseArguments: Correct call to wmake -all
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2146
2016-07-10 22:04:50 +01:00
6a8bac9235 functionObjects: Update documentation 2016-07-09 22:08:11 +01:00
08bd802b42 checkGeometry, moveDynamicMesh: Convert processor IDs to 'List<label>'
Resolves bug-report http://bugs.openfoam.org/view.php?id=2140
2016-07-09 20:47:06 +01:00
79e31173bd wmakeFunctions: Added '()' to depToSource definition
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2144
2016-07-09 20:45:46 +01:00
9f682a0c5a functionObjects::systemCall: Updated documentation 2016-07-09 14:23:27 +01:00
6e95af9d58 functionObjects: Removed superfluous controlDict files 2016-07-09 14:23:01 +01:00
cdb5d024f0 wmake: Simplified handling of '-j' option to sub-processes 2016-07-09 14:22:29 +01:00
c022898851 wmakeLnIncludeAll: Add '-update' option 2016-07-09 14:22:14 +01:00
c3f50d3c2b wmakeLnInclude: Minor simplifications and reformatting 2016-07-09 14:21:44 +01:00
5b28e12ad3 wmakeCollect: Use 'mktemp' to create the temporary Makefiles
to avoid file names which are two long for the standard GNU/Linux file systems.
2016-07-09 14:20:31 +01:00
7d553a1853 wmakeFunctions: Added a faster bash version of 'depToSource' 2016-07-09 14:19:47 +01:00
bbc43dd66e wmakeCollect: Create the makefiles in the platforms directory 2016-07-09 09:59:46 +01:00
02e14ffd4b wmakeLnIncludeAll: 'sync' does not guarantee synchronization of the links
A simple 'sleep' is more reliable.
2016-07-08 16:35:40 +01:00
23ea3b364e wmakeLnIncludeAll: Improved messages 2016-07-08 14:02:57 +01:00
b87703bd46 fvcCellReduce: Add support for optional initial value
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2143
2016-07-08 11:54:30 +01:00
c4390f7059 laplacianFoam: Added support for fvOptions 2016-07-08 11:34:00 +01:00
10ad855d8d wmake: Improve messages from wclean, wrmdep and wmakeLnIncludeAll 2016-07-08 10:57:08 +01:00
d7e6c04855 wmakeLnIncludeAll: When running parallel wait for the wmakeLnInclude jobs to complete
then synchronize the file system to ensure all links are flushed before
compilation starts
2016-07-08 08:22:28 +01:00
5d594d3f24 ENH: Adding support to moving mesh to activePressureForceBaffle 2016-07-07 10:19:56 -07:00
a7fa5699df AllwmakeParseArguments: Filter-out '-q' option to avoid recusion 2016-07-07 16:22:08 +01:00
04afdaffc7 reactingTwoPhaseEulerFoam/pUf/UEqns: Changed naming convention for the dmdt's
for consistency with HeatAndMassTransferPhaseSystem.C
Resolves bug-report http://bugs.openfoam.org/view.php?id=2141
2016-07-07 14:36:10 +01:00
c15eea16f1 wmakeLnIncludeAll: Now a bash script
Uses the 'wait -n' builtin to avoid the use of non-POSIX 'sleep' commands
2016-07-07 12:09:49 +01:00
5f49df4a0a COMP: fftw needs int (not long) for its dimensionality (issue #175)
- explicitly use List<int> instead List<label> for API compatibility,
  even when 64-bit labels are in use.
2016-07-07 11:20:28 +02:00
fcb0b3a42d COMP: fftw needs int (not long) for its dimensionality (issue #175)
- explicitly use List<int> instead List<label> for API compatibility,
  even when 64-bit labels are in use.
2016-07-07 11:20:28 +02:00
e799329515 COMP: template ambiguity for 64-bit labels (issue #175) 2016-07-07 11:17:09 +02:00
b99515ea95 COMP: template ambiguity for 64-bit labels (issue #175) 2016-07-07 11:17:09 +02:00
7e53be1560 Reacting solvers: Added check for the existence of the inert specie 2016-07-06 17:45:34 +01:00
bccf754d24 chemkinToFoam: Added support for converting elements and species composition
Based of patch contributed by Francesco Contino, Tommaso Lucchini,
Gianluca D’Errico, Hervé Jeanmart, Nicolas Bourgeois and Stéphane
Backaert.
2016-07-06 16:24:56 +01:00
2ed6b4da92 STYLE: documentation typo in EulerCoordinateRotation, add external reference 2016-07-06 11:47:10 +02:00
de75e2f918 fvOptions::limitVelocity: New fvOption to limit the maximum velocity magnitude
e.g. to avoid excessive unphysical velocities generated during slamming events in
incompressible VoF simulations

Usage
    Example usage:
    limitU
    {
        type            limitVelocity;
        active          yes;

        limitVelocityCoeffs
        {
            selectionMode   all;
            max             100;
        }
    }
2016-07-06 10:17:21 +01:00
b23b137ff8 fvOptions::tabulatedAccelerationSource: Minor update to doc 2016-07-06 10:16:57 +01:00
29e5fd7bda Updated header 2016-07-06 10:16:37 +01:00
48e160dce8 fvOptions::limitTemperature: Simplify controls and make documentation consistent with the code 2016-07-06 10:15:47 +01:00
dc5c42701c BUG: config.csh: wrong variable. Fixes #176 2016-07-06 09:23:55 +01:00
c1fb5e9021 CONFIG: rename config file to avoid premature filtering of its name 2016-07-06 08:11:42 +02:00
1a9112e1b2 CONFIG: rename config file to avoid premature filtering of its name 2016-07-06 08:11:42 +02:00
6ed05f0cd3 STYLE: mention suppression of banner for surfaceMeshInfo, ... (issue #125) 2016-07-06 07:43:05 +02:00
898b51c8a3 wmakePrintBuild -check: exit 0 if not a git repository 2016-07-05 21:50:34 +01:00
8a93e13df3 reactingEulerFoam dragModels: New models Beetstra, Tenneti
Contributed by Alberto Passalacqua, Iowa State University

Foam::dragModels::Beetstra
    Drag model of Beetstra et al. for monodisperse gas-particle flows obtained
    with direct numerical simulations with the Lattice-Boltzmann method and
    accounting for the effect of particle ensembles.

    Reference:
    \verbatim
        Beetstra, R., van der Hoef, M. A., & Kuipers, J. a. M. (2007).
        Drag force of intermediate Reynolds number flow past mono- and
        bidisperse arrays of spheres.
        AIChE Journal, 53(2), 489–501.
    \endverbatim

Foam::dragModels::Tenneti
    Drag model of Tenneti et al. for monodisperse gas-particle flows obtained
    with particle-resolved direct numerical simulations and accounting for the
    effect of particle ensembles.

    Reference:
    \verbatim
        Tenneti, S., Garg, R., & Subramaniam, S. (2011).
        Drag law for monodisperse gas–solid systems using particle-resolved
        direct numerical simulation of flow past fixed assemblies of spheres.
        International Journal of Multiphase Flow, 37(9), 1072–1092.
    \verbatim
2016-07-05 16:10:07 +01:00
ec43e2cf5a Updated headers 2016-07-05 16:09:56 +01:00
34972962a4 reactingEulerFoam/interfacialCompositionModels: Minor reformatting 2016-07-05 16:09:39 +01:00
9e1486fee5 checkMesh, moveDynamicMesh: option -checkAMI writes the reconstructed AMI weights
Patch contributed by Mattijs Janssens
2016-07-05 15:35:16 +01:00
1e82e1a1dd CONFIG: use ThirdParty boost, FFTW instead of system versions
- many systems may not have boost or FFTW installed, or in an older
  version. Using ThirdParty for them should lead to a more robust
  build process.
2016-07-05 16:15:03 +02:00
aad28cbb78 wmakeCollect: Name the object makefiles based on the object path
Ensures the order of compilation relates to the location of the source files
2016-07-05 14:53:26 +01:00
6494f0378e BUG: randomProcesses/Allwmake not being called (fixes #171) 2016-07-05 14:43:59 +02:00
948e10841b wmakeCollect: Support simultaneous builds of different target architectures or compilers 2016-07-05 10:24:08 +01:00
e8b098121c wmake: execute wmakeLnIncludeAll once with options 'queue' and 'update' 2016-07-05 07:54:45 +01:00
af8e0f1443 AllwmakeParseArguments: Moved all parallel processing options into wmake
and added support for queue scheduling option '-q', '-queue'

Now the 'Allwmake' scripts execute 'wmake -all' to handle parallel
processing in a general way, avoiding code duplication.
2016-07-04 22:30:20 +01:00
8abdc36398 Allwmake: Simplified by removing 'doc' option
It is better to run doc/Allwmake or doc/Doxygen/Allwmake and provide the
required options.
2016-07-04 22:28:19 +01:00
f835565372 steadyParticleTracksTemplates: Corrected correspondence between function declaration and definition 2016-07-04 10:44:08 +01:00
91a8421241 wmakeLnIncludeAll: Corrected type 2016-07-04 10:27:43 +01:00
9e712bbfc7 wmakeLnIncludeAll: Use 'wait -n' rather than and arbitrary 'sleep' when limiting the number of jobs 2016-07-04 09:39:28 +01:00
417ac33aca functionObjects: Updated documentation
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2138
2016-07-03 23:16:29 +01:00
7093f478e4 wmake: use the new parallel wmakeLnIncludeAll option if WM_NCOMPPROCS is set 2016-07-03 23:11:16 +01:00
6b77d86563 wmakeCollect: Experimental scheduler for wmake to speed-up parallel compilations
wmakeCollect collects the compilation commands for the all of the object
files to be compiled into a single makefile which is passed to make to
schedule the compilations in parallel efficiently.

Before wmakeCollect can be called the lnInclude directories must be
up-to-date and after wmakeCollect the linkage stage of the compilation
must executed using wmake.

This entire process is now handled by wmake using the new '-queue' or
'-q' option to compile sections of the OpenFOAM source tree or the
entire tree efficiently.  The number of cores the compilation executes
on may be specified either using the WM_NCOMPPROCS variable or the '-j'
option.

To efficiently compile OpenFOAM after a 'git pull' the '-update' option
is provided which updates lnInclude directories, dep files and removes
deprecated files and directories.  This option may be used with '-q':

    wmake -q -update
2016-07-03 22:55:16 +01:00
17bec8aab2 wmakeLnIncludeAll: Added -j option for parallel operation 2016-07-03 22:22:00 +01:00
47b6000c36 wmake/rules/General: Add support for WM_SCHEDULER to the compilation of lex, yacc and moc files 2016-07-03 22:21:02 +01:00
af6e8f150c timeVaryingMappedFixedValue: update for SP 2016-07-01 17:42:35 +01:00
6703d49f94 etc/config.sh/CGAL: unset CGAL_ARCH_PATH if it is no longer needed 2016-07-01 17:01:26 +01:00
9c0a04d8be BUG: need 'unset -f' to unset functions (issue #170)
- triggered by dash.
2016-07-01 17:55:03 +02:00
579f559aa7 Correct handling of the CGAL version variable for makeCGAL in ThirdParty 2016-07-01 16:22:28 +01:00
f768402255 Simplified the handling of the CGAL installation 2016-07-01 14:53:28 +01:00
ed014a099c src/OpenFOAM/primitives/ints: Further tweaks
Resolved additional bug-report http://bugs.openfoam.org/view.php?id=2137
2016-07-01 14:52:54 +01:00
139faa3cf0 vtkUnstructuredReader: corrected prism point ordering
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=1885
2016-07-01 14:45:18 +01:00
a623ab42a3 timeVaryingMappedFixedValue: Reinstated support for AverageField 2016-07-01 10:26:20 +01:00
08e941dccb Updated header 2016-07-01 10:25:38 +01:00
fa11efeba6 src/OpenFOAM/primitives/ints: Corrected MIN and MAX for uints
Resolves bug-report http://bugs.openfoam.org/view.php?id=2137
2016-07-01 10:24:42 +01:00
9965c5006c STYLE: minor improvement when writing list entry 2016-07-01 09:55:51 +02:00
ce121c92dc STYLE: minor simplification of check for uniform contents 2016-07-01 09:09:50 +02:00
cae7ce37f5 ENH: provide formatting version of Foam::name() (issue #253)
- there are some cases in which the C-style sprintf is much more
  convenient, albeit problematic for buffer overwrites.

  Provide a formatting version of Foam::name() for language
  primitives that is buffer-safe.

  Returns a Foam::word, so that further output will be unquoted, but
  without any checking that the characters are indeed entirely valid
  word characters.

  Example use,
      i = 1234;
      s = Foam::name("%08d", i);
      produces '00001234'

  Alternative using string streams:

      std::ostringstream buf;
      buf.fill('0');
      buf << setw(8) << i;
      s = buf.str();

  Note that the format specification can also be slightly more complex:

     Foam::name("output%08d.vtk", i);
     Foam::name("timing=%.2fs", time);

It remains the caller's responsibility to ensure that the format mask
is valid.
2016-07-01 08:23:13 +02:00
7bc05996ba SloanRenumber: link with libboost_system.so rather than libboost_thread.so
Resolves bug-report http://bugs.openfoam.org/view.php?id=2135
2016-06-30 12:01:32 +01:00
9fdb5506f4 timeVaryingMappedFixedValueFvPatchField: Simplifed for consistency with the output of sampledPlane
Now a case can be sampled and written in 'foam' format and used for the
timeVaryingMappedFixedValue BC of another case.
2016-06-30 10:35:01 +01:00
507b8988ec functionObjects::surfaceRegion: Write the surface geometry for formats in which the data is in separate files 2016-06-30 10:33:55 +01:00
c224d19c83 sampledCuttingPlane: Rationalized 2016-06-30 10:33:28 +01:00
939376a844 src/sampling/Make/files: Updated 2016-06-30 10:33:07 +01:00
c6200ea25e sampledPlane, plane: standardize the selection of the plane type 2016-06-30 10:32:31 +01:00
fdb4f37148 foamFileSurfaceWriter -> foamSurfaceWriter for consistency with the naming of the other writers 2016-06-30 10:31:09 +01:00
287b6537f2 fvcD2dt2: Updated non-const dereferencing to use '.ref()'
Resolves bug-report http://bugs.openfoam.org/view.php?id=2133
2016-06-29 21:55:57 +01:00
6d330d3d12 tutorials: Updated formatting of dictionaries and specification of 'plane' and 'samplePlane' 2016-06-29 18:02:57 +01:00
a158c30710 plane, sampledPlane: Rationalize the naming convention for the defining normal and point
normalVector -> normal
basePoint -> point

The old names are supported for backward-compatibility.
2016-06-29 16:58:35 +01:00
3e3a183732 Completed transformation of post-processing utilities into functionObjects 2016-06-28 19:26:23 +01:00
1bef3ab2e6 functionObjects::fieldExpression: Standardized warning message 2016-06-28 13:52:10 +01:00
9c37e165f7 utilities particleTracks, steadyParticleTracks: Updated and corrected 2016-06-27 20:44:11 +01:00
1ab64a0dd9 rigidBodyMeshMotion: Check for attempted assignment of patches to a merged body 2016-06-27 16:31:51 +01:00
850013e732 functionObjects::XiReactionRate: Writes the turbulent flame-speed and reaction-rate volScalarFields for the Xi-based combustion models
Replaces the obsolete and 'wdot' utility.
2016-06-27 08:58:36 +01:00
28f049e9b9 writeCellCentres utility: Replaced by writeCellCentres functionObject
postProcess -func writeCellCentres
2016-06-27 07:51:19 +01:00
4e09a6e598 foamGraph.*: Simplified scripts
Added a 'deprecated' comment and recommendation to use 'foamLog'
2016-06-25 22:14:25 +01:00
6bf368c925 bin/foamGraph.*: Converted to POSIX shell 2016-06-24 22:32:50 +01:00
6a2a5cbd24 foamListSourceFiles: keep .orig files 2016-06-24 22:32:22 +01:00
c28a45a8c5 Corrected file permissions 2016-06-24 22:32:08 +01:00
dea6a3c6e8 wmake/Allwmake: Completed support for targetType 'objects'
Patch contributed by Mattijs Janssens
2016-06-24 15:25:11 +01:00
186b2c1c69 potentialFoam: simplify the Phi BCs to use only fixedValue and zeroGradient by default
Resolves bug-report http://bugs.openfoam.org/view.php?id=2129
2016-06-24 15:16:51 +01:00
09819c52e0 tutorials/lagrangian/simpleReactingParcelFoam/verticalChannel: Updated entrainment BC 2016-06-24 14:06:30 +01:00
a1b524f8bc etc/config.sh/aliases: For backward-compatibility unalias wmRefresh if it is defined as an alias 2016-06-24 10:36:04 +01:00
6b6a73d9b2 applications/utilities/mesh/generation/Allwmake: Build foamyHexMesh if FOAMY_HEX_MESH is set 2016-06-24 08:48:29 +01:00
56985cdae8 Doxygen: Updated header 2016-06-23 16:06:12 +01:00
bd64b4059f CGAL: Set to use the system CGAL installation by default 2016-06-23 16:05:44 +01:00
d8fcf89570 Doxygen: Cleanup 'dot' files 2016-06-23 16:05:19 +01:00
e680a2716b Updated header 2016-06-23 16:05:11 +01:00
f7801bd815 Corrected file permissions 2016-06-23 16:05:02 +01:00
ab0b5545b4 etc/config.[c]sh: update wmRefresh to call wmUnset before updating the environment 2016-06-21 19:48:19 +01:00
96a038f281 foamyMesh: Simplify support for system CGAL installation 2016-06-21 19:47:46 +01:00
b646237d1d Corrected headers 2016-06-21 16:17:37 +01:00
a2f3512421 etc/caseDicts: Removed trailing whitespace 2016-06-21 16:13:22 +01:00
0aa05185db mapFieldsPar: updated to enable mapping from source patches (instead of recreating)
- patchFields now get mapped (instead of created)
  - with -consistent it now maps all patches except for processor ones (they are
    the only ones that are processor-local)
  - all constraint patches get evaluated after mapping to bring them up to date.

Patch contributed by Mattijs Janssens
2016-06-21 14:16:18 +01:00
e6f4d41228 uLabel: Removed unnecessary checks for < 0
Resolves bug-report http://bugs.openfoam.org/view.php?id=2128
2016-06-21 11:05:04 +01:00
04e56bfa6d doc/Doxygen/customdoxygen.css: simplified 2016-06-21 11:04:50 +01:00
7200384f18 Corrected documentation for Doxygen 2016-06-21 11:04:34 +01:00
3990302a54 Updated and simplified the Doxygen documentation 2016-06-20 21:20:28 +01:00
7ecb1422ce wclean all: if an Allclean script exists in sub-directories execute otherwise execute wclean
Resolves bug-report http://bugs.openfoam.org/view.php?id=2125
2016-06-20 10:05:23 +01:00
d04ea965e2 Update headers 2016-06-20 09:39:47 +01:00
b16756115a Remove/replace deprecated functions and classes 2016-06-20 09:39:02 +01:00
71fdcab771 Updated header documentation processed by Doxygen 2016-06-19 21:23:54 +01:00
0c62c8e1d0 fvPatchFields/derived/flowRateInletVelocity: Write the extrapolateProfile switch 2016-06-17 20:27:31 +01:00
6baef83eca ODESolvers::seulex: Handle possible overflow in the calculation of the dy norm 2016-06-17 18:59:28 +01:00
3f169f9045 bin/tools/doxyFilter.sed: Corrected 2016-06-17 18:59:09 +01:00
6a53ed41ba Doxygen documentation: Standardized the 'See also' heading 2016-06-17 17:31:34 +01:00
b3f3562d3c Doxygen documentation: Use the standard 'Usage' rather than the '\heading....' 2016-06-17 17:22:24 +01:00
a7ecd24a7c Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-17 17:14:30 +01:00
de4c018b19 Doxygen documentation: Remove superfluous linebreak 2016-06-17 17:13:39 +01:00
20ad00fc5d foamSearch: new script that searches a directory for
dictionary files of a particular name and extracts entries of a
particular keyword, sorting results into a unique list.

For example,
    foamSearch $FOAM_TUTORIALS laplacianSchemes.default fvSchemes

produces...
    default         Gauss linear corrected;
    default         Gauss linear limited corrected 0.33;
    default         Gauss linear limited corrected 0.5;
    default         Gauss linear orthogonal;
    default         Gauss linear uncorrected;
    default         none;

Uses the fantastic foamDictionary utility.
2016-06-17 14:53:13 +01:00
6891950288 singleGraph post-processing: added example configuration comments 2016-06-17 12:31:43 +01:00
4807448bb1 cyclicACMIPolyPatch: Clear geometry when resetting
Patch contributed by Mattijs Janssens
2016-06-17 11:50:56 +01:00
0d7bf4ffe1 cyclicACMIFvPatchField: Corrected declaration of updateCoeffs to be virtual 2016-06-17 11:50:30 +01:00
0f13f839a4 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-17 09:12:32 +01:00
1319df48d9 Rationalized Doxygen documentation of command-line options 2016-06-17 09:11:58 +01:00
aa12a81474 pitzDaily tutorial: replaced streamline function object
with new #includeFunc directive
2016-06-17 08:18:41 +01:00
b33932e1f6 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-17 07:38:14 +01:00
2e206db93c foamList: Remove dependency on utility libraries 2016-06-17 07:37:43 +01:00
1024bec26a sample function: add overrides comment and example 2016-06-16 22:51:22 +01:00
9cfccd2093 Simplify and correct Doxygen lists using '-' rather than '\li \c' 2016-06-16 20:10:39 +01:00
c2dcd18887 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-16 15:32:43 +01:00
c9adfb9806 fvOptions/constraints/fixedValueConstraint: Replacement for the nonsensical ExplicitSetValue
Description
    Constrain the field values within a specified region.

    For example to set the turbulence properties within a porous region:
    \verbatim
    porosityTurbulence
    {
        type            scalarFixedValueConstraint;
        active          yes;

        scalarFixedValueConstraintCoeffs
        {
            selectionMode   cellZone;
            cellZone        porosity;
            fieldValues
            {
                k           30.7;
                epsilon     1.5;
            }
        }
    }
    \endverbatim

See tutorials/compressible/rhoSimpleFoam/angledDuctExplicitFixedCoeff
constant/fvOptions for an example of this fvOption in action.
2016-06-16 15:32:19 +01:00
ce11c8288d foamMonitor: fixed bug in test syntax 2016-06-16 15:04:12 +01:00
fb5358eed0 Packaged function objects: reformatted units in Descriptions 2016-06-16 13:04:13 +01:00
787122c9c8 functionObjectList::list: Support recursion when listing functionObject configuration files 2016-06-16 13:02:17 +01:00
64aa9925e4 totalPressureFvPatchScalarField, uniformTotalPressureFvPatchScalarField: simplified and rationalized
The modes of operation are set by the dimensions of the pressure field
    to which this boundary condition is applied, the \c psi entry and the value
    of \c gamma:
    \table
        Mode                    | dimensions | psi   | gamma
        incompressible subsonic | p/rho      |       |
        compressible subsonic   | p          | none  |
        compressible transonic  | p          | psi   | 1
        compressible supersonic | p          | psi   | > 1
    \endtable

    For most applications the totalPressure boundary condition now only
    requires p0 to be specified e.g.
    outlet
    {
        type            totalPressure;
        p0              uniform 1e5;
    }
2016-06-16 12:21:34 +01:00
e71b8cabd8 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-16 08:10:15 +01:00
31e09c82da foamList: Avoid linking optional libraries 2016-06-16 08:09:49 +01:00
42b2086683 ENH: adapter for a list of C++ strings <-> a list of C-style strings
- Translate a list of C++ strings into C-style (argc, argv) pair.
- Translate C-style (argc, argv) pair to list of C++ strings.

Useful when interfacing to external C-code and some libraries
2016-06-16 08:22:53 +02:00
4ae45d9499 Template cases: commenting out scalarLevels to prevent 0 directory
being filled with cellLevel files, which generally breaks workflows
2016-06-15 18:06:12 +01:00
6aa7f10323 Template cases: removed solver entries using default values from fvSolution 2016-06-15 16:28:42 +01:00
cbbb8bbdad foamList: Complete set of included libraries 2016-06-15 14:23:14 +01:00
b2223913d0 wmake/scripts/wmakeFunctions: Add support for $WM_PROJECT_DIR being a link 2016-06-15 14:22:33 +01:00
b5d7ba3190 fvPatchField, cyclicACMI: Renamed weighted updateCoeffs
updateCoeffs(const scalarField&) -> updateWeightedCoeffs(const scalarField&)

to avoid confusion with other specialized forms of updateCoeffs.

Patch contributed by Mattijs Janssens
2016-06-15 09:06:16 +01:00
175b27ff32 functionObjects::surfaceRegion,volRegion: Improved documentation 2016-06-15 09:05:35 +01:00
3d98d6e5c6 changeDictionary: Simplified by removing the need for the superfluous dictionaryReplacement sub-dictionary
Added the option '-subDict' to specify a sub-dictionary if multiple
replacement sets are present in the same file.  This also provides
backward compatibility by setting '-subDict dictionaryReplacement'
2016-06-15 09:03:05 +01:00
344f435f54 Tutorials fvSolution files: removed solver entries which use default
values; formatted Switch entries consistently across all cases
2016-06-15 07:39:12 +01:00
dc305b04f3 foamList: Added support for listing scalar and vector field boundary conditions
Usage: foamList [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -compressibleTurbulenceModels
                    List compressible turbulenceModels
  -functionObjects  List functionObjects
  -fvOptions        List fvOptions
  -incompressibleTurbulenceModels
                    List incompressible turbulenceModels
  -noFunctionObjects
                    do not execute functionObjects
  -registeredSwitches
                    List switches registered for run-time modification
  -scalarBCs        List scalar field boundary conditions (fvPatchField<scalar>)
  -switches         List switches declared in libraries but not set in
                    etc/controlDict
  -unset            List switches declared in libraries but not set in
                    etc/controlDict
  -vectorBCs        List vector field boundary conditions (fvPatchField<vector>)
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage
2016-06-14 17:43:31 +01:00
fbc0d4f4f1 foamList: Added support for listing fvOptions, functionObjects and turbulence models
Usage: foamList [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -compressibleTurbulenceModels
                    List compressible turbulenceModels
  -functionObjects  List functionObjects
  -fvOptions        List fvOptions
  -incompressibleTurbulenceModels
                    List incompressible turbulenceModels
  -noFunctionObjects
                    do not execute functionObjects
  -registeredSwitches
                    List switches registered for run-time modification
  -switches         List switches declared in libraries but not set in
                    etc/controlDict
  -unset            List switches declared in libraries but not set in
                    etc/controlDict
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage
2016-06-14 16:45:27 +01:00
19eb6fbc6c Legacy solver wrappers ICCG and BICCG removed
Instead of ICCG use PCG with the DIC preconditioner
Instead of BICCG use PBiCG with the DILU preconditioner
2016-06-14 14:53:28 +01:00
377ea204ab Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-14 12:18:20 +01:00
6bade21b2a multiphaseCompressibleTurbulenceModels, twoPhaseCompressibleTurbulenceModels, phaseCompressibleTurbulenceModels: Added LIB_LIBS 2016-06-14 12:17:15 +01:00
876a610e47 src/Allwmake: Update the location of global.o
Resolves bug-report http://bugs.openfoam.org/view.php?id=2120
2016-06-14 12:15:07 +01:00
3d810c11dc Tutorials: made laplacianSchemes consistent and correct 2016-06-13 23:38:03 +01:00
15653daa35 etc/caseDicts/postProcessing: simplified configuration files 2016-06-13 17:03:06 +01:00
029825b83c applications/utilities: Reorganized 2016-06-13 17:02:43 +01:00
fdf69b3c25 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-13 16:42:51 +01:00
fda11f60b1 foamListTimes: moved to applications/utilities/miscellaneous/foamListTimes 2016-06-13 16:42:25 +01:00
dfd9d97646 Utility ptot has been superceded by the postProcess utility:
postProcess -func 'totalPressureIncompressible(U,p)'
or
    postProcess -func 'totalPressureCompressible(rho,U,p)'
2016-06-13 16:42:00 +01:00
4baac4cd80 sonicFoam cases: removed redundant coefficient in divSchemes 2016-06-13 15:03:57 +01:00
de02a089ba tutorials: Removed references to 'sampleDict' 2016-06-13 14:53:56 +01:00
0e4e28be26 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-13 14:29:38 +01:00
d9f423ec85 Utility sample: replaced by 'postProcess -func sample'
To re-use existing 'sampleDict' files simply add the following entries:

    type sets;
    libs ("libsampling.so");

and run

    postProcess -func sampleDict

It is probably better to also rename 'sampleDict' -> 'sample' and then run

    postProcess -func sampleDict
2016-06-13 14:27:46 +01:00
cc151ce9a0 pimpleDyMFoam/mixerVesselAMI2D: removed redundant coefficient 2016-06-13 13:12:24 +01:00
ffc5578812 probeLocations has been superceded by the postProcess utility
e.g.
postProcess -func probes

or

postProcess -func 'probes(p, U)'
2016-06-13 09:55:26 +01:00
ee42f980f6 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-13 09:47:53 +01:00
beb44f9bfa Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-13 09:43:18 +01:00
118a0f225d functionObjects: Completed transformation of 'source' to vol/surfaceRegion 2016-06-13 09:42:14 +01:00
12814a306d sonicFoam forwardStep tutorial: removed redundant scheme entry 2016-06-13 09:34:01 +01:00
ae1a6dd12d functionObjects: Simplified the handling of the post-processing mode
Replaced the 'postProcess' argument to the 'write' and 'execute'
functions with the single static member 'postProcess' in the
functionObject base-class.
2016-06-13 08:36:03 +01:00
18b632e71d Utilities patchAverage and patchIntegrate replaced by postProcess
e.g.
    postProcess -func 'patchAverage(name=inlet,p)'
    postProcess -func 'patchIntegrate(name=inlet,p)'
2016-06-12 22:32:15 +01:00
6656aff301 etc/caseDicts/postProcessing/flowRate: Corrected includes
Resolves bug-report http://bugs.openfoam.org/view.php?id=2117
2016-06-12 22:28:51 +01:00
6be269ca0b Minor reformatting 2016-06-12 21:12:13 +01:00
f885349921 Removed experimental code 2016-06-12 21:11:55 +01:00
83321bd4f7 functionObjects: renamed faceSource -> surfaceRegion, cellSource -> volRegion
The use of the term 'source' in the context of post-processing is
confusing and does not properly describe the process of region
selection.  The new names 'surfaceRegion' and 'volRegion' better
describe the purpose of the functionObjects which is to provide field
processing functionality limited to a specified region of space, either
a surface or volume.

The keyword 'source' is renamed 'regionType' which better describes the
purpose which is to specify the method by which the surface or volume
region is selected.

The keyword to select the name of the surface or volume region is
renamed from 'sourceName' to 'name' consistent with the other
name-changes above.
2016-06-12 20:56:51 +01:00
e2336fefd3 checkMesh: Added writing of faceSets and cellSets containing errors
In parallel the sets are reconstructed. e.g.

mpirun -np 6 checkMesh -parallel -allGeometry -allTopology -writeSets vtk

will create a postProcessing/ folder with the vtk files of the
(reconstructed) faceSets and cellSets.

Also improved analysis of disconnected regions now also checks for point
connectivity with is useful for detecting if AMI regions have duplicate
points.

Patch contributed by Mattijs Janssens
2016-06-12 20:51:07 +01:00
326b646bb8 Allwmake -update: Further improvements to handle source-tree/dep file inconsistencies after git pull
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2091
2016-06-11 16:28:40 +01:00
0365dec03e functionObjects: 'valueOutput' -> 'writeFields' 2016-06-11 15:26:10 +01:00
0f4df0150a functionObjects: 'valueOutput' -> 'writeFields' 2016-06-11 15:25:00 +01:00
55782e2868 foamList: Updated handling of switches and removed the '-redundant' option which does not work 2016-06-11 15:24:01 +01:00
2d91b2d92c Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-11 12:41:03 +01:00
ebac6c1512 pressureDifference packaged function object: corrected include statement 2016-06-11 12:40:59 +01:00
8cca43e259 applications/Allwmake: Compile utilities after solvers
Resolves bug-report http://bugs.openfoam.org/view.php?id=2116
2016-06-11 11:49:35 +01:00
1865b49aae Packaged function objects: added a Description entry 2016-06-11 08:53:04 +01:00
680b4e1f11 etc/config.[c]sh/unset: unalias wmRefresh
Resolves bug-report http://bugs.openfoam.org/view.php?id=2112
2016-06-10 22:19:21 +01:00
5b38cb4862 bin/tools/RunFunctions: Simplified using the foamDictionary -value option 2016-06-10 20:24:12 +01:00
29bff520a4 foamDictionary: Added -value option to print the value associated with an entry 2016-06-10 20:23:46 +01:00
2f84769710 bin/tools/RunFunctions: Updated to use foamDictionary 2016-06-10 18:02:26 +01:00
533135ebd4 foamDictionary: Added -expand and -includes options
Replaces expandDictionary utility
2016-06-10 17:39:16 +01:00
d42836f2ec wallFunctionTable: corrected source file name 2016-06-10 14:07:32 +01:00
f5ed8e777a autoRefineMesh: corrected source file and executable names 2016-06-10 14:05:30 +01:00
c8188265f1 foamDebugSwitches -> foamList -debug 2016-06-10 13:34:58 +01:00
603e34d514 UOPstream: corrected write(const char* str)
Resolved bug-report http://bugs.openfoam.org/view.php?id=2115
2016-06-10 13:33:40 +01:00
079a024374 functionObjects::fieldValue: Added support for 'field' entry
Added patchIntegrate configuration
2016-06-10 10:37:37 +01:00
0aa4d70b9d applications/utilities: FOAM_USER_APPBIN -> FOAM_APPBIN 2016-06-10 10:35:57 +01:00
829f97fb93 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-10 08:29:10 +01:00
4b5905e535 functionObjects::writeRegisteredObject -> functionObjects::writeObjects
Added configuration file etc/caseDicts/postProcessing/fields/writeObjects
2016-06-10 08:28:13 +01:00
288ead131d Descriptions of solvers corrected and made more consistent and more user-friendly 2016-06-09 18:59:40 +01:00
6d5db96ad9 ENH: subdict output with leading name (issue #255)
- Introduce dictionary::writeEntries for better code-reuse.

  Before
  ======
      os << nl << indent << "name";
      dict.write(os);

  After
  =====
      dict.write(os, "name");
2016-06-09 18:33:56 +01:00
792eaa3566 stressComponents: utility replaced by the 'R' and 'components' functionObject used with the '-postProcess' option 2016-06-09 18:09:27 +01:00
acdb7a0324 wallGradU: utility replaced by the 'grad' functionObject used with the '-postProcess' option 2016-06-09 18:06:39 +01:00
657c2909ed createTurbulenceFields: utility replaced by 'turbulenceFields' functionObject used with the '-postProcess' option 2016-06-09 17:17:19 +01:00
0f5b4f3c49 functionObjects: Corrected docs 2016-06-09 16:29:06 +01:00
6a03830b05 R: utility replaced by functionObject used with the '-postProcess' option 2016-06-09 16:28:30 +01:00
aeb667e1f4 STYLE/ENH: reduce code duplication for coded boundary conditions (issue #184)
- relocate common dictionary output into codedBase class
2016-06-09 16:13:04 +01:00
13f91bf5de functionObjects: 'output:' -> 'write:' for consistency with the naming of the 'write' function 2016-06-09 16:06:44 +01:00
fd734554b9 functionObjects::yPlus: Rationalized the functionality in 'execute' and 'write' 2016-06-09 16:06:09 +01:00
4734b1af5b wallShearStress: utility replaced by functionObject used with the '-postProcess' option 2016-06-09 16:05:13 +01:00
e175594e9f Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-09 14:52:04 +01:00
ca588fb2c5 Merge branch 'master' of github.com:OpenFOAM/OpenFOAM-dev 2016-06-09 14:36:16 +01:00
df904757b4 wmake/rules/General/CGAL: lib -> lib64 on 64bit OSs
Patch contributed by Bruno Santos
Resolves patch request http://bugs.openfoam.org/view.php?id=2114
2016-06-09 14:34:26 +01:00
02886159cb Update plateHole case to be consistent with User Guide tutorial 2016-06-08 15:34:16 +01:00
43b3fa2ce3 functionObjects::scalarTransport: simplified, standardized, rationalized
tutorials/incompressible/pisoFoam/les/pitzDaily: Added scalarTransport
functionObject to demonstrate the new functionality
2016-06-08 15:11:57 +01:00
421d3ffd5e Name of packaged function object consistent with filename
to enable the postProcess -func <function> option to work
2016-06-08 14:15:20 +01:00
ee6188ed09 Removed fixedWalls from cuttingPatches because it is redundant now fixedWalls is noSlip 2016-06-08 14:08:26 +01:00
c32f4fef00 Corrected RAS cavity case to be consistent with User Guide tutorial 2016-06-08 14:01:50 +01:00
70f3947c48 etc/bashrc,cshrc: Use "$WM_PROJECT" rather than "OpenFOAM" in the setting of $FOAM_INST_DIR
Patch contributed by Bruno Santos
Resolves patch request http://bugs.openfoam.org/view.php?id=2112
2016-06-08 11:51:21 +01:00
c93dcf98a6 applications/utilities/miscellaneous/foamDictionary/Make/options: Removed debug options 2016-06-07 16:27:22 +01:00
680c687407 src/rigidBodyMeshMotion/Make/options: Removed debug switches 2016-06-07 16:25:29 +01:00
6fe3812698 etc/config.*/aliases: Updated, removed duplicates and added foamVersion
foamVersion: prints the current OpenFOAM version
foamVersion <version>: changes to the specified version
2016-06-07 16:15:46 +01:00
c88070040e PatchFlowRateInjection: Corrected parallel handling of the random position
Resolves bug-report http://bugs.openfoam.org/view.php?id=2111
2016-06-07 10:56:33 +01:00
f2d9959bae foamConfigurePaths: Updated foamInstall option 2016-06-06 19:32:01 +01:00
2b71ea6f58 Update headers 2016-06-06 17:22:23 +01:00
b7243e2d19 etc/bashrc,cshrc: Simplify and automate the setting of FOAM_INST_DIR
FOAM_INST_DIR is the location of the OpenFOAM installation which defaults to
the directory containing the etc/bashrc,cshrc file.  If this default is
not appropriate FOAM_INST_DIR can be set explicitly.
2016-06-06 17:20:10 +01:00
048a3a7ada tutorials/lagrangian/MPPICFoam/injectionChannel: Corrected orientation of inlet air
Resolves bug-report http://bugs.openfoam.org/view.php?id=2110
2016-06-06 12:20:14 +01:00
06f22a9bf3 ENH: cleanup Ostream to ease usage (issue #254)
- Include newline in beginBlock/endBlock, since this corresponds to
  the standard usage. The beginBlock now takes keyType instead of word.

- Provide Ostream::writeEntry method to reduce clutter and simplify
  writing of entries.

  Before
  ======
      os << indent << "name" << nl
         << indent << token::BEGIN_BLOCK << incrIndent << nl;
      os.writeKeyword("key1") << val1 << token::END_STATEMENT << nl;
      os.writeKeyword("key2") << val2 << token::END_STATEMENT << nl;
      os << decrIndent << indent << token::END_BLOCK << nl;

  After
  =====
      os.beginBlock("name");
      os.writeEntry("key1", val1);
      os.writeEntry("key2", val2);
      os.endBlock();

- For completeness, support inline use of various Ostream methods.
  For example,

      os << beginBlock;
      os.writeEntry("key1", val1);
      os.writeEntry("key2", val2);
      os << endBlock;

- For those who wish to write in long form, can also use endEntry inline:

      os.beginBlock("name");
      os.writeKeyword("key1") << val2 << endEntry;
      os.writeKeyword("key2") << val2 << endEntry;
      os.endBlock();

The endEntry encapsulates a semi-colon, newline combination.
2016-06-06 11:51:05 +01:00
34e48fff4c kOmegaSSTDES: New DES model based on the k-omega SST RAS model
Description
    Implementation of the k-omega-SST-DES turbulence model for
    incompressible and compressible flows.

    DES model described in:
    \verbatim
        Menter, F. R., Kuntz, M., and Langtry, R. (2003).
        Ten Years of Industrial Experience with the SST Turbulence Model.
        Turbulence, Heat and Mass Transfer 4, ed: K. Hanjalic, Y. Nagano,
        & M. Tummers, Begell House, Inc., 625 - 632.
    \endverbatim

    Optional support for zonal filtering based on F1 or F2 is provided as
    described in the paper.

    For further details of the implementation of the base k-omega-SST model
    see Foam::kOmegaSST.

    The DES coefficient 'CDES' defaults to 0.61 but may be changed as
    necessary.

    The zonal filter filter defaults to '2' which uses "(1 - F2)" as
    suggested in the paper but '0' (no filtering) and '1' which uses
    "(1 - F1)" are also supported.
2016-06-06 08:56:54 +01:00
b625d2ba8e etc/config.*/unset: Added CGAL-related environment variables 2016-06-05 18:22:28 +01:00
a3a04ceae9 ORourkeCollision: Cache access to the UList of parcel pointers for cell 2016-06-04 18:49:10 +01:00
d60ae9a496 ORourkeCollision: use a CompactListList to avoid memory allocation overhead 2016-06-04 17:45:35 +01:00
76f6236bbe DynamicList: minor cleanup 2016-06-04 17:45:11 +01:00
315ce79660 ORourkeCollision: Corrected bugs and added more efficient collision detection
See http://bugs.openfoam.org/view.php?id=2097
2016-06-04 11:48:27 +01:00
2443ed0a70 wmake/rules/linux64GccKNL: Optimized compilation options for the Knights Landing MIC processor 2016-06-04 10:13:22 +01:00
d984a96645 foamDictionary: New utility to print and manipulate dictionary entries
Replaces the dictionary access functionality of foamInfoExec and
provides additional options to edit individual entries.
Contributed by Mattijs Janssens
2016-06-03 19:24:05 +01:00
dd281330bc foamInfoExec: Time listing functionality superseded by foamListTimes 2016-06-03 19:23:27 +01:00
82236c2b81 wmake/rules/linux64KNLIcc: Optimized compilation options the for Knights Landing MIC processor
Patch contributed by Paul Edwards, Intel
2016-06-03 15:29:14 +01:00
526ecfecf4 ENH: group info about particle output with "{}" etc
- The only reasonable means of mirroring the data layout.

  The '{}' delimiters mark the extent of the binary writes.

  The primitives 'label' and 'scalar' are directly supported and correspond
  to known byte widths.

  Using "List<scalar>" was a bad choice, since this triggers unpleasant
  tokenizing behaviour. Instead use 'scalars' as a provisional placeholder
  to indicates a list of scalar values. However, there is currently no
  support for actually handling lists of scalars, for several reasons:

   * The information is not available at compile-time.
     The cloud or parcel must be queried. And it must be guaranteed
     that this value is consistent for the entire cloud.

   * Binary output of lists is currently not great for determining the
     the encoded width:
        - A zero-size list is a single '0'.
        - The leading size is a non-constant number of digits.
        - There are prefix/suffix newlines need to be tagged and
          skipped.

  The special '*' (glob) token indicates that the remaining content
  has a dynamic variable length and nothing reasonable can be known
  about their sizes. This is exemplified by the collision records.
2016-06-02 17:39:19 +02:00
2b5e73fbce BUG: incorrect face order/orientation in boundBox (issue #196)
- was fortunately not used anywhere previously
2016-07-28 07:00:33 +02:00
79088bb611 functionObjects/forces: The 'rhoInf' entry is now only required if 'rho' is set to 'rhoInf' 2016-06-02 15:14:14 +01:00
90eda1279e Minor reformatting 2016-06-02 15:14:01 +01:00
2cdebff3b7 LESfilters: Ensure the coupled BCs of the field are updated before filtering
Resolves bug-report http://bugs.openfoam.org/view.php?id=2108
2016-06-02 12:14:51 +01:00
723b92ddc1 etc/caseDicts/postProcessing: Updated now that #includeFunc handles function arguments 2016-06-01 21:52:07 +01:00
6000ea217f postProcess: Added '-list' option to list the available configured functionObjects 2016-06-01 16:28:07 +01:00
c7048a7b93 SprayParcel: Set the 'origId' of the child parcels
Resolves bug-report http://bugs.openfoam.org/view.php?id=2105
2016-05-31 21:25:09 +01:00
72db301f54 tutorials/multiphase/reactingTwoPhaseEulerFoam/laminar/bubbleColumnEvaporating: Minor cleanup 2016-05-31 21:22:13 +01:00
ea6d010f51 tutorials/incompressible/pimpleDyMFoam/propeller: Use the standard 'Q' functionObject configuration 2016-05-31 21:21:41 +01:00
1be464d23d functionObjectList::readFunctionObject: Add support for functionObject arguments containing '()'s 2016-05-31 17:47:21 +01:00
c022a97ff4 HashTable: Correct error messages
Resolves bug-report http://bugs.openfoam.org/view.php?id=2106
2016-05-31 17:18:23 +01:00
a9492b074f Updated headers 2016-05-31 17:18:14 +01:00
7c45066996 includeEntry, includeEtcEntry, includeIfPresentEntry: report -> log
for consistency with the 'Log' macro.
2016-05-31 17:17:24 +01:00
7454518bc5 includeFuncEntry: Added support for function arguments compatible with the '-func' post-processing option
e.g.

functions
{
    #includeFunc mag(U)
}

executes 'mag' on the field 'U' writing the field 'mag(U)'.

The equivalent post-processing command is

postProcess -func 'mag(U)'
2016-05-31 14:43:44 +01:00
cb1523dbd9 tutorials/compressible/sonicFoam/laminar/shockTube: Added functionObject
tutorials/electromagnetics/mhdFoam/hartmann: Added functionObject

Replaced separate 'postProcess' step with a functionObject executed at
run-time.
2016-05-31 10:33:48 +01:00
c4eedd4762 etc/config.*/paraview: Upgraded to ParaView-5.0.1 2016-05-30 21:27:11 +01:00
1be96a546c Added forward declaration of friend functions 2016-05-30 13:21:29 +01:00
fef82f935c Updated header 2016-05-30 08:31:21 +01:00
d438da1eb7 ACMI: Corrected conservation issue
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2057
2016-05-30 08:29:11 +01:00
3f608e95e6 Added forward declaration of friend functions 2016-05-30 08:28:35 +01:00
35dba48db1 createBaffles: filter zero-sized patches
Resolves patch request http://bugs.openfoam.org/view.php?id=2103
Patch contributed by Mattijs Janssens
2016-05-29 22:51:15 +01:00
a4f8f589de Added forward declaration of friend functions 2016-05-29 22:28:37 +01:00
227811bb2e etc/config.*: Added support for gcc-6.1 2016-05-29 22:28:07 +01:00
482869eea4 CGAL: Upgraded to 4.8 2016-05-29 22:27:46 +01:00
8ab6b4df2c buoyantBoussinesqPimpleFoam: Corrected handling of time-step adjustment
Resolves bug-report http://bugs.openfoam.org/view.php?id=2104
2016-05-29 22:26:53 +01:00
e4dc50dcb0 postProcessing: Replaced 'foamCalc' and the 'postCalc' utilities
with the more general and flexible 'postProcess' utility and '-postProcess' solver option

Rationale
---------

Both the 'postProcess' utility and '-postProcess' solver option use the
same extensive set of functionObjects available for data-processing
during the run avoiding the substantial code duplication necessary for
the 'foamCalc' and 'postCalc' utilities and simplifying maintenance.
Additionally consistency is guaranteed between solver data processing
and post-processing.

The functionObjects have been substantially re-written and generalized
to simplify development and encourage contribution.

Configuration
-------------

An extensive set of simple functionObject configuration files are
provided in

OpenFOAM-dev/etc/caseDicts/postProcessing

and more will be added in the future.  These can either be copied into
'<case>/system' directory and included into the 'controlDict.functions'
sub-dictionary or included directly from 'etc/caseDicts/postProcessing'
using the '#includeEtc' directive or the new and more convenient
'#includeFunc' directive which searches the
'<etc>/caseDicts/postProcessing' directories for the selected
functionObject, e.g.

functions
{
    #includeFunc Q
    #includeFunc Lambda2
}

'#includeFunc' first searches the '<case>/system' directory in case
there is a local configuration.

Description of #includeFunc
---------------------------

    Specify a functionObject dictionary file to include, expects the
    functionObject name to follow (without quotes).

    Search for functionObject dictionary file in
    user/group/shipped directories.
    The search scheme allows for version-specific and
    version-independent files using the following hierarchy:
    - \b user settings:
      - ~/.OpenFOAM/\<VERSION\>/caseDicts/postProcessing
      - ~/.OpenFOAM/caseDicts/postProcessing
    - \b group (site) settings (when $WM_PROJECT_SITE is set):
      - $WM_PROJECT_SITE/\<VERSION\>/caseDicts/postProcessing
      - $WM_PROJECT_SITE/caseDicts/postProcessing
    - \b group (site) settings (when $WM_PROJECT_SITE is not set):
      - $WM_PROJECT_INST_DIR/site/\<VERSION\>/caseDicts/postProcessing
      - $WM_PROJECT_INST_DIR/site/caseDicts/postProcessing
    - \b other (shipped) settings:
      - $WM_PROJECT_DIR/etc/caseDicts/postProcessing

    An example of the \c \#includeFunc directive:
    \verbatim
        #includeFunc <funcName>
    \endverbatim

postProcess
-----------

The 'postProcess' utility and '-postProcess' solver option provide the
same set of controls to execute functionObjects after the run either by
reading a specified set of fields to process in the case of
'postProcess' or by reading all fields and models required to start the
run in the case of '-postProcess' for each selected time:

postProcess -help

Usage: postProcess [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -constant         include the 'constant/' dir in the times list
  -dict <file>      read control dictionary from specified location
  -field <name>     specify the name of the field to be processed, e.g. U
  -fields <list>    specify a list of fields to be processed, e.g. '(U T p)' -
                    regular expressions not currently supported
  -func <name>      specify the name of the functionObject to execute, e.g. Q
  -funcs <list>     specify the names of the functionObjects to execute, e.g.
                    '(Q div(U))'
  -latestTime       select the latest time
  -newTimes         select the new times
  -noFunctionObjects
                    do not execute functionObjects
  -noZero           exclude the '0/' dir from the times list, has precedence
                    over the -withZero option
  -parallel         run in parallel
  -region <name>    specify alternative mesh region
  -roots <(dir1 .. dirN)>
                    slave root directories for distributed running
  -time <ranges>    comma-separated time ranges - eg, ':10,20,40:70,1000:'
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

 pimpleFoam -postProcess -help

Usage: pimpleFoam [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -constant         include the 'constant/' dir in the times list
  -dict <file>      read control dictionary from specified location
  -field <name>     specify the name of the field to be processed, e.g. U
  -fields <list>    specify a list of fields to be processed, e.g. '(U T p)' -
                    regular expressions not currently supported
  -func <name>      specify the name of the functionObject to execute, e.g. Q
  -funcs <list>     specify the names of the functionObjects to execute, e.g.
                    '(Q div(U))'
  -latestTime       select the latest time
  -newTimes         select the new times
  -noFunctionObjects
                    do not execute functionObjects
  -noZero           exclude the '0/' dir from the times list, has precedence
                    over the -withZero option
  -parallel         run in parallel
  -postProcess      Execute functionObjects only
  -region <name>    specify alternative mesh region
  -roots <(dir1 .. dirN)>
                    slave root directories for distributed running
  -time <ranges>    comma-separated time ranges - eg, ':10,20,40:70,1000:'
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

The functionObjects to execute may be specified on the command-line
using the '-func' option for a single functionObject or '-funcs' for a
list, e.g.

postProcess -func Q
postProcess -funcs '(div(U) div(phi))'

In the case of 'Q' the default field to process is 'U' which is
specified in and read from the configuration file but this may be
overridden thus:

postProcess -func 'Q(Ua)'

as is done in the example above to calculate the two forms of the divergence of
the velocity field.  Additional fields which the functionObjects may depend on
can be specified using the '-field' or '-fields' options.

The 'postProcess' utility can only be used to execute functionObjects which
process fields present in the time directories.  However, functionObjects which
depend on fields obtained from models, e.g. properties derived from turbulence
models can be executed using the '-postProcess' of the appropriate solver, e.g.

pisoFoam -postProcess -func PecletNo

or

sonicFoam -postProcess -func MachNo

In this case all required fields will have already been read so the '-field' or
'-fields' options are not be needed.

Henry G. Weller
CFD Direct Ltd.
2016-05-28 18:58:48 +01:00
6f9573bb12 etcFiles: Added functions to find directories in the 'etc' directories
'findEtcFiles' moved from OSspecific to 'etcFiles' as it is not OS-specific
2016-05-28 18:55:37 +01:00
c242c1762a ReadFields: Added functions to read selected fields and store in the objectRegistry 2016-05-26 22:59:08 +01:00
f7e6e7d9a4 functionObjects::blendingFactor: Minor reformat 2016-05-26 22:58:46 +01:00
af39491c04 fileName: Added recursive directory search function
//- Recursively search the given directory for the file
    //  returning the path relative to the directory or
    //  fileName::null if not found
    fileName search(const word& file, const fileName& directory);
2016-05-26 21:43:16 +01:00
ecb05dd66b SafeFatalIOError: Updated to print correct file and line number
Resolves bug-report http://bugs.openfoam.org/view.php?id=2102
Patch contributed by Mattijs Janssens
2016-05-26 17:40:37 +01:00
fd24c05cf9 etc/caseDicts/postProcessing: Updated for recent developments in functionObjects 2016-05-26 16:31:32 +01:00
3186245b92 etc/caseDicts/postProcessing/fields: Added 'components' and 'div' 2016-05-26 15:34:15 +01:00
3b3d6809cf etc/caseDicts/postProcessing/fields/Q: Simplified 2016-05-26 15:34:01 +01:00
712fba33e3 functionObjects::Q: Result field named "Q" if the field is "U" otherwise "Q(<fieldName>)" 2016-05-26 15:32:31 +01:00
9d71c18fcf functionObjects::randomise: New functionObject to create a field with a random perturbation 2016-05-26 15:32:10 +01:00
1940cf8413 messageStream: Updated 'DebugVar' to handle multi-line object output
Resolves feature-request http://bugs.openfoam.org/view.php?id=2101
Patch contributed by Mattijs Janssens
2016-05-26 14:57:15 +01:00
d3994638b4 surfaceInterpolation:localMin,localMax: Add support for consistent interpolation on coupled BCs
Resolves bug-report http://bugs.openfoam.org/view.php?id=2100
2016-05-26 14:55:44 +01:00
4cf777fc3f functionObjects::magSqr, components: New functionObjects to calculate the 'magSqr' and 'components' of a field 2016-05-26 10:15:14 +01:00
e5d75e9824 regionFunctionObject: Indent 'write' messages 2016-05-26 10:14:51 +01:00
1b500ea18d functionObjects::fieldExpression: Corrected docs 2016-05-26 10:14:29 +01:00
693813aa90 functionObjects:🔍 Removed redundant warning 2016-05-26 10:14:07 +01:00
293267e924 functionObjects::blendingFactor: Removed redundant warning 2016-05-26 10:13:36 +01:00
ee462f8241 messageStream: Added 'Log' macro which outputs to 'Info' if 'log' is true
regionFunctionObject: moved 'log_' to public 'log' to support the 'Log' macro
2016-05-25 18:19:46 +01:00
82ca430a02 thermoSingleLayer: Provide better stabilization for the energy equation as delta -> 0 2016-05-25 18:12:07 +01:00
6463192261 simpleControl: Change the number of steps printed to be relative to the current time (for restarts) rather than 0
Resolves feature-request http://bugs.openfoam.org/view.php?id=2096
2016-05-25 16:58:28 +01:00
1de91282cd regionFunctionObject: Moved the field/object maintenance functions from fvMeshFunctionObject into regionFunctionObject 2016-05-25 16:26:57 +01:00
0e3f655865 functionObjects: Clear the result field from the objectRegistry if the argument fields are not available
This is needed to handle the processing of many time directories, some
of which may have the required fields and some not.
2016-05-25 15:40:58 +01:00
bae742112f postProcess: catch missing field errors to process further time-directories 2016-05-25 15:39:37 +01:00
bc6485b8f4 codedFunctionObject: Updated documentation 2016-05-24 14:01:33 +01:00
cc84047797 functionObjects: Rationalize logging 2016-05-24 10:40:28 +01:00
6b80811b1f functionObjects::surfaceInterpolateFields: Derive from fvMeshFunctionObject 2016-05-24 10:40:02 +01:00
e72a50cf47 functionObjects::fieldAverage,turbulenceFields: derive from fvMeshFunctionObject 2016-05-24 09:57:41 +01:00
6ce303c79a functionObjects::regionFunctionObject: Added optional 'log' entry (defaults to true) 2016-05-24 09:03:41 +01:00
b634f5af08 functionObjects::MachNo: New functionObject to calculate the Mach number volScalarField
of a compressible single-phase flow

See tutorials/compressible/sonicFoam/laminar/forwardStep/system/controlDict
2016-05-23 21:45:41 +01:00
f67d8dd695 functionObjects::forces: Corrected lookup of fluidThermo 2016-05-23 21:45:07 +01:00
be2ceff465 etc/config.*/aliases: Renamed aliases to be less SHOUTY and confusing 2016-05-23 18:47:28 +01:00
aaa453d16e functionObjects::enstrophy: new functionObject to calculate the enstrophy of the velocity 2016-05-23 15:22:15 +01:00
3d0c94bd67 functionObjects::flowType: new functionObject which calculates and writes the flowType of velocity field
The flow type parameter is obtained according to the following equation:
    \verbatim
                 |D| - |Omega|
        lambda = -------------
                 |D| + |Omega|

        -1 = rotational flow
         0 = simple shear flow
         1 = planar extensional flow
    \endverbatim
2016-05-23 14:59:10 +01:00
63058198cf functionObjects: Corrected 'grp' entries for 'field' functionObjects 2016-05-23 14:56:06 +01:00
23e2d0bdff DimensionedScalarField, GeometricScalarField: Added more rigorous dimension-checking for 'pow' functions 2016-05-23 12:04:02 +01:00
2fd07c1252 functionObjects::pressure: Use the new 'tmp' 'move' constructor
to return unchanged 'tmp' arguments
2016-05-23 12:03:19 +01:00
3565b5491f tmp: Added 'move' constructor to simplify return of unchanged 'tmp' arguments. 2016-05-23 12:01:36 +01:00
0a43d60567 functionObjects::pressureTools: simplified, standardized, rationalized and renamed 'pressure' 2016-05-22 21:29:46 +01:00
e134af2a2d functionObjects::residuals: Minor reformatting 2016-05-22 21:29:22 +01:00
2dbd3efe12 functionObjects::writeDictionary: Write the dictionaries from the write function not execute 2016-05-22 21:28:46 +01:00
39e0368d6b functionObjects: Corrected member function documentation 2016-05-22 21:28:24 +01:00
8b3b04b2f0 tutorials/incompressible/pimpleDyMFoam/propeller/system/Q: Updated 2016-05-22 19:03:23 +01:00
dab1e106c4 functionObjects/field: link turbulenceModel 2016-05-22 19:02:59 +01:00
3ba11a6e3a functionObjects::yPlus: simplified, standardized, rationalized 2016-05-22 17:08:40 +01:00
eb79a51fa6 fvcCellReduce: Correct signature and implementation of 'cellReduce' of a 'tmp' field 2016-05-22 17:07:53 +01:00
3c44f08d52 functionObjects::blendingFactor: simplified, standardized, rationalized 2016-05-22 16:30:48 +01:00
15773bf1b7 fvMeshFunctionObject: Rename 'write' -> 'writeField' to avoid clash with base-class 2016-05-22 16:30:12 +01:00
d474c97ced transformGeometricField: Use '.ref()' to obtain non-const access to a temporary 2016-05-22 14:29:59 +01:00
7fb2739437 functionObjects: Standardized field template parameter names 2016-05-22 14:29:14 +01:00
28359c53ba functionObjects/field/fieldCoordinateSystemTransform: simplified, standardized, rationalized 2016-05-22 14:26:40 +01:00
43110ffd38 functionObjects::Peclet -> functionObjects::PecletNo for consistency with functionObjects::CourantNo 2016-05-22 11:18:16 +01:00
8f68a493e8 functionObjects: Cleanup, reorganize and simplify 2016-05-21 23:12:12 +01:00
8e04042137 tmp: Allow '.ref()' for const 'tmp'
const-ness of the stored object is checked at run-time.
2016-05-21 23:10:58 +01:00
f73a8e6160 functionObjectList: Filter unnecessary warning from new 'libs' entry 2016-05-21 23:10:06 +01:00
3eec5854be Standardized the selection of required and optional fields in BCs, fvOptions, functionObjects etc.
In most boundary conditions, fvOptions etc. required and optional fields
to be looked-up from the objectRegistry are selected by setting the
keyword corresponding to the standard field name in the BC etc. to the
appropriate name in the objectRegistry.  Usually a default is provided
with sets the field name to the keyword name, e.g. in the
totalPressureFvPatchScalarField the velocity is selected by setting the
keyword 'U' to the appropriate name which defaults to 'U':

        Property     | Description             | Required    | Default value
        U            | velocity field name     | no          | U
        phi          | flux field name         | no          | phi
        .
        .
        .

However, in some BCs and functionObjects and many fvOptions another
convention is used in which the field name keyword is appended by 'Name'
e.g.

        Property     | Description             | Required    | Default value
        pName        | pressure field name     | no          | p
        UName        | velocity field name     | no          | U

This difference in convention is unnecessary and confusing, hinders code
and dictionary reuse and complicates code maintenance.  In this commit
the appended 'Name' is removed from the field selection keywords
standardizing OpenFOAM on the first convention above.
2016-05-21 20:28:20 +01:00
a84ffc3968 Updated header 2016-05-21 20:27:29 +01:00
29c985feec temperatureCoupledBase: Rationalized the selection of the method for obtaining the thermal conductivity
kappa -> kappaMethod
kappaName -> kappa
2016-05-21 20:26:23 +01:00
b00d967c8b Updated headers 2016-05-21 20:24:31 +01:00
f5ce43069d functionObjects, foamCalcFunctions, fvOptions: Standardized keywords for selecting fields and objects
Generally fields and objects are selected using the 'field[s]' and
'object[s]' keywords but this was not consistent between all
functionObject, fvOptions etc. and now fixed by applying the following
renaming:

fieldName -> field
fieldNames -> fields
objectName -> object
objectNames -> objects
2016-05-21 20:15:21 +01:00
546159a86c functionObjects: Simplified and reorganised using the fieldExpression base-class 2016-05-21 20:10:47 +01:00
3009367a88 fvMeshFunctionObject: Improved log output 2016-05-21 20:08:28 +01:00
447c850987 functionObjectList: Added support for 'libs' to load libraries for all functionObjects
e.g.

functions
{
    libs ("libfieldFunctionObjects.so");

    div
    {
        type            div;
        field           U;
        executeControl  writeTime;
        writeControl    writeTime;
    }

    Q
    {
        type            Q;
        executeControl  writeTime;
        writeControl    writeTime;
    }
}
2016-05-21 20:01:42 +01:00
af57fd2a3b wrmdep: Now prints the full path of the .dep files removed 2016-05-21 17:19:07 +01:00
16714f3569 functionObjects: New abstract base-class 'fieldExpression' for simple field expression evaluation functionObjects
Updated and simplified 'div', 'grad' and 'mag' functionObjects by deriving from 'fieldExpression'.
Corrected the handling of cached gradients in 'grad'.
2016-05-21 13:58:08 +01:00
6d562d1a5c codedBase.H: Minor reformat 2016-05-21 13:56:27 +01:00
1c48d056e6 tmp, autoPtr: Provide a typedef 'Type' to the stored type 2016-05-21 13:55:47 +01:00
03c497f6df Updated header 2016-05-19 09:40:29 +01:00
bf14e44bb3 Updated code comments 2016-05-19 09:40:17 +01:00
f2432865b5 Scalar: Documented 'posPart' and 'negPart' 2016-05-19 09:39:45 +01:00
83c7e97655 dynamicCode: Renamed 'redirectType' to 'name' to clarify the purpose
of the entry which is to provide the name of the generated class.

'redirectType' is supported for backward-compatibility.
2016-05-18 23:10:42 +01:00
7af20fd9db IOOutputFilter: Updated the signature of the 'write' function to correspond to the new functionObject 2016-05-18 23:09:26 +01:00
67de20df25 Further standardization of loop index naming: pointI -> pointi, patchI -> patchi 2016-05-18 21:20:42 +01:00
ac632e7984 functionObjects: minor reformatting of output 2016-05-18 13:37:08 +01:00
5af1a7e4f3 functionObjects::partialWrite: Redundant and removed
the equivalent functionality is provided by the writeRegisteredObject
   functionObject in a MUCH simpler, easier and extensible manner.

functionObject: Removed the now redundant 'timeSet' function.
2016-05-18 12:23:29 +01:00
354bc8bdcb dynamicCode: the "code" entry is now optional
codedFunctionObject: Added the "codeWrite" entry
    for the "write" function for consistency.
    The previous method of using the "code" entry for the "write"
    function was inconsistent and very confusing.
2016-05-18 12:20:03 +01:00
2b501b7e85 timeControlFunctionObject: Updated the control logic in the 'end' function
to correspond to the new default behavior of the 'end' function in
functionObject which now calls 'execute' then 'write'.
2016-05-18 09:05:24 +01:00
195b73e0f7 functionObject: Call 'execute' then 'write' from the default 'end' function. 2016-05-17 22:56:47 +01:00
76caf29e0b patchProbes: Corrected the signature of the write function 2016-05-17 21:49:17 +01:00
2ac07f386e patchProbes: Corrected the signature of the write function 2016-05-17 21:40:16 +01:00
f871f51970 Update loop index name probeI -> probei 2016-05-17 20:33:19 +01:00
3b63c760a9 writeRegisteredObject: Now writes the <time>/uniform/time dictionary 2016-05-17 12:36:49 +01:00
d6ce71f39a reconstructPar: Added '-noFields' option 2016-05-17 09:25:29 +01:00
cfb6d6c84e functionObjects/lagrangian/icoUncoupledKinematicCloud: Minor simplification of documentation 2016-05-17 09:24:58 +01:00
947fdf84af functionObjects::icoUncoupledKinematicCloud: tracks a uncoupled kinematic particle cloud
Description
    This Foam::functionObject tracks a uncoupled kinematic particle cloud in the
    specified velocity field of an incompressible flow (laminar, RANS or LES).

    It may be used in conjunction with any transient single-phase incompressible
    flow solver such as \c pisoFoam or \c pimpleFoam and tracks the particles or
    parcels without affecting the the flow-field.

    The \c kinematicCloud requires the the density of the fluid which is
    looked-up from \c constant/transportProperties dictionary and the
    acceleration due to gravity which is read from the \c constant/g file if
    present or defaults to zero.

    The \c kinematicCloud properties are read from the \c
    constant/kinematicCloudProperties dictionary in the usual manner.

    Example of function object specification:
    \verbatim
        tracks
        {
            libs ("liblagrangianFunctionObjects.so");
            type icoUncoupledKinematicCloud;
        }
    \endverbatim

    \heading Function object usage
    \table
        Property | Description                     | Required   | Default value
        type     | Type name: icoUncoupledKinematicCloud | yes  |
        U        | Name of the velocity field       | no        | U
        kinematicCloud | Name of the kinematicCloud | no        | kinematicCloud
    \endtable
2016-05-16 22:52:44 +01:00
fc0bdee154 dynamicCode/functionObjectTemplate: Updated and simplified by deriving from the regionFunctionObject base-class 2016-05-16 22:23:53 +01:00
1c992eba9c etc/codeTemplates/functionObject: Updated and simplified using fvMeshFunctionObject as the base-class 2016-05-16 22:16:22 +01:00
83bae2efd3 functionObjects: Renamed dictionary entry 'functionObjectLibs' -> 'libs'
This changes simplifies the specification of functionObjects in
controlDict and is consistent with the 'libs' option in controlDict to
load special solver libraries.

Support for the old 'functionObjectLibs' name is supported for backward compatibility.
2016-05-16 22:09:01 +01:00
a44857b4f2 functionObjects: Simply functionObjects requiring access to the fvMesh using fvMeshFunctionObject 2016-05-16 16:21:06 +01:00
e7fc198592 Allwmake: improved '-update' option to handle out-of-date '.dep' files
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2091
2016-05-16 12:21:57 +01:00
fd38002d57 functionObjects: Added regionFunctionObject and fvMeshFunctionObject intermediate base-classes
to simplify writing common functionObjects and avoid unnecessary code duplication
2016-05-16 12:20:44 +01:00
ee0aff67ce etc/codeTemplates/functionObject: Updated to correspond to the new functionObject structure 2016-05-15 21:47:18 +01:00
248ab45998 Updates to script documentation
Patch contributed by Bruno Santos
Resolves text report http://bugs.openfoam.org/view.php?id=2089
2016-05-15 18:12:26 +01:00
78d2971b21 functionObjects: rewritten to all be derived from 'functionObject'
- Avoids the need for the 'OutputFilterFunctionObject' wrapper
  - Time-control for execution and writing is now provided by the
    'timeControlFunctionObject' which instantiates the processing
    'functionObject' and controls its operation.
  - Alternative time-control functionObjects can now be written and
    selected at run-time without the need to compile wrapped version of
    EVERY existing functionObject which would have been required in the
    old structure.
  - The separation of 'execute' and 'write' functions is now formalized in the
    'functionObject' base-class and all derived classes implement the
    two functions.
  - Unnecessary implementations of functions with appropriate defaults
    in the 'functionObject' base-class have been removed reducing
    clutter and simplifying implementation of new functionObjects.
  - The 'coded' 'functionObject' has also been updated, simplified and tested.
  - Further simplification is now possible by creating some general
    intermediate classes derived from 'functionObject'.
2016-05-15 16:40:01 +01:00
ce0cd35185 Patches contributed by Mattijs Janssens:
splitMeshRegions: handle flipping of faces for surface fields

subsetMesh: subset dimensionedFields

decomposePar: use run-time selection of decomposition constraints. Used to
    keep cells on particular processors. See the decomposeParDict in

$FOAM_UTILITIES/parallel/decomposePar:
  - preserveBaffles: keep baffle faces on same processor
  - preserveFaceZones: keep faceZones owner and neighbour on same processor
  - preservePatches: keep owner and neighbour on same processor. Note: not
    suitable for cyclicAMI since these are not coupled on the patch level
  - singleProcessorFaceSets: keep complete faceSet on a single processor
  - refinementHistory: keep cells originating from a single cell on the
    same processor.

decomposePar: clean up decomposition of refinement data from snappyHexMesh

reconstructPar: reconstruct refinement data (refineHexMesh, snappyHexMesh)

reconstructParMesh: reconstruct refinement data (refineHexMesh, snappyHexMesh)

redistributePar:
  - corrected mapping surfaceFields
  - adding processor patches in order consistent with decomposePar

argList: check that slaves are running same version as master

fvMeshSubset: move to dynamicMesh library

fvMeshDistribute:
  - support for mapping dimensionedFields
  - corrected mapping of surfaceFields

parallel routines: allow parallel running on single processor

Field: support for
  - distributed mapping
  - mapping with flipping

mapDistribute: support for flipping

AMIInterpolation: avoid constructing localPoints
2016-05-15 16:36:48 +01:00
274d1df8a4 snappyHexMesh: Automatically remove zero-sized patches
All patches are preserved if the 'keepPatches' option is set true.
Patch contributed by Mattijs Janssens
2016-05-13 17:47:38 +01:00
bd52e35f77 checkMesh: Updated the closed-ness test for ACMI to use FV
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2088
2016-05-13 16:23:02 +01:00
ded5f35dd6 functionObjects: Separated 'execute' and 'write' functions to simplify support for post-processing 2016-05-13 09:05:29 +01:00
6164c2f262 Standardized the naming of functions which control the writing of fields etc.
to have the prefix 'write' rather than 'output'

So outputTime() -> writeTime()

but 'outputTime()' is still supported for backward-compatibility.

Also removed the redundant secondary-writing functionality from Time
which has been superseded by the 'writeRegisteredObject' functionObject.
2016-05-12 17:38:01 +01:00
c983670c91 functionObjects: Changed options 'outputControl' -> 'writeControl' and 'outputInterval' -> 'writeInterval'
for consistency with the time controls in controlDict and to avoid
unnecessary confusion.  All code and tutorials have been updated.

The old names 'outputControl' and 'outputInterval' are but supported for
backward compatibility but deprecated.
2016-05-12 11:38:11 +01:00
cacbc688d8 Doxygen documentation: Use C++-style comments for enumeration elements 2016-05-11 23:10:42 +01:00
84f6355ad0 OutputFilterFunctionObject: Removed support for "dictionary" option
Superseded by the more general #include dictionary directive.
2016-05-11 23:08:48 +01:00
acdfa68116 OutputFilterFunctionObject: Simplify construction 2016-05-11 14:40:55 +01:00
8152652476 etc/config.sh/metis: Added $WM_PRECISION_OPTION to support SP
etc/config.sh/scotch: Added $WM_PRECISION_OPTION for consistency
2016-05-11 14:39:28 +01:00
7389969e94 etc/config.*/settings: Remove unnecessary $WM_COMPILE_OPTION from $FOAM_EXT_LIBBIN
Simplified the directory structure in ThirdParty-dev/platforms
2016-05-11 14:37:07 +01:00
437030a57d functionObjects: Removed the redundant "viable" member function
Construction failure and recovery is not handled with exceptions in functionObjectList
2016-05-11 12:57:17 +01:00
82151962c5 functionObjects: Removed redundant "start()" member function 2016-05-11 10:20:39 +01:00
862d963a95 functionObjectList: Print the messages from errors caught during functionObject construction
Exit on FatalIOError
2016-05-11 10:19:07 +01:00
32dbb01e96 functionObjectList: Rationalized and simplified the handling of disabled functionObjects
Simplified and generalized the handling of functionObjects which fail to
construct by removing them from the list rather than maintaining an
"enabled" switch in each functionObject.
2016-05-11 09:03:52 +01:00
080908732d src/postProcessing/functionObjects: Removed unused IOOutputFilter clutter 2016-05-10 12:54:42 +01:00
1343b24611 etc/config.sh/metis: Updated for changes to ThirdParty-dev/Allwmake
See commit b627924a4bf104521b567d3aa3dc80c864325b1a

    Allwmake: Added scripted changes for REALTYPEWIDTH and IDXTYPEWIDTH
    Patch contributed by Bruno Santos
    Resolves bug-report http://bugs.openfoam.org/view.php?id=2085
2016-05-10 11:39:51 +01:00
1ab0875293 writeVTK: New functionObject to write fields is VTK format
Description
    This functionObject writes objects registered to the database in VTK format
    using the foamToVTK library.

    Currently only the writing of the cell-values of volFields is supported but
    support for other field types, patch fields, Lagrangian data etc. will be
    added.

    Example of function object specification:
    \verbatim
        writeVTK1
        {
            type        writeVTK;
            functionObjectLibs ("libIOFunctionObjects.so");
            ...
            objectNames (obj1 obj2);
        }
    \endverbatim

    \heading Function object usage
    \table
        Property     | Description             | Required    | Default value
        type         | type name: writeVTK     | yes         |
        objectNames  | objects to write        | yes         |
    \endtable
2016-05-10 10:06:19 +01:00
80a0b4a124 applications/solvers/heatTransfer/chtMultiRegionFoam: Check there are fluid meshes present for the '-postProcess' option 2016-05-09 19:55:11 +01:00
34811e43cd tutorials/incompressible/simpleFoam: Updated for changes in functionObjects 2016-05-09 19:12:38 +01:00
fe16f10f26 tutorials: "readFields" is no longer needed to post-process functionObjects
Use the solver '-postProcess' command-line option instead of execFlowFunctionObjects
2016-05-09 17:03:15 +01:00
5469e21fe2 execFlowFunctionObjects: Replaced with script providing instructions to use the '-postProcess' option 2016-05-09 17:02:00 +01:00
98f69d417f applications/solvers/heatTransfer: Added -postProcess option
See also commit cc455173ff
2016-05-09 16:28:48 +01:00
30a18e31ae applications/solvers: Moved createMRF.H into createField.H
to ensure MRF functionality is available for the -postProcess option
2016-05-09 16:06:12 +01:00
0dc0301da7 applications/solvers/lagrangian: Added -postProcess option
See also commit cc455173ff
2016-05-09 15:55:23 +01:00
0297dd9187 Updated headers 2016-05-09 15:23:36 +01:00
e450e8048b applications/solvers/discreteMethods: Added -postProcess option
See also commit cc455173ff
2016-05-09 15:23:07 +01:00
008086f64c applications/solvers/compressible: Added -postProcess option
See also commit cc455173ff
2016-05-09 15:16:22 +01:00
364044243a applications/solvers/combustion: Added -postProcess option
See also commit cc455173ff
2016-05-09 14:51:21 +01:00
7dca6b6a21 applications/solvers: Added -postProcess option
See also commit cc455173ff
2016-05-09 14:08:15 +01:00
6c275f2aa6 metisDecomp: Reverted 7cc9ba0a53 due to compilation error 2016-05-09 13:28:09 +01:00
7cc9ba0a53 metisDecomp: Use floatScalar rather than scalar for processorWeights
Resolved bug-report http://bugs.openfoam.org/view.php?id=2085
2016-05-09 08:42:52 +01:00
89159e7f39 applications/solvers/incompressible: Added -postProcess option
See also commit cc455173ff
2016-05-08 22:40:42 +01:00
38916e66bb applications/solvers/multiphase: Added -postProcess option
See also commit cc455173ff
2016-05-08 20:57:08 +01:00
7bbad53240 interPhaseChangeFoam, multiphaseInterFoam, potentialFreeSurfaceFoam: Added -postProcess option
See also commit cc455173ff
2016-05-08 17:23:36 +01:00
fce8d0310d interFoam: Added -postProcess option
See also commit cc455173ff
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1301
2016-05-08 14:32:23 +01:00
cc455173ff simpleFoam: Added experimental "-postProcess" option
Executes application functionObjects to post-process existing results.

    If the "dict" argument is specified the functionObjectList is constructed
    from that dictionary otherwise the functionObjectList is constructed from
    the "functions" sub-dictionary of "system/controlDict"

    Multiple time-steps may be processed and the standard utility time
    controls are provided.

This functionality is equivalent to execFlowFunctionObjects but in a
more efficient and general manner and will be included in all the
OpenFOAM solvers if it proves effective and maintainable.

The command-line options available with the "-postProcess" option may be
obtained by

simpleFoam -help -postProcess

Usage: simpleFoam [OPTIONS]
options:
  -case <dir>       specify alternate case directory, default is the cwd
  -constant         include the 'constant/' dir in the times list
  -dict <file>      read control dictionary from specified location
  -latestTime       select the latest time
  -newTimes         select the new times
  -noFunctionObjects
                    do not execute functionObjects
  -noZero           exclude the '0/' dir from the times list, has precedence
                    over the -withZero option
  -parallel         run in parallel
  -postProcess      Execute functionObjects only
  -region <name>    specify alternative mesh region
  -roots <(dir1 .. dirN)>
                    slave root directories for distributed running
  -time <ranges>    comma-separated time ranges - eg, ':10,20,40:70,1000:'
  -srcDoc           display source code in browser
  -doc              display application documentation in browser
  -help             print the usage

Henry G. Weller
CFD Direct Ltd.
2016-05-08 09:33:46 +01:00
224f014e96 tutorials: Removed unused "useReactionRate" option 2016-05-07 09:40:20 +01:00
8bc3d5e4fb functionObjects: Renamed option "adjustableTime" -> "adjustableRunTime" for consistency with Time 2016-05-07 09:32:00 +01:00
9461c7828f foamToVTK: Added Allwmake 2016-05-06 17:42:22 +01:00
0f17d95410 foamDebugSwitches: Updated for changes in functionObjects 2016-05-06 17:41:56 +01:00
14abfa742b primitives/direction: Changed from "char" to "int8_t" and added IO operators
to avoid problems when writing "nComponents"
2016-05-06 17:40:49 +01:00
a50015a423 foamToVTK: Use UPtrList rather than PtrList 2016-05-06 14:11:38 +01:00
6ba5b46d0f setConstraintTypes: Provide a "value" entry for ACMI
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2083
2016-05-06 14:09:44 +01:00
81ba5b7757 PtrList: Now derived from UPtrList to avoid unnecessary code duplication
consistency with UList/List and so that functions which take a UPtrList
argument can also be called for PtrList.
2016-05-06 14:08:12 +01:00
f779557d38 etc/config.*/unset: Updated for changes in foamOldDirs
Patch contributed by Bruno Santos
Resolves bug-report http://bugs.openfoam.org/view.php?id=2031
2016-05-05 23:37:33 +01:00
763a3cecb8 etc/cshrc: Removed continuation lines from $foamOldDirs 2016-05-05 23:36:35 +01:00
ca3efa5776 etc/config.csh: Capitalized comments 2016-05-05 15:52:05 +01:00
ce81c49d2e etc/bashrc, etc/cshrc: Filter $WM_PROJECT_DIR from paths rather than $FOAM_INST_DIR
Additionally filter $ParaView_DIR from paths in config.sh/paraview and config.csh/paraview

Resolves bug-report http://bugs.openfoam.org/view.php?id=2031
2016-05-05 15:37:00 +01:00
cf4b35693c tutorials: Remove the unnecessary "\"s on "cp", "rm" and "mv"
Resolves bug-report http://bugs.openfoam.org/view.php?id=2077
2016-05-05 15:17:55 +01:00
637ee8830f processorPolyPatch: Avoid nesting loops with the same index 2016-05-05 15:17:08 +01:00
4281d14eb1 functionObjects: Updated documentation 2016-05-04 21:01:22 +01:00
566f2734b9 foamToVTK: Separated into the library libfoamToVTK and the utility foamToVTK 2016-05-04 15:16:33 +01:00
891b2a0f8b functionObjects: Moved functionObjects namespace documentation into functionObject.H 2016-05-04 13:56:36 +01:00
f6c670dcac functionObjects: Updated docs 2016-05-04 08:51:39 +01:00
ebafc87137 setTimeStepFunctionObject: Added functionObjects namespace 2016-05-03 23:39:14 +01:00
c70c12a2bb functionObjects: Simplified organization and naming 2016-05-03 23:37:28 +01:00
ff6d8914da functionObjects/jobControl/abortCalculation: Rename abortCalculation -> abort
functionObjects are now in the functionObjects namespace so "abort" no
longer causes a name-clash.
2016-05-03 20:01:19 +01:00
318123e7e4 Multiphase solvers: Update p_rgh following density changes 2016-05-03 15:51:15 +01:00
f7f1eea359 globalMeshData: Handle cyclic baffles in coupled edge synchronisation
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2080
Patch contributed by Mattijs Janssens
2016-05-03 15:49:52 +01:00
055b41e4da reactingTwoPhaseEulerFoam: Update p_rgh following density changes
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2073
2016-05-03 14:53:11 +01:00
698f135426 tutorials/multiphase/reactingTwoPhaseEulerFoam/RAS/wallBoiling/system/fvSolution: Updated to improve stability 2016-05-03 14:52:38 +01:00
bdf556e628 Building foamyHexMesh is now optional defaulting to not build
Set the environment variable "FOAMY_HEX_MESH" to build foamyHexMesh,
e.g. in ~/.OpenFOAM/dev/prefs.sh

FOAMY_HEX_MESH=yes
2016-05-02 18:21:45 +01:00
32762aa1f9 Change field loop index from "fieldI" to "fieldi" 2016-05-02 18:20:48 +01:00
0534a225fd functionObjects: Moved into the functionObjects namespace and rationalized and simplified failable construction
Rather than requiring each functionObject to handle failed construction
internally (using the active_ flag) the static member function "viable"
is provided which returns true if construction of the functionObject is
likely to be successful.  Failed construction is then handled by the
wrapper-class which constructs the functionObject,
e.g. "OutputFilterFunctionObject".
2016-05-02 16:28:24 +01:00
09262f5273 src/postProcessing/functionObjects: Moving the functionObjects into the "functionObjects" namespace 2016-05-01 14:48:30 +01:00
a3aa589263 EulerDdtScheme: evaluate dimensioned internal field expressions rather than primitive field expressions
Ensures dimension consistency and simplifies the expressions
2016-05-01 11:08:01 +01:00
4c5052a3a1 applications/solvers: include readTimeControls.H in the time-loop rather than createTimeControls.H
Patch contributed by Bruno Santos
Resolved bug-report http://www.openfoam.org/mantisbt/view.php?id=2079
2016-05-01 11:06:21 +01:00
5af5661e4b turbulentFluidThermoModels/derivedFvPatchFields: Updated documentation to conform to style-guide
Patch contributed by Bruno Santos
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2078
2016-05-01 09:11:42 +01:00
1b34231340 tutorials: Renamed .org -> .orig
See http://www.openfoam.org/mantisbt/view.php?id=2076
  - .org is the file extension for emacs org-mode as well
  - .orig is more to the point (.org isn't always recognized as "original")
  - .original is too long, although more consistent with the convention
    of source code file naming

Update script contributed by Bruno Santos
2016-04-30 21:53:50 +01:00
81f31acbb3 Updated headers 2016-04-30 21:53:19 +01:00
3c053c2fe6 GeometricField: Renamed internalField() -> primitiveField() and dimensionedInternalField() -> internalField()
These new names are more consistent and logical because:

primitiveField():
primitiveFieldRef():
    Provides low-level access to the Field<Type> (primitive field)
    without dimension or mesh-consistency checking.  This should only be
    used in the low-level functions where dimensional consistency is
    ensured by careful programming and computational efficiency is
    paramount.

internalField():
internalFieldRef():
    Provides access to the DimensionedField<Type, GeoMesh> of values on
    the internal mesh-type for which the GeometricField is defined and
    supports dimension and checking and mesh-consistency checking.
2016-04-30 21:40:09 +01:00
ccd958a8f1 GeometricField::dimensionedInteralFieldRef() -> GeometricField::ref()
In order to simplify expressions involving dimensioned internal field it
is preferable to use a simpler access convention.  Given that
GeometricField is derived from DimensionedField it is simply a matter of
de-referencing this underlying type unlike the boundary field which is
peripheral information.  For consistency with the new convention in
"tmp"  "dimensionedInteralFieldRef()" has been renamed "ref()".
2016-04-30 18:43:51 +01:00
68b69a25a4 CrankNicolsonDdtScheme: Use the new GeometricField constructor from DimensionedField and boundary FieldField 2016-04-30 14:29:11 +01:00
5df2b96489 GeometricField::internalField() -> GeometricField::internalFieldRef()
Non-const access to the internal field now obtained from a specifically
named access function consistent with the new names for non-canst access
to the boundary field boundaryFieldRef() and dimensioned internal field
dimensionedInternalFieldRef().

See also commit 22f4ad32b1
2016-04-30 14:25:21 +01:00
67e2d02800 functionObjectFile: Separated into functionObjectFile and functionObjectFiles
functionObjectFile provides basic directory, file and formatting functions
functionObjectFiles provides multi-file cache
2016-04-30 09:18:42 +01:00
3c61a1dbeb singlePhaseTransportModel: Added run-time type information
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2075
2016-04-29 20:21:15 +01:00
154150d710 Updated header 2016-04-29 17:18:33 +01:00
c43b78e8de List: Removed unused constructor from iterators
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2074
2016-04-29 17:17:45 +01:00
81041e5d3c functionObjects/field/histogram: New functionObject to write the volume-weighted histogram of a volScalarField
e.g.
    pressureHistogram
    {
        type            histogram;

        functionObjectLibs ("libfieldFunctionObjects.so");

        field           p;
        nBins           100;
        min             -5;
        max             5;
        setFormat       gnuplot;
    }
2016-04-28 20:40:32 +01:00
62c62abda8 fireFoam: New additional controls switch "solvePyrolysisRegion"
provides optional control for solving the pyrolysis region.

Patch contributed by Karl Meredith, FMGlobal.
2016-04-28 12:54:17 +01:00
15b36331fe Remove .internalField() clutter for const-access to the internal field 2016-04-28 12:37:31 +01:00
ea5401c770 GeometricField::GeometricBoundaryField -> GeometricField::Boundary
When the GeometricBoundaryField template class was originally written it
was a separate class in the Foam namespace rather than a sub-class of
GeometricField as it is now.  Without loss of clarity and simplifying
code which access the boundary field of GeometricFields it is better
that GeometricBoundaryField be renamed Boundary for consistency with the
new naming convention for the type of the dimensioned internal field:
Internal, see commit 4a57b9be2e

This is a very simple text substitution change which can be applied to
any code which compiles with the OpenFOAM-dev libraries.
2016-04-28 07:22:02 +01:00
4a57b9be2e GeometricField: Rationalized and simplified access to the dimensioned internal field
Given that the type of the dimensioned internal field is encapsulated in
the GeometricField class the name need not include "Field"; the type
name is "Internal" so

volScalarField::DimensionedInternalField -> volScalarField::Internal

In addition to the ".dimensionedInternalField()" access function the
simpler "()" de-reference operator is also provided to greatly simplify
FV equation source term expressions which need not evaluate boundary
conditions.  To demonstrate this kEpsilon.C has been updated to use
dimensioned internal field expressions in the k and epsilon equation
source terms.
2016-04-27 21:32:45 +01:00
c9a57e4009 tutorials/combustion/fireFoam/les: Added missing ph_rgh.orig files 2016-04-27 16:18:25 +01:00
ec5cc92d37 geometricOneField: Added support for DimensionedInternalField 2016-04-27 12:46:38 +01:00
b2ea0ab2bd DimensionedField: Corrected (currently unused) constructor from tmp 2016-04-27 12:45:55 +01:00
785cebed88 GeometricField, volFields: Added experimental member function ".v()" and perfix operator "~"
both of which return the dimensionedInternalField for volFields only.

These will be useful in FV equation source term expressions which need
not evaluate boundary conditions.
2016-04-26 20:45:53 +01:00
f539fd4c4b Replaced StaticAssert with the C++11 equivalent static_assert 2016-04-26 20:44:55 +01:00
f790663b78 src/postProcessing/functionObjects/field/Make/files: Corrected 2016-04-26 20:38:33 +01:00
070515e9db Revert "src/postProcessing/functionObjects/field/Make/files: Corrected"
This reverts commit 3cfc54ba09.
2016-04-26 20:33:45 +01:00
3cfc54ba09 src/postProcessing/functionObjects/field/Make/files: Corrected 2016-04-26 20:31:58 +01:00
dc2951ca2f GeometricField::dimensionedInternalField() -> GeometricField::dimensionedInternalFieldRef()
See also commit 22f4ad32b1
2016-04-26 16:29:43 +01:00
6962fd3ba4 fvDOM: Corrected type of maxIter_
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=2068
2016-04-26 10:51:09 +01:00
4107d312fa wmake/rules/linux.*Icc: Remove -xHost option which causes surfaceFeatureExtract to fail for some cases 2016-04-25 22:29:22 +01:00
22f4ad32b1 Completed boundaryField() -> boundaryFieldRef()
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1938

Because C++ does not support overloading based on the return-type there
is a problem defining both const and non-const member functions which
are resolved based on the const-ness of the object for which they are
called rather than the intent of the programmer declared via the
const-ness of the returned type.  The issue for the "boundaryField()"
member function is that the non-const version increments the
event-counter and checks the state of the stored old-time fields in case
the returned value is altered whereas the const version has no
side-effects and simply returns the reference.  If the the non-const
function is called within the patch-loop the event-counter may overflow.
To resolve this it in necessary to avoid calling the non-const form of
"boundaryField()" if the results is not altered and cache the reference
outside the patch-loop when mutation of the patch fields is needed.

The most straight forward way of resolving this problem is to name the
const and non-const forms of the member functions differently e.g. the
non-const form could be named:

    mutableBoundaryField()
    mutBoundaryField()
    nonConstBoundaryField()
    boundaryFieldRef()

Given that in C++ a reference is non-const unless specified as const:
"T&" vs "const T&" the logical convention would be

    boundaryFieldRef()
    boundaryFieldConstRef()

and given that the const form which is more commonly used is it could
simply be named "boundaryField()" then the logical convention is

    GeometricBoundaryField& boundaryFieldRef();

    inline const GeometricBoundaryField& boundaryField() const;

This is also consistent with the new "tmp" class for which non-const
access to the stored object is obtained using the ".ref()" member function.

This new convention for non-const access to the components of
GeometricField will be applied to "dimensionedInternalField()" and "internalField()" in the
future, i.e. "dimensionedInternalFieldRef()" and "internalFieldRef()".
2016-04-25 16:16:05 +01:00
450728ea84 Standardized cell, patch, face and processor loop index names 2016-04-25 12:00:53 +01:00
43beb06018 Standardized cell, patch and face loop index names 2016-04-25 10:28:32 +01:00
2d5ff31649 boundaryField() -> boundaryFieldRef() 2016-04-24 22:07:37 +01:00
3758659ac6 noScatter.H: Corrected #ifdef
Resolved bug-report http://openfoam.org/mantisbt/view.php?id=2065
2016-04-24 21:05:29 +01:00
a0e86416c5 Updated header 2016-04-23 23:38:10 +01:00
d8f8498c87 boundaryField() -> boundaryFieldRef() 2016-04-23 23:37:53 +01:00
7c12f7743b boundaryField() -> boundaryFieldRef() 2016-04-23 23:16:30 +01:00
45f73bf64f GeometricField: New non-const access function boundaryFieldRef()
There is a need to specify const or non-const access to a non-const
object which is not currently possible with the "boundaryField()" access
function the const-ness of the return of which is defined by the
const-ness of the object for which it is called.  For consistency with
the latest "tmp" storage class in which non-const access is obtained
with the "ref()" function it is proposed to replace the non-const form
of "boundaryField()" with "boundaryFieldRef()".

Thanks to Mattijs Janssens for starting the process of migration to
"boundaryFieldRef()" and providing a patch for the OpenFOAM and
finiteVolume libraries.
2016-04-23 23:07:28 +01:00
88561eea95 plenumPressureFvPatchScalarField: New plenum pressure boundary condition
This condition creates a zero-dimensional model of an enclosed volume of
gas upstream of the inlet. The pressure that the boundary condition
exerts on the inlet boundary is dependent on the thermodynamic state of
the upstream volume.  The upstream plenum density and temperature are
time-stepped along with the rest of the simulation, and momentum is
neglected. The plenum is supplied with a user specified mass flow and
temperature.

The result is a boundary condition which blends between a pressure inlet
condition condition and a fixed mass flow. The smaller the plenum
volume, the quicker the pressure responds to a deviation from the supply
mass flow, and the closer the model approximates a fixed mass flow. As
the plenum size increases, the model becomes more similar to a specified
pressure.

The expansion from the plenum to the inlet boundary is controlled by an
area ratio and a discharge coefficient. The area ratio can be used to
represent further acceleration between a sub-grid blockage such as fins.
The discharge coefficient represents a fractional deviation from an
ideal expansion process.

This condition is useful for simulating unsteady internal flow problems
for which both a mass flow boundary is unrealistic, and a pressure
boundary is susceptible to flow reversal. It was developed for use in
simulating confined combustion.

tutorials/compressible/rhoPimpleFoam/laminar/helmholtzResonance:
    helmholtz resonance tutorial case for plenum pressure boundary

This development was contributed by Will Bainbridge
2016-04-23 13:43:49 +01:00
673e0d1704 fireFoam: Added optional hydrostatic initialization of the pressure and density
Also added the new prghTotalHydrostaticPressure p_rgh BC which uses the
hydrostatic pressure field as the reference state for the far-field
which provides much more accurate entrainment is large open domains
typical of many fire simulations.

The hydrostatic field solution is controlled by the optional entries in
the fvSolution.PIMPLE dictionary, e.g.

    hydrostaticInitialization yes;
    nHydrostaticCorrectors 5;

and the solver must also be specified for the hydrostatic p_rgh field
ph_rgh e.g.

    ph_rgh
    {
        $p_rgh;
    }

Suitable boundary conditions for ph_rgh cannot always be derived from
those for p_rgh and so the ph_rgh is read to provide them.

To avoid accuracy issues with IO, restart and post-processing the p_rgh
and ph_rgh the option to specify a suitable reference pressure is
provided via the optional pRef file in the constant directory, e.g.

    dimensions      [1 -1 -2 0 0 0 0];
    value           101325;

which is used in the relationship between p_rgh and p:

    p = p_rgh + rho*gh + pRef;

Note that if pRef is specified all pressure BC specifications in the
p_rgh and ph_rgh files are relative to the reference to avoid round-off
errors.

For examples of suitable BCs for p_rgh and ph_rgh for a range of
fireFoam cases please study the tutorials in
tutorials/combustion/fireFoam/les which have all been updated.

Henry G. Weller
CFD Direct Ltd.
2016-04-23 10:04:39 +01:00
6a7c4aca53 thermoSingleLayer: Corrected handling of non-constant Cp 2016-04-23 10:03:40 +01:00
a78beef988 JohnsonJacksonSchaefferFrictionalStress: Updated I2D expression 2016-04-22 15:13:45 +01:00
bbca1fd5e7 reactingTwoPhaseEulerFoam: Corrected kineticTheory frictional stress at walls
Patch contributed by Juho Peltola, VTT

The new JohnsonJacksonSchaefferFrictionalStress model is included and
the LBend tutorial case to demonstrate the need for the changes to the
frictional stress models.

Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=2058
2016-04-22 14:25:58 +01:00
bbd6bfff22 foamCalcFunctions: Avoid the inclusion of fvCFD.H 2016-04-22 14:21:50 +01:00
2e99db9c22 ENH: OSspecific - softlink handling (fixes #164)
Links are followed in most cases, with some notable exceptions:

- mv, mvBak:
  renames the link, not the underlying file/directory

- rmDir:
  remove the symlink to a directory, does not recurse into the
  underlying directory
2014-04-23 15:00:00 +02:00
27870 changed files with 1717920 additions and 2645303 deletions

41
.gitignore vendored
View File

@ -4,16 +4,15 @@
# Editor and misc backup files - anywhere
*~
.*~
.*.swp
*.bak
*.bak[0-9][0-9]
*.orig
*.orig[0-9][0-9]
\#*\#
# File-browser settings - anywhere
.directory
# CVS recovered versions - anywhere
# Backup/recovery versions - anywhere
.#*
# Objects and archives - anywhere
@ -24,7 +23,7 @@
# Derived files
lex.yy.c
# Corefiles
# Core dumps
core
# Dependency files - anywhere
@ -41,45 +40,43 @@ solaris*Gcc*/
SunOS*Gcc*/
platforms/
# Reinstate wmake/rules that might look like build directories
!wmake/rules/*/
# Top-level build directories
/build/
/platforms/
# doxygen generated documentation
# Reinstate wmake rules that might look like build directories
!/wmake/rules/*/
# Doxygen generated
doc/Doxygen/html
doc/Doxygen/latex
doc/Doxygen/man
doc/Doxygen/DTAGS
# Generated files in the main directory (e.g. ReleaseNotes-?.?.html)
# and in the doc directory
# Generated files in the main and doc directories
/*.html
/doc/*.html
# Untracked configuration files
# Untracked configuration/preferences files
/etc/prefs.csh
/etc/prefs.sh
/etc/config.csh/prefs.csh
/etc/config.sh/prefs.sh
/etc/config.csh/prefs.*
/etc/config.sh/prefs.*
/wmake/rules/General/mplibUSER*
# Source packages - anywhere
*.tar.bz2
*.tar.gz
*.tar.xz
*.tar
*.tgz
*.gtgz
# Ignore the persistent .build tag in the main directory
/.build
# Ignore .timeStamp in the main directory
/.timeStamp
# Ignore .tags in the main directory
/.tags
# Ignore eclipse project files in the main directory
# Ignore tags or project files in the main directory
/.cproject
/.dir-locals.el
/.project
/.tags
# Ignore the test directory
/tutorialsTest

View File

@ -0,0 +1,73 @@
<!--
*** Please read this first! ***
Before opening a new issue, make sure to search for keywords in the issues
filtered by the "bug" label and check to see if it has already been reported
You can see how your report will be rendered on the platform by using the
"preview" tab above
-->
<!--
All text between these markers are comments and will not be present in the
report
-->
### Summary
<!-- Summarize the bug encountered concisely -->
### Steps to reproduce
<!-- How one can reproduce the issue - this is very important -->
### Example case
<!--
If possible, please create a SMALL example and attach it to your report
If you are using an older version of OpenFOAM this will also determine
whether the bug has been fixed in a more recent version
-->
### What is the current *bug* behaviour?
<!-- What actually happens -->
### What is the expected *correct* behavior?
<!-- What you should see instead -->
### Relevant logs and/or images
<!--
Paste any relevant logs - please use code blocks (```) to format console
output, logs, and code as it's very hard to read otherwise.
-->
### Environment information
<!--
Providing details of your set-up can help us identify any issues, e.g.
OpenFOAM version : v2112|v2106|v2012|v2006|v1912|v1906 etc
Operating system : ubuntu|openSUSE|centos etc
Hardware info : any info that may help?
Compiler : gcc|intel|clang etc
-->
- OpenFOAM version :
- Operating system :
- Hardware info :
- Compiler :
### Possible fixes
<!--
If you can, link to the line of code that might be responsible for the
problem
The "/label ~bug" text is a gitlab flag that will add the "bug" label to this
issue
-->
/label ~bug

View File

@ -0,0 +1,31 @@
### Functionality to add/problem to solve
(Brief scope)
### Target audience
(Who will benefit from the changes?)
(What type of cases?)
### Proposal
(How are we going to solve the problem?)
### What does success look like, and how can we measure that?
(What are the success factors and acceptance criteria? e.g. test cases, error margins)
### Links / references
(Links to literature, supporting information)
### Funding
(Does the functionality already exist/is sponsorship available?)
/label ~feature

View File

@ -0,0 +1,20 @@
### Summary
(Summarize the changes concisely)
### Resolved bugs (If applicable)
(Links to issues)
### Details of new models (If applicable)
(New options, user inputs etc)
(Images are nice :))
### Risks
(Possible regressions?)
(Changes to user inputs?)

19
.gitmodules vendored Normal file
View File

@ -0,0 +1,19 @@
[submodule "cfmesh"]
path = modules/cfmesh
url = https://develop.openfoam.com/Community/integration-cfmesh.git
[submodule "avalanche"]
path = modules/avalanche
url = https://develop.openfoam.com/Community/avalanche.git
[submodule "adios"]
path = modules/adios
url = https://develop.openfoam.com/Community/adiosfoam.git
[submodule "OpenQBMM"]
path = modules/OpenQBMM
url = https://github.com/OpenQBMM/OpenQBMM.git
branch = openfoam.com
[submodule "visualization"]
path = modules/visualization
url = https://develop.openfoam.com/modules/visualization.git
[submodule "external-solver"]
path = modules/external-solver
url = https://develop.openfoam.com/Modules/external-solver.git

114
Allwmake
View File

@ -1,46 +1,106 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
# Parse arguments for library compilation without documentation by default
genDoc=0
targetType=libso
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
wmakeCheckPwd "$WM_PROJECT_DIR" || {
echo "Allwmake error: Current directory is not \$WM_PROJECT_DIR"
echo " The environment variables are inconsistent with the installation."
echo " Check the OpenFOAM entries in your dot-files and source them."
# Run from OPENFOAM top-level directory only
cd "${0%/*}" || exit
wmake -check-dir "$WM_PROJECT_DIR" 2>/dev/null || {
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR"
echo " Check your OpenFOAM environment and installation"
exit 1
}
[ -n "$FOAM_EXT_LIBBIN" ] || {
echo "Allwmake error: FOAM_EXT_LIBBIN not set"
echo " Check the OpenFOAM entries in your dot-files and source them."
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
echo "Argument parse error"
else
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
echo " Check your OpenFOAM environment and installation"
exit 1
}
fi
# Compile wmake support applications
(cd wmake/src && make)
#------------------------------------------------------------------------------
# Preamble. Report tools or at least the mpirun location
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/list_tools ]
then sh "$WM_PROJECT_DIR"/wmake/scripts/list_tools || true
else
echo "mpirun=$(command -v mpirun || true)"
fi
echo
# Report compiler information. First non-blank line from --version output
compiler="$(wmake -show-path-cxx 2>/dev/null || true)"
if [ -x "$compiler" ]
then
echo "compiler=$compiler"
"$compiler" --version 2>/dev/null | sed -e '/^$/d;q'
else
echo "compiler=unknown"
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##*/}"
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
echo ========================================
echo
# Compile tools for wmake
"${WM_DIR:-wmake}"/src/Allmake
# Compile ThirdParty libraries and applications
if [ -d "$WM_THIRD_PARTY_DIR" ]
then
$WM_THIRD_PARTY_DIR/Allwmake
if [ -e "$WM_THIRD_PARTY_DIR"/Allwmake.override ]
then
if [ -x "$WM_THIRD_PARTY_DIR"/Allwmake.override ]
then "$WM_THIRD_PARTY_DIR"/Allwmake.override
fi
elif [ -x "$WM_THIRD_PARTY_DIR"/Allwmake ]
then "$WM_THIRD_PARTY_DIR"/Allwmake
else
echo "Skip ThirdParty (no Allwmake* files)"
fi
else
echo "Allwmake: no ThirdParty directory found - skipping"
echo "Skip ThirdParty (no directory)"
fi
# Compile OpenFOAM libraries and applications
# OpenFOAM libraries
src/Allwmake $targetType $*
# Compile OpenFOAM libraries and applications
# OpenFOAM applications
applications/Allwmake $targetType $*
# Optionally build OpenFOAM Doxygen documentation
if [ $genDoc -eq 1 ]
then
doc/Allwmake
fi
# Additional components/modules
case "$FOAM_MODULE_PREFIX" in
(false | none)
echo ========================================
echo "OpenFOAM modules disabled (prefix=${FOAM_MODULE_PREFIX})"
echo
;;
(*)
# Use wmake -all instead of Allwmake to allow for overrides
( cd "$WM_PROJECT_DIR/modules" 2>/dev/null && wmake -all )
esac
# Count files in given directory. Ignore "Test-*" binaries.
_foamCountDirEntries()
{
(cd "$1" 2>/dev/null && find . -mindepth 1 -maxdepth 1 -type f 2>/dev/null) |\
sed -e '\@/Test-@d' | wc -l
}
# Some summary information
echo
date "+%Y-%m-%d %H:%M:%S %z" 2>/dev/null || echo "date is unknown"
echo ========================================
echo " ${WM_PROJECT_DIR##*/}"
echo " $WM_COMPILER ${WM_COMPILER_TYPE:-system} compiler"
echo " ${WM_OPTIONS}, with ${WM_MPLIB} ${FOAM_MPI}"
echo
echo " api = $(etc/openfoam -show-api 2>/dev/null)"
echo " patch = $(etc/openfoam -show-patch 2>/dev/null)"
echo " bin = $(_foamCountDirEntries "$FOAM_APPBIN") entries"
echo " lib = $(_foamCountDirEntries "$FOAM_LIBBIN") entries"
echo
echo ========================================
#------------------------------------------------------------------------------

57
CONTRIBUTORS.md Normal file
View File

@ -0,0 +1,57 @@
# Contributors to OpenFOAM
The following is a list of known contributors to OpenFOAM.
It is likely incomplete...
## Contributors (alphabetical by surname)
- William Bainbridge
- Gabriel Barajas
- Kutalmis Bercin
- Ivor Clifford
- Greg Collecutt
- Jonathan Cranford
- Sergio Ferraris
- Matej Forman
- Marian Fuchs
- Pawan Ghildiyal
- Chris Greenshields
- Bernhard Gschaider
- Andrew Heather
- David Hill
- Mattijs Janssens
- Andrew Jackson
- Hrvoje Jasak
- Alexander Kabat vel Job
- Thilo Knacke
- Shannon Leakey
- Tommaso Lucchini
- Graham Macpherson
- Alexey Matveichev
- Karl Meredith
- Laurence McGlashan
- Timo Niemi
- Haakan Nilsson
- Niklas Nordin
- Mark Olesen
- Victor Olesen
- Evangelos Papoutsis-Kiachagias
- Juho Peltola
- Johan Roenby
- Henrik Rusche
- Bruno Santos
- Henning Scheufler
- Richard Smith
- Prashant Sonakar
- Hilary Spencer
- Gavin Tabor
- Zeljko Tukovic
- Eugene De Villiers
- Yi Wang
- Norbert Weber
- Henry Weller
- Niklas Wikstrom
- Guanyang Xue
- Thorsten Zirwes
<!----------------------------------------------------------------------------->

View File

@ -1,7 +1,6 @@
GNU GENERAL PUBLIC LICENSE
OpenFOAM(R) is Copyright (C) 2011 OpenFOAM Foundation
Contact: OpenFOAM Foundation (OpenFOAM.Foundation@gmail.com)
OpenFOAM(R) is released by OpenCFD Ltd. via www.openfoam.com
You may use, distribute and copy the OpenFOAM CFD Toolbox under the terms
of GNU General Public License version 3, which is displayed below, or

10
META-INFO/.gitignore vendored Normal file
View File

@ -0,0 +1,10 @@
# Do not track build information
build-info
# Do not track time-stamp
time-stamp
# Do not track any manifest files
*[Mm]anifest.txt
####

87
META-INFO/README.md Normal file
View File

@ -0,0 +1,87 @@
## META-INFO
Meta-information is generally for OpenFOAM internal use only.
The format, content and meaning may be changed at anytime without
prior notice.
If any of these are changed, these are some of places that will need
to be updated accordingly:
- bin/foamEtcFile
- bin/tools/foamConfigurePaths
- bin/tools/foamPackRelease
- etc/openfoam
- wmake/scripts/wmake-build-info
### api-info
This file and its contents are to be tracked by git.
- File content (api) generated by `wmake -build-info` from the
`OPENFOAM` define in `wmake/rules/General/general`
- File content (patch) is manually generated content.
### build-info
This file is ***never*** to be tracked by git, but may be present in
shipped source archives.
- File content (branch, build) generated by `wmake -build-info` from
git information and cached from previous wmake (api)
### Content types
#### api
Format: `date +%y%m`
- 4-digit year-month (YYMM) integer corresponding to the major
release or in unusual cases an intermediate release.
Example, `2106` for the June-2021 release.
#### patch
Format: `date +%y%m%d`
- 6-digit year-month-day (YYMMDD) integer corresponding to a patch-level
for the given **released** API.
- The first release can have a patch value of `0` or `1` which
indicates that it is unpatched or just released. Alternatively
it can have a patch value corresponding to the release date.
The patch value is only meaningful together with the api value.
However, for *development* branches, the patch level should not be
ascribed too much meaning, but will often correspond to the last
merge with a *maintenance* (*eg*, `master`) branch.
### Flow of information
Changes in the build information must be reflected in information
available in the final binaries. Conversely, it is necessary for later
distributions to have a record of the same information.
| property | source | saved |
|-----------|---------------------------|------------|
| api | wmake/rules | api-info |
| patch | manual (api-info) | build-info |
| branch | git | build-info |
| build | git | build-info |
The command `wmake -build-info -check` is used to determine if
the saved information needs synchronization. The command
`wmake -build-info -update` performs the synchronization.
### Notes
The saved information is split into two separate files.
The `api-info` file contains more permanent information,
whereas the `build-info` is more transient in nature.
----
2021-06-09

2
META-INFO/api-info Normal file
View File

@ -0,0 +1,2 @@
api=2112
patch=220610

220
README.md
View File

@ -1,22 +1,216 @@
# About OpenFOAM
OpenFOAM is a free, open source CFD software package developed primarily by [OpenCFD](http://www.openfoam.com) since 2004 and is currently distributed by [ESI-OpenCFD](http://www.openfoam.com) and the [OpenFOAM Foundation](http://openfoam.org). It has a large user base across most areas of engineering and science, from both commercial and academic organisations. OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics. [More...](http://www.openfoam.com/documentation)
## About OpenFOAM
OpenFOAM is a free, open source CFD software [released and developed by OpenCFD Ltd since 2004](http://www.openfoam.com/history/).
It has a large user base across most areas of engineering and science, from both commercial and academic organisations.
OpenFOAM has an extensive range of features to solve anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to acoustics, solid mechanics and electromagnetics.
[See documentation](http://www.openfoam.com/documentation)
OpenFOAM+ uses the OpenFOAM Foundation version as a common code base, with wider functionality and platform support. Its purpose is to accelerate the public availability of new features which are sponsored by OpenCFD's customers and contributed by the OpenFOAM community.
OpenFOAM is professionally released every six months to include
customer sponsored developments and contributions from the community -
individual and group contributors, integrations
(eg, from FOAM-extend and OpenFOAM Foundation Ltd) as well as
[governance guided activities](https://www.openfoam.com/governance/).
# 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.
## License
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation, either version 3 of the License, or (at your
option) any later version. See the file COPYING in this directory or
[http://www.gnu.org/licenses/](http://www.gnu.org/licenses), for a
description of the GNU General Public License terms under which you
may redistribute files.
# OpenFOAM Trademark
OpenCFD Limited, owner of the OpenFOAM Trademark, has granted the use of the Trademark to the OpenFOAM Foundation. 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.
## OpenFOAM Trademark
OpenCFD Ltd grants use of its OpenFOAM trademark by Third Parties on a
licence basis. ESI Group and OpenFOAM Foundation Ltd are currently
permitted to use the Name and agreed Domain Name. For information on
trademark use, please refer to the
[trademark policy guidelines][link trademark].
Please [contact OpenCFD](http://www.openfoam.com/contact) if you have
any questions about the use of the OpenFOAM trademark.
Violations of the Trademark are monitored, and will be duly prosecuted.
# Useful Links
- [Download and installation instructions](http://www.openfoam.com/releases)
## 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-v2112 version:
```
source /installation/path/OpenFOAM-v2112/etc/bashrc
```
## Compiling OpenFOAM
If you are compiling OpenFOAM from source, please see the relevant
guides:
| Location | Readme | Requirements | Build |
|-------------|-----------|--------------|-------|
| [OpenFOAM][repo openfoam] | [readme][link openfoam-readme] | [system requirements][link openfoam-require] | [build][link openfoam-build] |
| [ThirdParty][repo third] | [readme][link third-readme] | [system requirements][link third-require] | [build][link third-build] |
If you need to modify the versions or locations of ThirdParty
software, please read how the
[OpenFOAM configuration][wiki-config] is structured.
## How do I know which version I am currently using?
The value of the `$WM_PROJECT_DIR` or even `$WM_PROJECT_VERSION` are
not guaranteed to have any correspondence to the OpenFOAM release
(API) value. If OpenFOAM has already been compiled, the build-time
information is embedded into each application. For example, as
displayed from `blockMesh -help`:
```
Using: OpenFOAM-com (2012) - visit www.openfoam.com
Build: b830beb5ea-20210429 (patch=210414)
Arch: LSB;label=32;scalar=64
```
This output contains all of the more interesting information that we need:
| item | value |
|-----------------------|---------------|
| version | com (eg, local development branch) |
| api | 2012 |
| commit | b830beb5ea |
| author date | 20210429 |
| patch-level | (20)210414 |
| label/scalar size | 32/64 bits |
The Arch information may also include the `solveScalar` size
if different than the `scalar` size.
As can be seen in this example, the git build information is
supplemented by the date when the last change was authored, which can
be helpful when the repository contains local changes. If you simply
wish to know the current API and patch levels directly, the
`wmake -build-info` provides the relevant information even
when OpenFOAM has not yet been compiled:
```
$ wmake -build-info
make
api = 2012
patch = 210414
branch = master
build = 308af39136-20210426
```
Similar information is available with `foamEtcFile`, using the
`-show-api` or `-show-patch` options. For example,
```
$ foamEtcFile -show-api
2012
$ foamEtcFile -show-patch
210414
```
This output will generally be the easiest to parse for scripts.
The `$FOAM_API` convenience environment variable may not reflect the
patching changes made within the currently active environment and
should be used with caution.
## ThirdParty directory
OpenFOAM normally ships with a directory of 3rd-party software and
build scripts for some 3rd-party software that is either necessary or
at least highly useful for OpenFOAM, but which are not necessarily
readily available on every operating system or cluster installation.
These 3rd-party sources are normally located in a directory parallel
to the OpenFOAM directory. For example,
```
/path/parent
|-- OpenFOAM-v2112
\-- ThirdParty-v2112
```
There are, however, many cases where this simple convention is inadequate:
* When no additional 3rd party software is actually required (ie, the
operating system or cluster installation provides it)
* When we have changed the OpenFOAM directory name to some arbitrary
directory name, e.g. openfoam-sandbox2112, etc..
* When we would like any additional 3rd party software to be located
inside of the OpenFOAM directory to ensure that the installation is
encapsulated within a single directory structure. This can be
necessary for cluster installations, or may simply be a convenient
means of performing a software rollout for individual workstations.
* When we have many different OpenFOAM directories for testing or
developing various different features but wish to use or reuse the
same 3rd party software for them all.
The solution for these problems is a newer, more intelligent discovery
when locating the ThirdParty directory with the following precedence:
1. PROJECT/ThirdParty
* for single-directory installations
2. PREFIX/ThirdParty-VERSION
* this corresponds to the traditional approach
3. PREFIX/ThirdParty-vAPI
* allows for an updated value of VERSION, *eg*, `v2112-myCustom`,
without requiring a renamed ThirdParty. The API value would still
be `2112` and the original `ThirdParty-v2112/` would be found.
4. PREFIX/ThirdParty-API
* same as the previous example, but using an unadorned API value.
5. PREFIX/ThirdParty-common
* permits maximum reuse for various versions, for experienced
users who are aware of potential version incompatibilities
If none of these directories are found to be suitable, it reverts to
using PROJECT/ThirdParty as a dummy location (even if the directory
does not exist). This is a safe fallback value since it is within the
OpenFOAM directory structure and can be trusted to have no negative
side-effects. In the above, the following notation has been used:
| name | value | meaning |
|---------------|---------------|---------------|
| PROJECT | `$WM_PROJECT_DIR` | The OpenFOAM directory |
| PREFIX | `dirname $WM_PROJECT_DIR` | The OpenFOAM parent directory |
| API | `foamEtcFiles -show-api` | The api or release version |
| VERSION | `$WM_PROJECT_VERSION` | The version we have chosen |
To reduce the potential of false positive matches (perhaps some other
software also uses ThirdParty-xxx for its naming), the directory test
is accompanied by a OpenFOAM-specific sanity test. The OpenFOAM
ThirdParty directory will contain either an `Allwmake` file or a
`platforms/` directory.
<!-- OpenFOAM -->
[link trademark]: https://www.openfoam.com/opencfd-limited-trade-mark-policy
[repo openfoam]: https://develop.openfoam.com/Development/openfoam/
[repo third]: https://develop.openfoam.com/Development/ThirdParty-common/
[link openfoam-readme]: https://develop.openfoam.com/Development/openfoam/blob/develop/README.md
[link openfoam-issues]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/BuildIssues.md
[link openfoam-build]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Build.md
[link openfoam-require]: https://develop.openfoam.com/Development/openfoam/blob/develop/doc/Requirements.md
[link third-readme]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/README.md
[link third-build]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/BUILD.md
[link third-require]: https://develop.openfoam.com/Development/ThirdParty-common/blob/develop/Requirements.md
[wiki-config]: https://develop.openfoam.com/Development/openfoam/-/wikis/configuring
## Useful Links
- Download [source](https://dl.openfoam.com/source/) and [download and installation instructions](http://www.openfoam.com/download/)
- [Documentation](http://www.openfoam.com/documentation)
- [Reporting bugs/issues (including bugs/suggestions/feature requests) in OpenFOAM+](http://www.openfoam.com/code/bug-reporting.php)
- [Collaborative and Community-based Developments](http://www.openfoam.com/services/community-projects.php)
- [Contacting OpenCFD](http://www.openfoam.com/contact)
- [Reporting bugs/issues/feature requests](http://www.openfoam.com/code/bug-reporting.php)
- [Issue tracker](https://develop.openfoam.com/Development/openfoam/-/issues)
- [Code wiki](https://develop.openfoam.com/Development/openfoam/-/wikis/) and [General wiki](http://wiki.openfoam.com/)
- [Governance](http://www.openfoam.com/governance/), [Governance Projects](https://www.openfoam.com/governance/projects)
- [Contacting OpenCFD](http://www.openfoam.com/contact/)
Copyright 2016 OpenCFD Ltd
Copyright 2016-2021 OpenCFD Ltd

View File

@ -1,27 +1,36 @@
#!/bin/sh
cd ${0%/*} || exit 1 # Run from this directory
# Parse arguments for library compilation
targetType=libso
. $WM_PROJECT_DIR/wmake/scripts/AllwmakeParseArguments
wmakeCheckPwd "$WM_PROJECT_DIR/applications" || {
echo "Allwmake error: Current directory is not \$WM_PROJECT_DIR/applications"
echo " The environment variables are inconsistent with the installation."
echo " Check the OpenFOAM entries in your dot-files and source them."
# Run from OPENFOAM applications/ directory only
cd "${0%/*}" || exit
wmake -check-dir "$WM_PROJECT_DIR/applications" 2>/dev/null || {
echo "Error (${0##*/}) : not located in \$WM_PROJECT_DIR/applications"
echo " Check your OpenFOAM environment and installation"
exit 1
}
[ -n "$FOAM_EXT_LIBBIN" ] || {
echo "Allwmake error: FOAM_EXT_LIBBIN not set"
echo " Check the OpenFOAM entries in your dot-files and source them."
if [ -f "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments ]
then . "$WM_PROJECT_DIR"/wmake/scripts/AllwmakeParseArguments || \
echo "Argument parse error"
else
echo "Error (${0##*/}) : WM_PROJECT_DIR appears to be incorrect"
echo " Check your OpenFOAM environment and installation"
exit 1
}
set -x
wmake -all solvers $*
wmake -all utilities $*
fi
echo ========================================
echo Compile OpenFOAM applications
echo ========================================
#------------------------------------------------------------------------------
wmake -all $targetType solvers
wmake -all $targetType utilities
# Optional
## wmake -all $targetType tools
#------------------------------------------------------------------------------
echo ========================================
echo Done OpenFOAM applications
echo ========================================
#------------------------------------------------------------------------------

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.

View File

@ -1,14 +1,14 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/wmake/scripts/AllwmakeParseArguments
. ${WM_PROJECT_DIR:?}/wmake/scripts/have_fftw
#------------------------------------------------------------------------------
if [ -f "$FFTW_ARCH_PATH/include/fftw3.h" ] || \
[ "${FFTW_ARCH_PATH##*-}" = system -a -f "/usr/include/fftw3.h" ]
if have_fftw
then
wmake
wmake $targetType
else
echo
echo "Skipping dnsFoam solver (no FFTW)"
echo
echo "==> skip dnsFoam solver (no FFTW)"
fi
#------------------------------------------------------------------------------

View File

@ -1,9 +1,9 @@
EXE_INC = \
-I$(LIB_SRC)/randomProcesses/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/randomProcesses/lnInclude
EXE_LIBS = \
-lrandomProcesses \
-lfiniteVolume \
-lmeshTools
-lmeshTools \
-lrandomProcesses

View File

@ -1,3 +1,5 @@
#include "readTransportProperties.H"
Info<< "Reading field p\n" << endl;
volScalarField p
(
@ -29,3 +31,5 @@ volVectorField U
#include "createPhi.H"
mesh.setFluxRequired(p.name());
#include "readTurbulenceProperties.H"

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -28,7 +30,7 @@ Group
grpDNSSolvers
Description
Direct numerical simulation solver for boxes of isotropic turbulence
Direct numerical simulation solver for boxes of isotropic turbulence.
\*---------------------------------------------------------------------------*/
@ -44,32 +46,41 @@ Description
int main(int argc, char *argv[])
{
#include "setRootCase.H"
argList::addNote
(
"Direct numerical simulation for boxes of isotropic turbulence."
);
#include "postProcess.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMeshNoClear.H"
pisoControl piso(mesh);
#include "readTransportProperties.H"
#include "createControl.H"
#include "createFields.H"
#include "readTurbulenceProperties.H"
#include "initContinuityErrs.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
label ntot = 1;
forAll(K.nn(), idim)
{
ntot *= K.nn()[idim];
}
const scalar recRootN = 1.0/Foam::sqrt(scalar(ntot));
Info<< nl << "Starting time loop" << endl;
while (runTime.loop())
{
Info<< "Time = " << runTime.timeName() << nl << endl;
force.internalField() = ReImSum
force.primitiveFieldRef() = ReImSum
(
fft::reverseTransform
(
K/(mag(K) + 1.0e-6) ^ forceGen.newField(), K.nn()
)
)*recRootN
);
#include "globalProperties.H"
@ -119,7 +130,7 @@ int main(int argc, char *argv[])
runTime.write();
if (runTime.outputTime())
if (runTime.writeTime())
{
calcEk(U, K).write
(
@ -129,9 +140,7 @@ int main(int argc, char *argv[])
);
}
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;

View File

@ -0,0 +1,3 @@
acousticFoam.C
EXE = $(FOAM_APPBIN)/acousticFoam

View File

@ -0,0 +1,14 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOption/lnInclude \
-I$(LIB_SRC)/regionFaModels/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-lsampling \
-lregionFaModels

View File

@ -0,0 +1,99 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2019-2020 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
acousticFoam
Group
grpAcousticSolvers
Description
Acoustic solver solving the acoustic pressure wave equation.
\f[
\ddt2{pa} - c^2 \laplacian{pa} = 0
\f]
where
\vartable
c | Sound speed
pa | Acoustic pressure
\endvartable
SourceFiles
acousticFoam.C
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "fvOptions.H"
#include "pimpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
argList::addNote
(
"Acoustic solver solving the acoustic pressure wave equation."
);
#include "postProcess.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMesh.H"
#include "createControl.H"
#include "createRegionControls.H"
#include "readTransportProperties.H"
#include "createFields.H"
Info<< "\nStarting time loop\n" << endl;
while (runTime.run())
{
++runTime;
Info<< "Time = " << runTime.timeName() << nl << endl;
while (pimple.correct())
{
#include "paEqn.H"
}
runTime.write();
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,15 @@
Info << "\nReading pa" << endl;
volScalarField pa
(
IOobject
(
"pa",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);

View File

@ -0,0 +1,8 @@
fvSolution solutionDict(runTime);
const dictionary& pimpleDict = solutionDict.subDict("PIMPLE");
bool solvePrimaryRegion
(
pimpleDict.getOrDefault("solvePrimaryRegion", true)
);

View File

@ -0,0 +1,15 @@
fvScalarMatrix paEqn
(
fvm::d2dt2(pa) - sqr(c0)*fvc::laplacian(pa)
);
if (solvePrimaryRegion)
{
paEqn.relax();
paEqn.solve();
}
else
{
pa.correctBoundaryConditions();
}

View File

@ -0,0 +1,23 @@
Info<< "\nReading transportProperties" << endl;
IOdictionary transportProperties
(
IOobject
(
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE
)
);
dimensionedScalar c0("c0", dimVelocity, transportProperties);
dimensionedScalar rho("rho", dimDensity, transportProperties);
scalar MaxCo =
max(mesh.surfaceInterpolation::deltaCoeffs()*c0).value()
*runTime.deltaT().value();
Info<< "Max acoustic Courant Number = " << MaxCo << endl;

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.

View File

@ -4,4 +4,5 @@ EXE_INC = \
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools

View File

@ -1,21 +1,37 @@
Info<< "Reading field T\n" << endl;
Info<< "Reading field T\n" << endl;
volScalarField T
volScalarField T
(
IOobject
(
IOobject
(
"T",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
"T",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
Info<< "Reading transportProperties\n" << endl;
Info<< "Reading diffusivity DT\n" << endl;
volScalarField DT
(
IOobject
(
"DT",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
mesh,
dimensionedScalar(dimViscosity, Zero)
);
if (!DT.headerOk())
{
IOdictionary transportProperties
(
IOobject
@ -27,11 +43,7 @@
IOobject::NO_WRITE
)
);
DT = dimensionedScalar("DT", dimViscosity, transportProperties);
}
Info<< "Reading diffusivity DT\n" << endl;
dimensionedScalar DT
(
transportProperties.lookup("DT")
);
#include "createFvOptions.H"

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -52,14 +55,22 @@ Description
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "fvOptions.H"
#include "simpleControl.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
#include "setRootCase.H"
argList::addNote
(
"Laplace equation solver for a scalar quantity."
);
#include "postProcess.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMesh.H"
@ -77,17 +88,21 @@ int main(int argc, char *argv[])
while (simple.correctNonOrthogonal())
{
solve
fvScalarMatrix TEqn
(
fvm::ddt(T) - fvm::laplacian(DT, T)
==
fvOptions(T)
);
fvOptions.constrain(TEqn);
TEqn.solve();
fvOptions.correct(T);
}
#include "write.H"
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;

View File

@ -0,0 +1,3 @@
overLaplacianDyMFoam.C
EXE = $(FOAM_APPBIN)/overLaplacianDyMFoam

View File

@ -0,0 +1,11 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/overset/lnInclude \
EXE_LIBS = \
-lfiniteVolume \
-lmeshTools \
-ldynamicFvMesh \
-loverset

View File

@ -0,0 +1,33 @@
Info<< "Reading field T\n" << endl;
volScalarField T
(
IOobject
(
"T",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
Info<< "Reading transportProperties\n" << endl;
IOdictionary transportProperties
(
IOobject
(
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
Info<< "Reading diffusivity DT\n" << endl;
dimensionedScalar DT("DT", dimViscosity, transportProperties);

View File

@ -0,0 +1,115 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2016-2017 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
overLaplacianDyMFoam
Group
grpBasicSolvers
Description
Laplace equation solver for a scalar quantity.
\heading Solver details
The solver is applicable to, e.g. for thermal diffusion in a solid. The
equation is given by:
\f[
\ddt{T} = \div \left( D_T \grad T \right)
\f]
Where:
\vartable
T | Scalar field which is solved for, e.g. temperature
D_T | Diffusion coefficient
\endvartable
\heading Required fields
\plaintable
T | Scalar field which is solved for, e.g. temperature
\endplaintable
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "fvOptions.H"
#include "simpleControl.H"
#include "dynamicFvMesh.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
argList::addNote
(
"Overset Laplace equation solver for a scalar quantity."
);
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createNamedDynamicFvMesh.H"
simpleControl simple(mesh);
#include "createFields.H"
#include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nCalculating temperature distribution\n" << endl;
while (simple.loop())
{
Info<< "Time = " << runTime.timeName() << nl << endl;
mesh.update();
while (simple.correctNonOrthogonal())
{
fvScalarMatrix TEqn
(
fvm::ddt(T) - fvm::laplacian(DT, T)
==
fvOptions(T)
);
fvOptions.constrain(TEqn);
TEqn.solve();
fvOptions.correct(T);
}
#include "write.H"
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -0,0 +1,46 @@
if (runTime.writeTime())
{
volVectorField gradT(fvc::grad(T));
volScalarField gradTx
(
IOobject
(
"gradTx",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
gradT.component(vector::X)
);
volScalarField gradTy
(
IOobject
(
"gradTy",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
gradT.component(vector::Y)
);
volScalarField gradTz
(
IOobject
(
"gradTz",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
gradT.component(vector::Z)
);
runTime.write();
}

View File

@ -1,4 +1,4 @@
if (runTime.outputTime())
if (runTime.writeTime())
{
volVectorField gradT(fvc::grad(T));
@ -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

@ -0,0 +1,9 @@
const dictionary& potentialFlow
(
mesh.solutionDict().subDict("potentialFlow")
);
const int nNonOrthCorr
(
potentialFlow.getOrDefault<int>("nNonOrthogonalCorrectors", 0)
);

View File

@ -13,7 +13,7 @@ volVectorField U
);
// Initialise the velocity internal field to zero
U = dimensionedVector("0", U.dimensions(), Zero);
U = dimensionedVector(U.dimensions(), Zero);
surfaceScalarField phi
(
@ -28,7 +28,7 @@ surfaceScalarField phi
fvc::flux(U)
);
if (args.optionFound("initialiseUBCs"))
if (args.found("initialiseUBCs"))
{
U.correctBoundaryConditions();
phi = fvc::flux(U);
@ -38,12 +38,11 @@ if (args.optionFound("initialiseUBCs"))
// Construct a pressure field
// If it is available read it otherwise construct from the velocity BCs
// converting fixed-value BCs to zero-gradient and vice versa.
word pName("p");
// Update name of the pressure field from the command-line option
args.optionReadIfPresent("pName", pName);
// Allow override from command-line -pName option
const word pName = args.getOrDefault<word>("pName", "p");
// Infer the pressure BCs from the velocity BCs
// Infer the pressure BCs from the velocity
wordList pBCTypes
(
U.boundaryField().size(),
@ -58,9 +57,6 @@ forAll(U.boundaryField(), patchi)
}
}
// Note that registerObject is false for the pressure field. The pressure
// field in this solver doesn't have a physical value during the solution.
// It shouldn't be looked up and used by sub models or boundary conditions.
Info<< "Constructing pressure field " << pName << nl << endl;
volScalarField p
(
@ -70,70 +66,43 @@ volScalarField p
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE,
false
IOobject::NO_WRITE
),
mesh,
dimensionedScalar(pName, sqr(dimVelocity), 0),
dimensionedScalar(sqr(dimVelocity), Zero),
pBCTypes
);
label pRefCell = 0;
scalar pRefValue = 0.0;
if (args.optionFound("writep"))
{
setRefCell
(
p,
potentialFlow.dict(),
pRefCell,
pRefValue
);
}
Info<< "Constructing velocity potential field Phi\n" << endl;
autoPtr<volScalarField> PhiPtr;
IOobject io
// Infer the velocity potential BCs from the pressure
wordList PhiBCTypes
(
"Phi",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE
p.boundaryField().size(),
zeroGradientFvPatchScalarField::typeName
);
if (io.typeHeaderOk<volScalarField>())
forAll(p.boundaryField(), patchi)
{
PhiPtr.reset(new volScalarField(io, mesh));
}
else
{
// Cannot just use p.boundaryField().types() since does not initialise
// complex boundary types. Instead re-clone them from p.
io.readOpt() = IOobject::NO_READ;
PhiPtr.reset
(
new volScalarField
(
io,
mesh,
dimensionedScalar("Phi", dimLength*dimVelocity, 0),
p.boundaryField().types()
)
);
const volScalarField::GeometricBoundaryField& bp = p.boundaryField();
volScalarField::GeometricBoundaryField& bPhi = PhiPtr().boundaryField();
forAll(bp, patchI)
if (p.boundaryField()[patchi].fixesValue())
{
bPhi.set(patchI, bp[patchI].clone(PhiPtr().dimensionedInternalField()));
PhiBCTypes[patchi] = fixedValueFvPatchScalarField::typeName;
}
}
volScalarField& Phi = PhiPtr();
Info<< "Constructing velocity potential field Phi\n" << endl;
volScalarField Phi
(
IOobject
(
"Phi",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar(dimLength*dimVelocity, Zero),
PhiBCTypes
);
label PhiRefCell = 0;
scalar PhiRefValue = 0;
@ -145,3 +114,5 @@ setRefCell
PhiRefValue
);
mesh.setFluxRequired(Phi.name());
#include "createMRF.H"

View File

@ -0,0 +1,3 @@
overPotentialFoam.C
EXE = $(FOAM_APPBIN)/overPotentialFoam

View File

@ -0,0 +1,13 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/overset/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lmeshTools \
-ldynamicFvMesh \
-lsampling \
-loverset

View File

@ -0,0 +1,9 @@
const dictionary& potentialFlow
(
mesh.solutionDict().subDict("potentialFlow")
);
const int nNonOrthCorr
(
potentialFlow.getOrDefault<int>("nNonOrthogonalCorrectors", 0)
);

View File

@ -0,0 +1,138 @@
Info<< "Reading velocity field U\n" << endl;
volVectorField U
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
// Initialise the velocity internal field to zero
U = dimensionedVector(U.dimensions(), Zero);
surfaceScalarField phi
(
IOobject
(
"phi",
runTime.timeName(),
mesh,
IOobject::NO_READ,
IOobject::AUTO_WRITE
),
fvc::flux(U)
);
if (args.found("initialiseUBCs"))
{
U.correctBoundaryConditions();
phi = fvc::flux(U);
}
// Construct a pressure field
// If it is available read it otherwise construct from the velocity BCs
// converting fixed-value BCs to zero-gradient and vice versa.
// Allow override from command-line -pName option
const word pName = args.getOrDefault<word>("pName", "p");
// Infer the pressure BCs from the velocity
wordList pBCTypes
(
U.boundaryField().size(),
fixedValueFvPatchScalarField::typeName
);
forAll(U.boundaryField(), patchi)
{
if (U.boundaryField()[patchi].fixesValue())
{
pBCTypes[patchi] = zeroGradientFvPatchScalarField::typeName;
}
}
// Note that registerObject is false for the pressure field. The pressure
// field in this solver doesn't have a physical value during the solution.
// It shouldn't be looked up and used by sub models or boundary conditions.
Info<< "Constructing pressure field " << pName << nl << endl;
volScalarField p
(
IOobject
(
pName,
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE,
false
),
mesh,
dimensionedScalar(sqr(dimVelocity), Zero),
pBCTypes
);
// Infer the velocity potential BCs from the pressure
wordList PhiBCTypes
(
p.boundaryField().size(),
zeroGradientFvPatchScalarField::typeName
);
forAll(p.boundaryField(), patchi)
{
if (p.boundaryField()[patchi].fixesValue())
{
PhiBCTypes[patchi] = fixedValueFvPatchScalarField::typeName;
}
}
Info<< "Constructing velocity potential field Phi\n" << endl;
volScalarField Phi
(
IOobject
(
"Phi",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar(dimLength*dimVelocity, Zero),
PhiBCTypes
);
label PhiRefCell = 0;
scalar PhiRefValue = 0;
setRefCell
(
Phi,
potentialFlow.dict(),
PhiRefCell,
PhiRefValue
);
mesh.setFluxRequired(Phi.name());
#include "createMRF.H"
// Add solver-specific interpolations
{
wordHashSet& nonInt =
const_cast<wordHashSet&>(Stencil::New(mesh).nonInterpolatedFields());
nonInt.insert("cellMask");
nonInt.insert("interpolatedCells");
}
// Mask field for zeroing out contributions on hole cells
#include "createCellMask.H"
// Create bool field with interpolated cells
#include "createInterpolatedCells.H"

View File

@ -0,0 +1,265 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2017 OpenCFD Ltd
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Application
overPotentialFoam
Group
grpBasicSolvers
Description
Potential flow solver which solves for the velocity potential, to
calculate the flux-field, from which the velocity field is obtained by
reconstructing the flux.
\heading Solver details
The potential flow solution is typically employed to generate initial fields
for full Navier-Stokes codes. The flow is evolved using the equation:
\f[
\laplacian \Phi = \div(\vec{U})
\f]
Where:
\vartable
\Phi | Velocity potential [m2/s]
\vec{U} | Velocity [m/s]
\endvartable
The corresponding pressure field could be calculated from the divergence
of the Euler equation:
\f[
\laplacian p + \div(\div(\vec{U}\otimes\vec{U})) = 0
\f]
but this generates excessive pressure variation in regions of large
velocity gradient normal to the flow direction. A better option is to
calculate the pressure field corresponding to velocity variation along the
stream-lines:
\f[
\laplacian p + \div(\vec{F}\cdot\div(\vec{U}\otimes\vec{U})) = 0
\f]
where the flow direction tensor \f$\vec{F}\f$ is obtained from
\f[
\vec{F} = \hat{\vec{U}}\otimes\hat{\vec{U}}
\f]
\heading Required fields
\plaintable
U | Velocity [m/s]
\endplaintable
\heading Optional fields
\plaintable
p | Kinematic pressure [m2/s2]
Phi | Velocity potential [m2/s]
| Generated from p (if present) or U if not present
\endplaintable
\heading Options
\plaintable
-writep | write the Euler pressure
-writePhi | Write the final velocity potential
-initialiseUBCs | Update the velocity boundaries before solving for Phi
\endplaintable
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "pisoControl.H"
#include "dynamicFvMesh.H"
#include "cellCellStencilObject.H"
#include "localMin.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
int main(int argc, char *argv[])
{
argList::addNote
(
"Overset potential flow solver which solves for the velocity potential"
);
argList::addOption
(
"pName",
"pName",
"Name of the pressure field"
);
argList::addBoolOption
(
"initialiseUBCs",
"Initialise U boundary conditions"
);
argList::addBoolOption
(
"writePhi",
"Write the final velocity potential field"
);
argList::addBoolOption
(
"writep",
"Calculate and write the Euler pressure field"
);
argList::addBoolOption
(
"withFunctionObjects",
"Execute functionObjects"
);
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createNamedDynamicFvMesh.H"
pisoControl potentialFlow(mesh, "potentialFlow");
#include "createFields.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< nl << "Calculating potential flow" << endl;
mesh.update();
surfaceScalarField faceMask(localMin<scalar>(mesh).interpolate(cellMask));
// Since solver contains no time loop it would never execute
// function objects so do it ourselves
runTime.functionObjects().start();
MRF.makeRelative(phi);
adjustPhi(phi, U, p);
// Non-orthogonal velocity potential corrector loop
while (potentialFlow.correct())
{
phi = fvc::flux(U);
while (potentialFlow.correctNonOrthogonal())
{
fvScalarMatrix PhiEqn
(
fvm::laplacian(faceMask, Phi)
==
fvc::div(phi)
);
PhiEqn.setReference(PhiRefCell, PhiRefValue);
PhiEqn.solve();
if (potentialFlow.finalNonOrthogonalIter())
{
phi -= PhiEqn.flux();
}
}
MRF.makeAbsolute(phi);
Info<< "Continuity error = "
<< mag(fvc::div(phi))().weightedAverage(mesh.V()).value()
<< endl;
U = fvc::reconstruct(phi);
U.correctBoundaryConditions();
Info<< "Interpolated velocity error = "
<< (sqrt(sum(sqr(fvc::flux(U) - phi)))/sum(mesh.magSf())).value()
<< endl;
}
// Write U and phi
U.write();
phi.write();
// Optionally write Phi
if (args.found("writePhi"))
{
Phi.write();
}
// Calculate the pressure field from the Euler equation
if (args.found("writep"))
{
Info<< nl << "Calculating approximate pressure field" << endl;
label pRefCell = 0;
scalar pRefValue = 0.0;
setRefCell
(
p,
potentialFlow.dict(),
pRefCell,
pRefValue
);
// Calculate the flow-direction filter tensor
volScalarField magSqrU(magSqr(U));
volSymmTensorField F(sqr(U)/(magSqrU + SMALL*average(magSqrU)));
// Calculate the divergence of the flow-direction filtered div(U*U)
// Filtering with the flow-direction generates a more reasonable
// pressure distribution in regions of high velocity gradient in the
// direction of the flow
volScalarField divDivUU
(
fvc::div
(
F & fvc::div(phi, U),
"div(div(phi,U))"
)
);
// Solve a Poisson equation for the approximate pressure
while (potentialFlow.correctNonOrthogonal())
{
fvScalarMatrix pEqn
(
fvm::laplacian(p) + divDivUU
);
pEqn.setReference(pRefCell, pRefValue);
pEqn.solve();
}
p.write();
}
runTime.functionObjects().end();
runTime.printExecutionTime(Info);
Info<< "End\n" << endl;
return 0;
}
// ************************************************************************* //

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -28,7 +31,9 @@ Group
grpBasicSolvers
Description
Potential flow solver.
Potential flow solver which solves for the velocity potential, to
calculate the flux-field, from which the velocity field is obtained by
reconstructing the flux.
\heading Solver details
The potential flow solution is typically employed to generate initial fields
@ -79,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
@ -92,6 +98,11 @@ Description
int main(int argc, char *argv[])
{
argList::addNote
(
"Potential flow solver which solves for the velocity potential"
);
argList::addOption
(
"pName",
@ -105,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",
@ -120,17 +137,18 @@ int main(int argc, char *argv[])
argList::addBoolOption
(
"withFunctionObjects",
"execute functionObjects"
"Execute functionObjects"
);
#include "setRootCase.H"
#include "addRegionOption.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMesh.H"
pisoControl potentialFlow(mesh, "potentialFlow");
#include "createFields.H"
#include "createMRF.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -175,18 +193,23 @@ int main(int argc, char *argv[])
<< (sqrt(sum(sqr(fvc::flux(U) - phi)))/sum(mesh.magSf())).value()
<< endl;
// Write U and phi
// Write U
U.write();
phi.write();
// Optionally write Phi
if (args.optionFound("writePhi"))
// Optionally write the volumetric flux, phi
if (args.found("writephi"))
{
phi.write();
}
// Optionally write velocity potential, Phi
if (args.found("writePhi"))
{
Phi.write();
}
// Calculate the pressure field from the Euler equation
if (args.optionFound("writep"))
if (args.found("writep"))
{
Info<< nl << "Calculating approximate pressure field" << endl;
@ -234,9 +257,7 @@ int main(int argc, char *argv[])
runTime.functionObjects().end();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
Info<< "End\n" << endl;

View File

@ -1,55 +1,54 @@
Info<< "Reading field T\n" << endl;
Info<< "Reading field T\n" << endl;
volScalarField T
volScalarField T
(
IOobject
(
IOobject
(
"T",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
"T",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
Info<< "Reading field U\n" << endl;
Info<< "Reading field U\n" << endl;
volVectorField U
volVectorField U
(
IOobject
(
IOobject
(
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
"U",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
);
Info<< "Reading transportProperties\n" << endl;
Info<< "Reading transportProperties\n" << endl;
IOdictionary transportProperties
IOdictionary transportProperties
(
IOobject
(
IOobject
(
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
"transportProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ_IF_MODIFIED,
IOobject::NO_WRITE
)
);
Info<< "Reading diffusivity DT\n" << endl;
Info<< "Reading diffusivity DT\n" << endl;
dimensionedScalar DT
(
transportProperties.lookup("DT")
);
dimensionedScalar DT("DT", dimViscosity, transportProperties);
#include "createPhi.H"
#include "createPhi.H"
#include "createFvOptions.H"

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -61,14 +63,19 @@ Description
int main(int argc, char *argv[])
{
#include "setRootCase.H"
argList::addNote
(
"Passive scalar transport equation solver."
);
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMesh.H"
simpleControl simple(mesh);
#include "createFields.H"
#include "createFvOptions.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -4,6 +4,9 @@ EXE_INC = \
-IXiModels/XiGModels/XiGModel \
-IPDRModels/dragModels/PDRDragModel \
-IlaminarFlameSpeed/SCOPE \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/surfMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/engine/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
@ -12,15 +15,14 @@ EXE_INC = \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/triSurface/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude
EXE_LIBS = \
-lengine \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-lengine \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lcompressibleTransportModels \
@ -28,6 +30,4 @@ EXE_LIBS = \
-lreactionThermophysicalModels \
-lspecie \
-llaminarFlameSpeedModels \
-lfiniteVolume \
-ldynamicFvMesh \
-lfvOptions
-ldynamicFvMesh

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,7 +35,7 @@ Description
Combusting RANS code using the b-Xi two-equation model.
Xi may be obtained by either the solution of the Xi transport
equation or from an algebraic exression. Both approaches are
equation or from an algebraic expression. Both approaches are
based on Gulder's flame speed correlation which has been shown
to be appropriate by comparison with the results from the
spectral model.
@ -64,7 +66,7 @@ Description
CR | Drag tensor (1/m)
CT | Turbulence generation parameter (1/m)
Nv | Number of obstacles in cell per unit volume (m^-2)
nsv | Tensor whose diagonal indicates the number to substract from
nsv | Tensor whose diagonal indicates the number to subtract from
| Nv to get the number of obstacles crossing the flow in each
| direction.
\endplaintable
@ -78,7 +80,6 @@ Description
#include "XiModel.H"
#include "PDRDragModel.H"
#include "ignition.H"
#include "Switch.H"
#include "bound.H"
#include "pimpleControl.H"
#include "fvOptions.H"
@ -87,18 +88,23 @@ Description
int main(int argc, char *argv[])
{
#include "setRootCase.H"
argList::addNote
(
"Solver for compressible premixed/partially-premixed combustion with"
" turbulence modelling."
);
#include "postProcess.H"
#include "addCheckCaseOptions.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createMesh.H"
pimpleControl pimple(mesh);
#include "createControl.H"
#include "readCombustionProperties.H"
#include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H"
#include "createFieldRefs.H"
#include "initContinuityErrs.H"
#include "createTimeControls.H"
#include "compressibleCourantNo.H"
@ -113,11 +119,11 @@ int main(int argc, char *argv[])
while (runTime.run())
{
#include "createTimeControls.H"
#include "readTimeControls.H"
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
runTime++;
++runTime;
Info<< "\n\nTime = " << runTime.timeName() << endl;
#include "rhoEqn.H"
@ -151,12 +157,10 @@ int main(int argc, char *argv[])
runTime.write();
Info<< "\nExecutionTime = "
<< runTime.elapsedCpuTime()
<< " s\n" << endl;
runTime.printExecutionTime(Info);
}
Info<< "\n end\n";
Info<< "End\n";
return 0;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -30,7 +32,7 @@ Description
Combusting RANS code using the b-Xi two-equation model.
Xi may be obtained by either the solution of the Xi transport
equation or from an algebraic exression. Both approaches are
equation or from an algebraic expression. Both approaches are
based on Gulder's flame speed correlation which has been shown
to be appropriate by comparison with the results from the
spectral model.
@ -63,7 +65,6 @@ Description
#include "XiModel.H"
#include "PDRDragModel.H"
#include "ignition.H"
#include "Switch.H"
#include "bound.H"
#include "dynamicRefineFvMesh.H"
#include "pimpleControl.H"
@ -72,8 +73,13 @@ Description
int main(int argc, char *argv[])
{
#include "setRootCase.H"
argList::addNote
(
"Solver for compressible premixed/partially-premixed combustion with"
" turbulence modelling."
);
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createDynamicFvMesh.H"
@ -98,12 +104,12 @@ int main(int argc, char *argv[])
while (runTime.run())
{
#include "createTimeControls.H"
#include "readTimeControls.H"
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
// Indicators for refinement. Note: before runTime++
// only for postprocessing reasons.
// Indicators for refinement.
// Note: before ++runTime only for post-processing reasons.
tmp<volScalarField> tmagGradP = mag(fvc::grad(p));
volScalarField normalisedGradP
(
@ -113,7 +119,7 @@ int main(int argc, char *argv[])
normalisedGradP.writeOpt() = IOobject::AUTO_WRITE;
tmagGradP.clear();
runTime++;
++runTime;
Info<< "\n\nTime = " << runTime.timeName() << endl;
@ -122,20 +128,20 @@ int main(int argc, char *argv[])
fvc::makeAbsolute(phi, rho, U);
// Test : disable refinement for some cells
PackedBoolList& protectedCell =
bitSet& protectedCell =
refCast<dynamicRefineFvMesh>(mesh).protectedCell();
if (protectedCell.empty())
{
protectedCell.setSize(mesh.nCells());
protectedCell = 0;
protectedCell = false;
}
forAll(betav, cellI)
forAll(betav, celli)
{
if (betav[cellI] < 0.99)
if (betav[celli] < 0.99)
{
protectedCell[cellI] = 1;
protectedCell.set(celli);
}
}
@ -198,12 +204,10 @@ int main(int argc, char *argv[])
runTime.write();
Info<< "\nExecutionTime = "
<< runTime.elapsedCpuTime()
<< " s\n" << endl;
runTime.printExecutionTime(Info);
}
Info<< "\n end\n";
Info<< "End\n";
return 0;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -103,9 +105,9 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::basicSubGrid::XiEq() const
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("zero", Nv.dimensions(), 0.0)
dimensionedScalar(Nv.dimensions(), Zero)
);
N.internalField() = Nv.internalField()*Cw;
N.primitiveFieldRef() = Nv.primitiveField()*Cw;
volSymmTensorField ns
(
@ -118,14 +120,9 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::basicSubGrid::XiEq() const
IOobject::NO_WRITE
),
U.mesh(),
dimensionedSymmTensor
(
"zero",
nsv.dimensions(),
Zero
)
dimensionedSymmTensor(nsv.dimensions(), Zero)
);
ns.internalField() = nsv.internalField()*Cw;
ns.primitiveFieldRef() = nsv.primitiveField()*Cw;
volScalarField n(max(N - (Uhat & ns & Uhat), scalar(1e-4)));
volScalarField b((Uhat & B_ & Uhat)/sqrt(n));

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -25,7 +27,7 @@ Class
Foam::XiEqModels::basicSubGrid
Description
Basic sub-grid obstacle flame-wrinking enhancement factor model.
Basic sub-grid obstacle flame-wrinkling enhancement factor model.
Details supplied by J Puttock 2/7/06.
<b> Sub-grid flame area generation </b>
@ -94,11 +96,11 @@ class basicSubGrid
// Private Member Functions
//- Disallow copy construct
basicSubGrid(const basicSubGrid&);
//- No copy construct
basicSubGrid(const basicSubGrid&) = delete;
//- Disallow default bitwise assignment
void operator=(const basicSubGrid&);
//- No copy assignment
void operator=(const basicSubGrid&) = delete;
public:
@ -125,7 +127,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -49,7 +51,7 @@ Foam::XiGModels::basicSubGrid::basicSubGrid
)
:
XiGModel(XiGProperties, thermo, turbulence, Su),
k1(readScalar(XiGModelCoeffs_.lookup("k1"))),
k1(XiGModelCoeffs_.get<scalar>("k1")),
XiGModel_(XiGModel::New(XiGModelCoeffs_, thermo, turbulence, Su))
{}
@ -73,7 +75,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::basicSubGrid::G() const
volScalarField& Gtot = tGtot.ref();
const scalarField Cw = pow(Su_.mesh().V(), 2.0/3.0);
scalarField N(Nv.internalField()*Cw);
scalarField N(Nv.primitiveField()*Cw);
forAll(N, celli)
{
@ -104,7 +106,7 @@ bool Foam::XiGModels::basicSubGrid::read(const dictionary& XiGProperties)
{
XiGModel::read(XiGProperties);
XiGModelCoeffs_.lookup("k1") >> k1;
XiGModelCoeffs_.readEntry("k1", k1);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2013 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -26,7 +28,7 @@ Class
Description
Basic sub-grid obstacle flame-wrinking generation rate coefficient model.
Basic sub-grid obstacle flame-wrinkling generation rate coefficient model.
Details supplied by J Puttock 2/7/06.
\f$ G_{sub} \f$ denotes the generation coefficient and it is given by
@ -82,11 +84,11 @@ class basicSubGrid
// Private Member Functions
//- Disallow copy construct
basicSubGrid(const basicSubGrid&);
//- No copy construct
basicSubGrid(const basicSubGrid&) = delete;
//- Disallow default bitwise assignment
void operator=(const basicSubGrid&);
//- No copy assignment
void operator=(const basicSubGrid&) = delete;
public:
@ -113,7 +115,7 @@ public:
// Member Functions
//- Return the flame-wrinking generation rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const;
//- Return the flame diffusivity

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -58,14 +60,14 @@ Foam::PDRDragModel::PDRDragModel
(
PDRProperties.subDict
(
word(PDRProperties.lookup("PDRDragModel")) + "Coeffs"
PDRProperties.get<word>("PDRDragModel") + "Coeffs"
)
),
turbulence_(turbulence),
rho_(rho),
U_(U),
phi_(phi),
on_(PDRDragModelCoeffs_.lookup("drag"))
on_(PDRDragModelCoeffs_.get<bool>("drag"))
{}
@ -79,9 +81,9 @@ Foam::PDRDragModel::~PDRDragModel()
bool Foam::PDRDragModel::read(const dictionary& PDRProperties)
{
PDRDragModelCoeffs_ = PDRProperties.subDict(type() + "Coeffs");
PDRDragModelCoeffs_ = PDRProperties.optionalSubDict(type() + "Coeffs");
PDRDragModelCoeffs_.lookup("drag") >> on_;
PDRDragModelCoeffs_.readEntry("drag", on_);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -67,18 +69,18 @@ protected:
const volVectorField& U_;
const surfaceScalarField& phi_;
Switch on_;
bool on_;
private:
// Private Member Functions
//- Disallow copy construct
PDRDragModel(const PDRDragModel&);
//- No copy construct
PDRDragModel(const PDRDragModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const PDRDragModel&);
//- No copy assignment
void operator=(const PDRDragModel&) = delete;
public:

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019-2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -29,32 +32,34 @@ License
Foam::autoPtr<Foam::PDRDragModel> Foam::PDRDragModel::New
(
const dictionary& PDRProperties,
const dictionary& dict,
const compressible::RASModel& turbulence,
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi
)
{
const word modelType(PDRProperties.lookup("PDRDragModel"));
const word modelType(dict.get<word>("PDRDragModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
Info<< "Selecting drag model " << modelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(modelType);
auto* ctorPtr = dictionaryConstructorTable(modelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
if (!ctorPtr)
{
FatalErrorInFunction
<< "Unknown PDRDragModel type "
<< modelType << nl << nl
<< "Valid PDRDragModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"PDRDragModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<PDRDragModel>
(cstrIter()(PDRProperties, turbulence, rho, U, phi));
(
ctorPtr(dict, turbulence, rho, U, phi)
);
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -104,12 +106,7 @@ Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
IOobject::NO_WRITE
),
U_.mesh(),
dimensionedSymmTensor
(
"zero",
dimMass/dimTime/pow(dimLength, 3),
Zero
)
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
)
);
@ -143,7 +140,7 @@ Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
IOobject::NO_WRITE
),
U_.mesh(),
dimensionedScalar("zero", dimMass/dimLength/pow(dimTime, 3), 0.0)
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
)
);
@ -170,8 +167,8 @@ bool Foam::PDRDragModels::basic::read(const dictionary& PDRProperties)
{
PDRDragModel::read(PDRProperties);
PDRDragModelCoeffs_.lookup("Csu") >> Csu.value();
PDRDragModelCoeffs_.lookup("Csk") >> Csk.value();
PDRDragModelCoeffs_.readEntry("Csu", Csu.value());
PDRDragModelCoeffs_.readEntry("Csk", Csk.value());
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -108,11 +110,11 @@ class basic
// Private Member Functions
//- Disallow copy construct
basic(const basic&);
//- No copy construct
basic(const basic&) = delete;
//- Disallow default bitwise assignment
void operator=(const basic&);
//- No copy assignment
void operator=(const basic&) = delete;
public:

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
Copyright (C) 2019-2020 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -69,7 +72,7 @@ PDRkEpsilon::PDRkEpsilon
C4_
(
dimensioned<scalar>::lookupOrAddToDict
dimensioned<scalar>::getOrAddToDict
(
"C4",
coeffDict_,
@ -94,10 +97,8 @@ bool PDRkEpsilon::read()
C4_.readIfPresent(coeffDict_);
return true;
}
else
{
return false;
}
return false;
}
@ -129,8 +130,8 @@ void PDRkEpsilon::correct()
volScalarField G(GName(), rho_*nut_*(tgradU() && dev(twoSymm(tgradU()))));
tgradU.clear();
// Update espsilon and G at the wall
epsilon_.boundaryField().updateCoeffs();
// Update epsilon and G at the wall
epsilon_.boundaryFieldRef().updateCoeffs();
// Add the blockage generation term so that it is included consistently
// in both the k and epsilon equations
@ -163,7 +164,7 @@ void PDRkEpsilon::correct()
epsEqn.ref().relax();
epsEqn.ref().boundaryManipulate(epsilon_.boundaryField());
epsEqn.ref().boundaryManipulate(epsilon_.boundaryFieldRef());
solve(epsEqn);
bound(epsilon_, epsilonMin_);

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -29,7 +31,7 @@ Description
corresponding to PDR basic drag model (\link basic.H \endlink)
The default model coefficients correspond to the following:
@verbatim
\verbatim
PDRkEpsilonCoeffs
{
Cmu 0.09;
@ -41,7 +43,7 @@ Description
sigmaEps 1.3;
Prt 1.0; // only for compressible
}
@endverbatim
\endverbatim
The turbulence source term \f$ G_{R} \f$ appears in the
\f$ \kappa-\epsilon \f$ equation for the generation of turbulence due to

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -36,8 +38,8 @@ Description
{
scalarField sumPhi
(
fvc::surfaceSum(mag(phiSt))().internalField()
/ rho.internalField()
fvc::surfaceSum(mag(phiSt))().primitiveField()
/ rho.primitiveField()
);
StCoNum = 0.5*gMax(sumPhi/mesh.V().field())*runTime.deltaTValue();

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -49,13 +51,10 @@ Foam::XiEqModels::Gulder::Gulder
)
:
XiEqModel(XiEqProperties, thermo, turbulence, Su),
XiEqCoef_(readScalar(XiEqModelCoeffs_.lookup("XiEqCoef"))),
XiEqCoef_(XiEqModelCoeffs_.get<scalar>("XiEqCoef")),
SuMin_(0.01*Su.average()),
uPrimeCoef_(readScalar(XiEqModelCoeffs_.lookup("uPrimeCoef"))),
subGridSchelkin_
(
readBool(XiEqModelCoeffs_.lookup("subGridSchelkin"))
)
uPrimeCoef_(XiEqModelCoeffs_.get<scalar>("uPrimeCoef")),
subGridSchelkin_(XiEqModelCoeffs_.get<bool>("subGridSchelkin"))
{}
@ -74,7 +73,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::Gulder::XiEq() const
if (subGridSchelkin_)
{
up.internalField() += calculateSchelkinEffect(uPrimeCoef_);
up.primitiveFieldRef() += calculateSchelkinEffect(uPrimeCoef_);
}
volScalarField tauEta(sqrt(mag(thermo_.muu()/(thermo_.rhou()*epsilon))));
@ -96,9 +95,9 @@ bool Foam::XiEqModels::Gulder::read(const dictionary& XiEqProperties)
{
XiEqModel::read(XiEqProperties);
XiEqModelCoeffs_.lookup("XiEqCoef") >> XiEqCoef_;
XiEqModelCoeffs_.lookup("uPrimeCoef") >> uPrimeCoef_;
XiEqModelCoeffs_.lookup("subGridSchelkin") >> subGridSchelkin_;
XiEqModelCoeffs_.readEntry("XiEqCoef", XiEqCoef_);
XiEqModelCoeffs_.readEntry("uPrimeCoef", uPrimeCoef_);
XiEqModelCoeffs_.readEntry("subGridSchelkin", subGridSchelkin_);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -70,11 +72,11 @@ class Gulder
// Private Member Functions
//- Disallow copy construct
Gulder(const Gulder&);
//- No copy construct
Gulder(const Gulder&) = delete;
//- Disallow default bitwise assignment
void operator=(const Gulder&);
//- No copy assignment
void operator=(const Gulder&) = delete;
public:
@ -101,7 +103,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -27,7 +29,7 @@ Class
Description
Simple SCOPEBlendXiEq model for XiEq based on SCOPEXiEqs correlation
with a linear correction function to give a plausible profile for XiEq.
See @link SCOPELaminarFlameSpeed.H @endlink for details on the SCOPE
See \link SCOPELaminarFlameSpeed.H \endlink for details on the SCOPE
laminar flame speed model.
SourceFiles
@ -66,11 +68,11 @@ class SCOPEBlend
// Private Member Functions
//- Disallow copy construct
SCOPEBlend(const SCOPEBlend&);
//- No copy construct
SCOPEBlend(const SCOPEBlend&) = delete;
//- Disallow default bitwise assignment
void operator=(const SCOPEBlend&);
//- No copy assignment
void operator=(const SCOPEBlend&) = delete;
public:
@ -97,7 +99,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2016 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -49,15 +51,12 @@ Foam::XiEqModels::SCOPEXiEq::SCOPEXiEq
)
:
XiEqModel(XiEqProperties, thermo, turbulence, Su),
XiEqCoef_(readScalar(XiEqModelCoeffs_.lookup("XiEqCoef"))),
XiEqExp_(readScalar(XiEqModelCoeffs_.lookup("XiEqExp"))),
lCoef_(readScalar(XiEqModelCoeffs_.lookup("lCoef"))),
XiEqCoef_(XiEqModelCoeffs_.get<scalar>("XiEqCoef")),
XiEqExp_(XiEqModelCoeffs_.get<scalar>("XiEqExp")),
lCoef_(XiEqModelCoeffs_.get<scalar>("lCoef")),
SuMin_(0.01*Su.average()),
uPrimeCoef_(readScalar(XiEqModelCoeffs_.lookup("uPrimeCoef"))),
subGridSchelkin_
(
readBool(XiEqModelCoeffs_.lookup("subGridSchelkin"))
),
uPrimeCoef_(XiEqModelCoeffs_.get<scalar>("uPrimeCoef")),
subGridSchelkin_(XiEqModelCoeffs_.get<bool>("subGridSchelkin")),
MaModel
(
Su.mesh().lookupObject<IOdictionary>("combustionProperties"),
@ -82,7 +81,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
volScalarField up(sqrt((2.0/3.0)*k));
if (subGridSchelkin_)
{
up.internalField() += calculateSchelkinEffect(uPrimeCoef_);
up.primitiveFieldRef() += calculateSchelkinEffect(uPrimeCoef_);
}
volScalarField l(lCoef_*sqrt(3.0/2.0)*up*k/epsilon);
@ -105,7 +104,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
IOobject::NO_WRITE
),
epsilon.mesh(),
dimensionedScalar("XiEq", dimless, 0.0)
dimensionedScalar(dimless, Zero)
)
);
volScalarField& xieq = tXiEq.ref();
@ -119,9 +118,11 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
}
}
volScalarField::Boundary& xieqBf = xieq.boundaryFieldRef();
forAll(xieq.boundaryField(), patchi)
{
scalarField& xieqp = xieq.boundaryField()[patchi];
scalarField& xieqp = xieqBf[patchi];
const scalarField& Kp = K.boundaryField()[patchi];
const scalarField& Map = Ma.boundaryField()[patchi];
const scalarField& upBySup = upBySu.boundaryField()[patchi];
@ -145,11 +146,11 @@ bool Foam::XiEqModels::SCOPEXiEq::read(const dictionary& XiEqProperties)
{
XiEqModel::read(XiEqProperties);
XiEqModelCoeffs_.lookup("XiEqCoef") >> XiEqCoef_;
XiEqModelCoeffs_.lookup("XiEqExp") >> XiEqExp_;
XiEqModelCoeffs_.lookup("lCoef") >> lCoef_;
XiEqModelCoeffs_.lookup("uPrimeCoef") >> uPrimeCoef_;
XiEqModelCoeffs_.lookup("subGridSchelkin") >> subGridSchelkin_;
XiEqModelCoeffs_.readEntry("XiEqCoef", XiEqCoef_);
XiEqModelCoeffs_.readEntry("XiEqExp", XiEqExp_);
XiEqModelCoeffs_.readEntry("lCoef", lCoef_);
XiEqModelCoeffs_.readEntry("uPrimeCoef", uPrimeCoef_);
XiEqModelCoeffs_.readEntry("subGridSchelkin", subGridSchelkin_);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2013 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -84,11 +86,11 @@ class SCOPEXiEq
// Private Member Functions
//- Disallow copy construct
SCOPEXiEq(const SCOPEXiEq&);
//- No copy construct
SCOPEXiEq(const SCOPEXiEq&) = delete;
//- Disallow default bitwise assignment
void operator=(const SCOPEXiEq&);
//- No copy assignment
void operator=(const SCOPEXiEq&) = delete;
public:
@ -115,7 +117,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -48,7 +50,7 @@ Foam::XiEqModel::XiEqModel
(
XiEqProperties.subDict
(
word(XiEqProperties.lookup("XiEqModel")) + "Coeffs"
XiEqProperties.get<word>("XiEqModel") + "Coeffs"
)
),
thermo_(thermo),
@ -67,7 +69,7 @@ Foam::XiEqModel::~XiEqModel()
bool Foam::XiEqModel::read(const dictionary& XiEqProperties)
{
XiEqModelCoeffs_ = XiEqProperties.subDict(type() + "Coeffs");
XiEqModelCoeffs_ = XiEqProperties.optionalSubDict(type() + "Coeffs");
return true;
}
@ -110,11 +112,11 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
false
),
mesh,
dimensionedScalar("zero", Nv.dimensions(), 0.0)
dimensionedScalar(Nv.dimensions(), Zero)
)
);
volScalarField& N = tN.ref();
N.internalField() = Nv.internalField()*pow(mesh.V(), 2.0/3.0);
N.primitiveFieldRef() = Nv.primitiveField()*pow(mesh.V(), 2.0/3.0);
volSymmTensorField ns
(
@ -127,14 +129,9 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
IOobject::NO_WRITE
),
mesh,
dimensionedSymmTensor
(
"zero",
nsv.dimensions(),
Zero
)
dimensionedSymmTensor(nsv.dimensions(), Zero)
);
ns.internalField() = nsv.internalField()*pow(mesh.V(), 2.0/3.0);
ns.primitiveFieldRef() = nsv.primitiveField()*pow(mesh.V(), 2.0/3.0);
const volVectorField Uhat
(
@ -147,10 +144,10 @@ Foam::XiEqModel::calculateSchelkinEffect(const scalar uPrimeCoef) const
const scalarField upLocal(uPrimeCoef*sqrt((U & CT & U)*cellWidth));
const scalarField deltaUp(upLocal*(max(scalar(1.0), pow(nr, 0.5)) - 1.0));
const scalarField deltaUp(upLocal*(max(scalar(1), pow(nr, 0.5)) - 1.0));
// Re use tN
N.internalField() = upLocal*(max(scalar(1.0), pow(nr, 0.5)) - 1.0);
N.primitiveFieldRef() = upLocal*(max(scalar(1), pow(nr, 0.5)) - 1.0);
return tN;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -79,11 +81,11 @@ private:
// Private Member Functions
//- Disallow copy construct
XiEqModel(const XiEqModel&);
//- No copy construct
XiEqModel(const XiEqModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const XiEqModel&);
//- No copy assignment
void operator=(const XiEqModel&) = delete;
public:
@ -144,7 +146,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const
{
return turbulence_.muEff();

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019-2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -29,30 +32,30 @@ License
Foam::autoPtr<Foam::XiEqModel> Foam::XiEqModel::New
(
const dictionary& propDict,
const dictionary& dict,
const psiuReactionThermo& thermo,
const compressible::RASModel& turbulence,
const volScalarField& Su
)
{
const word modelType(propDict.lookup("XiEqModel"));
const word modelType(dict.get<word>("XiEqModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(modelType);
auto* ctorPtr = dictionaryConstructorTable(modelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
if (!ctorPtr)
{
FatalErrorInFunction
<< "Unknown XiEqModel type "
<< modelType << nl << nl
<< "Valid XiEqModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"XiEqModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<XiEqModel>(cstrIter()(propDict, thermo, turbulence, Su));
return autoPtr<XiEqModel>(ctorPtr(dict, thermo, turbulence, Su));
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -49,7 +51,7 @@ Foam::XiEqModels::instability::instability
)
:
XiEqModel(XiEqProperties, thermo, turbulence, Su),
XiEqIn(readScalar(XiEqModelCoeffs_.lookup("XiEqIn"))),
XiEqIn(XiEqModelCoeffs_.get<scalar>("XiEqIn")),
XiEqModel_(XiEqModel::New(XiEqModelCoeffs_, thermo, turbulence, Su))
{}
@ -73,7 +75,7 @@ bool Foam::XiEqModels::instability::read(const dictionary& XiEqProperties)
{
XiEqModel::read(XiEqProperties);
XiEqModelCoeffs_.lookup("XiEqIn") >> XiEqIn;
XiEqModelCoeffs_.readEntry("XiEqIn", XiEqIn);
return XiEqModel_->read(XiEqModelCoeffs_);
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -27,7 +29,7 @@ Class
Description
This is the equilibrium level of the flame wrinkling generated by
instability. It is a constant (default 2.5). It is used in
@link XiModel.H @endlink.
\link XiModel.H \endlink.
SourceFiles
instability.C
@ -65,11 +67,11 @@ class instability
// Private Member Functions
//- Disallow copy construct
instability(const instability&);
//- No copy construct
instability(const instability&) = delete;
//- Disallow default bitwise assignment
void operator=(const instability&);
//- No copy assignment
void operator=(const instability&) = delete;
public:
@ -96,7 +98,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -49,7 +51,7 @@ Foam::XiGModels::KTS::KTS
)
:
XiGModel(XiGProperties, thermo, turbulence, Su),
GEtaCoef_(readScalar(XiGModelCoeffs_.lookup("GEtaCoef")))
GEtaCoef_(XiGModelCoeffs_.get<scalar>("GEtaCoef"))
{}
@ -76,7 +78,7 @@ bool Foam::XiGModels::KTS::read(const dictionary& XiGProperties)
{
XiGModel::read(XiGProperties);
XiGModelCoeffs_.lookup("GEtaCoef") >> GEtaCoef_;
XiGModelCoeffs_.readEntry("GEtaCoef", GEtaCoef_);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -60,11 +62,11 @@ class KTS
// Private Member Functions
//- Disallow copy construct
KTS(const KTS&);
//- No copy construct
KTS(const KTS&) = delete;
//- Disallow default bitwise assignment
void operator=(const KTS&);
//- No copy assignment
void operator=(const KTS&) = delete;
public:
@ -91,7 +93,7 @@ public:
// Member Functions
//- Return the flame-wrinking generation rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const;
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -48,7 +50,7 @@ Foam::XiGModel::XiGModel
(
XiGProperties.subDict
(
word(XiGProperties.lookup("XiGModel")) + "Coeffs"
XiGProperties.get<word>("XiGModel") + "Coeffs"
)
),
thermo_(thermo),
@ -67,7 +69,7 @@ Foam::XiGModel::~XiGModel()
bool Foam::XiGModel::read(const dictionary& XiGProperties)
{
XiGModelCoeffs_ = XiGProperties.subDict(type() + "Coeffs");
XiGModelCoeffs_ = XiGProperties.optionalSubDict(type() + "Coeffs");
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -70,11 +72,11 @@ private:
// Private Member Functions
//- Disallow copy construct
XiGModel(const XiGModel&);
//- No copy construct
XiGModel(const XiGModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const XiGModel&);
//- No copy assignment
void operator=(const XiGModel&) = delete;
public:
@ -135,7 +137,7 @@ public:
// Member Functions
//- Return the flame-wrinking genration rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const = 0;
//- Return the flame diffusivity

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019-2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -29,30 +32,30 @@ License
Foam::autoPtr<Foam::XiGModel> Foam::XiGModel::New
(
const dictionary& propDict,
const dictionary& dict,
const psiuReactionThermo& thermo,
const compressible::RASModel& turbulence,
const volScalarField& Su
)
{
const word modelType(propDict.lookup("XiGModel"));
const word modelType(dict.get<word>("XiGModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(modelType);
auto* ctorPtr = dictionaryConstructorTable(modelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
if (!ctorPtr)
{
FatalErrorInFunction
<< "Unknown XiGModel type "
<< modelType << nl << nl
<< "Valid XiGModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"XiGModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<XiGModel>(cstrIter()(propDict, thermo, turbulence, Su));
return autoPtr<XiGModel>(ctorPtr(dict, thermo, turbulence, Su));
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -49,8 +51,8 @@ Foam::XiGModels::instabilityG::instabilityG
)
:
XiGModel(XiGProperties, thermo, turbulence, Su),
GIn_(XiGModelCoeffs_.lookup("GIn")),
lambdaIn_(XiGModelCoeffs_.lookup("lambdaIn")),
GIn_("GIn", dimless/dimTime, XiGModelCoeffs_),
lambdaIn_("lambdaIn", dimLength, XiGModelCoeffs_),
XiGModel_(XiGModel::New(XiGModelCoeffs_, thermo, turbulence, Su))
{}
@ -86,8 +88,8 @@ bool Foam::XiGModels::instabilityG::read(const dictionary& XiGProperties)
{
XiGModel::read(XiGProperties);
XiGModelCoeffs_.lookup("GIn") >> GIn_;
XiGModelCoeffs_.lookup("lambdaIn") >> lambdaIn_;
XiGModelCoeffs_.readEntry("GIn", GIn_);
XiGModelCoeffs_.readEntry("lambdaIn", lambdaIn_);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -25,7 +27,7 @@ Class
Foam::XiGModels::instabilityG
Description
Flame-surface instabilityG flame-wrinking generation rate coefficient model
Flame-surface instabilityG flame-wrinkling generation rate coefficient model
used in \link XiModel.H \endlink.
See Technical Report SH/RE/01R for details on the PDR modelling.
@ -57,7 +59,7 @@ class instabilityG
{
// Private data
//- Flame instabilityG wrinling generation rate coefficient
//- Flame instabilityG wrinkling generation rate coefficient
dimensionedScalar GIn_;
//- InstabilityG length-scale
@ -69,11 +71,11 @@ class instabilityG
// Private Member Functions
//- Disallow copy construct
instabilityG(const instabilityG&);
//- No copy construct
instabilityG(const instabilityG&) = delete;
//- Disallow default bitwise assignment
void operator=(const instabilityG&);
//- No copy assignment
void operator=(const instabilityG&) = delete;
public:
@ -100,7 +102,7 @@ public:
// Member Functions
//- Return the flame-wrinking generation rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const;
//- Return the flame diffusivity

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -51,7 +53,7 @@ Foam::XiModel::XiModel
(
XiProperties.subDict
(
word(XiProperties.lookup("XiModel")) + "Coeffs"
XiProperties.get<word>("XiModel") + "Coeffs"
)
),
thermo_(thermo),
@ -85,7 +87,7 @@ Foam::XiModel::~XiModel()
bool Foam::XiModel::read(const dictionary& XiProperties)
{
XiModelCoeffs_ = XiProperties.subDict(type() + "Coeffs");
XiModelCoeffs_ = XiProperties.optionalSubDict(type() + "Coeffs");
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -122,7 +124,7 @@ protected:
const volScalarField& b_;
const surfaceScalarField& phi_;
//- Flame wrinking field
//- Flame wrinkling field
volScalarField Xi_;
@ -130,11 +132,11 @@ private:
// Private Member Functions
//- Disallow copy construct
XiModel(const XiModel&);
//- No copy construct
XiModel(const XiModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const XiModel&);
//- No copy assignment
void operator=(const XiModel&) = delete;
public:
@ -207,7 +209,7 @@ public:
// Member Functions
//- Return the flame-wrinking Xi
//- Return the flame-wrinkling Xi
virtual const volScalarField& Xi() const
{
return Xi_;
@ -227,10 +229,10 @@ public:
)
{}
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct() = 0;
//- Correct the flame-wrinking Xi using the given convection scheme
//- Correct the flame-wrinkling Xi using the given convection scheme
virtual void correct(const fv::convectionScheme<scalar>&)
{
correct();

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019-2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -29,7 +32,7 @@ License
Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
(
const dictionary& propDict,
const dictionary& dict,
const psiuReactionThermo& thermo,
const compressible::RASModel& turbulence,
const volScalarField& Su,
@ -38,25 +41,27 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
const surfaceScalarField& phi
)
{
const word modelType(propDict.lookup("XiModel"));
const word modelType(dict.get<word>("XiModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(modelType);
auto* ctorPtr = dictionaryConstructorTable(modelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
if (!ctorPtr)
{
FatalErrorInFunction
<< "Unknown XiModel type "
<< modelType << nl << nl
<< "Valid XiModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
FatalIOErrorInLookup
(
dict,
"XiModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<XiModel>
(cstrIter()(propDict, thermo, turbulence, Su, rho, b, phi));
(
ctorPtr(dict, thermo, turbulence, Su, rho, b, phi)
);
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -52,7 +54,7 @@ Foam::XiModels::algebraic::algebraic
)
:
XiModel(XiProperties, thermo, turbulence, Su, rho, b, phi),
XiShapeCoef(readScalar(XiModelCoeffs_.lookup("XiShapeCoef"))),
XiShapeCoef(XiModelCoeffs_.get<scalar>("XiShapeCoef")),
XiEqModel_(XiEqModel::New(XiProperties, thermo, turbulence, Su)),
XiGModel_(XiGModel::New(XiProperties, thermo, turbulence, Su))
{}
@ -89,7 +91,7 @@ bool Foam::XiModels::algebraic::read(const dictionary& XiProperties)
{
XiModel::read(XiProperties);
XiModelCoeffs_.lookup("XiShapeCoef") >> XiShapeCoef;
XiModelCoeffs_.readEntry("XiShapeCoef", XiShapeCoef);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -67,11 +69,11 @@ class algebraic
// Private Member Functions
//- Disallow copy construct
algebraic(const algebraic&);
//- No copy construct
algebraic(const algebraic&) = delete;
//- Disallow default bitwise assignment
void operator=(const algebraic&);
//- No copy assignment
void operator=(const algebraic&) = delete;
public:
@ -104,7 +106,7 @@ public:
//- Return the flame diffusivity
virtual tmp<volScalarField> Db() const;
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct();
//- Update properties from given dictionary

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -55,11 +57,11 @@ class fixed
{
// Private Member Functions
//- Disallow copy construct
fixed(const fixed&);
//- No copy construct
fixed(const fixed&) = delete;
//- Disallow default bitwise assignment
void operator=(const fixed&);
//- No copy assignment
void operator=(const fixed&) = delete;
public:
@ -89,7 +91,7 @@ public:
// Member Functions
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct()
{}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -57,7 +59,7 @@ Foam::XiModels::transport::transport
)
:
XiModel(XiProperties, thermo, turbulence, Su, rho, b, phi),
XiShapeCoef(readScalar(XiModelCoeffs_.lookup("XiShapeCoef"))),
XiShapeCoef(XiModelCoeffs_.get<scalar>("XiShapeCoef")),
XiEqModel_(XiEqModel::New(XiProperties, thermo, turbulence, Su)),
XiGModel_(XiGModel::New(XiProperties, thermo, turbulence, Su))
{}
@ -136,7 +138,7 @@ bool Foam::XiModels::transport::read(const dictionary& XiProperties)
{
XiModel::read(XiProperties);
XiModelCoeffs_.lookup("XiShapeCoef") >> XiShapeCoef;
XiModelCoeffs_.readEntry("XiShapeCoef", XiShapeCoef);
return true;
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -67,11 +69,11 @@ class transport
// Private Member Functions
//- Disallow copy construct
transport(const transport&);
//- No copy construct
transport(const transport&) = delete;
//- Disallow default bitwise assignment
void operator=(const transport&);
//- No copy assignment
void operator=(const transport&) = delete;
public:
@ -113,13 +115,13 @@ public:
fields.add(Xi_);
}
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct()
{
NotImplemented;
}
//- Correct the flame-wrinking Xi using the given convection scheme
//- Correct the flame-wrinkling Xi using the given convection scheme
virtual void correct(const fv::convectionScheme<scalar>& mvConvection);
//- Update properties from given dictionary

View File

@ -0,0 +1 @@
const volScalarField& psi = thermo.psi();

View File

@ -7,7 +7,7 @@ autoPtr<psiuReactionThermo> pThermo
psiuReactionThermo& thermo = pThermo();
thermo.validate(args.executable(), "ha", "ea");
basicMultiComponentMixture& composition = thermo.composition();
basicSpecieMixture& composition = thermo.composition();
volScalarField rho
(
@ -23,7 +23,6 @@ volScalarField rho
);
volScalarField& p = thermo.p();
const volScalarField& psi = thermo.psi();
volScalarField& b = composition.Y("b");
Info<< "min(b) = " << min(b).value() << endl;
@ -59,23 +58,6 @@ autoPtr<compressible::RASModel> turbulence
);
Info<< "Creating field dpdt\n" << endl;
volScalarField dpdt
(
IOobject
(
"dpdt",
runTime.timeName(),
mesh
),
mesh,
dimensionedScalar("dpdt", p.dimensions()/dimTime, 0)
);
Info<< "Creating field kinetic energy K\n" << endl;
volScalarField K("K", 0.5*magSqr(U));
Info<< "Creating the unstrained laminar flame speed\n" << endl;
autoPtr<laminarFlameSpeed> unstrainedLaminarFlameSpeed
(
@ -183,7 +165,7 @@ IOdictionary PDRProperties
autoPtr<PDRDragModel> drag = PDRDragModel::New
(
PDRProperties,
turbulence,
*turbulence,
rho,
U,
phi
@ -194,7 +176,7 @@ autoPtr<XiModel> flameWrinkling = XiModel::New
(
PDRProperties,
thermo,
turbulence,
*turbulence,
Su,
rho,
b,
@ -227,3 +209,10 @@ fields.add(b);
fields.add(thermo.he());
fields.add(thermo.heu());
flameWrinkling->addXi(fields);
#include "createDpdt.H"
#include "createK.H"
#include "createMRF.H"
#include "createFvOptions.H"

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2017 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -53,8 +55,8 @@ Foam::laminarFlameSpeedModels::SCOPE::polynomial::polynomial
)
:
FixedList<scalar, 7>(polyDict.lookup("coefficients")),
ll(readScalar(polyDict.lookup("lowerLimit"))),
ul(readScalar(polyDict.lookup("upperLimit"))),
ll(polyDict.get<scalar>("lowerLimit")),
ul(polyDict.get<scalar>("upperLimit")),
llv(polyPhi(ll, *this)),
ulv(polyPhi(ul, *this)),
lu(0)
@ -73,21 +75,32 @@ Foam::laminarFlameSpeedModels::SCOPE::SCOPE
(
dictionary
(
IFstream
(
fileName
(
dict.lookup("fuelFile")
)
)()
).subDict(typeName + "Coeffs")
IFstream
(
dict.get<fileName>("fuelFile")
)()
).optionalSubDict(typeName + "Coeffs")
),
LFL_
(
coeffsDict_.getCompat<scalar>
(
"lowerFlammabilityLimit",
{{"lowerFlamabilityLimit", 1712}}
)
),
UFL_
(
coeffsDict_.getCompat<scalar>
(
"upperFlammabilityLimit",
{{"upperFlamabilityLimit", 1712}}
)
),
LFL_(readScalar(coeffsDict_.lookup("lowerFlamabilityLimit"))),
UFL_(readScalar(coeffsDict_.lookup("upperFlamabilityLimit"))),
SuPolyL_(coeffsDict_.subDict("lowerSuPolynomial")),
SuPolyU_(coeffsDict_.subDict("upperSuPolynomial")),
Texp_(readScalar(coeffsDict_.lookup("Texp"))),
pexp_(readScalar(coeffsDict_.lookup("pexp"))),
Texp_(coeffsDict_.get<scalar>("Texp")),
pexp_(coeffsDict_.get<scalar>("pexp")),
MaPolyL_(coeffsDict_.subDict("lowerMaPolynomial")),
MaPolyU_(coeffsDict_.subDict("upperMaPolynomial"))
{
@ -145,19 +158,19 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::SuRef
{
if (phi < LFL_ || phi > UFL_)
{
// Return 0 beyond the flamibility limits
// Return 0 beyond the flammability limits
return scalar(0);
}
else if (phi < SuPolyL_.ll)
{
// Use linear interpolation between the low end of the
// lower polynomial and the lower flamibility limit
// lower polynomial and the lower flammability limit
return SuPolyL_.llv*(phi - LFL_)/(SuPolyL_.ll - LFL_);
}
else if (phi > SuPolyU_.ul)
{
// Use linear interpolation between the upper end of the
// upper polynomial and the upper flamibility limit
// upper polynomial and the upper flammability limit
return SuPolyU_.ulv*(UFL_ - phi)/(UFL_ - SuPolyU_.ul);
}
else if (phi < SuPolyL_.lu)
@ -255,7 +268,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
IOobject::NO_WRITE
),
p.mesh(),
dimensionedScalar("Su0", dimVelocity, 0.0)
dimensionedScalar(dimVelocity, Zero)
)
);
@ -266,9 +279,11 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
Su0[celli] = Su0pTphi(p[celli], Tu[celli], phi);
}
forAll(Su0.boundaryField(), patchi)
volScalarField::Boundary& Su0Bf = Su0.boundaryFieldRef();
forAll(Su0Bf, patchi)
{
scalarField& Su0p = Su0.boundaryField()[patchi];
scalarField& Su0p = Su0Bf[patchi];
const scalarField& pp = p.boundaryField()[patchi];
const scalarField& Tup = Tu.boundaryField()[patchi];
@ -302,7 +317,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
IOobject::NO_WRITE
),
p.mesh(),
dimensionedScalar("Su0", dimVelocity, 0.0)
dimensionedScalar(dimVelocity, Zero)
)
);
@ -313,9 +328,11 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
Su0[celli] = Su0pTphi(p[celli], Tu[celli], phi[celli]);
}
forAll(Su0.boundaryField(), patchi)
volScalarField::Boundary& Su0Bf = Su0.boundaryFieldRef();
forAll(Su0Bf, patchi)
{
scalarField& Su0p = Su0.boundaryField()[patchi];
scalarField& Su0p = Su0Bf[patchi];
const scalarField& pp = p.boundaryField()[patchi];
const scalarField& Tup = Tu.boundaryField()[patchi];
const scalarField& phip = phi.boundaryField()[patchi];
@ -354,7 +371,7 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
IOobject::NO_WRITE
),
phi.mesh(),
dimensionedScalar("Ma", dimless, 0.0)
dimensionedScalar(dimless, Zero)
)
);
@ -365,9 +382,11 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
ma[celli] = Ma(phi[celli]);
}
forAll(ma.boundaryField(), patchi)
volScalarField::Boundary& maBf = ma.boundaryFieldRef();
forAll(maBf, patchi)
{
scalarField& map = ma.boundaryField()[patchi];
scalarField& map = maBf[patchi];
const scalarField& phip = phi.boundaryField()[patchi];
forAll(map, facei)
@ -391,7 +410,7 @@ Foam::laminarFlameSpeedModels::SCOPE::Ma() const
(
dimensionedScalar
(
psiuReactionThermo_.lookup("stoichiometricAirFuelMassRatio")
"stoichiometricAirFuelMassRatio", dimless, psiuReactionThermo_
)*ft/(scalar(1) - ft)
);
}
@ -432,7 +451,7 @@ Foam::laminarFlameSpeedModels::SCOPE::operator()() const
psiuReactionThermo_.Tu(),
dimensionedScalar
(
psiuReactionThermo_.lookup("stoichiometricAirFuelMassRatio")
"stoichiometricAirFuelMassRatio", dimless, psiuReactionThermo_
)*ft/(scalar(1) - ft)
);
}

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -109,10 +111,10 @@ class SCOPE
dictionary coeffsDict_;
//- Lower flamability limit
//- Lower flammability limit
scalar LFL_;
//- Upper flamability limit
//- Upper flammability limit
scalar UFL_;
//- Lower Su polynomial

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.

View File

@ -2,8 +2,10 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011 OpenFOAM Foundation
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -26,7 +28,7 @@ Global
Description
Reset the timestep to maintain a constant maximum courant Number.
Reduction of time-step is imediate but increase is damped to avoid
Reduction of time-step is immediate but increase is damped to avoid
unstable oscillations.
\*---------------------------------------------------------------------------*/

View File

@ -1,4 +1,7 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/engine/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
@ -6,12 +9,13 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-lsampling \
-lengine \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
@ -19,8 +23,4 @@ EXE_LIBS = \
-lfluidThermophysicalModels \
-lreactionThermophysicalModels \
-lspecie \
-llaminarFlameSpeedModels \
-lfiniteVolume \
-lfvOptions \
-lsampling \
-lmeshTools
-llaminarFlameSpeedModels

View File

@ -2,9 +2,9 @@ EXE_INC = \
-I.. \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/engine/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
@ -18,10 +18,10 @@ EXE_INC = \
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-ldynamicMesh \
-ldynamicFvMesh \
-ltopoChangerFvMesh \
-ldynamicMesh \
-lmeshTools \
-lsampling \
-lengine \
-lturbulenceModels \

View File

@ -2,8 +2,11 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd.
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2015-2016 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -33,7 +36,7 @@ Description
Combusting RANS code using the b-Xi two-equation model.
Xi may be obtained by either the solution of the Xi transport
equation or from an algebraic exression. Both approaches are
equation or from an algebraic expression. Both approaches are
based on Gulder's flame speed correlation which has been shown
to be appropriate by comparison with the results from the
spectral model.
@ -67,25 +70,31 @@ Description
int main(int argc, char *argv[])
{
#include "setRootCase.H"
argList::addNote
(
"Solver for compressible premixed/partially-premixed combustion with"
" turbulence modelling."
);
#include "postProcess.H"
#include "setRootCaseLists.H"
#include "createTime.H"
#include "createDynamicFvMesh.H"
#include "initContinuityErrs.H"
pimpleControl pimple(mesh);
#include "createControl.H"
#include "readCombustionProperties.H"
#include "readGravitationalAcceleration.H"
#include "createFields.H"
#include "createMRF.H"
#include "createFvOptions.H"
#include "createFieldRefs.H"
#include "initContinuityErrs.H"
#include "createRhoUf.H"
#include "createControls.H"
#include "initContinuityErrs.H"
#include "compressibleCourantNo.H"
#include "setInitialDeltaT.H"
turbulence->validate();
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Info<< "\nStarting time loop\n" << endl;
@ -107,7 +116,7 @@ int main(int argc, char *argv[])
#include "compressibleCourantNo.H"
#include "setDeltaT.H"
runTime++;
++runTime;
Info<< "Time = " << runTime.timeName() << nl << endl;
@ -135,8 +144,8 @@ int main(int argc, char *argv[])
}
#include "rhoEqn.H"
Info<< "rhoEqn max/min : " << max(rho).value()
<< " " << min(rho).value() << endl;
Info<< "rho min/max : " << min(rho).value() << " " << max(rho).value()
<< endl;
// --- Pressure-velocity PIMPLE corrector loop
while (pimple.loop())
@ -169,9 +178,7 @@ int main(int argc, char *argv[])
runTime.write();
Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
<< " ClockTime = " << runTime.elapsedClockTime() << " s"
<< nl << endl;
runTime.printExecutionTime(Info);
}
Info<< "End\n" << endl;

View File

@ -2,10 +2,10 @@
bool correctPhi
(
pimple.dict().lookupOrDefault<Switch>("correctPhi", true)
pimple.dict().getOrDefault("correctPhi", true)
);
bool checkMeshCourantNo
(
pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false)
pimple.dict().getOrDefault("checkMeshCourantNo", false)
);

View File

@ -1,7 +1,6 @@
#include "readTimeControls.H"
#include "readTimeControls.H"
bool correctPhi =
pimple.dict().lookupOrDefault<Switch>("correctPhi", true);
correctPhi = pimple.dict().getOrDefault("correctPhi", true);
bool checkMeshCourantNo =
pimple.dict().lookupOrDefault<Switch>("checkMeshCourantNo", false);
checkMeshCourantNo =
pimple.dict().getOrDefault("checkMeshCourantNo", false);

View File

@ -0,0 +1,3 @@
XiEngineFoam.C
EXE = $(FOAM_APPBIN)/XiEngineFoam

View File

@ -0,0 +1,27 @@
EXE_INC = \
-I.. \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude \
-I$(LIB_SRC)/engine/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-lsampling \
-lengine \
-lturbulenceModels \
-lcompressibleTurbulenceModels \
-lcompressibleTransportModels \
-lfluidThermophysicalModels \
-lreactionThermophysicalModels \
-lspecie \
-llaminarFlameSpeedModels

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