mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
STYLE/ENH: reduce code duplication for coded boundary conditions (issue #184)
- relocate common dictionary output into codedBase class
This commit is contained in:
@ -3,7 +3,7 @@
|
|||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -30,6 +30,7 @@ License
|
|||||||
#include "dlLibraryTable.H"
|
#include "dlLibraryTable.H"
|
||||||
#include "PstreamReduceOps.H"
|
#include "PstreamReduceOps.H"
|
||||||
#include "OSspecific.H"
|
#include "OSspecific.H"
|
||||||
|
#include "Ostream.H"
|
||||||
#include "regIOobject.H"
|
#include "regIOobject.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||||
@ -42,6 +43,45 @@ namespace Foam
|
|||||||
|
|
||||||
// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * Static Member Functions * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
namespace Foam
|
||||||
|
{
|
||||||
|
//! \cond fileScope
|
||||||
|
static inline void writeEntryIfPresent
|
||||||
|
(
|
||||||
|
Ostream& os,
|
||||||
|
const dictionary& dict,
|
||||||
|
const word& key
|
||||||
|
)
|
||||||
|
{
|
||||||
|
// non-recursive like dictionary::found, but no pattern-match either
|
||||||
|
const entry* ptr = dict.lookupEntryPtr(key,false,false);
|
||||||
|
|
||||||
|
if (ptr)
|
||||||
|
{
|
||||||
|
os.writeKeyword(key)
|
||||||
|
<< token::HASH << token::BEGIN_BLOCK;
|
||||||
|
|
||||||
|
os.writeQuoted(string(ptr->stream()), false)
|
||||||
|
<< token::HASH << token::END_BLOCK
|
||||||
|
<< token::END_STATEMENT << nl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//! \endcond
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void Foam::codedBase::writeCodeDict(Ostream& os, const dictionary& dict)
|
||||||
|
{
|
||||||
|
writeEntryIfPresent(os, dict, "codeInclude");
|
||||||
|
writeEntryIfPresent(os, dict, "localCode");
|
||||||
|
writeEntryIfPresent(os, dict, "code");
|
||||||
|
writeEntryIfPresent(os, dict, "codeOptions");
|
||||||
|
writeEntryIfPresent(os, dict, "codeLibs");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
||||||
|
|
||||||
void* Foam::codedBase::loadLibrary
|
void* Foam::codedBase::loadLibrary
|
||||||
(
|
(
|
||||||
const fileName& libPath,
|
const fileName& libPath,
|
||||||
@ -165,8 +205,6 @@ void Foam::codedBase::unloadLibrary
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * //
|
|
||||||
|
|
||||||
void Foam::codedBase::createLibrary
|
void Foam::codedBase::createLibrary
|
||||||
(
|
(
|
||||||
dynamicCode& dynCode,
|
dynamicCode& dynCode,
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -43,6 +43,7 @@ namespace Foam
|
|||||||
{
|
{
|
||||||
|
|
||||||
// Forward declaration of classes
|
// Forward declaration of classes
|
||||||
|
class Ostream;
|
||||||
class dynamicCode;
|
class dynamicCode;
|
||||||
class dynamicCodeContext;
|
class dynamicCodeContext;
|
||||||
class dlLibraryTable;
|
class dlLibraryTable;
|
||||||
@ -83,14 +84,17 @@ class codedBase
|
|||||||
void createLibrary(dynamicCode&, const dynamicCodeContext&) const;
|
void createLibrary(dynamicCode&, const dynamicCodeContext&) const;
|
||||||
|
|
||||||
//- Disallow default bitwise copy construct
|
//- Disallow default bitwise copy construct
|
||||||
codedBase(const codedBase&);
|
codedBase(const codedBase&) = delete;
|
||||||
|
|
||||||
//- Disallow default bitwise assignment
|
//- Disallow default bitwise assignment
|
||||||
void operator=(const codedBase&);
|
void operator=(const codedBase&) = delete;
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
//- Write code-dictionary contents
|
||||||
|
static void writeCodeDict(Ostream&, const dictionary&);
|
||||||
|
|
||||||
//- Update library as required
|
//- Update library as required
|
||||||
void updateLibrary
|
void updateLibrary
|
||||||
(
|
(
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2012 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -331,55 +331,7 @@ void Foam::codedFixedValuePointPatchField<Type>::write(Ostream& os) const
|
|||||||
os.writeKeyword("redirectType") << redirectType_
|
os.writeKeyword("redirectType") << redirectType_
|
||||||
<< token::END_STATEMENT << nl;
|
<< token::END_STATEMENT << nl;
|
||||||
|
|
||||||
if (dict_.found("codeInclude"))
|
codedBase::writeCodeDict(os, dict_);
|
||||||
{
|
|
||||||
os.writeKeyword("codeInclude")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["codeInclude"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict_.found("localCode"))
|
|
||||||
{
|
|
||||||
os.writeKeyword("localCode")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["localCode"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict_.found("code"))
|
|
||||||
{
|
|
||||||
os.writeKeyword("code")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["code"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict_.found("codeOptions"))
|
|
||||||
{
|
|
||||||
os.writeKeyword("codeOptions")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["codeOptions"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict_.found("codeLibs"))
|
|
||||||
{
|
|
||||||
os.writeKeyword("codeLibs")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["codeLibs"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -329,55 +329,7 @@ void Foam::codedFixedValueFvPatchField<Type>::write(Ostream& os) const
|
|||||||
os.writeKeyword("redirectType") << redirectType_
|
os.writeKeyword("redirectType") << redirectType_
|
||||||
<< token::END_STATEMENT << nl;
|
<< token::END_STATEMENT << nl;
|
||||||
|
|
||||||
if (dict_.found("codeInclude"))
|
codedBase::writeCodeDict(os, dict_);
|
||||||
{
|
|
||||||
os.writeKeyword("codeInclude")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["codeInclude"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict_.found("localCode"))
|
|
||||||
{
|
|
||||||
os.writeKeyword("localCode")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["localCode"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict_.found("code"))
|
|
||||||
{
|
|
||||||
os.writeKeyword("code")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["code"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict_.found("codeOptions"))
|
|
||||||
{
|
|
||||||
os.writeKeyword("codeOptions")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["codeOptions"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict_.found("codeLibs"))
|
|
||||||
{
|
|
||||||
os.writeKeyword("codeLibs")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["codeLibs"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd.
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
This file is part of OpenFOAM.
|
This file is part of OpenFOAM.
|
||||||
@ -341,55 +341,7 @@ void Foam::codedMixedFvPatchField<Type>::write(Ostream& os) const
|
|||||||
os.writeKeyword("redirectType") << redirectType_
|
os.writeKeyword("redirectType") << redirectType_
|
||||||
<< token::END_STATEMENT << nl;
|
<< token::END_STATEMENT << nl;
|
||||||
|
|
||||||
if (dict_.found("codeInclude"))
|
codedBase::writeCodeDict(os, dict_);
|
||||||
{
|
|
||||||
os.writeKeyword("codeInclude")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["codeInclude"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict_.found("localCode"))
|
|
||||||
{
|
|
||||||
os.writeKeyword("localCode")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["localCode"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict_.found("code"))
|
|
||||||
{
|
|
||||||
os.writeKeyword("code")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["code"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict_.found("codeOptions"))
|
|
||||||
{
|
|
||||||
os.writeKeyword("codeOptions")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["codeOptions"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dict_.found("codeLibs"))
|
|
||||||
{
|
|
||||||
os.writeKeyword("codeLibs")
|
|
||||||
<< token::HASH << token::BEGIN_BLOCK;
|
|
||||||
|
|
||||||
os.writeQuoted(string(dict_["codeLibs"]), false)
|
|
||||||
<< token::HASH << token::END_BLOCK
|
|
||||||
<< token::END_STATEMENT << nl;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user