1. 25 Jun, 2019 1 commit
  2. 19 Jun, 2019 1 commit
  3. 06 Jun, 2019 1 commit
  4. 10 Apr, 2019 1 commit
  5. 08 Apr, 2019 1 commit
  6. 04 Apr, 2019 1 commit
  7. 03 Apr, 2019 1 commit
  8. 24 Feb, 2019 1 commit
  9. 20 Feb, 2019 1 commit
  10. 12 Feb, 2019 1 commit
  11. 11 Feb, 2019 1 commit
  12. 08 Feb, 2019 1 commit
  13. 24 Jan, 2019 1 commit
  14. 20 Dec, 2018 1 commit
  15. 14 Dec, 2018 1 commit
  16. 13 Dec, 2018 1 commit
  17. 12 Dec, 2018 1 commit
    • Mark OLESEN's avatar
      ENH: extend flexibility of abort function object (#1119) · b49c8fcc
      Mark OLESEN authored
      - 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
  18. 11 Dec, 2018 1 commit
  19. 02 Dec, 2018 2 commits
    • Mark OLESEN's avatar
      ENH: configurable output temperature for externalCoupled mixed T BC (#1072) · 44bc9cab
      Mark OLESEN authored
      - Uses the user-specified value for outputTemperature:
            type  externalCoupledTemperature;
            outputTemperture  fluid;  // or wall;
        Otherwises uses 'wall' as a default (for compatibility) and emits a
        The T.out header now reflects the type of output. Eg,
           # Values: area Tfluid qDot htc
    • Mark OLESEN's avatar
      TUT: use defaultPatch for naming instead of explicit Default_Boundary_Region · a04f472f
      Mark OLESEN authored
      - 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.
  20. 24 Nov, 2018 1 commit
  21. 07 Nov, 2018 1 commit
    • Mark OLESEN's avatar
      ENH: make sourceInfo sub-dictionary optional for topoSet (#1060) · 573a4f87
      Mark OLESEN authored
      - 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;
                  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;
  22. 01 Nov, 2018 1 commit
    • Mark OLESEN's avatar
      ENH: topoSetSource::SUBTRACT enum action (#1060) · 3292b53c
      Mark OLESEN authored
      - 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
  23. 17 Oct, 2018 2 commits
    • sergio's avatar
      ENH: · 3d4cb235
      sergio authored
      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.
    • Mark OLESEN's avatar
      ENH: simplify objectRegistry access names (issue #322) · 3a3e954b
      Mark OLESEN authored
        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
      - use these updated names and functionality in more places
      NB: The older methods names are deprecated, but continue to be defined.
  24. 05 Oct, 2018 1 commit
    • Mark OLESEN's avatar
      ENH: improve, simplify, rationalize coordinate system handling (issue #863) · c75d5118
      Mark OLESEN authored
      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
      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);
                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,
        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.
          Compact specification:
                  origin  (0 0 0);
                  e2      (0 1 0);
                  e3      (0.5 0 0.866025);
          Full specification (also accepts the longer 'coordinateRotation'
          sub-dictionary name):
                  type    cartesian;
                  origin  (0 0 0);
                      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):
                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,
                type    axisAngle;
                axis    (0 1 0);
                angle   30;
                type    axes;
                e2      (0 1 0);
                e3      (0.5 0 0.866025);
      - shorter names (or older longer names) for the coordinate rotation
           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.
  25. 19 Sep, 2018 2 commits
    • Mark OLESEN's avatar
      ENH: new sampling type "surfaceCut" · a7f3eb06
      Mark OLESEN authored
      - an alternative to distanceSurface (with distance zero) that uses
        a cell cutting approach instead of an iso-surface.
    • Mark OLESEN's avatar
      ENH: improve distanceSurface handling (issue #1012) · 0183fb13
      Mark OLESEN authored
      - '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.
  26. 13 Aug, 2018 1 commit
  27. 07 Aug, 2018 1 commit
    • Mark OLESEN's avatar
      ENH: new cuttingPlane cutting scheme · 73ce991b
      Mark OLESEN authored
      - 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
  28. 18 Jul, 2018 1 commit
  29. 11 Jul, 2018 2 commits
  30. 05 Jul, 2018 1 commit
  31. 28 Jun, 2018 2 commits
  32. 26 Jun, 2018 1 commit
  33. 22 Jun, 2018 3 commits