Public Member Functions | List of all members
oomph::AssemblyHandler Class Reference

A class that is used to define the functions used to assemble the elemental contributions to the residuals vector and Jacobian matrix that define the problem being solved. The main use of this class is to assemble and solve the augmented systems used in bifurcation detection and tracking. The default implementation merely calls the underlying elemental functions with no augmentation. More...

#include <assembly_handler.h>

+ Inheritance diagram for oomph::AssemblyHandler:

Public Member Functions

 AssemblyHandler ()
 Empty constructor. More...
 
virtual unsigned ndof (GeneralisedElement *const &elem_pt)
 Return the number of degrees of freedom in the element elem_pt. More...
 
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. More...
 
virtual void dof_pt_vector (GeneralisedElement *const &elem_pt, Vector< double * > &dof_pt)
 Return vector of pointers to dofs in the element elem_pt. More...
 
virtual double & local_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. More...
 
virtual 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. More...
 
virtual void get_residuals (GeneralisedElement *const &elem_pt, Vector< double > &residuals)
 Return the contribution to the residuals of the element elem_pt. More...
 
virtual 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. More...
 
virtual 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. More...
 
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. More...
 
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. More...
 
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}. More...
 
virtual int bifurcation_type () const
 Return an unsigned integer to indicate whether the handler is a bifurcation tracking handler. The default is zero (not) More...
 
virtual double * bifurcation_parameter_pt () const
 Return a pointer to the bifurcation parameter in bifurcation tracking problems. More...
 
virtual void get_eigenfunction (Vector< DoubleVector > &eigenfunction)
 Return the eigenfunction(s) associated with the bifurcation that has been detected in bifurcation tracking problems. More...
 
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. More...
 
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. More...
 
virtual void synchronise ()
 Function that is used to perform any synchronisation required during the solution. More...
 
virtual ~AssemblyHandler ()
 Empty virtual destructor. More...
 

Detailed Description

A class that is used to define the functions used to assemble the elemental contributions to the residuals vector and Jacobian matrix that define the problem being solved. The main use of this class is to assemble and solve the augmented systems used in bifurcation detection and tracking. The default implementation merely calls the underlying elemental functions with no augmentation.

Definition at line 62 of file assembly_handler.h.

Constructor & Destructor Documentation

◆ AssemblyHandler()

oomph::AssemblyHandler::AssemblyHandler ( )
inline

Empty constructor.

Definition at line 66 of file assembly_handler.h.

◆ ~AssemblyHandler()

virtual oomph::AssemblyHandler::~AssemblyHandler ( )
inlinevirtual

Empty virtual destructor.

Definition at line 169 of file assembly_handler.h.

Member Function Documentation

◆ bifurcation_parameter_pt()

double * oomph::AssemblyHandler::bifurcation_parameter_pt ( ) const
virtual

Return a pointer to the bifurcation parameter in bifurcation tracking problems.

Return the eigenfunction(s) associated with the bifurcation that has been detected in bifurcation tracking problems. Default Broken implementation.

Reimplemented in oomph::HopfHandler, oomph::PitchForkHandler, and oomph::FoldHandler.

Definition at line 168 of file assembly_handler.cc.

Referenced by oomph::Problem::bifurcation_parameter_pt().

◆ bifurcation_type()

virtual int oomph::AssemblyHandler::bifurcation_type ( ) const
inlinevirtual

Return an unsigned integer to indicate whether the handler is a bifurcation tracking handler. The default is zero (not)

Reimplemented in oomph::HopfHandler, oomph::PitchForkHandler, and oomph::FoldHandler.

Definition at line 134 of file assembly_handler.h.

Referenced by oomph::Problem::adapt(), oomph::Problem::doc_errors(), and oomph::Problem::p_adapt().

◆ dof_pt_vector()

void oomph::AssemblyHandler::dof_pt_vector ( GeneralisedElement *const &  elem_pt,
Vector< double * > &  dof_pt 
)
virtual

Return vector of pointers to dofs in the element elem_pt.

Get the vector of pointers to dofs in the element elem_pt Direct call to the function in the element.

Definition at line 62 of file assembly_handler.cc.

References oomph::GeneralisedElement::dof_pt_vector().

◆ dof_vector()

void oomph::AssemblyHandler::dof_vector ( GeneralisedElement *const &  elem_pt,
const unsigned &  t,
Vector< double > &  dof 
)
virtual

Return vector of dofs at time level t in the element elem_pt.

Get the vector of dofs in the element elem_pt at time level t Direct call to the function in the element.

Definition at line 51 of file assembly_handler.cc.

References oomph::GeneralisedElement::dof_vector(), and t.

◆ eqn_number()

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

◆ get_all_vectors_and_matrices()

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

◆ get_djacobian_dparameter()

void oomph::AssemblyHandler::get_djacobian_dparameter ( GeneralisedElement *const &  elem_pt,
double *const &  parameter_pt,
Vector< double > &  dres_dparam,
DenseMatrix< double > &  djac_dparam 
)
virtual

Calculate the derivative of the residuals and jacobian with respect to a parameter.

Calculate the derivative of the residuals and jacobian with respect to a parameter by calling the elemental function.

Reimplemented in oomph::HopfHandler, oomph::PitchForkHandler, and oomph::FoldHandler.

Definition at line 138 of file assembly_handler.cc.

References oomph::GeneralisedElement::get_djacobian_dparameter().

Referenced by oomph::ParameterDerivativeHandler::get_jacobian().

◆ get_dresiduals_dparameter()

void oomph::AssemblyHandler::get_dresiduals_dparameter ( GeneralisedElement *const &  elem_pt,
double *const &  parameter_pt,
Vector< double > &  dres_dparam 
)
virtual

Calculate the derivative of the residuals with respect to a parameter.

Calculate the derivative of the residuals with respect to a parameter, by calling the elemental function.

Reimplemented in oomph::HopfHandler, oomph::PitchForkHandler, and oomph::FoldHandler.

Definition at line 125 of file assembly_handler.cc.

References oomph::GeneralisedElement::get_dresiduals_dparameter().

Referenced by oomph::ParameterDerivativeHandler::get_residuals().

◆ get_eigenfunction()

void oomph::AssemblyHandler::get_eigenfunction ( Vector< DoubleVector > &  eigenfunction)
virtual

Return the eigenfunction(s) associated with the bifurcation that has been detected in bifurcation tracking problems.

Return the eigenfunction(s) associated with the bifurcation that has been detected in bifurcation tracking problems. Default Broken implementation.

Reimplemented in oomph::HopfHandler, oomph::PitchForkHandler, and oomph::FoldHandler.

Definition at line 188 of file assembly_handler.cc.

Referenced by oomph::Problem::get_bifurcation_eigenfunction().

◆ get_hessian_vector_products()

void oomph::AssemblyHandler::get_hessian_vector_products ( GeneralisedElement *const &  elem_pt,
Vector< double > const &  Y,
DenseMatrix< double > const &  C,
DenseMatrix< double > &  product 
)
virtual

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}.

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} At the moment the dof pointer is passed in to enable easy calculation of finite difference default.

Reimplemented in oomph::HopfHandler, oomph::PitchForkHandler, and oomph::FoldHandler.

Definition at line 153 of file assembly_handler.cc.

References oomph::GeneralisedElement::get_hessian_vector_products().

Referenced by oomph::Problem::get_hessian_vector_products().

◆ get_inner_product_vectors()

void oomph::AssemblyHandler::get_inner_product_vectors ( GeneralisedElement *const &  elem_pt,
Vector< unsigned > const &  history_index,
Vector< Vector< double >> &  inner_product_vector 
)
virtual

Compute the vectors that when taken as a dot product with other history values give the inner product over the element.

Compute the vectors that when taken as a dot product with other history values give the inner product over the element. In other words if we call get_inner_product_vectors({0,1},output) output[0] will be a vector such that dofs.output[0] gives the inner product of current dofs with themselves.

Definition at line 221 of file assembly_handler.cc.

References oomph::GeneralisedElement::get_inner_product_vectors().

◆ get_inner_products()

void oomph::AssemblyHandler::get_inner_products ( GeneralisedElement *const &  elem_pt,
Vector< std::pair< unsigned, unsigned >> const &  history_index,
Vector< double > &  inner_product 
)
virtual

Compute the inner products of the given vector of pairs of history values over the element.

========================================================================== Compute the inner products of the given vector of pairs of history values over the element. The values of the index in the pair may be the same.

Definition at line 206 of file assembly_handler.cc.

References oomph::GeneralisedElement::get_inner_products().

◆ get_jacobian()

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

◆ get_residuals()

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

◆ local_problem_dof()

double & oomph::AssemblyHandler::local_problem_dof ( Problem *const &  problem_pt,
const unsigned &  t,
const unsigned &  i 
)
virtual

Return the t-th level of storage associated with the i-th (local) dof stored in the problem.

Definition at line 70 of file assembly_handler.cc.

References oomph::Problem::dof_pt(), i, and t.

◆ ndof()

unsigned oomph::AssemblyHandler::ndof ( GeneralisedElement *const &  elem_pt)
virtual

◆ synchronise()

virtual void oomph::AssemblyHandler::synchronise ( )
inlinevirtual

Function that is used to perform any synchronisation required during the solution.

Reimplemented in oomph::PitchForkHandler.

Definition at line 165 of file assembly_handler.h.

Referenced by oomph::Problem::synchronise_all_dofs().


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