Skip to content
Snippets Groups Projects
  1. Nov 11, 2022
    • sergio's avatar
      ENH: overset: various improvements in the framework · 2a406bbb
      sergio authored and Kutalmış Berçin's avatar Kutalmış Berçin committed
      The improvements include:
      
      - Allowing overset patches to be displaced outside background domain.
        - The approach does not support overlapping of multiple inset meshes
          on top of background domain.
      - Allowing fringe faces to walk away from hole cells in background domain.
        - The approach was not extensibly tested with overlapping patches.
      - Improving mass conservation.
      - Various experimental entries are removed: massFluxInterpolation, ddtCorr.
      - New entries:
        - oversetAdjustPhi: adds a flux correction outside the pressure equation.
        - massCorrection: adds an implicit correction.
      2a406bbb
  2. May 27, 2022
    • Mark OLESEN's avatar
      ENH: add 'filtered' polyMesh regionName() method · ba10afea
      Mark OLESEN authored
      - in various situations with mesh regions it is also useful to
        filter out or remove the defaultRegion name (ie, "region0").
      
        Can now do that conveniently from the polyMesh itself or as a static
        function. Simply use this
      
            const word& regionDir = polyMesh::regionName(regionName);
      
        OR  mesh.regionName()
      
        instead of
      
            const word& regionDir =
            (
                 regionName != polyMesh::defaultRegion
               ? regionName
               : word::null
            );
      
        Additionally, since the string '/' join operator filters out empty
        strings, the following will work correctly:
      
            (polyMesh::regionName(regionName)/polyMesh::meshSubDir)
      
            (mesh.regionName()/polyMesh::meshSubDir)
      ba10afea
  3. May 12, 2021
  4. Jun 17, 2020
  5. Jun 02, 2020
    • Mark OLESEN's avatar
      ENH: unify use of dictionary method names · 3e43edf0
      Mark OLESEN authored
      - previously introduced `getOrDefault` as a dictionary _get_ method,
        now complete the transition and use it everywhere instead of
        `lookupOrDefault`. This avoids mixed usage of the two methods that
        are identical in behaviour, makes for shorter names, and promotes
        the distinction between "lookup" access (ie, return a token stream,
        locate and return an entry) and "get" access (ie, the above with
        conversion to concrete types such as scalar, label etc).
      3e43edf0
  6. May 06, 2020
    • Mark OLESEN's avatar
      COMP: use -iquotedir for including the local '.' directory · 595579e0
      Mark OLESEN authored
      - adds into the include-quoted search list instead the general (-Idir)
        search list.
      
        * makes it less subject to ordering (since it will now generally be
          searched first) and makes it less subject to how duplicate removal
          is implemented. In some compilers (#1627), the last instance of
          a duplicate directory would be used and not the first instance.
      
        * removes clutter in some Make/options files
      
      COMP: add missing linkage libraries
      595579e0
  7. Oct 31, 2019
  8. Apr 28, 2019
  9. Apr 03, 2019
  10. Feb 06, 2019
  11. Dec 11, 2018
  12. Dec 13, 2018
    • Mark OLESEN's avatar
      ENH: consolidate handling of mandatory/optional command arguments · 5d9e278e
      Mark OLESEN authored
      - for some special cases we wish to mark command-line arguments as
        being optional, in order to do our own treatment. For example,
        when an arbitrary number of arguments should be allowed.
      
        Now tag this situation with argList::noMandatoryArgs().
        The argList::argsMandatory() query can then be used in any further
        logic, including the standard default argument checking.
      
      - with the new default check, can consolidate the special-purpose
      
            "setRootCaseNonMandatoryArgs.H"
      
        into the regular
      
            "setRootCase.H"
      
      - revert to a simple "setRootCase.H" and move all the listing related
        bits to a "setRootCaseLists.H" file. This leaves the information
        available for solvers, or whoever else wishes, without being
        introduced everywhere.
      
      - add include guards and scoping to the listing files and rename to
        something less generic.
      
           listOptions.H -> setRootCaseListOptions.H
           listOutput.H  -> setRootCaseListOutput.H
      5d9e278e
  13. Jun 21, 2018
  14. Jun 20, 2018
  15. Jun 01, 2018
    • Mark OLESEN's avatar
      STYLE: reduced usage of Switch · 84b10921
      Mark OLESEN authored
      - Since 'bool' and 'Switch' use the _identical_ input mechanism
        (ie, both accept true/false, on/off, yes/no, none, 1/0), the main
        reason to prefer one or the other is the output.
      
        The output for Switch is as text (eg, "true"), whereas for bool
        it is label (0 or 1). If the output is required for a dictionary,
        Switch may be appropriate. If the output is not required, or is only
        used for Pstream exchange, bool can be more appropriate.
      84b10921
  16. Apr 27, 2018
    • Mark OLESEN's avatar
      ENH: make format of ExecutionTime = ... output configurable (issue #788) · dd8341f6
      Mark OLESEN authored
      - controlled by the the 'printExecutionFormat' InfoSwitch in
        etc/controlDict
      
            // Style for "ExecutionTime = " output
            // - 0 = seconds (with trailing 's')
            // - 1 = day-hh:mm:ss
      
         ExecutionTime = 112135.2 s  ClockTime = 113017 s
      
         ExecutionTime = 1-07:08:55.20  ClockTime = 1-07:23:37
      
      - Callable via the new Time::printExecutionTime() method,
        which also helps to reduce clutter in the applications.
        Eg,
      
           runTime.printExecutionTime(Info);
      
        vs
      
           Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
               << "  ClockTime = " << runTime.elapsedClockTime() << " s"
               << nl << endl;
      
      --
      
      ENH: return elapsedClockTime() and clockTimeIncrement as double
      
      - previously returned as time_t, which is less portable.
      dd8341f6
  17. Dec 08, 2017
  18. Jun 11, 2018
  19. Jan 11, 2018
  20. May 18, 2018
  21. Oct 23, 2017
  22. Jun 14, 2017
    • mattijs's avatar
      ENH: overset: Initial release of overset capability. · fd665b4a
      mattijs authored
      Adds overset discretisation to selected physics:
      - diffusion : overLaplacianDyMFoam
      - incompressible steady : overSimpleFoam
      - incompressible transient : overPimpleDyMFoam
      - compressible transient: overRhoPimpleDyMFoam
      - two-phase VOF: overInterDyMFoam
      
      The overset method chosen is a parallel, fully implicit implementation
      whereby the interpolation (from donor to acceptor) is inserted as an
      adapted discretisation on the donor cells, such that the resulting matrix
      can be solved using the standard linear solvers.
      
      Above solvers come with a set of tutorials, showing how to create and set-up
      simple simulations from scratch.
      fd665b4a
  23. Jun 09, 2016
  24. May 09, 2016
  25. May 08, 2016
    • Henry Weller's avatar
      applications/solvers/multiphase: Added -postProcess option · 38916e66
      Henry Weller authored
      See also commit cc455173
      38916e66
    • Henry Weller's avatar
      simpleFoam: Added experimental "-postProcess" option · cc455173
      Henry Weller authored
          Executes application functionObjects to post-process existing results.
      
          If the "dict" argument is specified the functionObjectList is constructed
          from that dictionary otherwise the functionObjectList is constructed from
          the "functions" sub-dictionary of "system/controlDict"
      
          Multiple time-steps may be processed and the standard utility time
          controls are provided.
      
      This functionality is equivalent to execFlowFunctionObjects but in a
      more efficient and general manner and will be included in all the
      OpenFOAM solvers if it proves effective and maintainable.
      
      The command-line options available with the "-postProcess" option may be
      obtained by
      
      simpleFoam -help -postProcess
      
      Usage: simpleFoam [OPTIONS]
      options:
        -case <dir>       specify alternate case directory, default is the cwd
        -constant         include the 'constant/' dir in the times list
        -dict <file>      read control dictionary from specified location
        -latestTime       select the latest time
        -newTimes         select the new times
        -noFunctionObjects
                          do not execute functionObjects
        -noZero           exclude the '0/' dir from the times list, has precedence
                          over the -withZero option
        -parallel         run in parallel
        -postProcess      Execute functionObjects only
        -region <name>    specify alternative mesh region
        -roots <(dir1 .. dirN)>
                          slave root directories for distributed running
        -time <ranges>    comma-separated time ranges - eg, ':10,20,40:70,1000:'
        -srcDoc           display source code in browser
        -doc              display application documentation in browser
        -help             print the usage
      
      Henry G. Weller
      CFD Direct Ltd.
      cc455173
  26. Apr 06, 2016
  27. Mar 07, 2016
  28. Feb 26, 2016
    • Henry Weller's avatar
      OpenFOAM: Updated all libraries, solvers and utilities to use the new const-safe tmp · cd852be3
      Henry Weller authored
      The deprecated non-const tmp functionality is now on the compiler switch
      NON_CONST_TMP which can be enabled by adding -DNON_CONST_TMP to EXE_INC
      in the Make/options file.  However, it is recommended to upgrade all
      code to the new safer tmp by using the '.ref()' member function rather
      than the non-const '()' dereference operator when non-const access to
      the temporary object is required.
      
      Please report any problems on Mantis.
      
      Henry G. Weller
      CFD Direct.
      cd852be3
  29. Feb 13, 2016
    • Henry Weller's avatar
      Solvers: Added support for extrapolated pressure boundary conditions · fc2ce737
      Henry Weller authored
      The boundary conditions of HbyA are now constrained by the new "constrainHbyA"
      function which applies the velocity boundary values for patches for which the
      velocity cannot be modified by assignment and pressure extrapolation is
      not specified via the new
      "fixedFluxExtrapolatedPressureFvPatchScalarField".
      
      The new function "constrainPressure" sets the pressure gradient
      appropriately for "fixedFluxPressureFvPatchScalarField" and
      "fixedFluxExtrapolatedPressureFvPatchScalarField" boundary conditions to
      ensure the evaluated flux corresponds to the known velocity values at
      the boundary.
      
      The "fixedFluxPressureFvPatchScalarField" boundary condition operates
      exactly as before, ensuring the correct flux at fixed-flux boundaries by
      compensating for the body forces (gravity in particular) with the
      pressure gradient.
      
      The new "fixedFluxExtrapolatedPressureFvPatchScalarField" boundary
      condition may be used for cases with or without body-forces to set the
      pressure gradient to compensate not only for the body-force but also the
      extrapolated "HbyA" which provides a second-order boundary condition for
      pressure.  This is useful for a range a problems including impinging
      flow, extrapolated inlet conditions with body-forces or for highly
      viscous flows, pressure-induced separation etc.  To test this boundary
      condition at walls in the motorBike tutorial case set
      
          lowerWall
          {
              type            fixedFluxExtrapolatedPressure;
          }
      
          motorBikeGroup
          {
              type            fixedFluxExtrapolatedPressure;
          }
      
      Currently the new extrapolated pressure boundary condition is supported
      for all incompressible and sub-sonic compressible solvers except those
      providing implicit and tensorial porosity support.  The approach will be
      extended to cover these solvers and options in the future.
      
      Note: the extrapolated pressure boundary condition is experimental and
      requires further testing to assess the range of applicability,
      stability, accuracy etc.
      
      Henry G. Weller
      CFD Direct Ltd.
      fc2ce737
  30. Dec 15, 2015
  31. Dec 03, 2015
  32. Dec 02, 2015
    • Henry Weller's avatar
      fvOptions: Reorganized and updated to simplify use in sub-models and maintenance · 736621b9
      Henry Weller authored
      fvOptions are transferred to the database on construction using
      fv::options::New which returns a reference.  The same function can be
      use for construction and lookup so that fvOptions are now entirely
      demand-driven.
      
      The abstract base-classes for fvOptions now reside in the finiteVolume
      library simplifying compilation and linkage.  The concrete
      implementations of fvOptions are still in the single monolithic
      fvOptions library but in the future this will be separated into smaller
      libraries based on application area which may be linked at run-time in
      the same manner as functionObjects.
      736621b9
  33. Dec 01, 2015
  34. Nov 18, 2015
  35. Jul 19, 2015
  36. Jul 15, 2015
  37. Jun 23, 2015
  38. May 29, 2015
    • Henry's avatar
      MRF: Separate MRF from fvOptions · c3ee2348
      Henry authored
      fvOptions does not have the appropriate structure to support MRF as it
      is based on option selection by user-specified fields whereas MRF MUST
      be applied to all velocity fields in the particular solver.  A
      consequence of the particular design choices in fvOptions made it
      difficult to support MRF for multiphase and it is easier to support
      frame-related and field related options separately.
      
      Currently the MRF functionality provided supports only rotations but
      the structure will be generalized to support other frame motions
      including linear acceleration, SRF rotation and 6DoF which will be
      run-time selectable.
      c3ee2348
    • Henry's avatar