Function1< Type > Class Template Referenceabstract

Top level data entry class for use in dictionaries. Provides a mechanism to specify a variable as a certain type, e.g. constant or table, and provide functions to return the (interpolated) value, and integral between limits. More...

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

Public Types

typedef Type returnType
 

Public Member Functions

 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 tmp< Function1< Type > > clone () const =0
 Construct and return a clone. 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 Type value (const scalar x) const
 Return value as a function of (scalar) independent variable. 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 writeData (Ostream &os) const
 Write in dictionary format. 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 wordname () const noexcept
 The name of the entry. More...
 
const objectRegistrywhichDb () 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 objectRegistryobr () const
 Return the object registry. More...
 
bool isTime () const noexcept
 Return true if this function was created with the time database. More...
 
const Timetime () const
 Return the time database. More...
 
template<class MeshType >
const MeshType & mesh (const word &regionName=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 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 Member Functions

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

 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
 

Protected Member Functions

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...
 

Friends

Ostreamoperator (Ostream &os, const Function1< Type > &func)
 Ostream Operator. More...
 

Additional Inherited Members

- Protected Attributes inherited from function1Base
const word name_
 Name of entry. More...
 
const objectRegistryobrPtr_
 Pointer to an object registry. More...
 

Detailed Description

template<class Type>
class Foam::Function1< Type >

Top level data entry class for use in dictionaries. Provides a mechanism to specify a variable as a certain type, e.g. constant or table, and provide functions to return the (interpolated) value, and integral between limits.

The New factory method attempts to deal with varying types of input. It accepts primitive or dictionary entries for dispatching to different function types, but wraps unspecified types as "constant".

In the dictionary form, the coefficients are the dictionary itself. This is arguably the more readable form. For example,

    <entryName>
    {
        type      linearRamp;
        start     10;
        duration  20;
    }

In the primitive form, the coefficients are provided separately. For example,

    <entryName>   linearRamp;
    <entryName>Coeffs
    {
        start     10;
        duration  20;
    }

The coeffs dictionary is optional, since it is not required by all types. For example,

    <entryName>   zero;
Source files

Definition at line 93 of file Function1.H.

Member Typedef Documentation

◆ returnType

typedef Type returnType

Definition at line 121 of file Function1.H.

Constructor & Destructor Documentation

◆ Function1() [1/3]

Function1 ( const word entryName,
const objectRegistry obrPtr = nullptr 
)
explicit

Construct from entry name.

◆ Function1() [2/3]

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

Construct from entry name, (unused) dictionary and optional registry

◆ Function1() [3/3]

Function1 ( const Function1< Type > &  rhs)
explicit

Copy construct.

◆ ~Function1()

virtual ~Function1 ( )
virtualdefault

Destructor.

//- Selector with external storage of Function1. //- This also allows wildcard matches in a dictionary. // If the default value is used, stores an entry as "default" static refPtr<Function1<Type>> NewOrDefault ( HashPtrTable<Function1<Type>>& cache, const word& entryName, const dictionary& dict, const Type& deflt, enum keyType::option matchOpt = keyType::LITERAL, const objectRegistry* obrPtr = nullptr );

Member Function Documentation

◆ operator=()

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

No copy assignment.

◆ TypeName()

TypeName ( "Function1< Type >"  )

Runtime type information.

Declare runtime constructor selection table

◆ clone()

◆ New() [1/3]

Foam::autoPtr< Foam::Function1< Type > > New ( const word entryName,
const dictionary dict,
const word redirectType,
const objectRegistry obrPtr = nullptr,
const bool  mandatory = true 
)
static

Selector, with fallback redirection.

Definition at line 150 of file Function1New.C.

References dict.

◆ NewCompat()

Foam::autoPtr< Foam::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 
)
static

Compatibility selector, with fallback redirection.

Definition at line 173 of file Function1New.C.

◆ New() [2/3]

Foam::autoPtr< Foam::Function1< Type > > New ( const word entryName,
const dictionary dict,
const objectRegistry obrPtr = nullptr,
const bool  mandatory = true 
)
static

Selector, without fallback redirection.

Definition at line 197 of file Function1New.C.

◆ NewIfPresent()

Foam::autoPtr< Foam::Function1< Type > > NewIfPresent ( const word entryName,
const dictionary dict,
const word redirectType = word::null,
const objectRegistry obrPtr = nullptr 
)
static

An optional selector.

Definition at line 211 of file Function1New.C.

Referenced by rigidBodyMotion::read().

Here is the caller graph for this function:

◆ New() [3/3]

Foam::refPtr< Foam::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 
)
static

Selector with external storage of Function1. This also allows wildcard matches in a dictionary

Definition at line 226 of file Function1New.C.

References refPtr< T >::cref(), dict, Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, entry::keyword(), and Foam::nl.

Here is the call graph for this function:

◆ constant()

virtual bool constant ( ) const
inlinevirtual

Is value constant (i.e. independent of x)

Reimplemented in Constant< Type >, None< Type >, OneConstant< Type >, and ZeroConstant< Type >.

Definition at line 243 of file Function1.H.

◆ good()

virtual bool good ( ) const
inlinevirtual

Can function be evaluated?

Reimplemented in None< Type >.

Definition at line 246 of file Function1.H.

◆ value() [1/2]

◆ value() [2/2]

Foam::tmp< Foam::Field< Type > > value ( const scalarField x) const
virtual

Return value as a function of (scalar) independent variable.

Reimplemented in Constant< Type >, None< Type >, and OneConstant< Type >.

Definition at line 77 of file Function1.C.

References NotImplemented.

◆ integrate() [1/2]

Type integrate ( const scalar  x1,
const scalar  x2 
) const
virtual

◆ integrate() [2/2]

Foam::tmp< Foam::Field< Type > > integrate ( const scalarField x1,
const scalarField x2 
) const
virtual

Integrate between two (scalar) values.

Reimplemented in OneConstant< Type >.

Definition at line 96 of file Function1.C.

References NotImplemented.

◆ writeData()

void writeData ( Ostream os) const
virtual

Write in dictionary format.

Note
The base output is without an END_STATEMENT

Reimplemented in Function1Expression< Type >, CodedFunction1< Type >, Constant< Type >, CSV< Type >, FunctionObjectTrigger< Type >, FunctionObjectValue< Type >, InputValueMapper< Type >, None< Type >, OneConstant< Type >, Polynomial< Type >, ramp, Scale< Type >, Sine< Type >, Square< Type >, Table< Type >, TableBase< Type >, TableFile< Type >, ZeroConstant< Type >, and Sample< Type >.

Definition at line 174 of file Function1.C.

References os(), Foam::type(), and Ostream::writeKeyword().

Here is the call graph for this function:

◆ writeEntries()

void writeEntries ( Ostream os) const
virtual

Write coefficient entries in dictionary format.

Reimplemented in CSV< Type >, FunctionObjectTrigger< Type >, FunctionObjectValue< Type >, InputValueMapper< Type >, ramp, Scale< Type >, Sine< Type >, Square< Type >, TableBase< Type >, and Sample< Type >.

Definition at line 169 of file Function1.C.

Friends And Related Function Documentation

◆ operator

Ostream & operator ( Ostream os,
const Function1< Type > &  func 
)
friend

Ostream Operator.

Member Data Documentation

◆ Function1

Definition at line 130 of file Function1.H.

◆ dictionary

Definition at line 131 of file Function1.H.

◆ entryName [1/2]

const word& entryName

◆ dict [1/2]

◆ obrPtr [1/2]

const word const dictionary const objectRegistry* obrPtr

Definition at line 135 of file Function1.H.

Referenced by Sine< Type >::Sine().

◆ entryName [2/2]

const word const dictionary const objectRegistry entryName

Definition at line 137 of file Function1.H.

◆ dict [2/2]

const word const dictionary const objectRegistry dict

Definition at line 137 of file Function1.H.

◆ obrPtr [2/2]

const word const dictionary const objectRegistry obrPtr

Definition at line 137 of file Function1.H.


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