Public Member Functions | Private Attributes | List of all members
oomph::EigenProblemHandler Class Reference

A class that is used to define the functions used to assemble the elemental contributions to the mass matrix and jacobian (stiffness) matrix that define a generalised eigenproblem. More...

#include <assembly_handler.h>

+ Inheritance diagram for oomph::EigenProblemHandler:

Public Member Functions

 EigenProblemHandler (const double &sigma_real)
 Constructor, sets the value of the real shift.
 
unsigned ndof (GeneralisedElement *const &elem_pt)
 Return the number of degrees of freedom in the element elem_pt.
 
unsigned long eqn_number (GeneralisedElement *const &elem_pt, const unsigned &ieqn_local)
 Return the global equation number of the local unknown ieqn_local in elem_pt.
 
void get_residuals (GeneralisedElement *const &elem_pt, Vector< double > &residuals)
 Return the contribution to the residuals of the element elem_pt This is deliberately broken in our eigenproblem.
 
void get_jacobian (GeneralisedElement *const &elem_pt, Vector< double > &residuals, DenseMatrix< double > &jacobian)
 Calculate the elemental Jacobian matrix "d equation / d variable" for elem_pt. Again deliberately broken in the eigenproblem.
 
void get_all_vectors_and_matrices (GeneralisedElement *const &elem_pt, Vector< Vector< double > > &vec, Vector< DenseMatrix< double > > &matrix)
 Calculate all desired vectors and matrices provided by the element elem_pt.
 
 ~EigenProblemHandler ()
 Empty virtual destructor.
 
- Public Member Functions inherited from oomph::AssemblyHandler
 AssemblyHandler ()
 Empty constructor.
 
virtual void dof_vector (GeneralisedElement *const &elem_pt, const unsigned &t, Vector< double > &dof)
 Return vector of dofs at time level t in the element elem_pt.
 
virtual void dof_pt_vector (GeneralisedElement *const &elem_pt, Vector< double * > &dof_pt)
 Return vector of pointers to dofs in the element elem_pt.
 
virtual doublelocal_problem_dof (Problem *const &problem_pt, const unsigned &t, const unsigned &i)
 Return the t-th level of storage associated with the i-th (local) dof stored in the problem.
 
virtual void get_dresiduals_dparameter (GeneralisedElement *const &elem_pt, double *const &parameter_pt, Vector< double > &dres_dparam)
 Calculate the derivative of the residuals with respect to a parameter.
 
virtual void get_djacobian_dparameter (GeneralisedElement *const &elem_pt, double *const &parameter_pt, Vector< double > &dres_dparam, DenseMatrix< double > &djac_dparam)
 Calculate the derivative of the residuals and jacobian with respect to a parameter.
 
virtual void get_hessian_vector_products (GeneralisedElement *const &elem_pt, Vector< double > const &Y, DenseMatrix< double > const &C, DenseMatrix< double > &product)
 Calculate the product of the Hessian (derivative of Jacobian with respect to all variables) an eigenvector, Y, and other specified vectors, C (d(J_{ij})/d u_{k}) Y_{j} C_{k}.
 
virtual int bifurcation_type () const
 Return an unsigned integer to indicate whether the handler is a bifurcation tracking handler. The default is zero (not)
 
virtual doublebifurcation_parameter_pt () const
 Return a pointer to the bifurcation parameter in bifurcation tracking problems.
 
virtual void get_eigenfunction (Vector< DoubleVector > &eigenfunction)
 Return the eigenfunction(s) associated with the bifurcation that has been detected in bifurcation tracking problems.
 
virtual void get_inner_products (GeneralisedElement *const &elem_pt, Vector< std::pair< unsigned, unsigned > > const &history_index, Vector< double > &inner_product)
 Compute the inner products of the given vector of pairs of history values over the element.
 
virtual void get_inner_product_vectors (GeneralisedElement *const &elem_pt, Vector< unsigned > const &history_index, Vector< Vector< double > > &inner_product_vector)
 Compute the vectors that when taken as a dot product with other history values give the inner product over the element.
 
virtual void synchronise ()
 Function that is used to perform any synchronisation required during the solution.
 
virtual ~AssemblyHandler ()
 Empty virtual destructor.
 

Private Attributes

double Sigma_real
 Storage for the real shift.
 

Detailed Description

A class that is used to define the functions used to assemble the elemental contributions to the mass matrix and jacobian (stiffness) matrix that define a generalised eigenproblem.

Definition at line 222 of file assembly_handler.h.

Constructor & Destructor Documentation

◆ EigenProblemHandler()

oomph::EigenProblemHandler::EigenProblemHandler ( const double sigma_real)
inline

Constructor, sets the value of the real shift.

Definition at line 229 of file assembly_handler.h.

◆ ~EigenProblemHandler()

oomph::EigenProblemHandler::~EigenProblemHandler ( )
inline

Empty virtual destructor.

Definition at line 257 of file assembly_handler.h.

Member Function Documentation

◆ eqn_number()

unsigned long oomph::EigenProblemHandler::eqn_number ( GeneralisedElement *const elem_pt,
const unsigned ieqn_local 
)
virtual

Return the global equation number of the local unknown ieqn_local in elem_pt.

Get the global equation number of the local unknown. Direct call to the function in the element.

Reimplemented from oomph::AssemblyHandler.

Definition at line 315 of file assembly_handler.cc.

References oomph::GeneralisedElement::eqn_number().

◆ get_all_vectors_and_matrices()

void oomph::EigenProblemHandler::get_all_vectors_and_matrices ( GeneralisedElement *const elem_pt,
Vector< Vector< double > > &  vec,
Vector< DenseMatrix< double > > &  matrix 
)
virtual

Calculate all desired vectors and matrices provided by the element elem_pt.

Calculate all desired vectors and matrices that are required by the problem by calling those of the underlying element.

Reimplemented from oomph::AssemblyHandler.

Definition at line 350 of file assembly_handler.cc.

References oomph::GeneralisedElement::get_jacobian_and_mass_matrix(), i, oomph::GeneralisedElement::ndof(), Sigma_real, and oomph::FiniteElement::size().

◆ get_jacobian()

void oomph::EigenProblemHandler::get_jacobian ( GeneralisedElement *const elem_pt,
Vector< double > &  residuals,
DenseMatrix< double > &  jacobian 
)
virtual

Calculate the elemental Jacobian matrix "d equation / d variable" for elem_pt. Again deliberately broken in the eigenproblem.

Cannot call get_jacobian for an eigenproblem, so throw an error.

Reimplemented from oomph::AssemblyHandler.

Definition at line 336 of file assembly_handler.cc.

◆ get_residuals()

void oomph::EigenProblemHandler::get_residuals ( GeneralisedElement *const elem_pt,
Vector< double > &  residuals 
)
virtual

Return the contribution to the residuals of the element elem_pt This is deliberately broken in our eigenproblem.

Cannot call get_residuals for an eigenproblem, so throw an error.

Reimplemented from oomph::AssemblyHandler.

Definition at line 324 of file assembly_handler.cc.

◆ ndof()

unsigned oomph::EigenProblemHandler::ndof ( GeneralisedElement *const elem_pt)
virtual

Return the number of degrees of freedom in the element elem_pt.

Get the number of elemental degrees of freedom. Direct call to the function in the element.

Reimplemented from oomph::AssemblyHandler.

Definition at line 306 of file assembly_handler.cc.

References oomph::GeneralisedElement::ndof().

Member Data Documentation

◆ Sigma_real

double oomph::EigenProblemHandler::Sigma_real
private

Storage for the real shift.

Definition at line 225 of file assembly_handler.h.

Referenced by get_all_vectors_and_matrices().


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