1. 19 Feb, 2020 3 commits
  2. 18 Feb, 2020 8 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.
                  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
                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.
          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().
          or failsafe constructor method
                  IOstreamOption::versionNumber("version", headerDict)
          Before (controlled input):
          Old, uncontrolled input - has been removed:
      * 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
    • Mark Olesen's avatar
      ENH: adjustments to Switch · bb53e8ad
      Mark Olesen authored
      - align Switch more with Enum.
        Now have find(), found() static methods.
        Constructors with failsafe option.
        The find() method makes for clearer coding:
           Switch sw(some_string, true); // NB: true = allowBad
           if (sw.valid()) ...
           Switch sw = Switch::find(some_string);
           if (sw.good()) ...
           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.
    • Mark Olesen's avatar
    • Mark Olesen's avatar
      STYLE: adjust names, locations for fileFormats · 4307e171
      Mark Olesen authored
      - renamed 'core/' -> 'base/' to avoid gitignore masking when re-adding
      - rename 'nas/' to 'nastran/' for more clarity
      - relocated OBJstream from surfMesh to fileFormats
      STYLE: remove unused parseNASCoord. Was deprecated 2017-09
    • Kutalmis Bercin's avatar
      ENH: improve analytical eigendecompositions · 55e7da67
      Kutalmis Bercin 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
    • Kutalmis Bercin's avatar
      ENH: improve funcs and opers in Tensor types · 66b02ca5
      Kutalmis Bercin authored and Andrew Heather's avatar Andrew Heather committed
        - 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
    • Kutalmis Bercin's avatar
      ENH: improve stability in polynomialEqns · 8ca724ff
      Kutalmis Bercin authored and Andrew Heather's avatar Andrew Heather committed
        - 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
    • 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.
        * 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
        * 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.
  3. 12 Feb, 2020 3 commits
  4. 06 Feb, 2020 2 commits
  5. 31 Jan, 2020 2 commits
    • Mark Olesen's avatar
    • Mark Olesen's avatar
      ENH: added IndirectSubList · 822d052e
      Mark Olesen authored
      - provides an indirect access to a sub-section of a list that is
        somewhat less efficient than a Foam::SubList, but supports the
          * 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:
      CONFIG: added IndirectListsFwd.H with some common forwarding
  6. 29 Jan, 2020 1 commit
  7. 28 Jan, 2020 2 commits
  8. 23 Jan, 2020 1 commit
  9. 21 Jan, 2020 1 commit
  10. 16 Jan, 2020 2 commits
    • Mark Olesen's avatar
      ENH: provide defaultName() static method for patches, zones · f0be8679
      Mark Olesen authored
      - consistent way of writing "patch" + Foam::name(id) etc.
    • Mark Olesen's avatar
      ENH: consistency improvements for surface patch handling (fixes #483) · 2a98c4e6
      Mark Olesen authored
      - 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.
      Updated (with example handling of empty name):
        frt-fairing:001%1 empty
        windshield:002%2 ""
  11. 22 Jan, 2020 1 commit
  12. 16 Jan, 2020 1 commit
  13. 06 Jan, 2020 2 commits
  14. 03 Jan, 2020 1 commit
  15. 23 Dec, 2019 1 commit
  16. 19 Dec, 2019 4 commits
  17. 18 Dec, 2019 1 commit
  18. 17 Dec, 2019 2 commits
    • sergio's avatar
      INT: org integration · 6e8f0dbe
      sergio authored and Andrew Heather's avatar Andrew Heather committed
      1) rPolynomial Eq of State
      2) externalForce and softWall in rigidBodyDynamics
      INT: Several minor bug fixes plus
    • Mark Olesen's avatar
      ENH: use exprString expansions for #eval · 1cf795a4
      Mark Olesen authored
      - 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()
  19. 16 Dec, 2019 2 commits
    • Mark Olesen's avatar
      ENH: PDRsetFields utility (#1216) · a60fe9c7
      Mark Olesen authored
      - 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.
        - 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.
    • Mark Olesen's avatar
      COMP: compilation of Test-QRMatrix (clang, int64) · 1a16207e
      Mark Olesen authored
      - remove unused local functions from volumeExprDriver