diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/optimisationType/incompressible/optimisationType/optimisationTypeIncompressible.C b/src/optimisation/adjointOptimisation/adjoint/optimisation/optimisationType/incompressible/optimisationType/optimisationTypeIncompressible.C index 3a1097825a..dbbb2ee4c4 100644 --- a/src/optimisation/adjointOptimisation/adjoint/optimisation/optimisationType/incompressible/optimisationType/optimisationTypeIncompressible.C +++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/optimisationType/incompressible/optimisationType/optimisationTypeIncompressible.C @@ -175,9 +175,6 @@ void optimisationType::update() void optimisationType::update(scalarField& direction) { - // Compute eta if needed - computeEta(direction); - // Multiply with line search step, if necessary scalarField correction(direction); if (lineSearch_) @@ -218,6 +215,9 @@ tmp optimisationType::computeDirection() scalarField& correction = tcorrection.ref(); correction = updateMethod_->returnCorrection(); + // Compute eta if needed + computeEta(correction); + return tcorrection; } diff --git a/src/optimisation/adjointOptimisation/adjoint/optimisation/updateMethod/updateMethod/updateMethod.C b/src/optimisation/adjointOptimisation/adjoint/optimisation/updateMethod/updateMethod/updateMethod.C index 2b9b085119..5c3fef24a9 100644 --- a/src/optimisation/adjointOptimisation/adjoint/optimisation/updateMethod/updateMethod/updateMethod.C +++ b/src/optimisation/adjointOptimisation/adjoint/optimisation/updateMethod/updateMethod/updateMethod.C @@ -376,7 +376,7 @@ Foam::scalar Foam::updateMethod::computeMeritFunction() Foam::scalar Foam::updateMethod::meritFunctionDirectionalDerivative() { - return sum(objectiveDerivatives_*correction_); + return globalSum(objectiveDerivatives_*correction_); } diff --git a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/NURBS3DVolume/NURBS3DVolume.C b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/NURBS3DVolume/NURBS3DVolume.C index fcbb9f8ed5..3187585eb5 100644 --- a/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/NURBS3DVolume/NURBS3DVolume.C +++ b/src/optimisation/adjointOptimisation/adjoint/parameterization/NURBS/NURBS3DVolume/NURBS3DVolume/NURBS3DVolume.C @@ -1828,31 +1828,28 @@ void Foam::NURBS3DVolume::writeCps void Foam::NURBS3DVolume::writeCpsInDict() const { - if (Pstream::master()) - { - IOdictionary cpsDict + IOdictionary cpsDict + ( + IOobject ( - IOobject - ( - name_ + "cpsBsplines" + mesh_.time().timeName(), - mesh_.time().caseConstant(), - cpsFolder_, - mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE, - false - ) - ); + name_ + "cpsBsplines" + mesh_.time().timeName(), + mesh_.time().caseConstant(), + cpsFolder_, + mesh_, + IOobject::NO_READ, + IOobject::NO_WRITE, + false + ) + ); - cpsDict.add("controlPoints", cps_); + cpsDict.add("controlPoints", cps_); - // Always write in ASCII, but allow compression - cpsDict.regIOobject::writeObject - ( - IOstreamOption(IOstream::ASCII, mesh_.time().writeCompression()), - true - ); - } + // Always write in ASCII, but allow compression + cpsDict.regIOobject::writeObject + ( + IOstreamOption(IOstream::ASCII, mesh_.time().writeCompression()), + true + ); }