oomph::deriv_functions::DampedOscillation Class Reference

A damped oscillation solution. More...

#include <ode_example_functions.h>

+ Inheritance diagram for oomph::deriv_functions::DampedOscillation:

Public Member Functions

 DampedOscillation ()
 Constructor. More...
 
virtual ~DampedOscillation ()
 Virtual destructor. More...
 
Vector< doubleoperator() (const double &t, const Vector< double > &x) const
 Function call. More...
 
Vector< doublederivative (const double &t, const Vector< double > &x, const Vector< double > &u) const
 Derivative call. More...
 
- Public Member Functions inherited from oomph::SolutionFunctorBase
virtual ~SolutionFunctorBase ()
 Virtual destructor. More...
 
virtual void jacobian (const double &t, const Vector< double > &x, const Vector< double > &u, DenseMatrix< double > &jacobian) const
 
virtual bool have_jacobian () const
 Is a jacobian function implemented? More...
 
virtual void initialise_from_problem (const Problem *problem_pt)
 Overload to grab data from the problem. More...
 

Public Attributes

double Beta
 
double Omega
 

Additional Inherited Members

- Public Types inherited from oomph::SolutionFunctorBase
typedef double(* TimeSpaceToDoubleFctPt) (const double &t, const Vector< double > &x)
 General function of space and time which returns a double. More...
 
typedef Vector< double >(* TimeSpaceToDoubleVectFctPt) (const double &t, const Vector< double > &x)
 General function of space and time which returns a vector of doubles. More...
 
typedef Vector< double >(* TimeSpaceValueToDoubleVectFctPt) (const double &t, const Vector< double > &x, const Vector< double > &u)
 

Detailed Description

A damped oscillation solution.

Constructor & Destructor Documentation

◆ DampedOscillation()

oomph::deriv_functions::DampedOscillation::DampedOscillation ( )
inline

Constructor.

152  {
153  Beta = 0.5;
154  Omega = 2;
155  }
double Beta
Definition: ode_example_functions.h:178
double Omega
Definition: ode_example_functions.h:179

References Global::Beta, and oomph::SarahBL::Omega.

◆ ~DampedOscillation()

virtual oomph::deriv_functions::DampedOscillation::~DampedOscillation ( )
inlinevirtual

Virtual destructor.

158 {}

Member Function Documentation

◆ derivative()

Vector<double> oomph::deriv_functions::DampedOscillation::derivative ( const double t,
const Vector< double > &  x,
const Vector< double > &  u 
) const
inlinevirtual

Derivative call.

Implements oomph::SolutionFunctorBase.

171  {
172  Vector<double> deriv(1, 0.0);
173  deriv[0] = -Beta * std::exp(-Beta*t) * std::sin(Omega*t)
174  + Omega * std::exp(-Beta*t) * std::cos(Omega*t);
175  return deriv;
176  }
AnnoyingScalar cos(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:136
AnnoyingScalar sin(const AnnoyingScalar &x)
Definition: AnnoyingScalar.h:137
Vector< double > exp(const double &time, const Vector< double > &x)
Definition: ode_example_functions.h:71
t
Definition: plotPSD.py:36

References Global::Beta, cos(), oomph::deriv_functions::exp(), oomph::SarahBL::Omega, sin(), and plotPSD::t.

◆ operator()()

Vector<double> oomph::deriv_functions::DampedOscillation::operator() ( const double t,
const Vector< double > &  x 
) const
inlinevirtual

Function call.

Implements oomph::SolutionFunctorBase.

162  {
163  Vector<double> values(1);
164  values[0] = std::exp(-Beta*t) * std::sin(Omega*t);
165  return values;
166  }

References Global::Beta, oomph::deriv_functions::exp(), oomph::SarahBL::Omega, sin(), and plotPSD::t.

Member Data Documentation

◆ Beta

double oomph::deriv_functions::DampedOscillation::Beta

◆ Omega

double oomph::deriv_functions::DampedOscillation::Omega

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