41 return this->db().time().libs();
50 + this->
patch().name()
52 + this->internalField().name();
59 redirectPatchFieldPtr_.reset(
nullptr);
67 const dictionary* ptr = dict_.findDict(
"codeContext", keyType::LITERAL);
68 return (ptr ? *ptr : dictionary::null);
81 : codedBase::codeDict(this->db()).subDict(name_)
90 const dynamicCodeContext& context
94 dynCode.setFilterVariable(
"typeName", name_);
97 dynCode.setFieldTemplates<Type>();
100 dynCode.addCompileFile(codeTemplateC);
103 dynCode.addCopyFile(codeTemplateH);
106 dynCode.setFilterVariable(
"verbose",
"true");
108 <<
"compile " << name_ <<
" sha1: " << context.sha1() <<
endl;
112 dynCode.setMakeOptions
115 "-I$(LIB_SRC)/finiteVolume/lnInclude \\\n"
116 "-I$(LIB_SRC)/meshTools/lnInclude \\\n"
118 +
"\n\nLIB_LIBS = \\\n"
120 " -lfiniteVolume \\\n"
138 redirectPatchFieldPtr_(nullptr)
155 redirectPatchFieldPtr_(nullptr)
184 redirectPatchFieldPtr_(
nullptr)
186 updateLibrary(name_);
200 redirectPatchFieldPtr_(nullptr)
215 redirectPatchFieldPtr_(nullptr)
225 if (!redirectPatchFieldPtr_)
235 constructDict.
set(
"type", name_);
237 redirectPatchFieldPtr_.reset
242 this->internalField(),
254 contentPtr->
dict(this->codeContext());
259 << name_ <<
" Did not derive from dictionaryContent"
263 return *redirectPatchFieldPtr_;
276 updateLibrary(name_);
285 parent_bctype::updateCoeffs();
296 updateLibrary(name_);
302 parent_bctype::evaluate(commsType);
309 this->parent_bctype::write(
os);
Macros for easy insertion into run-time selection tables.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
Generic templated field type.
void writeEntry(const word &keyword, Ostream &os) const
Write the field as a dictionary entry.
void evaluate()
Evaluate boundary conditions.
Input from string buffer, using a ISstream. Always UNCOMPRESSED.
Output to string buffer, using a OSstream. Always UNCOMPRESSED.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Ostream & writeEntry(const keyType &key, const T &value)
Write a keyword/value entry.
commsTypes
Types of communications.
Base class for function objects and boundary conditions using dynamic code that provides methods for ...
static void writeCodeDict(Ostream &os, const dictionary &dict)
Write code-dictionary contents.
Constructs on-the-fly a new boundary condition (derived from fixedValueFvPatchField) which is then us...
virtual void updateCoeffs()
Update the coefficients associated with the patch field.
const fvPatchField< Type > & redirectPatchField() const
Get reference to the underlying patch.
A wrapper for dictionary content, without operators that could affect inheritance patterns.
const dictionary & dict() const noexcept
Read-access to the content.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
T getCompat(const word &keyword, std::initializer_list< std::pair< const char *, int > > compat, enum keyType::option matchOpt=keyType::REGEX) const
entry * set(entry *entryPtr)
Assign a new entry, overwriting any existing entry.
A table of dynamically loaded libraries.
This boundary condition supplies a fixed value constraint, and is the base class for a number of othe...
virtual bool write()
Write the output fields.
A FieldMapper for finite-volume patch fields.
Abstract base class with a fat-interface to all derived classes covering all possible ways in which t...
A finiteVolume patch using a polyPatch and a fvBoundaryMesh.
A class for handling character strings derived from std::string.
A class for handling words, derived from Foam::string.
OBJstream os(runTime.globalPath()/outputName)
#define WarningInFunction
Report a warning using Foam::Warning.
const std::string patch
OpenFOAM patch number as a std::string.
Ostream & endl(Ostream &os)
Add newline and flush stream.
tmp< faMatrix< Type > > operator==(const faMatrix< Type > &, const faMatrix< Type > &)
constexpr char nl
The newline '\n' character (0x0a)