diff --git a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C index b3412b0555..8e0b2bbfc3 100644 --- a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C +++ b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2012-2015 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -149,10 +149,9 @@ Foam::scalarTransport::scalarTransport : name_(name), mesh_(refCast(obr)), - active_(true), - phiName_("phi"), - UName_("U"), - rhoName_("rho"), + phiName_(dict.lookupOrDefault("phiName", "phi")), + UName_(dict.lookupOrDefault("UName", "U")), + rhoName_(dict.lookupOrDefault("rhoName", "rho")), DT_(0.0), userDT_(false), resetOnStartUp_(false), @@ -193,137 +192,124 @@ Foam::scalarTransport::~scalarTransport() void Foam::scalarTransport::read(const dictionary& dict) { - if (active_) + Info<< type() << ":" << nl; + + phiName_ = dict.lookupOrDefault("phiName", "phi"); + UName_ = dict.lookupOrDefault("UName", "U"); + rhoName_ = dict.lookupOrDefault("rhoName", "rho"); + + userDT_ = false; + if (dict.readIfPresent("DT", DT_)) { - Info<< type() << ":" << nl; - - phiName_ = dict.lookupOrDefault("phiName", "phi"); - UName_ = dict.lookupOrDefault("UName", "U"); - rhoName_ = dict.lookupOrDefault("rhoName", "rho"); - - userDT_ = false; - if (dict.readIfPresent("DT", DT_)) - { - userDT_ = true; - } - - dict.lookup("resetOnStartUp") >> resetOnStartUp_; - - dict.readIfPresent("nCorr", nCorr_); - - dict.lookup("autoSchemes") >> autoSchemes_; - - fvOptions_.reset(dict.subDict("fvOptions")); + userDT_ = true; } + + dict.lookup("resetOnStartUp") >> resetOnStartUp_; + + dict.readIfPresent("nCorr", nCorr_); + + dict.lookup("autoSchemes") >> autoSchemes_; + + fvOptions_.reset(dict.subDict("fvOptions")); } void Foam::scalarTransport::execute() { - if (active_) + Info<< type() << " output:" << endl; + + const surfaceScalarField& phi = + mesh_.lookupObject(phiName_); + + // calculate the diffusivity + volScalarField DT(this->DT(phi)); + + // set schemes + word schemeVar = T_.name(); + if (autoSchemes_) { - Info<< type() << " output:" << endl; - - const surfaceScalarField& phi = - mesh_.lookupObject(phiName_); - - // calculate the diffusivity - volScalarField DT(this->DT(phi)); - - // set schemes - word schemeVar = T_.name(); - if (autoSchemes_) - { - schemeVar = UName_; - } - - word divScheme("div(phi," + schemeVar + ")"); - word laplacianScheme("laplacian(" + DT.name() + "," + schemeVar + ")"); - - // set under-relaxation coeff - scalar relaxCoeff = 0.0; - if (mesh_.relaxEquation(schemeVar)) - { - relaxCoeff = mesh_.equationRelaxationFactor(schemeVar); - } - - if (phi.dimensions() == dimMass/dimTime) - { - const volScalarField& rho = - mesh_.lookupObject(rhoName_); - - // solve - for (label i = 0; i <= nCorr_; i++) - { - fvScalarMatrix TEqn - ( - fvm::ddt(rho, T_) - + fvm::div(phi, T_, divScheme) - - fvm::laplacian(DT, T_, laplacianScheme) - == - fvOptions_(rho, T_) - ); - - TEqn.relax(relaxCoeff); - - fvOptions_.constrain(TEqn); - - TEqn.solve(mesh_.solverDict(schemeVar)); - } - } - else if (phi.dimensions() == dimVolume/dimTime) - { - // solve - for (label i = 0; i <= nCorr_; i++) - { - fvScalarMatrix TEqn - ( - fvm::ddt(T_) - + fvm::div(phi, T_, divScheme) - - fvm::laplacian(DT, T_, laplacianScheme) - == - fvOptions_(T_) - ); - - TEqn.relax(relaxCoeff); - - fvOptions_.constrain(TEqn); - - TEqn.solve(mesh_.solverDict(schemeVar)); - } - } - else - { - FatalErrorInFunction - << "Incompatible dimensions for phi: " << phi.dimensions() << nl - << "Dimensions should be " << dimMass/dimTime << " or " - << dimVolume/dimTime << endl; - } - - Info<< endl; + schemeVar = UName_; } + + word divScheme("div(phi," + schemeVar + ")"); + word laplacianScheme("laplacian(" + DT.name() + "," + schemeVar + ")"); + + // set under-relaxation coeff + scalar relaxCoeff = 0.0; + if (mesh_.relaxEquation(schemeVar)) + { + relaxCoeff = mesh_.equationRelaxationFactor(schemeVar); + } + + if (phi.dimensions() == dimMass/dimTime) + { + const volScalarField& rho = + mesh_.lookupObject(rhoName_); + + // solve + for (label i = 0; i <= nCorr_; i++) + { + fvScalarMatrix TEqn + ( + fvm::ddt(rho, T_) + + fvm::div(phi, T_, divScheme) + - fvm::laplacian(DT, T_, laplacianScheme) + == + fvOptions_(rho, T_) + ); + + TEqn.relax(relaxCoeff); + + fvOptions_.constrain(TEqn); + + TEqn.solve(mesh_.solverDict(schemeVar)); + } + } + else if (phi.dimensions() == dimVolume/dimTime) + { + // solve + for (label i = 0; i <= nCorr_; i++) + { + fvScalarMatrix TEqn + ( + fvm::ddt(T_) + + fvm::div(phi, T_, divScheme) + - fvm::laplacian(DT, T_, laplacianScheme) + == + fvOptions_(T_) + ); + + TEqn.relax(relaxCoeff); + + fvOptions_.constrain(TEqn); + + TEqn.solve(mesh_.solverDict(schemeVar)); + } + } + else + { + FatalErrorInFunction + << "Incompatible dimensions for phi: " << phi.dimensions() << nl + << "Dimensions should be " << dimMass/dimTime << " or " + << dimVolume/dimTime << endl; + } + + Info<< endl; } void Foam::scalarTransport::end() { - if (active_) - { - execute(); - } + execute(); } void Foam::scalarTransport::timeSet() -{ - // Do nothing -} +{} void Foam::scalarTransport::write() -{ - // Do nothing -} +{} // ************************************************************************* // diff --git a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H index 3006ca197d..8ba8c9ce2c 100644 --- a/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H +++ b/src/postProcessing/functionObjects/utilities/scalarTransport/scalarTransport.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2012-2016 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -78,9 +78,6 @@ class scalarTransport //- Reference to the mesh database const fvMesh& mesh_; - //- On/off switch - bool active_; - //- Name of flux field (optional) word phiName_;