Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Sine< Type > Class Template Reference

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

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

Public Member Functions

 TypeName ("sine")
 
void operator= (const Sine< Type > &)=delete
 
 Sine (const word &entryName, const dictionary &dict, const objectRegistry *obrPtr=nullptr)
 
 Sine (const Sine< Type > &rhs)
 
virtual ~Sine ()=default
 
virtual void userTimeToTime (const Time &t)
 
virtual Type value (const scalar t) const
 
virtual void writeData (Ostream &os) const
 
void writeEntries (Ostream &os) const
 
- Public Member Functions inherited from Function1< Type >
 Function1 (const word &entryName, const objectRegistry *obrPtr=nullptr)
 
 Function1 (const word &entryName, const dictionary &dict, const objectRegistry *obrPtr=nullptr)
 
 Function1 (const Function1< Type > &rhs)
 
 TypeName ("Function1") declareRunTimeSelectionTable(autoPtr
 
virtual tmp< Function1< Type > > clone () const=0
 
virtual ~Function1 ()=default
 
virtual bool constant () const
 
virtual tmp< Field< Type > > value (const scalarField &x) const
 
virtual Type integrate (const scalar x1, const scalar x2) const
 
virtual tmp< Field< Type > > integrate (const scalarField &x1, const scalarField &x2) const
 
void writeEntries (Ostream &os) const
 

Protected Member Functions

scalar cycle (const scalar t) const
 
scalar cosForm (const scalar t) const
 
scalar sinForm (const scalar t) const
 
scalar squareForm (const scalar t, const scalar posFrac) const
 
Type cosValue (const scalar t) const
 
Type sinValue (const scalar t) const
 
Type squareValue (const scalar t, const scalar posFrac) const
 
- Protected Member Functions inherited from Function1< Type >
void operator= (const Function1< Type > &)=delete
 

Protected Attributes

scalar t0_
 
autoPtr< Function1< scalar > > amplitude_
 
autoPtr< Function1< scalar > > period_
 
autoPtr< Function1< scalar > > frequency_
 
autoPtr< Function1< Type > > scale_
 
autoPtr< Function1< Type > > level_
 

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)
 
static autoPtr< Function1< Type > > New (const word &entryName, const dictionary &dict, const objectRegistry *obrPtr=nullptr, const bool mandatory=true)
 
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)
 
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)
 
static autoPtr< Function1< Type > > NewIfPresent (const word &entryName, const dictionary &dict, const word &redirectType=word::null, const objectRegistry *obrPtr=nullptr)
 
- Public Attributes inherited from Function1< Type >
 Function1
 
 dictionary
 
const wordentryName
 
const word const dictionary const objectRegistry entryName
 
const word const dictionarydict
 
const word const dictionary const objectRegistry dict
 
const word const dictionary const objectRegistryobrPtr
 
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 201 of file Sine.H.

Constructor & Destructor Documentation

◆ Sine() [1/2]

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

Definition at line 28 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

Definition at line 56 of file Sine.C.

◆ ~Sine()

virtual ~Sine ( )
virtualdefault

Member Function Documentation

◆ cycle()

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

Definition at line 28 of file SineI.H.

◆ cosForm()

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

Definition at line 44 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

Definition at line 56 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

Definition at line 69 of file SineI.H.

◆ cosValue()

Type cosValue ( const scalar  t) const
inlineprotected

Definition at line 86 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

Definition at line 96 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

Definition at line 107 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

◆ userTimeToTime()

void userTimeToTime ( const Time t)
virtual

Definition at line 71 of file Sine.C.

References TimeState::userTimeToTime().

Here is the call graph for this function:

◆ value()

virtual Type value ( const scalar  t) const
inlinevirtual

Reimplemented from Function1< Type >.

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

Definition at line 289 of file Sine.H.

References Sine< Type >::sinValue().

Here is the call graph for this function:

◆ writeData()

void writeData ( Ostream os) const
virtual

Reimplemented from Function1< Type >.

Reimplemented in Square< Type >.

Definition at line 99 of file Sine.C.

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

Here is the call graph for this function:

◆ writeEntries()

void writeEntries ( Ostream os) const

Definition at line 78 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

Definition at line 210 of file Sine.H.

◆ amplitude_

autoPtr<Function1<scalar> > amplitude_
protected

Definition at line 213 of file Sine.H.

◆ period_

autoPtr<Function1<scalar> > period_
protected

Definition at line 216 of file Sine.H.

◆ frequency_

autoPtr<Function1<scalar> > frequency_
protected

Definition at line 219 of file Sine.H.

◆ scale_

autoPtr<Function1<Type> > scale_
protected

Definition at line 222 of file Sine.H.

◆ level_

autoPtr<Function1<Type> > level_
protected

Definition at line 225 of file Sine.H.


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