A templated sine function, with support for offset etc. More...
Public Member Functions | |
TypeName ("sine") | |
void | operator= (const Sine< Type > &)=delete |
No copy assignment. More... | |
Sine (const word &entryName, const dictionary &dict, const objectRegistry *obrPtr=nullptr) | |
Construct from entry name, dictionary and optional registry. More... | |
Sine (const Sine< Type > &rhs) | |
Copy construct. More... | |
virtual tmp< Function1< Type > > | clone () const |
Construct and return a clone. More... | |
virtual | ~Sine ()=default |
Destructor. More... | |
virtual void | userTimeToTime (const Time &t) |
Convert time. More... | |
virtual Type | value (const scalar t) const |
Return value for time t. 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... | |
![]() | |
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... | |
![]() | |
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... | |
![]() | |
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... | |
Protected Member Functions | |
scalar | cycle (const scalar t) const |
The cycle: (freq * time) or (time / period) More... | |
scalar | cosForm (const scalar t) const |
Calculated cos value at time t. More... | |
scalar | sinForm (const scalar t) const |
Calculated sin value at time t. More... | |
scalar | squareForm (const scalar t, const scalar posFrac) const |
Calculated square value at time t. More... | |
Type | cosValue (const scalar t) const |
Return value for time t, using cos form. More... | |
Type | sinValue (const scalar t) const |
Return value for time t, using sin form. More... | |
Type | squareValue (const scalar t, const scalar posFrac) const |
Return value for time t, using square form. More... | |
![]() | |
void | operator= (const Function1< Type > &)=delete |
No copy assignment. More... | |
![]() | |
void | operator= (const function1Base &)=delete |
No copy assignment. More... | |
Protected Attributes | |
scalar | t0_ |
Start-time for the function. More... | |
autoPtr< Function1< scalar > > | amplitude_ |
Scalar amplitude of the function (optional) More... | |
autoPtr< Function1< scalar > > | period_ |
Period of the function (or specify frequency) More... | |
autoPtr< Function1< scalar > > | frequency_ |
Frequency of the function (or specify period) More... | |
autoPtr< Function1< Type > > | scale_ |
Scaling factor for the function. More... | |
autoPtr< Function1< Type > > | level_ |
Level to add to the scaled function. More... | |
![]() | |
const word | name_ |
Name of entry. More... | |
const objectRegistry * | obrPtr_ |
Pointer to an object registry. More... | |
Additional Inherited Members | |
![]() | |
typedef Type | returnType |
![]() | |
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) |
![]() | |
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 |
A templated sine function, with support for offset etc.
The wave period can be specified directly
\[ a sin(2 \pi (t - t0) / p)) s + l \]
Or it can be specified by the frequency
\[ a sin(2 \pi f (t - t0)) s + l \]
where
\( Symbol \) | = | Description | Units |
\( a \) | = | Amplitude | - |
\( f \) | = | Frequency | [1/s] |
\( p \) | = | Period | [s] |
\( s \) | = | Type scale factor | - |
\( l \) | = | Type offset level | - |
\( t \) | = | Time | [s] |
\( t0 \) | = | Start time offset | [s] |
The dictionary specification would typically resemble this:
entry1 { type sine; frequency 10; amplitude 0.1; // A scalar Function1 scale 2e-6; level 2e-6; } entry2 { type sine; frequency 10; // A vector Function1 scale (1 0.1 0); level (10 1 0); }
where the entries mean:
Property | Description | Type | Reqd | Default |
---|---|---|---|---|
type | Function type: sine | word | yes | |
amplitude | Amplitude | Function1<scalar> | no | 1 |
frequency | Frequency [1/s] | Function1<scalar> | or period | |
period | Period [s] | Function1<scalar> | or frequency | |
scale | Scale factor (Type) | Function1<Type> | yes | |
level | Offset level (Type) | Function1<Type> | yes | |
t0 | Start time offset | scalar | no | 0 |
Sine | ( | const word & | entryName, |
const dictionary & | dict, | ||
const objectRegistry * | obrPtr = nullptr |
||
) |
Construct from entry name, dictionary and optional registry.
Definition at line 34 of file Sine.C.
References Function1< Type >::dict, Sine< Type >::frequency_, Time::New(), Foam::New(), Function1< Type >::obrPtr, and Sine< Type >::period_.
|
virtualdefault |
Destructor.
|
inlineprotected |
|
inlineprotected |
Calculated cos value at time t.
Definition at line 51 of file SineI.H.
References Foam::cos().
|
inlineprotected |
Calculated sin value at time t.
Definition at line 63 of file SineI.H.
References Foam::sin().
|
inlineprotected |
|
inlineprotected |
Return value for time t, using cos form.
Definition at line 93 of file SineI.H.
Referenced by Cosine< Type >::value().
|
inlineprotected |
Return value for time t, using sin form.
Definition at line 103 of file SineI.H.
Referenced by Sine< Type >::value().
|
inlineprotected |
Return value for time t, using square form.
Definition at line 113 of file SineI.H.
Referenced by Square< Type >::value().
TypeName | ( | "sine" | ) |
Construct and return a clone.
Implements Function1< Type >.
Reimplemented in Cosine< Type >, and Square< Type >.
|
virtual |
Convert time.
Reimplemented from function1Base.
Definition at line 78 of file Sine.C.
References TimeState::userTimeToTime().
|
inlinevirtual |
Return value for time t.
Reimplemented from Function1< Type >.
Reimplemented in Cosine< Type >, and Square< Type >.
Definition at line 299 of file Sine.H.
References Sine< Type >::sinValue().
|
virtual |
Write in dictionary format.
Reimplemented from Function1< Type >.
Reimplemented in Square< Type >.
Definition at line 106 of file Sine.C.
References Foam::name(), and os().
|
virtual |
Write coefficient entries in dictionary format.
Reimplemented from Function1< Type >.
Reimplemented in Square< Type >.
Definition at line 85 of file Sine.C.
References os().
Referenced by Square< Type >::writeEntries().
Period of the function (or specify frequency)
Definition at line 220 of file Sine.H.
Referenced by Sine< Type >::Sine().
Frequency of the function (or specify period)
Definition at line 223 of file Sine.H.
Referenced by Sine< Type >::Sine().