From cf36a5de3cf1007595429bf14c5699d8c68cd431 Mon Sep 17 00:00:00 2001 From: Henry Weller Date: Mon, 25 May 2020 11:08:59 +0100 Subject: [PATCH] solidDisplacementFoam: Correct handling of the re-reading of the controls when the fvSolution file is changed during the run Resolves bug-report https://bugs.openfoam.org/view.php?id=3498 --- .../readSolidDisplacementFoamControls.H | 11 ++++++++--- .../solidEquilibriumDisplacementFoam/createControls.H | 1 - .../readSteadyStressFoamControls.H | 6 +++++- .../solidEquilibriumDisplacementFoam.C | 3 +-- 4 files changed, 14 insertions(+), 7 deletions(-) delete mode 100644 applications/solvers/stressAnalysis/solidDisplacementFoam/solidEquilibriumDisplacementFoam/createControls.H diff --git a/applications/solvers/stressAnalysis/solidDisplacementFoam/readSolidDisplacementFoamControls.H b/applications/solvers/stressAnalysis/solidDisplacementFoam/readSolidDisplacementFoamControls.H index 4caa2d3518..79c395806e 100644 --- a/applications/solvers/stressAnalysis/solidDisplacementFoam/readSolidDisplacementFoamControls.H +++ b/applications/solvers/stressAnalysis/solidDisplacementFoam/readSolidDisplacementFoamControls.H @@ -1,3 +1,8 @@ -nCorr = stressControl.lookupOrDefault("nCorrectors", 1); -convergenceTolerance = stressControl.lookup("D"); -stressControl.lookup("compactNormalStress") >> compactNormalStress; +{ + const dictionary& stressControl = + mesh.solutionDict().subDict("stressAnalysis"); + + nCorr = stressControl.lookupOrDefault("nCorrectors", 1); + convergenceTolerance = stressControl.lookup("D"); + stressControl.lookup("compactNormalStress") >> compactNormalStress; +} diff --git a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidEquilibriumDisplacementFoam/createControls.H b/applications/solvers/stressAnalysis/solidDisplacementFoam/solidEquilibriumDisplacementFoam/createControls.H deleted file mode 100644 index 95d74370cc..0000000000 --- a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidEquilibriumDisplacementFoam/createControls.H +++ /dev/null @@ -1 +0,0 @@ -const dictionary& stressControl = mesh.solutionDict().subDict("stressAnalysis"); diff --git a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidEquilibriumDisplacementFoam/readSteadyStressFoamControls.H b/applications/solvers/stressAnalysis/solidDisplacementFoam/solidEquilibriumDisplacementFoam/readSteadyStressFoamControls.H index 69e15ba4ee..e695c2ee5a 100644 --- a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidEquilibriumDisplacementFoam/readSteadyStressFoamControls.H +++ b/applications/solvers/stressAnalysis/solidDisplacementFoam/solidEquilibriumDisplacementFoam/readSteadyStressFoamControls.H @@ -1 +1,5 @@ -scalar accFac(stressControl.lookup("accelerationFactor")); +const scalar accFac +( + mesh.solutionDict().subDict("stressAnalysis") + .lookup("accelerationFactor") +); diff --git a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidEquilibriumDisplacementFoam/solidEquilibriumDisplacementFoam.C b/applications/solvers/stressAnalysis/solidDisplacementFoam/solidEquilibriumDisplacementFoam/solidEquilibriumDisplacementFoam.C index 19587106d0..a5f9afbf79 100644 --- a/applications/solvers/stressAnalysis/solidDisplacementFoam/solidEquilibriumDisplacementFoam/solidEquilibriumDisplacementFoam.C +++ b/applications/solvers/stressAnalysis/solidDisplacementFoam/solidEquilibriumDisplacementFoam/solidEquilibriumDisplacementFoam.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2011-2019 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2020 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -48,7 +48,6 @@ int main(int argc, char *argv[]) #include "setRootCaseLists.H" #include "createTime.H" #include "createMesh.H" - #include "createControls.H" #include "createFields.H" #include "createFieldRefs.H"