Skip to content
Snippets Groups Projects
  1. Apr 27, 2020
  2. Apr 21, 2020
  3. Apr 16, 2020
    • Mark OLESEN's avatar
      COMP: cleanup of surfaceCoarsen/bunnylod · b2bf8236
      Mark OLESEN authored
      - remove MSWindows components (code and makefiles)
      
      - use cxx, hxx extensions to reduce possible confusion with other
        "list" and "vector" classes
      
      - use C++ versions for C headers
      b2bf8236
  4. Mar 16, 2020
  5. Feb 14, 2020
  6. Jan 28, 2020
  7. Jan 03, 2020
  8. Dec 23, 2019
  9. Dec 19, 2019
  10. Dec 18, 2019
  11. Dec 17, 2019
    • sergio's avatar
      INT: org integration · 6e8f0dbe
      sergio authored and Andrew Heather's avatar Andrew Heather committed
      1) rPolynomial Eq of State
      2) externalForce and softWall in rigidBodyDynamics
      
      INT: Several minor bug fixes plus
      6e8f0dbe
    • Mark OLESEN's avatar
      ENH: use exprString expansions for #eval · 1cf795a4
      Mark OLESEN authored
      - follows the principle of least surprise if the expansion behaviour
        for #eval and expressions (eg, exprFixedValue) are the same.  This
        is possible now that we harness the regular stringOps::expand()
        within exprString::expand()
      1cf795a4
  12. Dec 16, 2019
    • Mark OLESEN's avatar
      ENH: PDRsetFields utility (#1216) · a60fe9c7
      Mark OLESEN authored
      - the PDRsetFields utility processes a set of geometrical obstructions
        to determine the equivalent blockage effects.
      
        These fields are necessary inputs for PDRFoam calculations.
      
        After setting up the geometries, the -dry-run option can be used to
        generate a VTK file for diagnosis and post-processing purposes.
      
      - this is an initial release, with improvements slated for the future.
      
      NOTE
        - the field results may be less than fully reliable when run in
          single-precision. This howver does not represent a realistic
          restriction since the prepared fields target a combustion
          application which will invariably be double-precision.
      a60fe9c7
    • Mark OLESEN's avatar
      COMP: compilation of Test-QRMatrix (clang, int64) · 1a16207e
      Mark OLESEN authored
      - remove unused local functions from volumeExprDriver
      1a16207e
  13. Dec 14, 2019
  14. Dec 13, 2019
    • Mark OLESEN's avatar
      ENH: improve expression string expansions · 33e0c4ba
      Mark OLESEN authored
      - reuse more of stringOps expansions to reduce code and improve the
        syntax flexiblity.
      
        We can now embed "pre-calculated" values into an expression.
        For example,
      
             angle       35;
             valueExpr   "vector(${{cos(degToRad($angle))}}, 2, 3)";
      
        and the ${{..}} will be evaluated with the regular string evaluation
        and used to build the entire expression for boundary condition
        evaluation.
      
        Could also use for fairly wild indirect referencing:
      
             axis1   (1 0 0);
             axis2   (0 1 0);
             axis3   (0 0 1);
             index   100;
             expr   "$[(vector) axis${{ ($index % 3) +1 }}] / ${{max(1,$index)}}";
      33e0c4ba
    • Mark OLESEN's avatar
      STYLE: header format · 7aa2bf83
      Mark OLESEN authored
      7aa2bf83
    • Mark OLESEN's avatar
      ENH: stringOps::findTrim helper · 17d9969a
      Mark OLESEN authored
      - finds beg/end indices of string trimmed of leading/trailing whitespace
      17d9969a
    • Mark OLESEN's avatar
      string trim · 677e3142
      Mark OLESEN authored
      677e3142
  15. Dec 12, 2019
    • Vaggelis Papoutsis's avatar
      ENH: New adjont shape optimisation functionality · b8632543
      Vaggelis Papoutsis authored
      The adjoint library is enhanced with new functionality enabling
      automated shape optimisation loops.  A parameterisation scheme based on
      volumetric B-Splines is introduced, the control points of which act as
      the design variables in the optimisation loop [1, 2].  The control
      points of the volumetric B-Splines boxes can be defined in either
      Cartesian or cylindrical coordinates.
      
      The entire loop (solution of the flow and adjoint equations, computation
      of sensitivity derivatives, update of the design variables and mesh) is
      run within adjointOptimisationFoam. A number of methods to update the
      design variables are implemented, including popular Quasi-Newton methods
      like BFGS and methods capable of handling constraints like loop using
      the SQP or constraint projection.
      
      The software was developed by PCOpt/NTUA and FOSS GP, with contributions from
      
      Dr. Evangelos Papoutsis-Kiachagias,
      Konstantinos Gkaragounis,
      Professor Kyriakos Giannakoglou,
      Andy Heather
      
      [1] E.M. Papoutsis-Kiachagias, N. Magoulas, J. Mueller, C. Othmer,
      K.C.  Giannakoglou: 'Noise Reduction in Car Aerodynamics using a
      Surrogate Objective Function and the Continuous  Adjoint Method with
      Wall Functions', Computers & Fluids, 122:223-232, 2015
      
      [2] E. M. Papoutsis-Kiachagias, V. G. Asouti, K. C. Giannakoglou,
      K.  Gkagkas, S. Shimokawa, E. Itakura: ‘Multi-point aerodynamic shape
      optimization of cars based on continuous adjoint’, Structural and
      Multidisciplinary Optimization, 59(2):675–694, 2019
      b8632543
    • Kutalmış Berçin's avatar
      BUG: fix QRMatrix (#1261, #1240) · af0e454c
      Kutalmış Berçin authored
          QRMatrix (i.e. QR decomposition, QR factorisation or orthogonal-triangular
          decomposition) decomposes a scalar/complex matrix \c A into the following
          matrix product:
      
          \verbatim
              A = Q*R,
          \endverbatim
      
          where
           \c Q is a unitary similarity matrix,
           \c R is an upper triangular matrix.
      
      Usage
          Input types:
           - \c A can be a \c SquareMatrix<Type> or \c RectangularMatrix<Type>
      
          Output types:
           - \c Q is always of the type of the matrix \c A
           - \c R is always of the type of the matrix \c A
      
          Options for the output forms of \c QRMatrix (for an (m-by-n) input matrix
          \c A with k = min(m, n)):
           - outputTypes::FULL_R:     computes only \c R                   (m-by-n)
           - outputTypes::FULL_QR:    computes both \c R and \c Q          (m-by-m)
           - outputTypes::REDUCED_R:  computes only reduced \c R           (k-by-n)
      
          Options where to store \c R:
           - storeMethods::IN_PLACE:        replaces input matrix content with \c R
           - storeMethods::OUT_OF_PLACE:    creates new object of \c R
      
          Options for the computation of column pivoting:
           - colPivoting::FALSE:            switches off column pivoting
           - colPivoting::TRUE:             switches on column pivoting
      
          Direct solution of linear systems A x = b is possible by solve() alongside
          the following limitations:
           - \c A         = a scalar square matrix
           - output type  = outputTypes::FULL_QR
           - store method = storeMethods::IN_PLACE
      
      Notes
          - QR decomposition is not unique if \c R is not positive diagonal \c R.
          - The option combination:
            - outputTypes::REDUCED_R
            - storeMethods::IN_PLACE
            will not modify the rows of input matrix \c A after its nth row.
          - Both FULL_R and REDUCED_R QR decompositions execute the same number of
            operations. Yet REDUCED_R QR decomposition returns only the first n rows
            of \c R if m > n for an input m-by-n matrix \c A.
          - For m <= n, FULL_R and REDUCED_R will produce the same matrices
      af0e454c
    • Kutalmış Berçin's avatar
      ENH: add new funcs into `SquareMatrix` · 64614cfc
      Kutalmış Berçin authored
          - query func `symmetric()`
          - query func `tridiagonal()`
          - `resize()`
          - `labelpair` identity constructor
      
          STYLE: add `#if(0 | RUNALL)` to improve test control in Test-Matrix
      64614cfc
  16. Dec 11, 2019
    • Andrew Heather's avatar
      ENH: add selectable update control/interval to pimpleFoam, rhoPimpleFoam · 87bba9ae
      Andrew Heather authored and Mark OLESEN's avatar Mark OLESEN committed
      - Allows user-defined control of when the mesh motion occurs,
        which can be especially useful in situations where the mesh motion
        is much slower than any of the fluid physics.
      
        For example, in constant/dynamicMeshDict:
      
            updateControl   runTime;
            updateInterval  0.5;
      
        to have mesh motion triggered every 1/2 second.
      
        Note that the _exact_ time that the mesh motion actually occurs may
        be slightly differently since the "runTime" triggering is fuzzy in
        nature. It will trigger when the threshold has been crossed, which
        will depend on the current time-step size.
      87bba9ae
    • Mark OLESEN's avatar
      ENH: unified some common parser static methods · eb4fec37
      Mark OLESEN authored
      COMP: delay evaluation of fieldToken enumeration types
      
      - lazy evaluation at runTime instead of compile-time to make the code
        independent of initialization order.
        Otherwise triggers problems on gcc-4.8.5 on some systems where
        glibc is the same age, or older.
      eb4fec37
  17. Dec 10, 2019
  18. Dec 09, 2019
  19. Dec 06, 2019
    • Andrew Heather's avatar
      ENH: applyBoundaryLayer - optionally write turbulence fields · f8577a34
      Andrew Heather authored
      - The previous option 'write-nut' controlled the writing of turbulence
        nut, but other turbulence fields were always written.
        These have been shown to be a source of instability for many cases.
      
        This commit replaces the 'write-nut' option by a 'writeTurbulenceFields'
        option that controls the writing of all turbulence fields.
        If not set, only the velocity field is written.
      
        For compatibility, the old 'write-nut' option is still recognized
        but is redirected to 'writeTurbulenceFields'.
      f8577a34
    • Andrew Heather's avatar
      GIT: Housekeeping · 5d7d24df
      Andrew Heather authored
      5d7d24df
    • Mark OLESEN's avatar
      ENH: add ITstream append and seek methods. · 9fd696e1
      Mark OLESEN authored
      - ITstream append() would previously have used the append from the
        underlying tokenList, which leaves the tokenIndex untouched and
        renders the freshly appended tokens effectively invisible if
        interspersed with primitiveEntry::read() that itself uses tokenIndex
        when building the list.
      
        The new append() method makes this hidden ITstream bi-directionality
        easier to manage. For efficiency, we only append lists
        (not individual tokens) and support a 'lazy' resizing that allows
        the final resizing to occur later when all tokens have been appended.
      
      - The new ITstream seek() method provides a conveniently means to move
        to the end of the list or reposition to the middle.
        Using rewind() and using seek(0) are identical.
      
      ENH: added OTstream to output directly to a list of tokens
      
      ---
      
      BUG: List::newElem resized incorrectly
      
      - had a simple doubling of the List size without checking that this
        would indeed be sufficient for the requested index.
      
        Bug was ...
      9fd696e1
  20. Dec 07, 2019
  21. Nov 26, 2019
  22. Nov 25, 2019
  23. Nov 21, 2019
  24. Nov 19, 2019
    • Mark OLESEN's avatar
      ENH: add conditionals to #eval (string to scalar) · 9e6683f7
      Mark OLESEN authored
      Example,
      
           ($radius > 10) ? sin(degToRad(45)) : cos(degToRad(30))
      
      - protect division and modulo against zero-divide.
      
      - add scanner/parser debugging switches in the namespace,
        selectable as "stringToScalar". For example,
      
          debug parser:  foamDictionary -debug-switch stringToScalar=2
          debug scanner: foamDictionary -debug-switch stringToScalar=4
          debug both:    foamDictionary -debug-switch stringToScalar=6
      9e6683f7
    • Mattijs Janssens's avatar
      Feature single precision solve type · 2d080ff3
      Mattijs Janssens authored
      2d080ff3