diff --git a/src/OpenFOAM/db/Time/TimeIO.C b/src/OpenFOAM/db/Time/TimeIO.C index fc6ac5d723eb46811781aa23c3ace56726644563..b40552da930d5ad1451b539bab7c8c3923a734cb 100644 --- a/src/OpenFOAM/db/Time/TimeIO.C +++ b/src/OpenFOAM/db/Time/TimeIO.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -26,6 +26,7 @@ License #include "Time.H" #include "Pstream.H" #include "simpleObjectRegistry.H" +#include "dimensionedConstants.H" // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // @@ -45,54 +46,42 @@ void Foam::Time::readDict() // Debug switches if (controlDict_.found("DebugSwitches")) { + Info<< "Overriding DebugSwitches according to " << controlDict_.name() + << endl; + simpleObjectRegistry& objects = debug::debugObjects(); const dictionary& localSettings = controlDict_.subDict("DebugSwitches"); forAllConstIter(dictionary, localSettings, iter) { const word& name = iter().keyword(); - simpleObjectRegistry::iterator fnd = objects.find(name); - if (fnd != objects.end()) + + simpleRegIOobject* objPtr = objects.lookupPtr(name); + + if (objPtr) { - Info<< controlDict_.name() << " : overriding debug switch : " - << iter() << endl; + Info<< " " << iter() << endl; if (iter().isDict()) { OStringStream os(IOstream::ASCII); os << iter().dict(); IStringStream is(os.str()); - fnd()->readData(is); + objPtr->readData(is); } else { - fnd()->readData(iter().stream()); + objPtr->readData(iter().stream()); } } } } - // Dimension sets - if (controlDict_.found("DimensionSets")) - { - dictionary dict(Foam::dimensionSystems()); - dict.merge(controlDict_.subDict("DimensionSets")); - - simpleObjectRegistry& objects = debug::dimensionSetObjects(); - simpleObjectRegistry::iterator fnd = objects.find("DimensionSets"); - if (fnd != objects.end()) - { - Info<< controlDict_.name() << " : overriding DimensionSets" << endl; - - OStringStream os(IOstream::ASCII); - os << dict; - IStringStream is(os.str()); - fnd()->readData(is); - } - } - // Optimisation Switches if (controlDict_.found("OptimisationSwitches")) { + Info<< "Overriding OptimisationSwitches according to " + << controlDict_.name() << endl; + simpleObjectRegistry& objects = debug::optimisationObjects(); const dictionary& localSettings = controlDict_.subDict ( @@ -101,28 +90,192 @@ void Foam::Time::readDict() forAllConstIter(dictionary, localSettings, iter) { const word& name = iter().keyword(); - simpleObjectRegistry::iterator fnd = objects.find(name); - if (fnd != objects.end()) + + simpleRegIOobject* objPtr = objects.lookupPtr(name); + + if (objPtr) { - Info<< controlDict_.name() - << " : overriding optimisation switch : " << iter() << endl; + Info<< " " << iter() << endl; if (iter().isDict()) { OStringStream os(IOstream::ASCII); os << iter().dict(); IStringStream is(os.str()); - fnd()->readData(is); + objPtr->readData(is); } else { - fnd()->readData(iter().stream()); + objPtr->readData(iter().stream()); } } } } + // DimensionedConstants. Handled as a special case since both e.g. + // the 'unitSet' might be changed and the individual values + if (controlDict_.found("DimensionedConstants")) + { + Info<< "Overriding DimensionedConstants according to " + << controlDict_.name() << endl; + + // Change in-memory + dimensionedConstants().merge + ( + controlDict_.subDict("DimensionedConstants") + ); + + + simpleObjectRegistry& objects = debug::dimensionedConstantObjects(); + + IStringStream dummyIs(""); + + forAllConstIter(simpleObjectRegistry, objects, iter) + { + iter()->readData(dummyIs); + + Info<< " "; + iter()->writeData(Info); + Info<< endl; + } + } + + + + //{ + // // fundamentalConstants.C + // Info<< "constant::universal::hr:" + // << Foam::constant::universal::hr + // << endl; + // Info<< "constant::universal::c:" + // << Foam::constant::universal::c + // << endl; + // Info<< "constant::universal::G:" + // << Foam::constant::universal::G + // << endl; + // Info<< "constant::universal::h:" + // << Foam::constant::universal::h + // << endl; + // Info<< "constant::electromagnetic::e:" + // << Foam::constant::electromagnetic::e + // << endl; + // Info<< "constant::atomic::me:" + // << Foam::constant::atomic::me + // << endl; + // Info<< "constant::atomic::mp:" + // << Foam::constant::atomic::mp + // << endl; + // Info<< "constant::physicoChemical::mu:" + // << Foam::constant::physicoChemical::mu + // << endl; + // Info<< "constant::physicoChemical::NA:" + // << Foam::constant::physicoChemical::NA + // << endl; + // Info<< "constant::physicoChemical::k:" + // << Foam::constant::physicoChemical::k + // << endl; + // Info<< "constant::standard::Pstd:" + // << Foam::constant::standard::Pstd + // << endl; + // Info<< "constant::standard::Tstd:" + // << Foam::constant::standard::Tstd + // << endl; + // + // // universalConstants.C + // Info<< "constant::universal::hr:" + // << Foam::constant::universal::hr + // << endl; + // + // // electromagneticConstants.C + // Info<< "constant::electromagnetic::mu0:" + // << Foam::constant::electromagnetic::mu0 + // << endl; + // Info<< "constant::electromagnetic::epsilon0:" + // << Foam::constant::electromagnetic::epsilon0 + // << endl; + // Info<< "constant::electromagnetic::Z0:" + // << Foam::constant::electromagnetic::Z0 + // << endl; + // Info<< "constant::electromagnetic::kappa:" + // << Foam::constant::electromagnetic::kappa + // << endl; + // Info<< "constant::electromagnetic::G0:" + // << Foam::constant::electromagnetic::G0 + // << endl; + // Info<< "constant::electromagnetic::KJ:" + // << Foam::constant::electromagnetic::KJ + // << endl; + // Info<< "constant::electromagnetic::RK:" + // << Foam::constant::electromagnetic::RK + // << endl; + // + // + // // atomicConstants.C + // Info<< "constant::atomic::alpha:" + // << Foam::constant::atomic::alpha + // << endl; + // Info<< "constant::atomic::Rinf:" + // << Foam::constant::atomic::Rinf + // << endl; + // Info<< "constant::atomic::a0:" + // << Foam::constant::atomic::a0 + // << endl; + // Info<< "constant::physiatomic::re:" + // << Foam::constant::atomic::re + // << endl; + // Info<< "constant::atomic::Eh:" + // << Foam::constant::atomic::Eh + // << endl; + // + // + // // physicoChemicalConstants.C + // Info<< "constant::physicoChemical::R:" + // << Foam::constant::physicoChemical::R + // << endl; + // Info<< "constant::physicoChemical::F:" + // << Foam::constant::physicoChemical::F + // << endl; + // Info<< "constant::physicoChemical::sigma:" + // << Foam::constant::physicoChemical::sigma + // << endl; + // Info<< "constant::physicoChemical::b:" + // << Foam::constant::physicoChemical::b + // << endl; + // Info<< "constant::physicoChemical::c1:" + // << Foam::constant::physicoChemical::c1 + // << endl; + // Info<< "constant::physicoChemical::c2:" + // << Foam::constant::physicoChemical::c2 + // << endl; + //} + + + // Dimension sets + if (controlDict_.found("DimensionSets")) + { + Info<< "Overriding DimensionSets according to " + << controlDict_.name() << endl; + + dictionary dict(Foam::dimensionSystems()); + dict.merge(controlDict_.subDict("DimensionSets")); + + simpleObjectRegistry& objects = debug::dimensionSetObjects(); + + simpleRegIOobject* objPtr = objects.lookupPtr("DimensionSets"); + + if (objPtr) + { + Info<< controlDict_.subDict("DimensionSets") << endl; + + OStringStream os(IOstream::ASCII); + os << dict; + IStringStream is(os.str()); + objPtr->readData(is); + } + } + + if (!deltaTchanged_) { diff --git a/src/OpenFOAM/global/constants/atomic/atomicConstants.C b/src/OpenFOAM/global/constants/atomic/atomicConstants.C index f6af6660d4bb420ac0047cf7ecca41e4cfab7e6e..eaa9f18f6bd5455e3d34ff816bfa090d568d3c39 100644 --- a/src/OpenFOAM/global/constants/atomic/atomicConstants.C +++ b/src/OpenFOAM/global/constants/atomic/atomicConstants.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -32,100 +32,107 @@ License // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -const char* const Foam::constant::atomic::group = "atomic"; +namespace Foam +{ +namespace constant +{ +const char* const atomic::group = "atomic"; -const Foam::dimensionedScalar Foam::constant::atomic::alpha + +defineDimensionedConstantWithDefault ( - dimensionedConstant + atomic::group, + atomic::alpha, + dimensionedScalar ( - group, "alpha", - dimensionedScalar - ( - "alpha", - sqr(constant::electromagnetic::e) - /( - dimensionedScalar("C", dimless, 2.0) - *constant::electromagnetic::epsilon0 - *constant::universal::h - *constant::universal::c - ) + sqr(electromagnetic::e) + /( + dimensionedScalar("C", dimless, 2.0) + *electromagnetic::epsilon0 + *universal::h + *universal::c ) - ) + ), + constantatomicalpha, + "alpha" ); -const Foam::dimensionedScalar Foam::constant::atomic::Rinf +defineDimensionedConstantWithDefault ( - dimensionedConstant + atomic::group, + atomic::Rinf, + dimensionedScalar ( - group, "Rinf", - dimensionedScalar - ( - "Rinf", - sqr(alpha)*me*constant::universal::c - /(dimensionedScalar("C", dimless, 2.0)*constant::universal::h) - ) - ) + sqr(atomic::alpha) + *atomic::me + *universal::c + /(Foam::dimensionedScalar("C", Foam::dimless, 2.0)*universal::h) + ), + constantatomicRinf, + "Rinf" ); -const Foam::dimensionedScalar Foam::constant::atomic::a0 +defineDimensionedConstantWithDefault ( - dimensionedConstant + atomic::group, + atomic::a0, + dimensionedScalar ( - group, "a0", - dimensionedScalar - ( - "a0", - alpha - /( - dimensionedScalar("C", dimless, 4.0*constant::mathematical::pi) - *Rinf - ) + atomic::alpha + /( + Foam::dimensionedScalar("C", Foam::dimless, 4.0*mathematical::pi) + *atomic::Rinf ) - ) + ), + constantatomica0, + "a0" ); -const Foam::dimensionedScalar Foam::constant::atomic::re +defineDimensionedConstantWithDefault ( - dimensionedConstant + atomic::group, + atomic::re, + dimensionedScalar ( - group, "re", - dimensionedScalar - ( - "re", - sqr(constant::electromagnetic::e) - /( - dimensionedScalar("C", dimless, 4.0*constant::mathematical::pi) - *constant::electromagnetic::epsilon0 - *me - *sqr(constant::universal::c) - ) + Foam::sqr(electromagnetic::e) + /( + Foam::dimensionedScalar("C", Foam::dimless, 4.0*mathematical::pi) + *electromagnetic::epsilon0 + *atomic::me + *Foam::sqr(universal::c) ) - ) + ), + constantatomicre, + "re" ); -const Foam::dimensionedScalar Foam::constant::atomic::Eh +defineDimensionedConstantWithDefault ( - dimensionedConstant + atomic::group, + atomic::Eh, + dimensionedScalar ( - group, "Eh", - dimensionedScalar - ( - "Eh", - dimensionedScalar("C", dimless, 2.0) - *Rinf*constant::universal::h*constant::universal::c - ) - ) + Foam::dimensionedScalar("C", Foam::dimless, 2.0) + *atomic::Rinf*universal::h*universal::c + ), + constantatomicEh, + "Eh" ); +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace constant +} // End namespace Foam + // ************************************************************************* // diff --git a/src/OpenFOAM/global/constants/constants.C b/src/OpenFOAM/global/constants/constants.C index 94eb57cffd344f2482924259a8209c9be3e707bf..202855d8d2bfaad8ea3bed3721c066ef55e05b08 100644 --- a/src/OpenFOAM/global/constants/constants.C +++ b/src/OpenFOAM/global/constants/constants.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -28,7 +28,7 @@ License // Constants supplied in the main controlDict #include "fundamentalConstants.C" -// Derived constants +// Derived constants. Note:order is important #include "universalConstants.C" #include "electromagneticConstants.C" #include "atomicConstants.C" diff --git a/src/OpenFOAM/global/constants/dimensionedConstants.H b/src/OpenFOAM/global/constants/dimensionedConstants.H index 010addd4cf25c29370422f6edb857245a94d1018..188f755cac36b183653cdbec3718578bfd026e90 100644 --- a/src/OpenFOAM/global/constants/dimensionedConstants.H +++ b/src/OpenFOAM/global/constants/dimensionedConstants.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -92,6 +92,104 @@ T dimensionedConstant } +//- Defined dimensioned constant , lookup as \a Name +#define defineDimensionedConstant(Group,Switch,Tag,Name) \ + const Foam::dimensionedScalar Switch; \ + class add##Tag##ToDimensionedConstant \ + : \ + public Foam::simpleRegIOobject \ + { \ + public: \ + add##Tag##ToDimensionedConstant(const char* name) \ + : \ + Foam::simpleRegIOobject \ + (Foam::debug::addDimensionedConstantObject,name) \ + { \ + Foam::dimensionedScalar ds \ + ( \ + Foam::dimensionedConstant \ + ( \ + Group, \ + Name \ + ) \ + ); \ + Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&> \ + ( \ + Switch \ + ); \ + s.dimensions().reset(ds.dimensions()); \ + s = ds; \ + } \ + virtual ~add##Tag##ToDimensionedConstant() \ + {} \ + virtual void readData(Foam::Istream& is) \ + { \ + const_cast<Foam::dimensionedScalar&>(Switch) = \ + Foam::dimensionedConstant \ + ( \ + Group, \ + Name \ + ); \ + } \ + virtual void writeData(Foam::Ostream& os) const \ + { \ + os << Switch; \ + } \ + }; \ + add##Tag##ToDimensionedConstant add##Tag##ToDimensionedConstant_(Name) + + +//- Defined dimensioned constant with default , lookup as \a Name +#define defineDimensionedConstantWithDefault\ +(Group,Switch,DefaultExpr,Tag,Name) \ + const Foam::dimensionedScalar Switch; \ + class add##Tag##ToDimensionedConstantWithDefault \ + : \ + public Foam::simpleRegIOobject \ + { \ + public: \ + add##Tag##ToDimensionedConstantWithDefault(const char* name) \ + : \ + Foam::simpleRegIOobject \ + (Foam::debug::addDimensionedConstantObject,name) \ + { \ + Foam::dimensionedScalar ds \ + ( \ + Foam::dimensionedConstant \ + ( \ + Group, \ + Name, \ + Foam::dimensionedScalar(Name,DefaultExpr) \ + ) \ + ); \ + Foam::dimensionedScalar& s = const_cast<Foam::dimensionedScalar&> \ + ( \ + Switch \ + ); \ + s.dimensions().reset(ds.dimensions()); \ + s = ds; \ + } \ + virtual ~add##Tag##ToDimensionedConstantWithDefault() \ + {} \ + virtual void readData(Foam::Istream& is) \ + { \ + const_cast<Foam::dimensionedScalar&>(Switch) = \ + Foam::dimensionedConstant \ + ( \ + Group, \ + Name, \ + Foam::dimensionedScalar(Name,DefaultExpr) \ + ); \ + } \ + virtual void writeData(Foam::Ostream& os) const \ + { \ + os << Switch; \ + } \ + }; \ + add##Tag##ToDimensionedConstantWithDefault \ + add##Tag##ToDimensionedConstantWithDefault_(Name) + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace Foam diff --git a/src/OpenFOAM/global/constants/electromagnetic/electromagneticConstants.C b/src/OpenFOAM/global/constants/electromagnetic/electromagneticConstants.C index 4297e24f4c5bfa272db00781e2334ca87f991571..2237f78e98d9c17901266b7cea686f513fce5bf3 100644 --- a/src/OpenFOAM/global/constants/electromagnetic/electromagneticConstants.C +++ b/src/OpenFOAM/global/constants/electromagnetic/electromagneticConstants.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -32,135 +32,145 @@ License // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -const char* const Foam::constant::electromagnetic::group = "electromagnetic"; +namespace Foam +{ +namespace constant +{ +const char* const electromagnetic::group = "electromagnetic"; -const Foam::dimensionedScalar Foam::constant::electromagnetic::mu0 + +defineDimensionedConstantWithDefault ( - dimensionedConstant + electromagnetic::group, + electromagnetic::mu0, + dimensionedScalar ( - group, "mu0", - dimensionedScalar - ( - "mu0", - dimensionSet(1, 1, -2, 0, 0, -2, 0), - 4.0*constant::mathematical::pi*1e-07 - ) - ) + dimensionSet(1, 1, -2, 0, 0, -2, 0), + 4.0*mathematical::pi*1e-07 + ), + constantelectromagneticmu0, + "mu0" ); -const Foam::dimensionedScalar Foam::constant::electromagnetic::epsilon0 +defineDimensionedConstantWithDefault ( - dimensionedConstant + electromagnetic::group, + electromagnetic::epsilon0, + + dimensionedScalar ( - group, "epsilon0", - dimensionedScalar - ( - "epsilon0", - dimensionedScalar("C", dimless, 1.0) - /(mu0*sqr(constant::universal::c)) - ) - ) + dimensionedScalar("C", dimless, 1.0) + /(electromagnetic::mu0*sqr(universal::c)) + ), + constantelectromagneticepsilon0, + "epsilon0" ); -const Foam::dimensionedScalar Foam::constant::electromagnetic::Z0 +defineDimensionedConstantWithDefault ( - dimensionedConstant + electromagnetic::group, + electromagnetic::Z0, + dimensionedScalar ( - group, "Z0", - dimensionedScalar - ( - "Z0", - mu0*constant::universal::c - ) - ) + electromagnetic::mu0*universal::c + ), + constantelectromagneticZ0, + "Z0" ); -const Foam::dimensionedScalar Foam::constant::electromagnetic::kappa +defineDimensionedConstantWithDefault ( - dimensionedConstant + electromagnetic::group, + electromagnetic::kappa, + + dimensionedScalar ( - group, "kappa", dimensionedScalar ( - "kappa", - dimensionedScalar - ( - "C", - dimless, - 1.0/(4.0*constant::mathematical::pi) - ) - /epsilon0 + "C", + Foam::dimless, + 1.0/(4.0*mathematical::pi) ) - ) + /electromagnetic::epsilon0 + ), + + constantelectromagnetickappa, + "kappa" ); -const Foam::dimensionedScalar Foam::constant::electromagnetic::G0 +defineDimensionedConstantWithDefault ( - dimensionedConstant + electromagnetic::group, + electromagnetic::G0, + dimensionedScalar ( - group, "G0", - dimensionedScalar - ( - "G0", - dimensionedScalar("C", dimless, 2)*sqr(e)/constant::universal::h - ) - ) + dimensionedScalar("C", dimless, 2) + *sqr(electromagnetic::e) + /universal::h + ), + constantelectromagneticG0, + "G0" ); -const Foam::dimensionedScalar Foam::constant::electromagnetic::KJ +defineDimensionedConstantWithDefault ( - dimensionedConstant + electromagnetic::group, + electromagnetic::KJ, + dimensionedScalar ( - group, "KJ", - dimensionedScalar - ( - "KJ", - dimensionedScalar("C", dimless, 2)*e/constant::universal::h - ) - ) + dimensionedScalar("C", dimless, 2) + *electromagnetic::e + /universal::h + ), + constantelectromagneticKJ, + "KJ" ); -const Foam::dimensionedScalar Foam::constant::electromagnetic::phi0 +defineDimensionedConstantWithDefault ( - dimensionedConstant + electromagnetic::group, + electromagnetic::phi0, + dimensionedScalar ( - group, "phi0", - dimensionedScalar - ( - "phi0", - constant::universal::h/(dimensionedScalar("C", dimless, 2)*e) - ) - ) + universal::h + /(dimensionedScalar("C", dimless, 2)*electromagnetic::e) + ), + constantelectromagneticphi0, + "phi0" ); -const Foam::dimensionedScalar Foam::constant::electromagnetic::RK +defineDimensionedConstantWithDefault ( - dimensionedConstant + electromagnetic::group, + electromagnetic::RK, + dimensionedScalar ( - group, "RK", - dimensionedScalar - ( - "RK", - constant::universal::h/sqr(e) - ) - ) + universal::h/Foam::sqr(electromagnetic::e) + ), + constantelectromagneticRK, + "RK" ); +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace constant +} // End namespace Foam + // ************************************************************************* // diff --git a/src/OpenFOAM/global/constants/fundamental/fundamentalConstants.C b/src/OpenFOAM/global/constants/fundamental/fundamentalConstants.C index 3e85524f492ea260b51558d5737ceaed4607bd23..b51e8dc2d68e65408892b5fc6a5318415e0554b5 100644 --- a/src/OpenFOAM/global/constants/fundamental/fundamentalConstants.C +++ b/src/OpenFOAM/global/constants/fundamental/fundamentalConstants.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -39,89 +39,127 @@ Description // Universal constants -const Foam::dimensionedScalar Foam::constant::universal::c +namespace Foam +{ +namespace constant +{ + +defineDimensionedConstant ( - dimensionedConstant(universal::group, "c") + universal::group, + universal::c, + constantuniversalc, + "c" ); -const Foam::dimensionedScalar Foam::constant::universal::G +defineDimensionedConstant ( - dimensionedConstant(universal::group, "G") + universal::group, + universal::G, + constantuniversalG, + "G" ); -const Foam::dimensionedScalar Foam::constant::universal::h +defineDimensionedConstant ( - dimensionedConstant(universal::group, "h") + universal::group, + universal::h, + constantuniversalh, + "h" ); // Electromagnetic -const Foam::dimensionedScalar Foam::constant::electromagnetic::e +defineDimensionedConstant ( - dimensionedConstant(electromagnetic::group, "e") + electromagnetic::group, + electromagnetic::e, + constantelectromagnetice, + "e" ); // Atomic -const Foam::dimensionedScalar Foam::constant::atomic::me +defineDimensionedConstant ( - dimensionedConstant(atomic::group, "me") + atomic::group, + atomic::me, + constantatomicme, + "me" ); -const Foam::dimensionedScalar Foam::constant::atomic::mp +defineDimensionedConstant ( - dimensionedConstant(atomic::group, "mp") + atomic::group, + atomic::mp, + constantatomicmp, + "mp" ); // Physico-chemical -const Foam::dimensionedScalar Foam::constant::physicoChemical::mu +defineDimensionedConstant ( - dimensionedConstant(physicoChemical::group, "mu") + physicoChemical::group, + physicoChemical::mu, + constantphysicoChemicalmu, + "mu" ); -const Foam::dimensionedScalar Foam::constant::physicoChemical::NA +defineDimensionedConstantWithDefault ( -// dimensionedConstant(physicoChemical::group, "NA") - dimensionedConstant + physicoChemical::group, + physicoChemical::NA, + Foam::dimensionedScalar ( - physicoChemical::group, "NA", - dimensionedScalar - ( - "NA", - dimless/dimMoles, - 6.0221417930e+23 - ) - ) + Foam::dimless/Foam::dimMoles, + 6.0221417930e+23 + ), + constantphysicoChemicalNA, + "NA" ); -const Foam::dimensionedScalar Foam::constant::physicoChemical::k +defineDimensionedConstant ( - dimensionedConstant(physicoChemical::group, "k") + physicoChemical::group, + physicoChemical::k, + constantphysicoChemicalk, + "k" ); // Standard -const Foam::dimensionedScalar Foam::constant::standard::Pstd +defineDimensionedConstant ( - dimensionedConstant("standard", "Pstd") + "standard", + standard::Pstd, + constantstandardPstd, + "Pstd" ); -const Foam::dimensionedScalar Foam::constant::standard::Tstd +defineDimensionedConstant ( - dimensionedConstant("standard", "Tstd") + "standard", + standard::Tstd, + constantstandardTstd, + "Tstd" ); +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace constant +} // End namespace Foam + // ************************************************************************* // diff --git a/src/OpenFOAM/global/constants/physicoChemical/physicoChemicalConstants.C b/src/OpenFOAM/global/constants/physicoChemical/physicoChemicalConstants.C index 8cf5cfdb6f9fe14bcfbaeb9605190cf662011d0a..fe7520a9c545626d27a919fb7cd64da03852008c 100644 --- a/src/OpenFOAM/global/constants/physicoChemical/physicoChemicalConstants.C +++ b/src/OpenFOAM/global/constants/physicoChemical/physicoChemicalConstants.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -32,105 +32,109 @@ License // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -const char* const Foam::constant::physicoChemical::group = "physicoChemical"; +namespace Foam +{ +namespace constant +{ +const char* const physicoChemical::group = "physicoChemical"; -const Foam::dimensionedScalar Foam::constant::physicoChemical::R +defineDimensionedConstantWithDefault ( - dimensionedConstant + physicoChemical::group, + physicoChemical::R, + dimensionedScalar ( - group, "R", - dimensionedScalar - ( - "R", - NA*k - ) - ) + physicoChemical::NA*physicoChemical::k + ), + constantphysicoChemicalR, + "R" ); -const Foam::dimensionedScalar Foam::constant::physicoChemical::F +defineDimensionedConstantWithDefault ( - dimensionedConstant + physicoChemical::group, + physicoChemical::F, + dimensionedScalar ( - group, "F", - dimensionedScalar - ( - "F", - NA*constant::electromagnetic::e - ) - ) + physicoChemical::NA*electromagnetic::e + ), + constantphysicoChemicalF, + "F" ); -const Foam::dimensionedScalar Foam::constant::physicoChemical::sigma +defineDimensionedConstantWithDefault ( - dimensionedConstant + physicoChemical::group, + physicoChemical::sigma, + dimensionedScalar ( - group, "sigma", - dimensionedScalar + Foam::dimensionedScalar ( - "sigma", - dimensionedScalar - ( - "C", - dimless, - sqr(constant::mathematical::pi)/60.0 - ) - *pow4(k)/(pow3(constant::universal::hr)*sqr(constant::universal::c)) + "C", + Foam::dimless, + Foam::sqr(mathematical::pi)/60.0 ) - ) + *Foam::pow4(physicoChemical::k) + /(pow3(universal::hr)*sqr(universal::c)) + ), + constantphysicoChemicalsigma, + "sigma" ); -const Foam::dimensionedScalar Foam::constant::physicoChemical::b +defineDimensionedConstantWithDefault ( - dimensionedConstant + physicoChemical::group, + physicoChemical::b, + dimensionedScalar ( - group, "b", - dimensionedScalar - ( - "b", - (constant::universal::h*constant::universal::c/k) - /dimensionedScalar("C", dimless, 4.965114231) - ) - ) + (universal::h*universal::c/physicoChemical::k) + /Foam::dimensionedScalar("C", Foam::dimless, 4.965114231) + ), + constantphysicoChemicalb, + "b" ); -const Foam::dimensionedScalar Foam::constant::physicoChemical::c1 +defineDimensionedConstantWithDefault ( - dimensionedConstant + physicoChemical::group, + physicoChemical::c1, + dimensionedScalar ( - group, "c1", - dimensionedScalar - ( - "c1", - dimensionedScalar("C", dimless, constant::mathematical::twoPi) - *constant::universal::h*sqr(constant::universal::c) - ) - ) + Foam::dimensionedScalar("C", Foam::dimless, mathematical::twoPi) + *universal::h*Foam::sqr(universal::c) + ), + constantphysicoChemicalc1, + "c1" ); -const Foam::dimensionedScalar Foam::constant::physicoChemical::c2 +defineDimensionedConstantWithDefault ( - dimensionedConstant + physicoChemical::group, + physicoChemical::c2, + dimensionedScalar ( - group, "c2", - dimensionedScalar - ( - "c2", - constant::universal::h*constant::universal::c/k - ) - ) + universal::h*universal::c/physicoChemical::k + ), + constantphysicoChemicalc2, + "c2" ); +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace constant +} // End namespace Foam + // ************************************************************************* // diff --git a/src/OpenFOAM/global/constants/universal/universalConstants.C b/src/OpenFOAM/global/constants/universal/universalConstants.C index 32e5459181d39782a4c103b21b92031d6a464dd0..c5bb8d05e15e7852b1568da43257997c40be247e 100644 --- a/src/OpenFOAM/global/constants/universal/universalConstants.C +++ b/src/OpenFOAM/global/constants/universal/universalConstants.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -30,22 +30,32 @@ License // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // -const char* const Foam::constant::universal::group = "universal"; +namespace Foam +{ +namespace constant +{ +const char* const universal::group = "universal"; -const Foam::dimensionedScalar Foam::constant::universal::hr + +defineDimensionedConstantWithDefault ( - dimensionedConstant + "universal", + universal::hr, + dimensionedScalar ( - group, "hr", - dimensionedScalar - ( - "hr", - h/(dimensionedScalar("C", dimless, constant::mathematical::twoPi)) - ) - ) + universal::h + /(dimensionedScalar("C", dimless, mathematical::twoPi)) + ), + constantuniversalhr, + "hr" ); +// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // + +} // End namespace constant +} // End namespace Foam + // ************************************************************************* // diff --git a/src/OpenFOAM/global/debug/debug.C b/src/OpenFOAM/global/debug/debug.C index e704361970a344fa14a677c394041da530aebd1b..999b4cb292d2c794009f1efad50ee8ca255744b9 100644 --- a/src/OpenFOAM/global/debug/debug.C +++ b/src/OpenFOAM/global/debug/debug.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -69,6 +69,7 @@ simpleObjectRegistry* debugObjectsPtr_(NULL); simpleObjectRegistry* infoObjectsPtr_(NULL); simpleObjectRegistry* optimisationObjectsPtr_(NULL); simpleObjectRegistry* dimensionSetObjectsPtr_(NULL); +simpleObjectRegistry* dimensionedConstantObjectsPtr_(NULL); class deleteDebugSwitchPtr { public: @@ -82,6 +83,7 @@ public: deleteDemandDrivenData(infoObjectsPtr_); deleteDemandDrivenData(optimisationObjectsPtr_); deleteDemandDrivenData(dimensionSetObjectsPtr_); + deleteDemandDrivenData(dimensionedConstantObjectsPtr_); } }; @@ -190,7 +192,7 @@ int Foam::debug::optimisationSwitch(const char* name, const int defaultValue) void Foam::debug::addDebugObject(const char* name, simpleRegIOobject* obj) { - if (!debugObjects().insert(name, obj)) + debugObjects().append(name, obj); { //std::cerr<< "debug::addDebugObject : Duplicate entry " << name // << " in runtime selection table" @@ -202,7 +204,7 @@ void Foam::debug::addDebugObject(const char* name, simpleRegIOobject* obj) void Foam::debug::addInfoObject(const char* name, simpleRegIOobject* obj) { - if (!infoObjects().insert(name, obj)) + infoObjects().append(name, obj); { //std::cerr<< "debug::addInfoObject : Duplicate entry " << name // << " in runtime selection table" @@ -218,7 +220,7 @@ void Foam::debug::addOptimisationObject simpleRegIOobject* obj ) { - if (!optimisationObjects().insert(name, obj)) + optimisationObjects().append(name, obj); { //std::cerr<< "debug::addOptimisationObject : Duplicate entry " << name // << " in runtime selection table" @@ -234,7 +236,7 @@ void Foam::debug::addDimensionSetObject simpleRegIOobject* obj ) { - if (!dimensionSetObjects().insert(name, obj)) + dimensionSetObjects().append(name, obj); { //std::cerr<< "debug::addDimensionSetObject : Duplicate entry " << name // << " in runtime selection table" @@ -244,6 +246,23 @@ void Foam::debug::addDimensionSetObject } +void Foam::debug::addDimensionedConstantObject +( + const char* name, + simpleRegIOobject* obj +) +{ + dimensionedConstantObjects().append(name, obj); + { + //std::cerr<< "debug::addDimensionedConstantObject : Duplicate entry " + // << name + // << " in runtime selection table" + // << std::endl; + //error::safePrintStack(std::cerr); + } +} + + Foam::simpleObjectRegistry& Foam::debug::debugObjects() { if (!debugObjectsPtr_) @@ -259,7 +278,7 @@ Foam::simpleObjectRegistry& Foam::debug::infoObjects() { if (!infoObjectsPtr_) { - infoObjectsPtr_ = new simpleObjectRegistry(1000); + infoObjectsPtr_ = new simpleObjectRegistry(100); } return *infoObjectsPtr_; @@ -270,7 +289,7 @@ Foam::simpleObjectRegistry& Foam::debug::optimisationObjects() { if (!optimisationObjectsPtr_) { - optimisationObjectsPtr_ = new simpleObjectRegistry(1000); + optimisationObjectsPtr_ = new simpleObjectRegistry(100); } return *optimisationObjectsPtr_; @@ -281,13 +300,24 @@ Foam::simpleObjectRegistry& Foam::debug::dimensionSetObjects() { if (!dimensionSetObjectsPtr_) { - dimensionSetObjectsPtr_ = new simpleObjectRegistry(1000); + dimensionSetObjectsPtr_ = new simpleObjectRegistry(100); } return *dimensionSetObjectsPtr_; } +Foam::simpleObjectRegistry& Foam::debug::dimensionedConstantObjects() +{ + if (!dimensionedConstantObjectsPtr_) + { + dimensionedConstantObjectsPtr_ = new simpleObjectRegistry(100); + } + + return *dimensionedConstantObjectsPtr_; +} + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // diff --git a/src/OpenFOAM/global/debug/debug.H b/src/OpenFOAM/global/debug/debug.H index 09697c57a7f3b8f945a6d1095982238e97e16ae0..4eeb8cbb534fdce73c32d73f109cf145571c661d 100644 --- a/src/OpenFOAM/global/debug/debug.H +++ b/src/OpenFOAM/global/debug/debug.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -93,6 +93,9 @@ namespace debug //- Register DimensionSets read/write object void addDimensionSetObject(const char* name, simpleRegIOobject* obj); + //- Register DimensionedConstant read/write object + void addDimensionedConstantObject(const char* name, simpleRegIOobject*); + //- Get access to registered debug switch objects simpleObjectRegistry& debugObjects(); @@ -106,6 +109,8 @@ namespace debug //- Get access to registered dimensionSets switch objects simpleObjectRegistry& dimensionSetObjects(); + //- Get access to registered dimensionedConstant switch objects + simpleObjectRegistry& dimensionedConstantObjects(); } // End namespace debug diff --git a/src/OpenFOAM/global/debug/simpleObjectRegistry.H b/src/OpenFOAM/global/debug/simpleObjectRegistry.H index 61d0931f49cbd59353bab096b9264648fff6c235..9fe1e0b5b8f6473268e05e1c545dda3adc384265 100644 --- a/src/OpenFOAM/global/debug/simpleObjectRegistry.H +++ b/src/OpenFOAM/global/debug/simpleObjectRegistry.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2012-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -25,7 +25,7 @@ Class Foam::simpleObjectRegistry Description - Object registry for simpleRegIOobject + Object registry for simpleRegIOobject. Maintains ordering. SourceFiles @@ -34,7 +34,7 @@ SourceFiles #ifndef simpleObjectRegistry_H #define simpleObjectRegistry_H -#include "HashTable.H" +#include "UPtrDictionary.H" #include "simpleRegIOobject.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -48,16 +48,16 @@ namespace Foam class simpleObjectRegistry : - public HashTable<simpleRegIOobject*> + public UPtrDictionary<simpleRegIOobject> { public: // Constructors - //- Construct from initial estimate + //- Construct given initial table size simpleObjectRegistry(const label nIoObjects = 128) : - HashTable<simpleRegIOobject*>(nIoObjects) + UPtrDictionary<simpleRegIOobject>(nIoObjects) {} };