Public Types | Public Member Functions | List of all members
oomph::SolutionFunctorBase Class Referenceabstract

Function base class for exact solutions/initial conditions/boundary conditions. This is needed so that we can have solutions that depend on problem parameters with resorting to global variables. More...

#include <oomph_utilities.h>

+ Inheritance diagram for oomph::SolutionFunctorBase:

Public Types

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)
 General function of time, space and a value vector which returns a vector of doubles. More...
 

Public Member Functions

virtual ~SolutionFunctorBase ()
 Virtual destructor. More...
 
virtual Vector< double > operator() (const double &t, const Vector< double > &x) const =0
 Call the function. More...
 
virtual Vector< double > derivative (const double &t, const Vector< double > &x, const Vector< double > &u) const =0
 Call the derivative function. More...
 
virtual void jacobian (const double &t, const Vector< double > &x, const Vector< double > &u, DenseMatrix< double > &jacobian) const
 The derivatives of the derivative function with respect to u (note that this is not quite the jacobian of the residuals for an ODE problem defined by this solution: you also need the time derivative part there). Broken virtual function because not often needed. More...
 
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...
 

Detailed Description

Function base class for exact solutions/initial conditions/boundary conditions. This is needed so that we can have solutions that depend on problem parameters with resorting to global variables.

Definition at line 1108 of file oomph_utilities.h.

Member Typedef Documentation

◆ TimeSpaceToDoubleFctPt

typedef double(* oomph::SolutionFunctorBase::TimeSpaceToDoubleFctPt) (const double &t, const Vector< double > &x)

General function of space and time which returns a double.

Definition at line 1114 of file oomph_utilities.h.

◆ TimeSpaceToDoubleVectFctPt

typedef Vector<double>(* oomph::SolutionFunctorBase::TimeSpaceToDoubleVectFctPt) (const double &t, const Vector< double > &x)

General function of space and time which returns a vector of doubles.

Definition at line 1118 of file oomph_utilities.h.

◆ TimeSpaceValueToDoubleVectFctPt

typedef Vector<double>(* oomph::SolutionFunctorBase::TimeSpaceValueToDoubleVectFctPt) (const double &t, const Vector< double > &x, const Vector< double > &u)

General function of time, space and a value vector which returns a vector of doubles.

Definition at line 1123 of file oomph_utilities.h.

Constructor & Destructor Documentation

◆ ~SolutionFunctorBase()

virtual oomph::SolutionFunctorBase::~SolutionFunctorBase ( )
inlinevirtual

Virtual destructor.

Definition at line 1127 of file oomph_utilities.h.

Member Function Documentation

◆ derivative()

virtual Vector<double> oomph::SolutionFunctorBase::derivative ( const double &  t,
const Vector< double > &  x,
const Vector< double > &  u 
) const
pure virtual

Call the derivative function.

Implemented in oomph::SolutionFunctor.

Referenced by oomph::ODEElement::derivative_function().

◆ have_jacobian()

virtual bool oomph::SolutionFunctorBase::have_jacobian ( ) const
inlinevirtual

Is a jacobian function implemented?

Definition at line 1153 of file oomph_utilities.h.

Referenced by oomph::ODEElement::fill_in_contribution_to_jacobian().

◆ initialise_from_problem()

virtual void oomph::SolutionFunctorBase::initialise_from_problem ( const Problem problem_pt)
inlinevirtual

Overload to grab data from the problem.

Definition at line 1159 of file oomph_utilities.h.

◆ jacobian()

virtual void oomph::SolutionFunctorBase::jacobian ( const double &  t,
const Vector< double > &  x,
const Vector< double > &  u,
DenseMatrix< double > &  jacobian 
) const
inlinevirtual

The derivatives of the derivative function with respect to u (note that this is not quite the jacobian of the residuals for an ODE problem defined by this solution: you also need the time derivative part there). Broken virtual function because not often needed.

Definition at line 1142 of file oomph_utilities.h.

References oomph::Global_string_for_annotation::string().

Referenced by oomph::ODEElement::fill_in_contribution_to_jacobian().

◆ operator()()

virtual Vector<double> oomph::SolutionFunctorBase::operator() ( const double &  t,
const Vector< double > &  x 
) const
pure virtual

Call the function.

Implemented in oomph::SolutionFunctor.


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