Skip to content
Snippets Groups Projects
  1. Dec 03, 2018
    • sergio's avatar
      ENH: · 9893e623
      sergio authored
      Adding reflecting fluxes to Solar load radiation model.
      Adding functionality to the boundary radiation models and new
      place holder for basic wall types such as transparent, opaqueDiffusive,
      opaqueReflective,etc.
      Changing radiation wall models to run time selectable.
      Adding multi-band capabilities to VF model and improving the set up
      for using solar loads in VF and fvDOM radiation models.
      9893e623
  2. Apr 08, 2019
  3. Feb 11, 2019
  4. Feb 06, 2019
  5. Dec 19, 2018
  6. Dec 14, 2018
  7. Dec 11, 2018
  8. Dec 13, 2018
  9. Dec 04, 2018
    • sergio's avatar
      STY: · 942a7f85
      sergio authored
      Reducing running time in controlDict
      942a7f85
  10. Nov 30, 2018
    • Mark OLESEN's avatar
      ENH: add isTrue function to RunFunctions · c5beee63
      Mark OLESEN authored
      - check if the first argument corresponds to an OpenFOAM value for
        'true' (as per Switch).
        True == 't', 'y', 'true', 'yes', 'on'. Everything else is not true.
      
      - when the first argument is '-dict', it initializes the value
        with a query via foamDictionary.
        Eg,
             isTrue -dict mydict -entry parallel
      
         ==> value=$(foamDictionary mydict -entry parallel -value)
             isTrue $value
      
         a missing entry is silently treated as false.
      
      ENH: add getNumberOfPatchFaces function in RunFunctions
      
      - simple extraction of nFaces from boundary file for given patch/region
      c5beee63
  11. Nov 28, 2018
  12. Nov 27, 2018
  13. Nov 26, 2018
  14. Nov 09, 2018
  15. Nov 21, 2018
  16. Nov 12, 2018
  17. Oct 09, 2018
    • Mark OLESEN's avatar
      ENH: improvements for vtkWrite function object (issue #926) · 42bb4970
      Mark OLESEN authored
      - parallel output.
      
        The output is now postProcessing/<name> for similar reasoning as
        mentioned in #866 - better alignment with other function objects, no
        collision with foamToVTK output.
      
      - align the input parameters with those of vtkCloud so that we can
        specify the ASCII precision and the padding width for the output
        file names as well.
      
      - emit TimeValue field, support file series generation
      
      - support internal or boundary meshes, combining the result into a vtm
        file.
      
      - can restrict conversion based on zone names, enclosing volumes,
        bounding box
      42bb4970
  18. Nov 07, 2018
    • Mark OLESEN's avatar
      ENH: make sourceInfo sub-dictionary optional for topoSet (#1060) · 5f556ffb
      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;
              sourceInfo
              {
                  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;
          }
      5f556ffb
  19. Oct 30, 2018
    • Mark OLESEN's avatar
      ENH: topoSetSource::SUBTRACT enum action (#1060) · 7325e3ac
      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
      7325e3ac
  20. Oct 29, 2018
  21. Oct 19, 2018
  22. Oct 01, 2018
    • 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
  23. Jul 11, 2018
  24. Jun 28, 2018
  25. Jun 26, 2018
  26. Jun 21, 2018
  27. Jan 17, 2018
  28. Dec 19, 2017
  29. Dec 14, 2017
  30. Apr 18, 2018
  31. Mar 28, 2018
  32. Apr 10, 2018
    • Mark OLESEN's avatar
      ENH: additional text expansion shortcuts (issue #792) · a9741cea
      Mark OLESEN authored
      Support the following expansions when they occur at the start of a
      string:
      
          Short-form       Equivalent
          =========       ===========
            <etc>/          ~OpenFOAM/   (as per foamEtcFile)
            <case>/         $FOAM_CASE/
            <constant>/     $FOAM_CASE/constant/
            <system>/       $FOAM_CASE/system/
      
      These can be used in fileName expansions to improve clarity and reduce
      some typing
      
           "<constant>/reactions"   vs  "$FOAM_CASE/constant/reactions"
      a9741cea
  33. Feb 20, 2018
  34. Dec 08, 2017