- Mar 18, 2024
-
-
- Feb 20, 2024
-
-
Mark OLESEN authored
-
- Feb 06, 2024
-
-
Mark OLESEN authored
BUG: bad processor selection. Failed to select anything on non-master
-
- Feb 01, 2024
-
-
mattijs authored
-
- Jan 19, 2024
-
-
Mark OLESEN authored
- regression introduced by e98acdc4 Affected versions: (v2206, v2212, v2306, v2312)
-
- Jan 15, 2024
-
-
Andrew Heather authored
-
- Jan 08, 2024
-
-
- Dec 22, 2023
-
-
Mark OLESEN authored
- had max(std::streamsize, label) but this does not resolve properly on OSX, so write out in long form instead. The similar logic in DynamicList is okay since there it compares max(label, label) instead
-
- Dec 21, 2023
-
-
In steadyOptimisation mode, each time-step corresponds to an optimisation cycle and is sub-cycled, to allow for iterating the flow and adjoint equations. This sub-cycling does not allow the execution of function objects. This was circumvented in 8947735b, by explicitly calling the execution of the function objects in the simple solver of adjointOptimisationFoam. However, each sub-cycled iteration is a writeTime, if the current optimisation cycle corresponds to a writeTime. This means that function objects with a writeControl write; will be executed in each iteration of the flow equations, within this specific optimisation cycle, leading to a lot of disc space and file clutter, if the function object outputs fields (e.g. yPlus). 8947735b is partially rolled back, by protecting the call to the execution of the function objects with a bool that defaults to false.
-
- Dec 20, 2023
-
-
-
Mark OLESEN authored
- adjointOptimisation : missing link to fileFormats - snappyHexMesh : add fvMotionSolvers link (#3058) STYLE: remove remnant -DFULLDEBUG hints - now more easily covered with wmake -debug ...
-
Mark OLESEN authored
- the fileHandler changes included setting cacheLevel(0) to avoid blocking with redistributePar. However, this meant if clouds were not uniformly present on all ranks the fileHandler would follow different code paths and lead to blocking. Now switch to distributed mode for the lagrangian operations within redistributePar based on the cacheLevel information. FIX: avoid triggering a false processor check in argList - when redistributing to few ranks
-
Mark OLESEN authored
- maintains the same code path within scotch
-
Andrew Heather authored
-
- Dec 19, 2023
-
-
Andrew Heather authored
STYLE: checkMesh - removed writeChecks uppercase JSON option
-
- the hooks are defined as weak symbols and are compiled into OpenFOAM by default. If the library is not loaded (via LD_PRELOAD) the hooks have no effect. - https://tools.bsc.es/extrae - https://tools.bsc.es/paraver
-
- Dec 18, 2023
-
-
The solution of the QP subproblem can become quite expensive, especially for cases with many design variables (e.g. topology optimisation). A (potentially dense) matrix with the size of the design variables is solved using a matrix-free CG solver. The convergence speed greatly depends on the used preconditioner. This commit adds preconditioner-vector products based on the L-BFGS inverse Hessian and, more importantly, a preconditioner computed using the Sherman-Morrison formula. The latter is applicable here since the LHS of the QP problem is computed as the sum of rank-2 L-BFGS updates, a sum of rank-1 updates (as many as the flow-related constraints) and a diagonal matrix depending on the bound constraints. Additionally, the QP subproblem could have no feasible points. To relax this, constraints can be applied gradually through the targetConstraintReduction enty (typical value of 0.1 for topology optimisation).
-
properly for continuation (written through SubField instead of Field)
-
whenever refering to topology optimisation.
-
-
(aTilda) in topology optimisation can now be provided through the 'wallValue' in the regularisation dictionary (defaults to 1)
-
runs can now be written to files using the 'writeAllFields' flag in the designVariables dictionary (defaults to false)
-
instead of targetPercentages, with a compatibility read on the latter. Changed corresponding tutorials too.
-
to keep the regularised design variables and the signed distance in different fields
-
of the STL written by topology optimisation. BUG: when determining which mesh faces are cut by iso-surface faces, only append the latter if it contains more than two points
-
of the objective and constraint gradients in MMA, at a specific optimisation cycle
-
by a small amount, if all of them lay on the lower or upper bounds at the beginning of the optimisation, to avoid singular matrices when computing the update of the design variables.
-
based on phi, instead of U & Sf
-
-
-
and the Jacobian of the objective function wrt the turbulence variables is called (rare/unorthodox case). Additionally, objectivePowerDissipation dissipation can now be used in topology optimisation, adding the necessary blockage dependency to it.
-
- Building the iso-surface spliting fluid and solid parts in topology optimisation has been re-worked to obtain an iso-surface with unique point numbering - The mechanism behind marchingCells for dynamicTopODesignVariables has been slightly reworked
-
based on the product of the Reynolds and Darcy numbers
-
-
The derivatives of the objective and constraint functions can optionally be normalised in each optimisation cycle, so that MMA does not put an excesive stress on the constraints, which can negatively affect the course of the optimisation
-
- Minor code style - virtual functions - added some noexcept
-
-
-
-
Both porosity-based and level-set-based topO frameworks are included through the topO and levelSet designVariables, respectively. Both frameworks work by manipulating an underlying field of design variables, defined in all cells of the computational domain. That field is then regularised through a Helmholtz-like filter, before being processed in a different way from the two topO frameworks (the porosity-based topO sharpens/projects it while the level-set-based topO computes signed distances around its zero iso-surface). The result of this processing is then fed into functions that define source terms to be added to the mean flow and turbulence model equations, to block off/solidify parts of the mesh that are counterproductive with respect to the objective function. These source terms are added through fvOptions. Since the designed walls are only simulated through source terms, the outcome of topO should be re-analyzed on a body-fitted grid, to quantify the actual gain in the objective function. Both topO frameworks output the designed wall in STL format which can be used, for instance with snappyHexMesh, to construct such a body fitted grid.
-