Skip to content
Snippets Groups Projects
  1. Jun 19, 2020
  2. Jun 18, 2020
  3. Jun 17, 2020
  4. Jun 16, 2020
  5. Jun 15, 2020
  6. Jun 12, 2020
    • Andrew Heather's avatar
      Merge branch 'feature-adjoint-updates' into 'develop' · 9b9a070b
      Andrew Heather authored
      Updates for the adjoint optimisation library
      
      See merge request !368
      9b9a070b
    • Andrew Heather's avatar
      INT: Minor integration updates · d6104bd4
      Andrew Heather authored
      d6104bd4
    • Vaggelis Papoutsis's avatar
      TUT: updated/cleaned the optimisation tutorials · c3445204
      Vaggelis Papoutsis authored
      - Removed some unnecessary dynamicMeshDicts.
      - Removed the writeActiveDesignVariables execution from the Allrun
        scripts, since it is no longer necessary to execute it before
        adjointOptimisationFoam.
      - Updated the entries in dynamicMeshDict according to efbc9fc9.
      c3445204
    • Vaggelis Papoutsis's avatar
      ENH: Homogenised the dynamicMeshDict entries for NURBS3DVolume · 1404b5ff
      Vaggelis Papoutsis authored
      (old keywords are still valid, throwing a compatibility warning)
      
      - using (U,V,W) instead of (X1,X2,X3)
      - using confine instead of bound
      1404b5ff
    • Vaggelis Papoutsis's avatar
      ENH: added a general framework for normalization and setting targets · 6ee7bc66
      Vaggelis Papoutsis authored
      for all objective functions.
      
      - The normalization is useful for practically all update methods dealing
      with constraints (e.g. SQP, MMA). The normalization factor can be either
      given explicitly or, if not given, will be the value of the objective
      function in the first optimisation cycle.
      - The target value is useful when using the objective as a constraint in
      constrained optimisation problems (e.g. drag - dragTarget). It should
      only be used with update methods that understand the value of the
      constraint (e.g. SQP, MMA) but not when the objective in hand is the
      only objective of the optimisation problem. In such a case, a squared
      objective should be used (e.g. sqr(drag - dragTarget))
      6ee7bc66
    • Vaggelis Papoutsis's avatar
      ENH: changes related to when the objective value is written · 4d67819a
      Vaggelis Papoutsis authored
      - Objective now inherits from localIOdictionary and writes the mean
      objective value under the uniform folder, each time mesh.write() is
      called. This is crucial for getting the correct old merit function value
      if the simulation is continued from a previous state and lineSearch is
      used.
      - Objectives are now computed and written even if the corresponding
      adjoint solver is inactive. This, among others, is also essential for
      getting the correct old merit function value in case of continuation.
      - Writing of the objective function (and its mean, if present) history
      has now moved to updatePrimalBasedQuantities, instead of the preLoop
      part of the adjoint solvers. This was decided to get the objective
      values to files, even if the adjoint solver is inactive. Arguably, an
      even better place to write the objective functions would be the postLoop
      part of the primal solvers, however this might cause multiple writes of
      the objective value for the inner iterations of lineSearch, if one is
      used.
      4d67819a