CodedFunction1< Type > Class Template Reference

Function1 with the code supplied by an on-the-fly compiled C++ expression. More...

Inheritance diagram for CodedFunction1< Type >:
[legend]
Collaboration diagram for CodedFunction1< Type >:
[legend]

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
 Construct and 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)
 
 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 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...
 
void writeEntries (Ostream &os) const
 Write coefficient entries in dictionary format. 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 dlLibraryTablelibs () 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 dictionarycodeContext () const
 Additional 'codeContext' dictionary to pass through. More...
 
virtual const dictionarycodeDict (const dictionary &dict) const
 
virtual const dictionarycodeDict () 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 codedBase
dynamicCodeContextcodeContext ()
 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
 
void updateLibrary (const word &name) const
 
 codedBase (const codedBase &)=delete
 No copy construct. More...
 
void operator= (const codedBase &)=delete
 No copy assignment. More...
 
 ClassName ("codedBase")
 Runtime type information. More...
 
 codedBase ()=default
 Default construct. More...
 
virtual ~codedBase ()=default
 Destructor. More...
 

Additional Inherited Members

- Public Types inherited from Function1< Type >
typedef Type returnType
 
- Static Public Member Functions inherited from Function1< Type >
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=word::null, const objectRegistry *obrPtr=nullptr)
 An optional selector. 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)
 
- Public Attributes inherited from Function1< Type >
 Function1
 
 dictionary
 
const wordentryName
 
const word const dictionarydict
 
const word const dictionary const objectRegistryobrPtr
 
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 dictionarycodeDict (const objectRegistry &obr, const word &dictName="codeDict")
 Return "codeDict" from objectRegistry or read from disk. More...
 

Detailed Description

template<class Type>
class Foam::Function1Types::CodedFunction1< Type >

Function1 with the code supplied by an on-the-fly compiled C++ expression.

The code entries:

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)
Usage
Example:
<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
        //#};
    }
}
Note
The code context dictionary is simply the dictionary used to specify the PatchFunction1 coefficients.
See also
Foam::dynamicCode Foam::codedFixedValue Foam::functionEntries::codeStream
Source files

Definition at line 124 of file CodedFunction1.H.

Constructor & Destructor Documentation

◆ CodedFunction1() [1/2]

CodedFunction1 ( const word entryName,
const dictionary dict,
const objectRegistry obrPtr = nullptr 
)

Construct from entry name, dictionary and optional registry.

Definition at line 144 of file CodedFunction1.C.

◆ CodedFunction1() [2/2]

CodedFunction1 ( const CodedFunction1< Type > &  rhs)
explicit

Copy construct.

Definition at line 165 of file CodedFunction1.C.

◆ ~CodedFunction1()

virtual ~CodedFunction1 ( )
virtualdefault

Destructor.

Member Function Documentation

◆ libs()

Foam::dlLibraryTable & libs ( ) const
protectedvirtual

Mutable access to the loaded dynamic libraries.

Implements codedBase.

Definition at line 36 of file CodedFunction1.C.

References dlLibraryTable::libs().

Here is the call graph for this function:

◆ description()

Foam::string description ( ) const
protectedvirtual

Description (type + name) for the output.

Implements codedBase.

Definition at line 44 of file CodedFunction1.C.

◆ clearRedirect()

void clearRedirect ( ) const
protectedvirtual

Clear redirected object(s)

Implements codedBase.

Definition at line 51 of file CodedFunction1.C.

◆ codeContext()

const Foam::dictionary & codeContext ( ) const
protectedvirtual

Additional 'codeContext' dictionary to pass through.

Definition at line 59 of file CodedFunction1.C.

◆ codeDict() [1/2]

const Foam::dictionary & codeDict ( const dictionary dict) const
protectedvirtual

Definition at line 69 of file CodedFunction1.C.

References dict.

◆ codeDict() [2/2]

const Foam::dictionary & codeDict ( ) const
protectedvirtual

Implements codedBase.

Definition at line 87 of file CodedFunction1.C.

◆ prepare()

void prepare ( dynamicCode dynCode,
const dynamicCodeContext context 
) const
protectedvirtual

Adapt the context for the current object.

Implements codedBase.

Definition at line 95 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().

Here is the call graph for this function:

◆ operator=()

void operator= ( const CodedFunction1< Type > &  )
protecteddelete

No copy assignment.

◆ TypeName()

TypeName ( "coded"  )

Runtime type information.

◆ clone()

virtual tmp<Function1<Type> > clone ( ) const
inlinevirtual

Construct and return a clone.

Implements Function1< Type >.

Definition at line 207 of file CodedFunction1.H.

◆ value()

Type value ( const scalar  x) const
inlinevirtual

Return value at current time.

Reimplemented from Function1< Type >.

Definition at line 223 of file CodedFunction1.C.

References x.

◆ writeData()

void writeData ( Ostream os) const
virtual

Write in dictionary format.

Reimplemented from Function1< Type >.

Definition at line 236 of file CodedFunction1.C.

References Foam::name().

Here is the call graph for this function:

Member Data Documentation

◆ codeTemplateC

constexpr const char* const codeTemplateC = "codedFunction1Template.C"
staticconstexpr

Name of the C code template to be used.

Definition at line 182 of file CodedFunction1.H.

◆ codeTemplateH

constexpr const char* const codeTemplateH = "codedFunction1Template.H"
staticconstexpr

Name of the H code template to be used.

Definition at line 186 of file CodedFunction1.H.


The documentation for this class was generated from the following files: