1. 02 Aug, 2019 1 commit
  2. 30 Jul, 2019 1 commit
  3. 16 Jul, 2019 1 commit
  4. 12 Jul, 2019 1 commit
  5. 17 Jul, 2019 1 commit
  6. 12 Jul, 2019 1 commit
  7. 26 Jun, 2019 1 commit
  8. 25 Jun, 2019 1 commit
  9. 26 Jun, 2019 1 commit
  10. 17 Jun, 2019 1 commit
    • Vaggelis Papoutsis's avatar
      CONTRIB: New adjoint optimisation and tools · ecc1fb5e
      Vaggelis Papoutsis authored
      A set of libraries and executables creating a workflow for performing
      gradient-based optimisation loops. The main executable (adjointOptimisationFoam)
      solves the flow (primal) equations, followed by the adjoint equations and,
      eventually, the computation of sensitivity derivatives.
      
      Current functionality supports the solution of the adjoint equations for
      incompressible turbulent flows, including the adjoint to the Spalart-Allmaras
      turbulence model and the adjoint to the nutUSpaldingWallFunction, [1], [2].
      
      Sensitivity derivatives are computed with respect to the normal displacement of
      boundary wall nodes/faces (the so-called sensitivity maps) following the
      Enhanced Surface Integrals (E-SI) formulation, [3].
      
      The software was developed by PCOpt/NTUA and FOSS GP, with contributions from
      
      Dr. Evangelos Papoutsis-Kiachagias,
      Konstantinos Gkaragounis,
      Professor Kyriakos Giannakoglou,
      Andy Heather
      
      and contributions in earlier version from
      
      Dr. Ioannis Kavvadias,
      Dr. Alexandros Zymaris,
      Dr. Dimitrios Papadimitriou
      
      [1] A.S. Zymaris, D.I. Papadimitriou, K.C. Giannakoglou, and C. Othmer.
      Continuous adjoint approach to the Spalart-Allmaras turbulence model for
      incompressible flows. Computers & Fluids, 38(8):1528–1538, 2009.
      
      [2] E.M. Papoutsis-Kiachagias and K.C. Giannakoglou. Continuous adjoint methods
      for turbulent flows, applied to shape and topology optimization: Industrial
      applications. 23(2):255–299, 2016.
      
      [3] I.S. Kavvadias, E.M. Papoutsis-Kiachagias, and K.C. Giannakoglou. On the
      proper treatment of grid sensitivities in continuous adjoint methods for shape
      optimization. Journal of Computational Physics, 301:1–18, 2015.
      
      Integration into the official OpenFOAM release by OpenCFD
      ecc1fb5e
  11. 10 May, 2019 2 commits
  12. 30 Apr, 2019 1 commit
  13. 29 Apr, 2019 1 commit
  14. 28 Apr, 2019 1 commit
  15. 26 Apr, 2019 1 commit
  16. 25 Apr, 2019 1 commit
  17. 11 Apr, 2019 2 commits
  18. 08 Apr, 2019 2 commits
  19. 06 Apr, 2019 1 commit
  20. 03 Apr, 2019 1 commit
  21. 01 Apr, 2019 1 commit
  22. 27 Mar, 2019 2 commits
  23. 13 Mar, 2019 1 commit
  24. 11 Mar, 2019 2 commits
  25. 06 Mar, 2019 1 commit
  26. 25 Feb, 2019 1 commit
  27. 23 Feb, 2019 1 commit
    • Mark Olesen's avatar
      ENH: new PDRblockMesh mesh generation utility (issue #1216) · 84270ed6
      Mark Olesen authored
      - While a rectilinear mesh can be created with blockMesh, not every mesh
        created with blockMesh will satisfy the requirements for being a
        rectilinear mesh.
      
        This alternative to blockMesh uses a single block that is aligned
        with the xy-z directions and specifications of the control points,
        mesh divisions and expansion ratios. For example,
      
          x
          {
              points  ( -13.28 -0.10 6.0 19.19 );
              nCells  (  10  12 10 );
              ratios  ( 0.2   1  5 );
          }
      
          y { ... }
          z { ... }
      
        With only one block, the boundary patch definition is simple and the
        canonical face number is used directly. For example,
      
          inlet
          {
              type    patch;
              faces   ( 0 );
          }
          outlet
          {
              type    patch;
              faces   ( 1 );
          }
      
          sides
          {
              type    patch;
              faces   ( 2 3 );
          }
      
          ...
      
      - After a mesh is defined, it is trivial to retrieve mesh-related
        information such as cell-volume, cell-centres for any i-j-k location
        without an actual polyMesh.
      
      STYLE: remove -noFunctionObjects from blockMesh
      
      - no time loop, so function objects cannot be triggered anyhow.
      84270ed6
  28. 17 Feb, 2019 1 commit
  29. 07 Feb, 2019 1 commit
    • Mark Olesen's avatar
      ENH: improved sample surfaces and surface writers (#1206) · 181c974b
      Mark Olesen authored
      - The writers have changed from being a generic state-less set of
        routines to more properly conforming to the normal notion of a writer.
        These changes allow us to combine output fields (eg, in a single
        VTK/vtp file for each timestep).
      
        Parallel data reduction and any associated bookkeeping is now part
        of the surface writers.
        This improves their re-usability and avoids unnecessary
        and premature data reduction at the sampling stage.
      
        It is now possible to have different output formats on a per-surface
        basis.
      
      - A new feature of the surface sampling is the ability to "store" the
        sampled surfaces and fields onto a registry for reuse by other
        function objects.
      
        Additionally, the "store" can be triggered at the execution phase
        as well
      181c974b
  30. 25 May, 2019 1 commit
    • Mark Olesen's avatar
      COMP: force dlOpen for windows application binaries (#1238) · 66a10099
      Mark Olesen authored
      - when windows portable executables (.exe or .dll) files are loaded,
        their dependent libraries not fully loaded. For OpenFOAM this means
        that the static constructors which are responsible for populating
        run-time selection tables are not triggered, and most of the run-time
        selectable models will simply not be available.
      
      Possible Solution
      =================
      
        Avoid this problem by defining an additional library symbol such as
        the following:
      
            extern "C" void libName_Load() {}
      
        in the respective library, and tag this symbol as 'unresolved' for
        the linker so that it will attempt to resolve it at run-time by
        loading the known libraries until it finds it. The link line would
        resemble the following:
      
            -L/some/path -llibName -ulibName_Load
      
        Pros:
          - Allows precise control of forced library loading
      
        Cons:
          - Moderately verbose adjustment of some source files (even with macro
            wrapping for the declaration).
          - Adjustment of numerous Make/options files and somewhat ad hoc
            in nature.
          - Requires additional care when implementing future libraries and/or
            applications.
      
        - This is the solution taken by the symscape patches (Richard Smith)
      
      Possible Solution
      =================
      
        Avoid this problem by simply force loading all linked libraries.
        This is done by "scraping" the information out of the respective
        Make/options file (after pre-processing) and using that to define
        the library list that will be passed to Foam::dlOpen() at run-time.
      
        Pros:
          - One-time (very) minimal adjustment of the sources and wmake toolchain
          - Automatically applies to future applications
      
        Cons:
          - Possibly larger memory footprint of application (since all dependent
            libraries are loaded).
          - Possible impact on startup time (while loading libraries)
          - More sensitive to build failures. Since the options files are
            read and modified based on the existence of the dependent
            libraries as a preprocessor step, if the libraries are initially
            unavailable for the first attempt at building the application,
            the dependencies will be inaccurate for later (successful) builds.
      
        - This is solution taken by the bluecape patches (Bruno Santos)
      
      Adopted Solution
      ================
      
        The approach taken by Bruno was adopted in a modified form since
        this appears to be the most easily maintained.
      
      Additional Notes
      ================
      
        It is always possible to solve this problem by defining a corresponding
        'libs (...)' entry in the case system/controlDict, which forces a dlOpen
        of the listed libraries. This is obviously less than ideal for large-scale
        changes, but can work to resolve an individual problem.
      
        The peldd utility (https://github.com/gsauthof/pe-util), which is
        also packaged as part of MXE could provide yet another alternative.
        Like ldd it can be used to determine the library dependencies of
        binaries or libraries. This information could be used to define an
        additional load layer for Windows.
      66a10099
  31. 22 May, 2019 1 commit
  32. 17 May, 2019 1 commit
  33. 30 Jan, 2019 1 commit
  34. 17 Jan, 2019 1 commit
  35. 07 Jan, 2019 1 commit