DFT-EFE
 
Loading...
Searching...
No Matches
dftefe::linearAlgebra::BisectionSolverFunction< ValueType > Class Template Referenceabstract

Interface a class must implement to have its root found by BisectionSolver. Unlike NewtonRaphsonSolverFunction, no derivative (getForce) is required - bisection only ever evaluates getValue(), which is what makes it immune to sharply-peaked or vanishing derivatives that can send Newton-Raphson to +-infinity. More...

#include <BisectionSolverFunction.h>

Public Member Functions

virtual ~BisectionSolverFunction ()=default
 
virtual const ValueType getValue (ValueType &x) const =0
 
virtual void setSolution (const ValueType &x)=0
 
virtual void getSolution (ValueType &solution)=0
 
virtual const ValueType getLowerBound () const =0
 Lower end of an interval known to bracket the root, i.e. getValue(getLowerBound()) and getValue(getUpperBound()) must have opposite signs (or one of them exactly zero). More...
 
virtual const ValueType getUpperBound () const =0
 Upper end of the bracketing interval. See getLowerBound(). More...
 

Detailed Description

template<typename ValueType>
class dftefe::linearAlgebra::BisectionSolverFunction< ValueType >

Interface a class must implement to have its root found by BisectionSolver. Unlike NewtonRaphsonSolverFunction, no derivative (getForce) is required - bisection only ever evaluates getValue(), which is what makes it immune to sharply-peaked or vanishing derivatives that can send Newton-Raphson to +-infinity.

Constructor & Destructor Documentation

◆ ~BisectionSolverFunction()

template<typename ValueType >
virtual dftefe::linearAlgebra::BisectionSolverFunction< ValueType >::~BisectionSolverFunction ( )
virtualdefault

Member Function Documentation

◆ getLowerBound()

template<typename ValueType >
virtual const ValueType dftefe::linearAlgebra::BisectionSolverFunction< ValueType >::getLowerBound ( ) const
pure virtual

Lower end of an interval known to bracket the root, i.e. getValue(getLowerBound()) and getValue(getUpperBound()) must have opposite signs (or one of them exactly zero).

Implemented in dftefe::ksdft::FractionalOccupancyFunction.

Here is the caller graph for this function:

◆ getSolution()

template<typename ValueType >
virtual void dftefe::linearAlgebra::BisectionSolverFunction< ValueType >::getSolution ( ValueType &  solution)
pure virtual

◆ getUpperBound()

template<typename ValueType >
virtual const ValueType dftefe::linearAlgebra::BisectionSolverFunction< ValueType >::getUpperBound ( ) const
pure virtual

Upper end of the bracketing interval. See getLowerBound().

Implemented in dftefe::ksdft::FractionalOccupancyFunction.

Here is the caller graph for this function:

◆ getValue()

template<typename ValueType >
virtual const ValueType dftefe::linearAlgebra::BisectionSolverFunction< ValueType >::getValue ( ValueType &  x) const
pure virtual

Implemented in dftefe::ksdft::FractionalOccupancyFunction.

Here is the caller graph for this function:

◆ setSolution()

template<typename ValueType >
virtual void dftefe::linearAlgebra::BisectionSolverFunction< ValueType >::setSolution ( const ValueType &  x)
pure virtual

Implemented in dftefe::ksdft::FractionalOccupancyFunction.

Here is the caller graph for this function:

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