Example codes
and tutorials
The (Not-so) Quick Guide
List of tutorials/demo codes
Single-Physics Problems
Poisson
Adaptivity illustrated for Poisson
Advection-Diffusion
Unsteady heat equation
Linear wave equation
The Young-Laplace equation
Navier-Stokes
Free-surface Navier-Stokes
Axisymmetric Navier-Stokes
Solid mechanics
Beam structures
Shell structures
Multi-physics Problems
Fluid-structure interaction
Boussinesq convection
Steady thermoelasticity
Methods-based example codes and tutorials
Mesh generation
Linear solvers and preconditioners
Visualisation of the results
Parallel processing
How to write a new element
How to write a new refineable element
Default nonlinear solvers -- the sequence of action functions
...
Documentation
FE theory and top-down discussion of the data structure
The (Not-so) Quick Guide
Comprehensive bottom-up discussion of the data structure
List of available structured and unstructured meshes
Linear solvers and preconditioners
Visualisation of the results
Parallel processing
Coding conventions and C++ style
Creating documentation
Optimisation - robustness vs. "raw speed"
Linear vs. nonlinear problems
Storing shape functions
Changing the default "full" integration scheme
Disabling the ALE formulation of unsteady equations
C vs. C++ output
Different sparse assembly techniques and the STL memory pool
Publications
Publications
Talks
Journal publications
Theses
Picture show
Download
Copyright
Download/installation instructions
Download page
FAQ & Contact
FAQ
Change log
Bugs and other known problems
Completeness of the library & our "To-Do List"
Contact the developers
Get involved

 


Beta release!

Please note that the library has not been "officially" released. While we continue to work on the documentation, these web pages are likely to contain broken links and documents in draft form. Please send an email to

oomph-lib AT maths DOT man DOT ac DOT uk

if you wish to be informed of the library's "official" release.

oomph::AugmentedBlockPitchForkLinearSolver Class Reference

#include <assembly_handler.h>

Inheritance diagram for oomph::AugmentedBlockPitchForkLinearSolver:

oomph::LinearSolver oomph::DistributableLinearAlgebraObject List of all members.

Detailed Description

A custom linear solver class that is used to solve a block-factorised version of the PitchFork bifurcation detection problem.

Definition at line 450 of file assembly_handler.h.


Public Member Functions

 AugmentedBlockPitchForkLinearSolver (LinearSolver *const linear_solver_pt)
 Constructor, inherits the original linear solver.
 ~AugmentedBlockPitchForkLinearSolver ()
 Clean up the memory that may have been allocated by the solver.
void solve (Problem *const &problem_pt, DoubleVector &result)
 The solve function uses the block factorisation.
void solve (DoubleMatrixBase *const &matrix_pt, const DoubleVector &rhs, DoubleVector &result)
 The interface is deliberately broken.
void solve (DoubleMatrixBase *const &matrix_pt, const Vector< double > &rhs, Vector< double > &result)
 The linear-algebra-type solver does not make sense. The interface is deliberately broken.
void resolve (const DoubleVector &rhs, DoubleVector &result)
 The resolve function also uses the block factorisation.
LinearSolverlinear_solver_pt () const
 Access function to the original linear solver.

Private Attributes

LinearSolverLinear_solver_pt
 Pointer to the original linear solver.
ProblemProblem_pt
 Pointer to the problem, used in the resolve.
DoubleVectorAlpha_pt
 Pointer to the storage for the vector alpha.
DoubleVectorE_pt
 Pointer to the storage for the vector e.

Constructor & Destructor Documentation

oomph::AugmentedBlockPitchForkLinearSolver::AugmentedBlockPitchForkLinearSolver ( LinearSolver *const   linear_solver_pt  )  [inline]

Constructor, inherits the original linear solver.

Definition at line 467 of file assembly_handler.h.

oomph::AugmentedBlockPitchForkLinearSolver::~AugmentedBlockPitchForkLinearSolver (  ) 

Clean up the memory that may have been allocated by the solver.

Definition at line 1796 of file assembly_handler.cc.

References Alpha_pt, and E_pt.


Member Function Documentation

LinearSolver* oomph::AugmentedBlockPitchForkLinearSolver::linear_solver_pt (  )  const [inline]

Access function to the original linear solver.

Definition at line 506 of file assembly_handler.h.

References Linear_solver_pt.

Referenced by oomph::PitchForkHandler::~PitchForkHandler().

void oomph::AugmentedBlockPitchForkLinearSolver::resolve ( const DoubleVector rhs,
DoubleVector result 
) [virtual]

The resolve function also uses the block factorisation.

Reimplemented from oomph::LinearSolver.

Definition at line 2019 of file assembly_handler.cc.

References oomph::Problem::actions_after_change_in_bifurcation_parameter(), Alpha_pt, oomph::Problem::assembly_handler_pt(), oomph::DoubleVector::build(), oomph::Problem::communicator_pt(), oomph::LinearSolver::disable_resolve(), oomph::DistributableLinearAlgebraObject::Distribution_pt, oomph::DistributableLinearAlgebraObject::distribution_setup(), oomph::Problem::dof(), oomph::Mesh::element_pt(), oomph::LinearSolver::enable_resolve(), oomph::PitchForkHandler::eqn_number(), oomph::BlackBoxFDNewtonSolver::FD_step, oomph::PitchForkHandler::get_jacobian(), Linear_solver_pt, oomph::Problem::mesh_pt(), oomph::PitchForkHandler::ndof(), oomph::Problem::ndof(), oomph::Mesh::nelement(), OOMPH_EXCEPTION_LOCATION, Problem_pt, oomph::LinearAlgebraDistribution::rebuild(), oomph::LinearSolver::resolve(), oomph::PitchForkHandler::solve_augmented_block_system(), oomph::PitchForkHandler::solve_full_system(), and oomph::PitchForkHandler::Y.

void oomph::AugmentedBlockPitchForkLinearSolver::solve ( DoubleMatrixBase *const &  matrix_pt,
const Vector< double > &  rhs,
Vector< double > &  result 
) [inline, virtual]

The linear-algebra-type solver does not make sense. The interface is deliberately broken.

Reimplemented from oomph::LinearSolver.

Definition at line 491 of file assembly_handler.h.

References OOMPH_EXCEPTION_LOCATION.

void oomph::AugmentedBlockPitchForkLinearSolver::solve ( DoubleMatrixBase *const &  matrix_pt,
const DoubleVector rhs,
DoubleVector result 
) [inline, virtual]

The interface is deliberately broken.

Reimplemented from oomph::LinearSolver.

Definition at line 479 of file assembly_handler.h.

References OOMPH_EXCEPTION_LOCATION.

void oomph::AugmentedBlockPitchForkLinearSolver::solve ( Problem *const &  problem_pt,
DoubleVector result 
) [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.

Definition at line 1806 of file assembly_handler.cc.

References oomph::Problem::actions_after_change_in_bifurcation_parameter(), Alpha_pt, oomph::Problem::assembly_handler_pt(), oomph::DoubleVector::build(), oomph::Problem::communicator_pt(), oomph::LinearSolver::disable_resolve(), oomph::DistributableLinearAlgebraObject::distributed(), oomph::DistributableLinearAlgebraObject::Distribution_pt, oomph::DistributableLinearAlgebraObject::distribution_setup(), oomph::Problem::dof(), E_pt, oomph::Mesh::element_pt(), oomph::LinearSolver::Enable_resolve, oomph::LinearSolver::enable_resolve(), oomph::PitchForkHandler::eqn_number(), oomph::BlackBoxFDNewtonSolver::FD_step, oomph::PitchForkHandler::get_jacobian(), Linear_solver_pt, oomph::Problem::mesh_pt(), oomph::PitchForkHandler::ndof(), oomph::Problem::ndof(), oomph::Mesh::nelement(), OOMPH_EXCEPTION_LOCATION, Problem_pt, oomph::PitchForkHandler::Psi, oomph::LinearAlgebraDistribution::rebuild(), oomph::LinearSolver::resolve(), oomph::Problem::sign_of_jacobian(), oomph::LinearSolver::solve(), oomph::PitchForkHandler::solve_augmented_block_system(), oomph::PitchForkHandler::solve_full_system(), and oomph::PitchForkHandler::Y.


Member Data Documentation

DoubleVector* oomph::AugmentedBlockPitchForkLinearSolver::Alpha_pt [private]

Pointer to the storage for the vector alpha.

Definition at line 459 of file assembly_handler.h.

Referenced by resolve(), solve(), and ~AugmentedBlockPitchForkLinearSolver().

DoubleVector* oomph::AugmentedBlockPitchForkLinearSolver::E_pt [private]

Pointer to the storage for the vector e.

Definition at line 462 of file assembly_handler.h.

Referenced by solve(), and ~AugmentedBlockPitchForkLinearSolver().

LinearSolver* oomph::AugmentedBlockPitchForkLinearSolver::Linear_solver_pt [private]

Pointer to the original linear solver.

Definition at line 453 of file assembly_handler.h.

Referenced by linear_solver_pt(), resolve(), and solve().

Problem* oomph::AugmentedBlockPitchForkLinearSolver::Problem_pt [private]

Pointer to the problem, used in the resolve.

Definition at line 456 of file assembly_handler.h.

Referenced by resolve(), and solve().


The documentation for this class was generated from the following files:
Generated on Mon Aug 10 11:24:17 2009 by  doxygen 1.4.7