From aac13971fb0a7ec5dd81de82426e5fbe1559a8d6 Mon Sep 17 00:00:00 2001 From: ignis Date: Mon, 14 Mar 2016 00:18:41 +0900 Subject: [PATCH] plasmaReactingFoam own copy of readTimeControls.H and setDeltaT.H --- .../plasmaReactingFoam/readTimeControls.H | 41 +++++++++++++++ .../combustion/plasmaReactingFoam/setDeltaT.H | 51 +++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 applications/solvers/combustion/plasmaReactingFoam/readTimeControls.H create mode 100644 applications/solvers/combustion/plasmaReactingFoam/setDeltaT.H diff --git a/applications/solvers/combustion/plasmaReactingFoam/readTimeControls.H b/applications/solvers/combustion/plasmaReactingFoam/readTimeControls.H new file mode 100644 index 00000000..60f0ed70 --- /dev/null +++ b/applications/solvers/combustion/plasmaReactingFoam/readTimeControls.H @@ -0,0 +1,41 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Global + readTimeControls + +Description + Read the control parameters used by setDeltaT + +\*---------------------------------------------------------------------------*/ + +const bool adjustTimeStep = + runTime.controlDict().lookupOrDefault("adjustTimeStep", false); + +scalar maxCo = + runTime.controlDict().lookupOrDefault("maxCo", 1.0); + +scalar maxDeltaT = + runTime.controlDict().lookupOrDefault("maxDeltaT", GREAT); + +// ************************************************************************* // diff --git a/applications/solvers/combustion/plasmaReactingFoam/setDeltaT.H b/applications/solvers/combustion/plasmaReactingFoam/setDeltaT.H new file mode 100644 index 00000000..ef453d89 --- /dev/null +++ b/applications/solvers/combustion/plasmaReactingFoam/setDeltaT.H @@ -0,0 +1,51 @@ +/*---------------------------------------------------------------------------*\ + ========= | + \\ / F ield | OpenFOAM: The Open Source CFD Toolbox + \\ / O peration | + \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\/ M anipulation | +------------------------------------------------------------------------------- +License + This file is part of OpenFOAM. + + OpenFOAM is free software: you can redistribute it and/or modify it + under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + OpenFOAM is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + for more details. + + You should have received a copy of the GNU General Public License + along with OpenFOAM. If not, see . + +Global + setDeltaT + +Description + Reset the timestep to maintain a constant maximum courant Number. + Reduction of time-step is immediate, but increase is damped to avoid + unstable oscillations. + +\*---------------------------------------------------------------------------*/ + +if (adjustTimeStep) +{ + scalar maxDeltaTFact = maxCo/(CoNum + SMALL); + scalar deltaTFact = min(min(maxDeltaTFact, 1.0 + 0.1*maxDeltaTFact), 1.2); + + runTime.setDeltaT + ( + min + ( + deltaTFact*runTime.deltaTValue(), + maxDeltaT + ) + ); + + Info<< "deltaT = " << runTime.deltaTValue() << endl; +} + +// ************************************************************************* //