1. 05 Jun, 2020 2 commits
  2. 03 Jun, 2020 1 commit
    • sergio's avatar
      COM: Separate htc FO from general FO and reactingEuler solvers (#1714) · 95f7ed03
      sergio authored and Mark OLESEN's avatar Mark OLESEN committed
      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
      95f7ed03
  3. 02 Jun, 2020 1 commit
    • Mark OLESEN's avatar
      ENH: unify use of dictionary method names · 3e43edf0
      Mark OLESEN authored
      - 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).
      3e43edf0
  4. 29 May, 2020 1 commit
  5. 23 May, 2020 1 commit
  6. 22 May, 2020 1 commit
    • sergio's avatar
      COMP: Avoiding double entry in runTime table TurbulenceModel · 11965904
      sergio authored
      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.
      11965904
  7. 21 May, 2020 2 commits
  8. 04 May, 2020 1 commit
  9. 01 May, 2020 2 commits
  10. 28 Apr, 2020 1 commit
  11. 24 Apr, 2020 1 commit
  12. 15 Apr, 2020 1 commit
  13. 09 Apr, 2020 1 commit
  14. 08 Apr, 2020 1 commit
  15. 23 Mar, 2020 2 commits
  16. 11 Mar, 2020 3 commits
  17. 03 Mar, 2020 1 commit
  18. 26 Feb, 2020 1 commit
  19. 21 Feb, 2020 1 commit
  20. 19 Feb, 2020 2 commits
  21. 18 Feb, 2020 3 commits
    • Mark OLESEN's avatar
      ENH: improvements to IOstreamOption · 33f9ae50
      Mark OLESEN authored
      * 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
      33f9ae50
    • Kutalmış Berçin's avatar
      ENH: improve analytical eigendecompositions · 55e7da67
      Kutalmış Berçin authored and Andrew Heather's avatar Andrew Heather committed
        - `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
      55e7da67
    • Mark OLESEN's avatar
      ENH: overhaul ensight handling (#1579) · a9762812
      Mark OLESEN authored and Andrew Heather's avatar Andrew Heather committed
      - 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.
      a9762812
  22. 23 Jan, 2020 1 commit
  23. 22 Jan, 2020 1 commit
  24. 07 Jan, 2020 1 commit
  25. 16 Dec, 2019 2 commits
  26. 12 Dec, 2019 1 commit
    • Mark OLESEN's avatar
      CONFIG: prefer use of ParaView_MESA_DIR in runTimePostProcessing · a8ab9b87
      Mark OLESEN authored
      - 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
      a8ab9b87
  27. 11 Dec, 2019 1 commit
    • Andrew Heather's avatar
      ENH: Added new function object to compute the Proudman acoustic power · 30fe28ee
      Andrew Heather authored and Mark OLESEN's avatar Mark OLESEN committed
      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.
      30fe28ee
  28. 10 Dec, 2019 1 commit
    • Andrew Heather's avatar
      ENH: Added new limitFields function object · 6709f3ef
      Andrew Heather authored and Mark OLESEN's avatar Mark OLESEN committed
      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
      6709f3ef
  29. 06 Dec, 2019 1 commit
  30. 13 Nov, 2019 1 commit