CppNoddy  0.92
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
CppNoddy::Example::Harmonic_equation< _Type, _Xtype > Class Template Reference

Define the harmonic equation by inheriting the Equation base class. More...

Inheritance diagram for CppNoddy::Example::Harmonic_equation< _Type, _Xtype >:
CppNoddy::Equation_1matrix< _Type, _Xtype > CppNoddy::Equation_1matrix< D_complex > CppNoddy::Equation< double > CppNoddy::Residual_with_coords< _Type, _Xtype > CppNoddy::Residual_with_coords< _Type, _Xtype > CppNoddy::Residual_with_coords< _Type, _Xtype > CppNoddy::Residual< _Type > CppNoddy::Residual< _Type > CppNoddy::Residual< _Type >

Public Member Functions

 Harmonic_equation ()
 The harmonic equation is a 2nd order ODE. More...
 
void residual_fn (const DenseVector< _Type > &z, DenseVector< _Type > &g) const
 The Berman equation. More...
 
void matrix0 (const DenseVector< _Type > &x, DenseMatrix< _Type > &m) const
 Define the matrix in terms of the current state vector. More...
 
 Harmonic_equation ()
 The eqn is a 3rd order complex nonlinear ODE because the eigenvalue is an unknown. More...
 
void residual_fn (const DenseVector< D_complex > &z, DenseVector< D_complex > &g) const
 Define the harmonic eqn. More...
 
void matrix0 (const DenseVector< D_complex > &z, DenseMatrix< D_complex > &m) const
 matrix to multiply the BVP coordinate More...
 
 Harmonic_equation ()
 The harmonic equation is 2nd order. More...
 
void residual_fn (const DenseVector< double > &z, DenseVector< double > &f) const
 We implement the equation as 2 first-order ODEs. More...
 
- Public Member Functions inherited from CppNoddy::Equation_1matrix< _Type, _Xtype >
 Equation_1matrix (const unsigned &order)
 Constructor for equation class. More...
 
virtual ~Equation_1matrix ()
 An empty destructor, virtual since we have virtual methods. More...
 
void update (const DenseVector< _Type > &state)
 Update the Equation object for the current set of state variables. More...
 
const DenseMatrix< _Type > & matrix0 () const
 Return a handle to the matrix. More...
 
virtual void get_jacobian_of_matrix0_mult_vector (const DenseVector< _Type > &state, const DenseVector< _Type > &vec, DenseMatrix< _Type > &h) const
 Return the product of the Jacobian-of-the-matrix and a vector 'vec' when the equation has a given 'state'. More...
 
- Public Member Functions inherited from CppNoddy::Residual_with_coords< _Type, _Xtype >
 Residual_with_coords (const unsigned &order, const unsigned &ncoords)
 Constructor for a 'square' residual object that is, N residuals for N unknowns. More...
 
 Residual_with_coords (const unsigned &order, const unsigned &nvars, const unsigned &ncoords)
 Constructor for a 'non-square' residual object that is, there are less residual constraints than unknowns. More...
 
virtual ~Residual_with_coords ()
 An empty destructor. More...
 
_Xtype & coord (const unsigned &i)
 General handle access to the coordinates. More...
 
const _Xtype & coord (const unsigned &i) const
 General handle access to the coordinates. More...
 
- Public Member Functions inherited from CppNoddy::Residual< _Type >
 Residual (const unsigned &order)
 Constructor for a 'square' residual object that is, N residuals for N unknowns. More...
 
 Residual (const unsigned &order, const unsigned &nvars)
 Constructor for a 'non-square' residual object that is, there are less residual constraints than unknowns. More...
 
virtual ~Residual ()
 An empty destructor, virtual since we have virtual methods. More...
 
void update (const DenseVector< _Type > &state)
 Update the Residual object for the current set of state variables. More...
 
const DenseVector< _Type > & residual () const
 Return a handle to the residuals corresponding to the last update state. More...
 
const DenseMatrix< _Type > & jacobian () const
 Retrun a handle to the Jacobian of the residual corresponding to the last update state. More...
 
_Type & delta ()
 
const _Type & delta () const
 
unsigned get_order () const
 Get the order of the residual vector. More...
 
unsigned get_number_of_vars () const
 Get the number of variables that this residual condition is defined for. More...
 
virtual void residual_fn (const DenseVector< _Type > &state, DenseVector< _Type > &f) const
 A blank virtual residual function method. More...
 
- Public Member Functions inherited from CppNoddy::Equation_1matrix< D_complex >
 Equation_1matrix (const unsigned &order)
 Constructor for equation class. More...
 
virtual ~Equation_1matrix ()
 An empty destructor, virtual since we have virtual methods. More...
 
void update (const DenseVector< D_complex > &state)
 Update the Equation object for the current set of state variables. More...
 
const DenseMatrix< D_complex > & matrix0 () const
 Return a handle to the matrix. More...
 
virtual void get_jacobian_of_matrix0_mult_vector (const DenseVector< D_complex > &state, const DenseVector< D_complex > &vec, DenseMatrix< D_complex > &h) const
 Return the product of the Jacobian-of-the-matrix and a vector 'vec' when the equation has a given 'state'. More...
 
- Public Member Functions inherited from CppNoddy::Residual_with_coords< _Type, _Xtype >
 Residual_with_coords (const unsigned &order, const unsigned &ncoords)
 Constructor for a 'square' residual object that is, N residuals for N unknowns. More...
 
 Residual_with_coords (const unsigned &order, const unsigned &nvars, const unsigned &ncoords)
 Constructor for a 'non-square' residual object that is, there are less residual constraints than unknowns. More...
 
virtual ~Residual_with_coords ()
 An empty destructor. More...
 
_Xtype & coord (const unsigned &i)
 General handle access to the coordinates. More...
 
const _Xtype & coord (const unsigned &i) const
 General handle access to the coordinates. More...
 
- Public Member Functions inherited from CppNoddy::Equation< double >
 Equation (const unsigned &order)
 Constructor for equation class. More...
 
virtual ~Equation ()
 An empty destructor, virtual since we have virtual methods. More...
 

Public Attributes

double lambda
 A parameter. More...
 

Additional Inherited Members

virtual void matrix0 (const DenseVector< _Type > &x, DenseMatrix< _Type > &m) const
 Define the matrix in terms of the current state vector. More...
 
- Protected Member Functions inherited from CppNoddy::Residual< _Type >
virtual void jacobian (const DenseVector< _Type > &state, DenseMatrix< _Type > &jac) const
 Because the residual evaluation at the current state is assumed to have already been done by the 'update' method, this routine is protected. More...
 
virtual void matrix0 (const DenseVector< D_complex > &x, DenseMatrix< D_complex > &m) const
 Define the matrix in terms of the current state vector. More...
 
- Protected Attributes inherited from CppNoddy::Residual_with_coords< _Type, _Xtype >
std::vector< _Xtype > coords
 The coordinates stored for this residual. More...
 
- Protected Attributes inherited from CppNoddy::Residual< _Type >
DenseMatrix< _Type > JAC_AT_LAST_STATE
 Jacobian for the last state vector. More...
 
DenseVector< _Type > FN_AT_LAST_STATE
 Residual for the last state vector. More...
 
DenseVector< _Type > LAST_STATE
 The last state vector. More...
 
_Type DELTA
 A default step for FD computation of the Jacobian. More...
 
unsigned ORDER_OF_SYSTEM
 The order of the system of equations. More...
 
unsigned NUMBER_OF_VARS
 The number of elements in the state vector. More...
 
- Protected Attributes inherited from CppNoddy::Residual_with_coords< _Type, _Xtype >
std::vector< _Xtype > coords
 The coordinates stored for this residual. More...
 

Detailed Description

template<typename _Type, typename _Xtype>
class CppNoddy::Example::Harmonic_equation< _Type, _Xtype >

Define the harmonic equation by inheriting the Equation base class.

Define the harmonic equation by inheriting Equation base class.

Definition at line 25 of file BVPHarmonic.cpp.

Constructor & Destructor Documentation

◆ Harmonic_equation() [1/3]

template<typename _Type , typename _Xtype >
CppNoddy::Example::Harmonic_equation< _Type, _Xtype >::Harmonic_equation ( )
inline

The harmonic equation is a 2nd order ODE.

Definition at line 30 of file BVPHarmonic.cpp.

An equation object base class used in the IBVP classes (and others).

◆ Harmonic_equation() [2/3]

template<typename _Type , typename _Xtype >
CppNoddy::Example::Harmonic_equation< _Type, _Xtype >::Harmonic_equation ( )
inline

The eqn is a 3rd order complex nonlinear ODE because the eigenvalue is an unknown.

Definition at line 38 of file EVPHarmonicLocal.cpp.

◆ Harmonic_equation() [3/3]

template<typename _Type , typename _Xtype >
CppNoddy::Example::Harmonic_equation< _Type, _Xtype >::Harmonic_equation ( )
inline

The harmonic equation is 2nd order.

Definition at line 21 of file IVPHarmonic.cpp.

21 : Equation<double> ( 2 )
22 {
23 }
An equation object base class used in the BVP/IVP classes.
Definition: Equation.h:22

Member Function Documentation

◆ matrix0() [1/2]

template<typename _Type , typename _Xtype >
void CppNoddy::Example::Harmonic_equation< _Type, _Xtype >::matrix0 ( const DenseVector< _Type > &  x,
DenseMatrix< _Type > &  m 
) const
inlinevirtual

Define the matrix in terms of the current state vector.

Parameters
xThe current state vector.
mThe matrix.

Reimplemented from CppNoddy::Equation_1matrix< _Type, _Xtype >.

Definition at line 39 of file BVPHarmonic.cpp.

40 {
42 }
void fill_identity(CppNoddy::Sequential_Matrix_base< _Type > &A)
Fill diagonal with unit values.
Definition: Utils_Fill.h:22

◆ matrix0() [2/2]

template<typename _Type , typename _Xtype >
void CppNoddy::Example::Harmonic_equation< _Type, _Xtype >::matrix0 ( const DenseVector< D_complex > &  z,
DenseMatrix< D_complex > &  m 
) const
inlinevirtual

matrix to multiply the BVP coordinate

Reimplemented from CppNoddy::Equation_1matrix< D_complex >.

Definition at line 51 of file EVPHarmonicLocal.cpp.

52 {
54 }

References Utils_Fill::fill_identity(), and m.

◆ residual_fn() [1/3]

template<typename _Type , typename _Xtype >
void CppNoddy::Example::Harmonic_equation< _Type, _Xtype >::residual_fn ( const DenseVector< _Type > &  z,
DenseVector< _Type > &  g 
) const
inlinevirtual

The Berman equation.

Reimplemented from CppNoddy::Residual< _Type >.

Definition at line 33 of file BVPHarmonic.cpp.

34 {
35 g[ f ] = z[ fd ];
36 g[ fd ] = - z[ f ];
37 }
@ fd
Definition: BVPBerman.cpp:15
@ f
Definition: BVPBerman.cpp:15
double g(1.0)
gravitational acceleration

References f, fd, CppNoddy::Example::g(), and CppNoddy::Example::z().

◆ residual_fn() [2/3]

template<typename _Type , typename _Xtype >
void CppNoddy::Example::Harmonic_equation< _Type, _Xtype >::residual_fn ( const DenseVector< D_complex > &  z,
DenseVector< D_complex > &  g 
) const
inline

Define the harmonic eqn.

Definition at line 41 of file EVPHarmonicLocal.cpp.

42 {
43 g[ f ] = z[ fd ];
44 g[ fd ] = - z[ lambda ] * z[ f ];
45 // inclusion of eigenvalue everywhere maintains the bandedness,
46 // albeit at an obvious cost.
47 g[ lambda ] = 0.0;
48 }

References f, fd, CppNoddy::Example::g(), CppNoddy::Example::Harmonic_equation< _Type, _Xtype >::lambda, and CppNoddy::Example::z().

◆ residual_fn() [3/3]

template<typename _Type , typename _Xtype >
void CppNoddy::Example::Harmonic_equation< _Type, _Xtype >::residual_fn ( const DenseVector< double > &  z,
DenseVector< double > &  f 
) const
inline

We implement the equation as 2 first-order ODEs.

Definition at line 26 of file IVPHarmonic.cpp.

27 {
28 f[ 0 ] = z[ 1 ];
29 f[ 1 ] = - lambda * z[ 0 ];
30 }

References f, CppNoddy::Example::Harmonic_equation< _Type, _Xtype >::lambda, and CppNoddy::Example::z().

Member Data Documentation

◆ lambda

template<typename _Type , typename _Xtype >
double CppNoddy::Example::Harmonic_equation< _Type, _Xtype >::lambda

A parameter.

Definition at line 33 of file IVPHarmonic.cpp.

Referenced by main(), and CppNoddy::Example::Harmonic_equation< _Type, _Xtype >::residual_fn().


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

© 2012

R.E. Hewitt