Skip to content
Snippets Groups Projects
  1. Mar 19, 2025
  2. Mar 17, 2025
  3. Jan 27, 2025
  4. Jan 24, 2025
    • Mark OLESEN's avatar
      COMP: adjustments for nvc++ compiler · 297fee00
      Mark OLESEN authored
      - remove unneeded -Wno-old-style flags with boost/cgal elements
      - add nvc equivalent to gcc/clang -Wno-invalid-offsetof
      - avoid warnings about set-but-unused variable and change of scoping
      
      STYLE: remove wmake 'CGAL' rule
      - was a transitional forward to 'cgal' rule since DEC-2020
      297fee00
  5. Jan 10, 2025
    • Johan Roenby's avatar
      BUG: Fixes bug in plicRDF interface reconstruction across cyclic boundaries (fixes #3279) · 4fe3f55e
      Johan Roenby authored and Kutalmış Berçin's avatar Kutalmış Berçin committed
      Description:
      The plicRDF interface reconstruction scheme calculates a reconstructed distance
      function (RDF) in all interface cells and their point neighbours.
      In point neighbours to interface cells, the RDF is calculated as a weighted
      average of the distances to all adjacent interface cell centres with the weight
      being the inverse distance to the cell centre.
      By using the zoneDistribute class written by Henning Scheufler, the required
      stencil data is communicated efficiently for stencil cells living on different
      sides of one or more processor patches.
      Some of the data required for the RDF reconstruction are cell centre and
      interface centre positions. When a stencil extends across a cyclic patch these
      positions have so far not been properly transformed in OpenFOAM. This issue is
      fixed by the current contribution.
      The fix is done by modifying the zoneDistribute class to hold the required
      information about zone cells adjacent to cyclic patches. Positions are then
      communicated with a new getPosition function which replaces getValue for
      position data in the reconstructedDistanceFunction and plicRDF classes.
      The implementation does not change the behaviour for cells not on
      a cyclic patch and should have insignificant effect on efficiency for these.
      The implementation can probably be optimised in terms of efficiency for zone
      cells on cyclic patches, but we note that there are generally only very few of
      these (interface cells and their point neighbours on cyclic patches) and so
      the potential for speedup is expected to be limited.
      
      Current limitations:
      
      - In parallel, the user must constrain the decomposition to preserve cyclic
      patches on the same processor, for the implementation to work properly.
        - See an example here: tutorials/discInConstantFlowCyclicBCs/system/decomposeParDict
      - In the case of parallel rotational cyclics that are split by the decomposition
      the current bugfix does not work and therefore throws an error. This is ongoing
      work and should be reported and fixed by a future patch.
      
      For further details, please see the modified files and the comments therein:
      - $FOAM_SRC/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.H
      - $FOAM_SRC/finiteVolume/fvMesh/zoneDistribute/zoneDistribute.C
      - $FOAM_SRC/finiteVolume/fvMesh/zoneDistribute/zoneDistributeI.H
      - $FOAM_SRC/transportModels/geometricVoF/reconstructedDistanceFunction/reconstructedDistanceFunction.C
      - $FOAM_SRC/src/transportModels/geometricVoF/reconstructionSchemes/plicSchemes/plicRDF/plicRDF.C
      
      Co-authored-by: David Müller <> KIT
      Co-authored-by: Konstantinos Missios <> Roskilde University
      Co-authored-by: Johan Roenby <> Roskilde University and STROMNING
      4fe3f55e
  6. Jan 06, 2025
  7. Dec 24, 2024
  8. Dec 23, 2024
  9. Dec 20, 2024
    • Andrew Heather's avatar
      ENH: Added new foamReport functionObject · dffb5774
      Andrew Heather authored and Kutalmış Berçin's avatar Kutalmış Berçin committed
      Replaces user-supplied keywords by run-time computed values in a text file.
      
      Usage
          Example using system/controlDict.functions:
      
          foamReport1
          {
              // Mandatory entries (unmodifiable)
              type            foamReport;
              libs            (foamUtilityFunctionObjects);
      
              template        "<system>/myTemplate.md";
      
              substitutions
              {
                  divSchemes1
                  {
                      type        dictionaryValue;
                      object      fvSchemes;
      
                      entries
                      {
                          divSchemes      "divSchemes";
                      }
                  }
                  fvSolution1
                  {
                      type        dictionaryValue;
                      path        "<system>/fvSolution";
      
                      entries
                      {
                          solver_p        "solvers/p/solver";
                          solver_p_tol    "solvers/p/tolerance";
                          solver_p_reltol "solvers/p/relTol";
                          solver_U        "solvers/U/solver";
                          solver_U_tol    "solvers/U/tolerance";
                          solver_U_reltol "solvers/U/relTol";
                      }
                  }
                  controlDict1
                  {
                      type        dictionaryValue;
                      path        "<system>/controlDict";
      
                      entries
                      {
                          initial_deltaT       "deltaT";
                      }
                  }
                  continuityErrors
                  {
                      type        functionObjectValue;
                      functionObject continuityError1;
      
                      entries
                      {
                          cont_error_local    local;
                          cont_error_global   global;
                          cont_error_cumulative cumulative;
                      }
                  }
              }
      dffb5774
    • Andrew Heather's avatar
      ENH: Added new graphFunctionObject function object · 82e471e0
      Andrew Heather authored and Kutalmış Berçin's avatar Kutalmış Berçin committed
      Accumulates function object result values and renders into a graph in SVG format
      
      Minimal example by using system/controlDict.functions to plot the residuals from
      the solverInfo function Object:
      
          residualGraph
          {
              type            graphFunctionObject;
              libs            (utilityFunctionObjects);
              writeControl    writeTime;
      
              logScaleX       no;
              logScaleY       yes;
      
              xlabel          "Iteration";
              ylabel          "log10(Initial residual)";
      
              functions
              {
                  line1
                  {
                      object      solverInfo1;
                      entry       Ux_initial;
                  }
                  line2
                  {
                      object      solverInfo1;
                      entry       Uy_initial;
                  }
                  line3
                  {
                      object      solverInfo1;
                      entry       Uz_initial;
                  }
                  line4
                  {
                      object      solverInfo1;
                      entry       p_initial;
                  }
              }
          }
      82e471e0
  10. Dec 19, 2024
  11. Dec 18, 2024
  12. Dec 15, 2024
  13. Dec 12, 2024
  14. Dec 11, 2024
  15. Dec 10, 2024