ENH: constants: re-reading of constants

This commit is contained in:
mattijs
2013-01-02 11:21:13 +00:00
parent 94f935c8fd
commit 521797fa97
11 changed files with 676 additions and 321 deletions

View File

@ -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_)
{

View File

@ -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
)
)
)
);
const Foam::dimensionedScalar Foam::constant::atomic::Rinf
(
dimensionedConstant
(
group,
"Rinf",
dimensionedScalar
(
"Rinf",
sqr(alpha)*me*constant::universal::c
/(dimensionedScalar("C", dimless, 2.0)*constant::universal::h)
)
)
);
const Foam::dimensionedScalar Foam::constant::atomic::a0
(
dimensionedConstant
(
group,
"a0",
dimensionedScalar
(
"a0",
alpha
/(
dimensionedScalar("C", dimless, 4.0*constant::mathematical::pi)
*Rinf
)
)
)
);
const Foam::dimensionedScalar Foam::constant::atomic::re
(
dimensionedConstant
(
group,
"re",
dimensionedScalar
(
"re",
sqr(constant::electromagnetic::e)
/(
dimensionedScalar("C", dimless, 4.0*constant::mathematical::pi)
*constant::electromagnetic::epsilon0
*me
*sqr(constant::universal::c)
)
)
)
);
const Foam::dimensionedScalar Foam::constant::atomic::Eh
(
dimensionedConstant
(
group,
"Eh",
dimensionedScalar
(
"Eh",
sqr(electromagnetic::e)
/(
dimensionedScalar("C", dimless, 2.0)
*Rinf*constant::universal::h*constant::universal::c
*electromagnetic::epsilon0
*universal::h
*universal::c
)
)
),
constantatomicalpha,
"alpha"
);
defineDimensionedConstantWithDefault
(
atomic::group,
atomic::Rinf,
dimensionedScalar
(
"Rinf",
sqr(atomic::alpha)
*atomic::me
*universal::c
/(Foam::dimensionedScalar("C", Foam::dimless, 2.0)*universal::h)
),
constantatomicRinf,
"Rinf"
);
defineDimensionedConstantWithDefault
(
atomic::group,
atomic::a0,
dimensionedScalar
(
"a0",
atomic::alpha
/(
Foam::dimensionedScalar("C", Foam::dimless, 4.0*mathematical::pi)
*atomic::Rinf
)
),
constantatomica0,
"a0"
);
defineDimensionedConstantWithDefault
(
atomic::group,
atomic::re,
dimensionedScalar
(
"re",
Foam::sqr(electromagnetic::e)
/(
Foam::dimensionedScalar("C", Foam::dimless, 4.0*mathematical::pi)
*electromagnetic::epsilon0
*atomic::me
*Foam::sqr(universal::c)
)
),
constantatomicre,
"re"
);
defineDimensionedConstantWithDefault
(
atomic::group,
atomic::Eh,
dimensionedScalar
(
"Eh",
Foam::dimensionedScalar("C", Foam::dimless, 2.0)
*atomic::Rinf*universal::h*universal::c
),
constantatomicEh,
"Eh"
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace constant
} // End namespace Foam
// ************************************************************************* //

View File

@ -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"

View File

@ -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

View File

@ -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
// ************************************************************************* //

View File

@ -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
// ************************************************************************* //

View File

@ -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
// ************************************************************************* //

View File

@ -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
// ************************************************************************* //

View File

@ -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_;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -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

View File

@ -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)
{}
};