1. 24 Jun, 2021 1 commit
  2. 23 Jun, 2021 1 commit
  3. 19 Jun, 2021 3 commits
  4. 18 Jun, 2021 1 commit
    • Andrew Heather's avatar
      ENH: AMI improvements · ba4d38da
      Andrew Heather authored and Mattijs Janssens's avatar Mattijs Janssens committed
      - 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.
      ba4d38da
  5. 09 Jun, 2021 1 commit
  6. 07 Jun, 2021 2 commits
    • Mark Olesen's avatar
      ENH: provide dictionary access for coded BCs etc (#1922) · b59ae32d
      Mark Olesen authored
      - 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
      b59ae32d
    • Mark Olesen's avatar
      ENH: improve codeTemplates · b0891824
      Mark Olesen authored
      - meshTools include/library for many (most) coded items
      
      - add PatchFunction1 include for coded BCs to provide ready access
        to Function1 and PatchFunction1
      b0891824
  7. 31 May, 2021 1 commit
  8. 27 May, 2021 1 commit
  9. 26 May, 2021 1 commit
  10. 13 May, 2021 1 commit
  11. 12 May, 2021 1 commit
    • Mark Olesen's avatar
      ENH: improve edge access for face/triFace · 8eef91c5
      Mark Olesen authored
      - 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)
      8eef91c5
  12. 10 May, 2021 2 commits
    • Mark Olesen's avatar
      ENH: introduce intermediate vtk::polyWriter class · 0a78e685
      Mark Olesen authored
      - 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
      0a78e685
    • Mark Olesen's avatar
      ENH: support 'transform' specification for geometric decomposition · 492d5cb6
      Mark Olesen authored
      - 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);
              }
          }
      492d5cb6
  13. 26 Apr, 2021 1 commit
    • Mark Olesen's avatar
      ENH: adjustments for Function1/PatchFunction1 · 399c21d7
      Mark Olesen authored
      - 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.
      399c21d7
  14. 19 Apr, 2021 5 commits
    • Mark Olesen's avatar
      ENH: improve dynamicCode consistency · cf906387
      Mark Olesen authored and Andrew Heather's avatar Andrew Heather committed
      - refactor and provision for additional code context
      cf906387
    • Mark Olesen's avatar
      ENH: replace keyType with wordRe for matching selectors. · 2b7b3700
      Mark Olesen authored and Andrew Heather's avatar Andrew Heather committed
      - 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.
      2b7b3700
    • Mark Olesen's avatar
      ENH: improve consistency of fileName handling windows/non-windows (#2057) · b060378d
      Mark Olesen authored and Andrew Heather's avatar Andrew Heather committed
      - 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...
      b060378d
    • Mark Olesen's avatar
      ENH: consistency improvements for keyType and wordRe · 96a1b86f
      Mark Olesen authored and Andrew Heather's avatar Andrew Heather committed
      - 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
      96a1b86f
    • Mark Olesen's avatar
      ENH: List/DynamicList appendUniq() method · cdbc3e2d
      Mark Olesen authored and Andrew Heather's avatar Andrew Heather committed
      - affords some code reduction.
      
      STYLE: use HashSet insert() without found() check in more places
      cdbc3e2d
  15. 17 Mar, 2021 1 commit
  16. 16 Mar, 2021 1 commit
  17. 09 Mar, 2021 1 commit
    • Mark Olesen's avatar
      ENH: improvements for token methods · 51cd7cee
      Mark Olesen authored
      - 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
      51cd7cee
  18. 08 Mar, 2021 1 commit
  19. 05 Mar, 2021 1 commit
  20. 16 Feb, 2021 1 commit
  21. 09 Feb, 2021 2 commits
  22. 18 Jan, 2021 1 commit
  23. 22 Dec, 2020 1 commit
  24. 21 Dec, 2020 1 commit
  25. 18 Dec, 2020 2 commits
  26. 17 Dec, 2020 2 commits
  27. 11 Dec, 2020 3 commits
    • Mark Olesen's avatar
      COMP: remove 64-bit label ambiguity · 4fdeb3be
      Mark Olesen authored
      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
      4fdeb3be
    • Mattijs Janssens's avatar
      ENH: cyclicACMI: optional scaling with PatchFunction1. · 31ecf0d7
      Mattijs Janssens authored and Andrew Heather's avatar Andrew Heather committed
      Added 'scale' parameter to cyclicACMI. Scales the amount of 'coupledness' (= mask). Allows opening/closing without mesh motion.
      31ecf0d7
    • Mattijs Janssens's avatar
      ENH: primitiveMesh: make geometry calculation runtime selectable · 46dbfabd
      Mattijs Janssens authored and Andrew Heather's avatar Andrew Heather committed
      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.
      46dbfabd