/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2015 OpenFOAM Foundation
\\/ M anipulation | Copyright (C) 2015 OpenCFD Ltd
-------------------------------------------------------------------------------
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 .
\*---------------------------------------------------------------------------*/
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
template
bool Foam::functionObjectState::setActive()
{
active_ = true;
if (!isA(obr_))
{
WarningIn
(
"void Foam::functionObjectState::setActive()"
) << "No " << Type::typeName << " available, deactivating " << name_
<< endl;
active_ = false;
}
return active_;
}
template
Type Foam::functionObjectState::getProperty
(
const word& entryName,
const Type& defaultValue
) const
{
Type result = defaultValue;
getProperty(entryName, result);
return result;
}
template
void Foam::functionObjectState::getProperty
(
const word& entryName,
Type& value
) const
{
getObjectProperty(name_, entryName, value);
}
template
void Foam::functionObjectState::setProperty
(
const word& entryName,
const Type& value
)
{
setObjectProperty(name_, entryName, value);
}
template
Type Foam::functionObjectState::getObjectProperty
(
const word& objectName,
const word& entryName,
const Type& defaultValue
) const
{
Type result = defaultValue;
getObjectProperty(objectName, entryName, result);
return result;
}
template
void Foam::functionObjectState::getObjectProperty
(
const word& objectName,
const word& entryName,
Type& value
) const
{
if (stateDict_.found(objectName))
{
const dictionary& baseDict = stateDict_.subDict(objectName);
if (baseDict.found(entryName))
{
if (baseDict.isDict(entryName))
{
value = baseDict.subDict(entryName);
}
else
{
baseDict.lookup(entryName) >> value;
}
}
}
}
template
void Foam::functionObjectState::setObjectProperty
(
const word& objectName,
const word& entryName,
const Type& value
)
{
if (!stateDict_.found(objectName))
{
stateDict_.add(objectName, dictionary());
}
dictionary& baseDict = stateDict_.subDict(objectName);
baseDict.add(entryName, value, true);
}
template
void Foam::functionObjectState::setResult
(
const word& entryName,
const Type& value
)
{
setObjectResult(name_, entryName, value);
}
template
void Foam::functionObjectState::setObjectResult
(
const word& objectName,
const word& entryName,
const Type& value
)
{
if (!stateDict_.found(resultsName_))
{
stateDict_.add(resultsName_, dictionary());
}
dictionary& resultsDict = stateDict_.subDict(resultsName_);
if (!resultsDict.found(objectName))
{
resultsDict.add(name_, dictionary());
}
dictionary& objectDict = resultsDict.subDict(objectName);
const word& dictTypeName = pTraits::typeName;
if (!objectDict.found(dictTypeName))
{
objectDict.add(dictTypeName, dictionary());
}
dictionary& resultTypeDict = objectDict.subDict(dictTypeName);
resultTypeDict.add(entryName, value, true);
}
template
Type Foam::functionObjectState::getResult
(
const word& entryName,
const Type& defaultValue
) const
{
return getObjectResult(name_, entryName, defaultValue);
}
template
Type Foam::functionObjectState::getObjectResult
(
const word& objectName,
const word& entryName,
const Type& defaultValue
) const
{
Type result = defaultValue;
getObjectResult(objectName, entryName, result);
return result;
}
template
void Foam::functionObjectState::getObjectResult
(
const word& objectName,
const word& entryName,
Type& value
) const
{
if (stateDict_.found(resultsName_))
{
const dictionary& resultsDict = stateDict_.subDict(resultsName_);
if (resultsDict.found(objectName))
{
const dictionary& objectDict = resultsDict.subDict(objectName);
const word& dictTypeName = pTraits::typeName;
if (objectDict.found(dictTypeName))
{
const dictionary& resultTypeDict =
objectDict.subDict(dictTypeName);
resultTypeDict.readIfPresent(entryName, value);
}
}
}
}
// ************************************************************************* //