Sine< Type > Class Template Reference

A templated sine function, with support for offset etc. More...

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

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 ~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...
 
void writeEntries (Ostream &os) const
 Write coefficient entries 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 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 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...
 

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...
 
- Protected Member Functions inherited from Function1< Type >
void operator= (const Function1< Type > &)=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...
 

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
 

Detailed Description

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

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
Note
For slow oscillations it can be more intuitive to specify the period.
Source files

Definition at line 205 of file Sine.H.

Constructor & Destructor Documentation

◆ Sine() [1/2]

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

Construct from entry name, dictionary and optional registry.

Definition at line 35 of file Sine.C.

References dict, and Foam::New().

Here is the call graph for this function:

◆ Sine() [2/2]

Sine ( const Sine< Type > &  rhs)
explicit

Copy construct.

Definition at line 63 of file Sine.C.

◆ ~Sine()

virtual ~Sine ( )
virtualdefault

Destructor.

Member Function Documentation

◆ cycle()

Foam::scalar cycle ( const scalar  t) const
inlineprotected

The cycle: (freq * time) or (time / period)

Definition at line 35 of file SineI.H.

◆ cosForm()

Foam::scalar cosForm ( const scalar  t) const
inlineprotected

Calculated cos value at time t.

Definition at line 51 of file SineI.H.

References Foam::cos(), and Foam::constant::mathematical::twoPi().

Here is the call graph for this function:

◆ sinForm()

Foam::scalar sinForm ( const scalar  t) const
inlineprotected

Calculated sin value at time t.

Definition at line 63 of file SineI.H.

References Foam::sin(), and Foam::constant::mathematical::twoPi().

Here is the call graph for this function:

◆ squareForm()

Foam::scalar squareForm ( const scalar  t,
const scalar  posFrac 
) const
inlineprotected

Calculated square value at time t.

The positive fraction is 0-1

Definition at line 76 of file SineI.H.

◆ cosValue()

Type cosValue ( const scalar  t) const
inlineprotected

Return value for time t, using cos form.

Definition at line 93 of file SineI.H.

Referenced by Cosine< Type >::value().

Here is the caller graph for this function:

◆ sinValue()

Type sinValue ( const scalar  t) const
inlineprotected

Return value for time t, using sin form.

Definition at line 103 of file SineI.H.

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

Here is the caller graph for this function:

◆ squareValue()

Type squareValue ( const scalar  t,
const scalar  posFrac 
) const
inlineprotected

Return value for time t, using square form.

Definition at line 114 of file SineI.H.

Referenced by Square< Type >::value().

Here is the caller graph for this function:

◆ TypeName()

TypeName ( "sine"  )

◆ operator=()

void operator= ( const Sine< Type > &  )
delete

No copy assignment.

◆ userTimeToTime()

void userTimeToTime ( const Time t)
virtual

Convert time.

Definition at line 78 of file Sine.C.

References TimeState::userTimeToTime().

Here is the call graph for this function:

◆ value()

virtual Type value ( const scalar  t) const
inlinevirtual

Return value for time t.

Reimplemented from Function1< Type >.

Reimplemented in Square< Type >, and Cosine< Type >.

Definition at line 293 of file Sine.H.

References Sine< Type >::sinValue().

Here is the call graph for this function:

◆ writeData()

void writeData ( Ostream os) const
virtual

Write in dictionary format.

Reimplemented from Function1< Type >.

Reimplemented in Square< Type >.

Definition at line 106 of file Sine.C.

References Foam::name(), os(), and Function1< Type >::writeData().

Here is the call graph for this function:

◆ writeEntries()

void writeEntries ( Ostream os) const

Write coefficient entries in dictionary format.

Definition at line 85 of file Sine.C.

References os().

Referenced by Square< Type >::writeEntries().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ t0_

scalar t0_
protected

Start-time for the function.

Definition at line 214 of file Sine.H.

◆ amplitude_

autoPtr<Function1<scalar> > amplitude_
protected

Scalar amplitude of the function (optional)

Definition at line 217 of file Sine.H.

◆ period_

autoPtr<Function1<scalar> > period_
protected

Period of the function (or specify frequency)

Definition at line 220 of file Sine.H.

◆ frequency_

autoPtr<Function1<scalar> > frequency_
protected

Frequency of the function (or specify period)

Definition at line 223 of file Sine.H.

◆ scale_

autoPtr<Function1<Type> > scale_
protected

Scaling factor for the function.

Definition at line 226 of file Sine.H.

◆ level_

autoPtr<Function1<Type> > level_
protected

Level to add to the scaled function.

Definition at line 229 of file Sine.H.


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