From 3cd2b2c692879828b0d60b0fdf0f406731c08655 Mon Sep 17 00:00:00 2001 From: Vaggelis Papoutsis Date: Mon, 4 Dec 2023 16:04:50 +0200 Subject: [PATCH] ENH: The (final) sensitivities involved in topology optimisation runs can now be written to files using the 'writeAllFields' flag in the designVariables dictionary (defaults to false) --- .../topODesignVariables/topODesignVariables.C | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topODesignVariables.C b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topODesignVariables.C index 21e03e3450..2cd39b1fe7 100644 --- a/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topODesignVariables.C +++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/designVariables/topODesignVariables/topODesignVariables.C @@ -488,6 +488,26 @@ Foam::tmp Foam::topODesignVariables::assembleSensitivities // Add part due to regularisation and projection regularisation_.postProcessSens(objectiveSens); + // Write final sensitivities field + if (writeAllFields_ && mesh_.time().writeTime()) + { + volScalarField sens + ( + IOobject + ( + "topOSens" + adjointSens.getAdjointSolver().solverName(), + mesh_.time().timeName(), + mesh_, + IOobject::NO_READ, + IOobject::NO_WRITE + ), + mesh_, + dimensionedScalar(dimless, Zero) + ); + sens.primitiveFieldRef() = objectiveSens; + sens.write(); + } + return tobjectiveSens; }