1. 26 Jun, 2020 1 commit
  2. 11 Jun, 2020 2 commits
    • Kutalmış Berçin's avatar
      ENH: add missing/improve annotated dictionaries · d0d3670d
      Kutalmış Berçin authored and Andrew Heather's avatar Andrew Heather committed
        New:
        - blockMeshDict
        - sampleDict
        - boxTurbDict
        - createBoxTurbDict
        - dsmcInitialiseDict
        - mdEquilibrationDict
        - mdInitialiseDict
        - obstaclesDict
        - optimisationDict
        - potentialDict
        - probesDict
        - sampleDict
        - setExprBoundaryFieldsDict
        - setExprFieldsDict
      
        Improved:
        - extrudeMeshDict
        - topoSetSourcesDict
      d0d3670d
    • Kutalmış Berçin's avatar
      INT: various integrations from openfoam.org · 5cbdb7a3
      Kutalmış Berçin authored and Andrew Heather's avatar Andrew Heather committed
        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
      5cbdb7a3
  3. 10 Jun, 2020 1 commit
  4. 09 Jun, 2020 1 commit
    • Kutalmış Berçin's avatar
      ENH: New atmospheric boundary layer (ABL) model suite (Part 1) · 41e264f2
      Kutalmış Berçin authored and Andrew Heather's avatar Andrew Heather committed
        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
      41e264f2
  5. 08 Jun, 2020 1 commit
    • Kutalmış Berçin's avatar
      DOC: elaborate the usage of function objects · a5c6516e
      Kutalmış Berçin authored and Andrew Heather's avatar Andrew Heather committed
        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
      a5c6516e
  6. 23 May, 2020 1 commit
  7. 18 Mar, 2020 1 commit
  8. 16 Mar, 2020 1 commit
    • Mark OLESEN's avatar
      CONFIG: improve prefix matching for system libraries (#1607) · fe17c8ad
      Mark OLESEN authored
      - 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.
      fe17c8ad
  9. 12 Mar, 2020 1 commit
    • Mark OLESEN's avatar
      ENH: adjust sampling onto meshed surfaces (#1600) · 06c4dc34
      Mark OLESEN authored
      - 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")
      06c4dc34
  10. 24 Feb, 2020 1 commit
    • Mark OLESEN's avatar
      CONFIG: improve prefix matching for system libraries (#1607) · 5ba2cbc5
      Mark OLESEN authored
      - 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.
      5ba2cbc5
  11. 03 Feb, 2020 1 commit
  12. 10 Jan, 2020 1 commit
  13. 23 Dec, 2019 1 commit
  14. 07 Aug, 2019 1 commit
  15. 29 Jul, 2019 1 commit
  16. 10 Jul, 2019 1 commit
  17. 25 Jun, 2019 1 commit
  18. 05 Jun, 2019 1 commit
  19. 03 Jun, 2019 1 commit
  20. 31 May, 2019 1 commit
  21. 02 May, 2019 1 commit
  22. 15 Apr, 2019 1 commit
  23. 26 Mar, 2019 1 commit
  24. 22 Mar, 2019 1 commit
  25. 13 Feb, 2019 1 commit
    • Mark OLESEN's avatar
      ENH: extended runTimePostProcessing (#1206) · 42fbf6d3
      Mark OLESEN authored
      - 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.
      42fbf6d3
  26. 04 Feb, 2019 1 commit
  27. 29 Jan, 2019 1 commit
  28. 26 Jan, 2019 1 commit
  29. 02 Jan, 2019 1 commit
  30. 19 Dec, 2018 1 commit
  31. 07 Dec, 2018 1 commit
    • Andrew Heather's avatar
      ENH: Added new AMIWeights function object · a4dc9966
      Andrew Heather authored
      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;
          }
      a4dc9966
  32. 16 Nov, 2018 1 commit
    • Andrew Heather's avatar
      ENH: Added new function object to calculate the energy spectrum · 4a26fb75
      Andrew Heather authored
      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
      4a26fb75
  33. 01 Oct, 2018 1 commit
    • Mark OLESEN's avatar
      ENH: improve, simplify, rationalize coordinate system handling (issue #863) · 6697bb47
      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
      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.
      6697bb47
  34. 28 Jun, 2018 1 commit
  35. 26 Jun, 2018 1 commit
  36. 24 Jun, 2018 1 commit
    • Mark OLESEN's avatar
      SUBMODULE: updates for catalyst · d9568a4b
      Mark OLESEN authored
      - 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
      d9568a4b
  37. 21 May, 2018 1 commit
  38. 11 May, 2018 1 commit
  39. 11 Apr, 2018 1 commit
    • Mark OLESEN's avatar
      ENH: allow "<case>", "<system>" ... in the string expansions (issue #792) · 5f88e427
      Mark OLESEN authored
      - 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
      5f88e427