Function1 with the code supplied by an on-the-fly compiled C++ expression. More...
Public Member Functions | |
TypeName ("coded") | |
Runtime type information. More... | |
CodedFunction1 (const word &entryName, const dictionary &dict, const objectRegistry *obrPtr=nullptr) | |
Construct from entry name, dictionary and optional registry. More... | |
CodedFunction1 (const CodedFunction1< Type > &rhs) | |
Copy construct. More... | |
virtual tmp< Function1< Type > > | clone () const |
Return a clone. More... | |
virtual | ~CodedFunction1 ()=default |
Destructor. More... | |
virtual Type | value (const scalar x) const |
Return value at current time. More... | |
virtual void | writeData (Ostream &os) const |
Write in dictionary format. More... | |
Public Member Functions inherited from Function1< Type > | |
TypeName ("Function1") declareRunTimeSelectionTable(autoPtr | |
Runtime type information. More... | |
Function1 (const word &entryName, const objectRegistry *obrPtr=nullptr) | |
Construct from entry name. More... | |
Function1 (const word &entryName, const dictionary &dict, const objectRegistry *obrPtr=nullptr) | |
Construct from entry name, (unused) dictionary and optional registry. More... | |
Function1 (const Function1< Type > &rhs) | |
Copy construct. More... | |
virtual | ~Function1 ()=default |
Destructor. More... | |
virtual bool | constant () const |
Is value constant (i.e. independent of x) More... | |
virtual bool | good () const |
Can function be evaluated? More... | |
virtual tmp< Field< Type > > | value (const scalarField &x) const |
Return value as a function of (scalar) independent variable. More... | |
virtual Type | integrate (const scalar x1, const scalar x2) const |
Integrate between two (scalar) values. More... | |
virtual tmp< Field< Type > > | integrate (const scalarField &x1, const scalarField &x2) const |
Integrate between two (scalar) values. More... | |
virtual void | writeEntries (Ostream &os) const |
Write coefficient entries in dictionary format. More... | |
Public Member Functions inherited from function1Base | |
function1Base (const word &entryName, const objectRegistry *obrPtr=nullptr) | |
Construct from entry name and optional registry. More... | |
function1Base (const word &entryName, const dictionary &dict, const objectRegistry *obrPtr=nullptr) | |
Construct from entry name, dictionary (unused) and optional registry. More... | |
function1Base (const function1Base &rhs) | |
Copy construct. More... | |
virtual | ~function1Base () |
Destructor. More... | |
const word & | name () const noexcept |
The name of the entry. More... | |
const objectRegistry * | whichDb () const noexcept |
Return the associated registry or nullptr. More... | |
void | resetDb (const objectRegistry *obrPtr=nullptr) noexcept |
Reset the associated objectRegistry. More... | |
void | resetDb (const objectRegistry &db) noexcept |
Reset the associated objectRegistry. More... | |
const objectRegistry & | obr () const |
Return the object registry. More... | |
bool | isTime () const noexcept |
Return true if this function was created with the time database. More... | |
const Time & | time () const |
Return the time database. More... | |
template<class MeshType > | |
const MeshType & | mesh (const word ®ionName=word::null) const |
Return the mesh database if this Function1 was created using a mesh. More... | |
virtual void | userTimeToTime (const Time &t) |
Convert time. More... | |
Public Member Functions inherited from refCount | |
constexpr | refCount () noexcept |
Default construct, initializing count to 0. More... | |
int | use_count () const noexcept |
Return the current reference count. More... | |
bool | unique () const noexcept |
Return true if the reference count is zero. More... | |
void | operator++ () noexcept |
Increment the reference count. More... | |
void | operator++ (int) noexcept |
Increment the reference count. More... | |
void | operator-- () noexcept |
Decrement the reference count. More... | |
void | operator-- (int) noexcept |
Decrement the reference count. More... | |
Static Public Attributes | |
static constexpr const char *const | codeTemplateC = "codedFunction1Template.C" |
Name of the C code template to be used. More... | |
static constexpr const char *const | codeTemplateH = "codedFunction1Template.H" |
Name of the H code template to be used. More... | |
Protected Member Functions | |
virtual dlLibraryTable & | libs () const |
Mutable access to the loaded dynamic libraries. More... | |
virtual string | description () const |
Description (type + name) for the output. More... | |
virtual void | clearRedirect () const |
Clear redirected object(s) More... | |
virtual const dictionary & | codeContext () const |
Additional 'codeContext' dictionary to pass through. More... | |
virtual const dictionary & | codeDict (const dictionary &dict) const |
virtual const dictionary & | codeDict () const |
virtual void | prepare (dynamicCode &, const dynamicCodeContext &) const |
Adapt the context for the current object. More... | |
void | operator= (const CodedFunction1< Type > &)=delete |
No copy assignment. More... | |
Protected Member Functions inherited from Function1< Type > | |
void | operator= (const Function1< Type > &)=delete |
No copy assignment. More... | |
Protected Member Functions inherited from function1Base | |
void | operator= (const function1Base &)=delete |
No copy assignment. More... | |
Protected Member Functions inherited from codedBase | |
dynamicCodeContext & | codeContext () |
Access to the dynamic code context. More... | |
void | setCodeContext (const dictionary &dict) |
Set code context from a dictionary. More... | |
void | append (const std::string &str) |
Add content to SHA1 hashing. More... | |
void | updateLibrary (const word &name, const dynamicCodeContext &context) const |
Update library as required, using the given context. More... | |
void | updateLibrary (const word &name, const dictionary &dict) const |
Update library as required, using the given code dictionary to use for the context. More... | |
void | updateLibrary (const word &name) const |
Update library as required, using the predefined context or use the codeDict() to generate one. More... | |
ClassName ("codedBase") | |
Runtime type information. More... | |
codedBase (const codedBase &)=delete | |
No copy construct. More... | |
void | operator= (const codedBase &)=delete |
No copy assignment. More... | |
codedBase ()=default | |
Default construct. More... | |
virtual | ~codedBase ()=default |
Destructor. More... | |
Additional Inherited Members | |
Public Types inherited from Function1< Type > | |
typedef Type | returnType |
The return type. More... | |
Static Public Member Functions inherited from Function1< Type > | |
template<class Derived > | |
static tmp< Function1< Type > > | Clone (const Derived &fun) |
Clone a Function1. More... | |
static autoPtr< Function1< Type > > | New (const word &entryName, const dictionary &dict, const word &redirectType, const objectRegistry *obrPtr=nullptr, const bool mandatory=true) |
Selector, with fallback redirection. More... | |
static autoPtr< Function1< Type > > | NewCompat (const word &entryName, std::initializer_list< std::pair< const char *, int >> compat, const dictionary &dict, const word &redirectType=word::null, const objectRegistry *obrPtr=nullptr, const bool mandatory=true) |
Compatibility selector, with fallback redirection. More... | |
static autoPtr< Function1< Type > > | New (const word &entryName, const dictionary &dict, const objectRegistry *obrPtr=nullptr, const bool mandatory=true) |
Selector, without fallback redirection. More... | |
static autoPtr< Function1< Type > > | NewIfPresent (const word &entryName, const dictionary &dict, const word &redirectType, const objectRegistry *obrPtr=nullptr) |
An optional selector, with fallback redirection. More... | |
static autoPtr< Function1< Type > > | NewIfPresent (const word &entryName, const dictionary &dict, const objectRegistry *obrPtr=nullptr) |
An optional selector, without fallback redirection. More... | |
static refPtr< Function1< Type > > | New (HashPtrTable< Function1< Type >> &cache, const word &entryName, const dictionary &dict, enum keyType::option matchOpt=keyType::LITERAL, const objectRegistry *obrPtr=nullptr, const bool mandatory=true) |
Selector with external storage of Function1. This also allows wildcard matches in a dictionary. More... | |
Public Attributes inherited from Function1< Type > | |
Function1 | |
dictionary | |
const word & | entryName |
const word const dictionary & | dict |
const word const dictionary const objectRegistry * | obrPtr |
const word const dictionary const objectRegistry | entryName |
const word const dictionary const objectRegistry | dict |
const word const dictionary const objectRegistry | obrPtr |
Static Protected Member Functions inherited from codedBase | |
static void | writeCodeDict (Ostream &os, const dictionary &dict) |
Write code-dictionary contents. More... | |
static const dictionary & | codeDict (const objectRegistry &obr, const word &dictName="codeDict") |
Return "codeDict" from objectRegistry or read from disk. More... | |
Protected Attributes inherited from function1Base | |
const word | name_ |
Name of entry. More... | |
const objectRegistry * | obrPtr_ |
Pointer to an object registry. More... | |
Function1 with the code supplied by an on-the-fly compiled C++ expression.
codeInclude | : | include files |
codeOptions | : | compiler line: added to EXE_INC (Make/options) |
codeLibs | : | linker line: added to LIB_LIBS (Make/options) |
localCode | : | c++; local static functions |
code | : | c++; return the patch values at (scalar x) |
<patchName> { type uniformFixedValue; uniformValue { type coded; name myExpression; // Name of generated PatchFunction1 code #{ const polyPatch& pp = this->patch(); Pout<< "** Patch size:" << pp.size() << endl; return tmp<vectorField>::New(pp.size(), vector(1, 0, 0)) #}; //codeInclude //#{ // #include "volFields.H" //#}; //codeOptions //#{ // -I$(LIB_SRC)/finiteVolume/lnInclude //#}; } }
Definition at line 120 of file CodedFunction1.H.
CodedFunction1 | ( | const word & | entryName, |
const dictionary & | dict, | ||
const objectRegistry * | obrPtr = nullptr |
||
) |
Construct from entry name, dictionary and optional registry.
Definition at line 137 of file CodedFunction1.C.
|
explicit |
Copy construct.
Definition at line 158 of file CodedFunction1.C.
|
virtualdefault |
Destructor.
|
protectedvirtual |
Mutable access to the loaded dynamic libraries.
Implements codedBase.
Definition at line 29 of file CodedFunction1.C.
References dlLibraryTable::libs().
|
protectedvirtual |
Description (type + name) for the output.
Implements codedBase.
Definition at line 37 of file CodedFunction1.C.
|
protectedvirtual |
|
protectedvirtual |
Additional 'codeContext' dictionary to pass through.
Definition at line 52 of file CodedFunction1.C.
|
protectedvirtual |
Definition at line 62 of file CodedFunction1.C.
References dict.
|
protectedvirtual |
Implements codedBase.
Definition at line 80 of file CodedFunction1.C.
|
protectedvirtual |
Adapt the context for the current object.
Implements codedBase.
Definition at line 88 of file CodedFunction1.C.
References dynamicCode::addCompileFile(), dynamicCode::addCopyFile(), dynamicCodeContext::code(), DetailInfo, Foam::endl(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, dynamicCodeContext::libs(), dynamicCodeContext::options(), dynamicCode::setFieldTemplates(), dynamicCode::setFilterVariable(), dynamicCode::setMakeOptions(), and dynamicCodeContext::sha1().
|
protecteddelete |
No copy assignment.
TypeName | ( | "coded" | ) |
Runtime type information.
Return a clone.
Implements Function1< Type >.
Definition at line 231 of file CodedFunction1.H.
References Function1< Type >::Clone().
|
inlinevirtual |
Return value at current time.
Reimplemented from Function1< Type >.
Definition at line 216 of file CodedFunction1.C.
References x.
|
virtual |
Write in dictionary format.
Reimplemented from Function1< Type >.
Definition at line 229 of file CodedFunction1.C.
References Foam::name().
|
static |
Name of the C code template to be used.
Definition at line 196 of file CodedFunction1.H.
|
static |
Name of the H code template to be used.
Definition at line 202 of file CodedFunction1.H.