![]() |
|
#include <assembly_handler.h>
Inheritance diagram for oomph::BlockPitchForkLinearSolver:Public Member Functions | |
| BlockPitchForkLinearSolver (LinearSolver *const linear_solver_pt) | |
| Constructor, inherits the original linear solver. More... | |
| ~BlockPitchForkLinearSolver () | |
| Destructor: clean up the allocated memory. More... | |
| void | solve (Problem *const &problem_pt, DoubleVector &result) |
| The solve function uses the block factorisation. More... | |
| void | solve (DoubleMatrixBase *const &matrix_pt, const DoubleVector &rhs, DoubleVector &result) |
| void | solve (DoubleMatrixBase *const &matrix_pt, const Vector< double > &rhs, Vector< double > &result) |
| void | resolve (const DoubleVector &rhs, DoubleVector &result) |
| The resolve function also uses the block factorisation. More... | |
| LinearSolver * | linear_solver_pt () const |
| Access function to the original linear solver. More... | |
Public Member Functions inherited from oomph::LinearSolver | |
| LinearSolver () | |
| Empty constructor, initialise the member data. More... | |
| LinearSolver (const LinearSolver &dummy)=delete | |
| Broken copy constructor. More... | |
| void | operator= (const LinearSolver &)=delete |
| Broken assignment operator. More... | |
| virtual | ~LinearSolver () |
| Empty virtual destructor. More... | |
| void | enable_doc_time () |
| Enable documentation of solve times. More... | |
| void | disable_doc_time () |
| Disable documentation of solve times. More... | |
| bool | is_doc_time_enabled () const |
| Is documentation of solve times enabled? More... | |
| bool | is_resolve_enabled () const |
| Boolean flag indicating if resolves are enabled. More... | |
| virtual void | enable_resolve () |
| virtual void | disable_resolve () |
| virtual void | solve_transpose (Problem *const &problem_pt, DoubleVector &result) |
| virtual void | solve_transpose (DoubleMatrixBase *const &matrix_pt, const DoubleVector &rhs, DoubleVector &result) |
| virtual void | solve_transpose (DoubleMatrixBase *const &matrix_pt, const Vector< double > &rhs, Vector< double > &result) |
| virtual void | resolve_transpose (const DoubleVector &rhs, DoubleVector &result) |
| virtual void | clean_up_memory () |
| virtual double | jacobian_setup_time () const |
| virtual double | linear_solver_solution_time () const |
| virtual void | enable_computation_of_gradient () |
| void | disable_computation_of_gradient () |
| void | reset_gradient () |
| void | get_gradient (DoubleVector &gradient) |
| function to access the gradient, provided it has been computed More... | |
Public Member Functions inherited from oomph::DistributableLinearAlgebraObject | |
| DistributableLinearAlgebraObject () | |
| Default constructor - create a distribution. More... | |
| DistributableLinearAlgebraObject (const DistributableLinearAlgebraObject &matrix)=delete | |
| Broken copy constructor. More... | |
| void | operator= (const DistributableLinearAlgebraObject &)=delete |
| Broken assignment operator. More... | |
| virtual | ~DistributableLinearAlgebraObject () |
| Destructor. More... | |
| LinearAlgebraDistribution * | distribution_pt () const |
| access to the LinearAlgebraDistribution More... | |
| unsigned | nrow () const |
| access function to the number of global rows. More... | |
| unsigned | nrow_local () const |
| access function for the num of local rows on this processor. More... | |
| unsigned | nrow_local (const unsigned &p) const |
| access function for the num of local rows on this processor. More... | |
| unsigned | first_row () const |
| access function for the first row on this processor More... | |
| unsigned | first_row (const unsigned &p) const |
| access function for the first row on this processor More... | |
| bool | distributed () const |
| distribution is serial or distributed More... | |
| bool | distribution_built () const |
| void | build_distribution (const LinearAlgebraDistribution *const dist_pt) |
| void | build_distribution (const LinearAlgebraDistribution &dist) |
Private Attributes | |
| LinearSolver * | Linear_solver_pt |
| Pointer to the original linear solver. More... | |
| Problem * | Problem_pt |
| Pointer to the problem, used in the resolve. More... | |
| DoubleVector * | B_pt |
| Pointer to the storage for the vector b. More... | |
| DoubleVector * | C_pt |
| Pointer to the storage for the vector c. More... | |
| DoubleVector * | D_pt |
| Pointer to the storage for the vector d. More... | |
| DoubleVector * | dJy_dparam_pt |
Additional Inherited Members | |
Protected Member Functions inherited from oomph::DistributableLinearAlgebraObject | |
| void | clear_distribution () |
Protected Attributes inherited from oomph::LinearSolver | |
| bool | Enable_resolve |
| bool | Doc_time |
| Boolean flag that indicates whether the time taken. More... | |
| bool | Compute_gradient |
| bool | Gradient_has_been_computed |
| flag that indicates whether the gradient was computed or not More... | |
| DoubleVector | Gradient_for_glob_conv_newton_solve |
A custom linear solver class that is used to solve a block-factorised version of the PitchFork bifurcation detection problem.
|
inline |
Constructor, inherits the original linear solver.
| oomph::BlockPitchForkLinearSolver::~BlockPitchForkLinearSolver | ( | ) |
Destructor: clean up the allocated memory.
Clean up the memory that may have been allocated by the solver.
References B_pt, C_pt, D_pt, and dJy_dparam_pt.
|
inline |
Access function to the original linear solver.
References Linear_solver_pt.
Referenced by oomph::PitchForkHandler::~PitchForkHandler().
|
virtual |
The resolve function also uses the block factorisation.
Reimplemented from oomph::LinearSolver.
References oomph::Problem::assembly_handler_pt(), oomph::PitchForkHandler::Augmented_dof_distribution_pt, B_pt, oomph::DoubleVector::build(), oomph::LinearAlgebraDistribution::build(), oomph::DoubleVector::built(), oomph::LinearAlgebraDistribution::built(), C_pt, oomph::Problem::communicator_pt(), D_pt, oomph::LinearSolver::disable_resolve(), oomph::Problem::distributed(), oomph::DistributableLinearAlgebraObject::distribution_pt(), oomph::PitchForkHandler::Dof_distribution_pt, oomph::DoubleVector::dot(), oomph::LinearSolver::enable_resolve(), oomph::Problem::get_hessian_vector_products(), Linear_solver_pt, oomph::OomphCommunicator::my_rank(), n, oomph::LinearAlgebraDistribution::nrow_local(), oomph::DistributableLinearAlgebraObject::nrow_local(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, Problem_pt, oomph::PitchForkHandler::Psi, oomph::DoubleVector::redistribute(), oomph::LinearSolver::resolve(), oomph::PitchForkHandler::solve_block_system(), oomph::PitchForkHandler::solve_full_system(), Global_parameters::x1(), Global_parameters::x2(), and oomph::PitchForkHandler::Y.
|
inlinevirtual |
The linear-algebra-type solver does not make sense. The interface is deliberately broken
Reimplemented from oomph::LinearSolver.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
inlinevirtual |
The linear-algebra-type solver does not make sense. The interface is deliberately broken
Reimplemented from oomph::LinearSolver.
References OOMPH_CURRENT_FUNCTION, and OOMPH_EXCEPTION_LOCATION.
|
virtual |
The solve function uses the block factorisation.
Use a block factorisation to solve the augmented system associated with a PitchFork bifurcation.
Implements oomph::LinearSolver.
References oomph::Problem::assembly_handler_pt(), oomph::PitchForkHandler::Augmented_dof_distribution_pt, B_pt, oomph::DistributableLinearAlgebraObject::build_distribution(), oomph::DoubleVector::built(), C_pt, oomph::Problem::communicator_pt(), D_pt, oomph::LinearSolver::disable_resolve(), oomph::Problem::distributed(), oomph::DistributableLinearAlgebraObject::distribution_pt(), dJy_dparam_pt, oomph::PitchForkHandler::Dof_distribution_pt, oomph::DoubleVector::dot(), oomph::LinearSolver::Enable_resolve, oomph::LinearSolver::enable_resolve(), oomph::OcTreeNames::F, boost::multiprecision::fabs(), G, oomph::Problem::get_derivative_wrt_global_parameter(), oomph::Problem::get_hessian_vector_products(), Linear_solver_pt, oomph::OomphCommunicator::my_rank(), n, oomph::LinearAlgebraDistribution::nrow_local(), OOMPH_CURRENT_FUNCTION, OOMPH_EXCEPTION_LOCATION, oomph::PitchForkHandler::Parameter_pt, Problem_pt, oomph::PitchForkHandler::Psi, oomph::DoubleVector::redistribute(), oomph::LinearSolver::resolve(), oomph::Problem::sign_of_jacobian(), oomph::LinearSolver::solve(), oomph::PitchForkHandler::solve_block_system(), oomph::PitchForkHandler::solve_full_system(), Global_parameters::x1(), Global_parameters::x2(), and oomph::PitchForkHandler::Y.
|
private |
Pointer to the storage for the vector b.
Referenced by resolve(), solve(), and ~BlockPitchForkLinearSolver().
|
private |
Pointer to the storage for the vector c.
Referenced by resolve(), solve(), and ~BlockPitchForkLinearSolver().
|
private |
Pointer to the storage for the vector d.
Referenced by resolve(), solve(), and ~BlockPitchForkLinearSolver().
|
private |
Pointer to the storage for the vector of derivatives with respect to the bifurcation parameter
Referenced by solve(), and ~BlockPitchForkLinearSolver().
|
private |
Pointer to the original linear solver.
Referenced by linear_solver_pt(), resolve(), and solve().
|
private |