DFT-FE 1.1.0-pre
Density Functional Theory With Finite-Elements
|
Abstract class for solver functions. More...
#include <nonlinearSolverProblem.h>
Public Member Functions | |
nonlinearSolverProblem () | |
Constructor. | |
virtual | ~nonlinearSolverProblem ()=0 |
Destructor. | |
virtual unsigned int | getNumberUnknowns () const =0 |
Obtain number of unknowns. | |
virtual void | value (std::vector< double > &functionValue)=0 |
Compute function value (aka energy). | |
virtual void | gradient (std::vector< double > &gradient)=0 |
Compute function gradient (aka forces). | |
virtual void | precondition (std::vector< double > &s, const std::vector< double > &gradient)=0 |
Apply preconditioner to function gradient. | |
virtual void | update (const std::vector< double > &solution, const bool computeForces=true, const bool useSingleAtomSolutionsInitialGuess=false)=0 |
Update solution. | |
virtual void | solution (std::vector< double > &solution)=0 |
Obtain current solution. | |
virtual std::vector< unsigned int > | getUnknownCountFlag () const =0 |
For each unknown indicate whether that unknown should be accumulated. This functionality is needed in the case of parallel execution when domain decomposition is employed. Unknowns residing on processor boundary should only be accumulated once when dot products of vertex fields are computed (e.g. residual). | |
virtual bool | isConverged () const =0 |
check for convergence. | |
virtual void | save ()=0 |
create checkpoint for the current state of the problem i.e problem domain and solution. | |
virtual const MPI_Comm & | getMPICommunicator ()=0 |
get MPI communicator. | |
Abstract class for solver functions.
dftfe::nonlinearSolverProblem::nonlinearSolverProblem | ( | ) |
Constructor.
|
pure virtual |
Destructor.
|
pure virtual |
get MPI communicator.
Implemented in dftfe::geoOptCell, dftfe::geoOptIon, and dftfe::nudgedElasticBandClass.
|
pure virtual |
Obtain number of unknowns.
Implemented in dftfe::geoOptCell, dftfe::geoOptIon, and dftfe::nudgedElasticBandClass.
|
pure virtual |
For each unknown indicate whether that unknown should be accumulated. This functionality is needed in the case of parallel execution when domain decomposition is employed. Unknowns residing on processor boundary should only be accumulated once when dot products of vertex fields are computed (e.g. residual).
Implemented in dftfe::geoOptCell, dftfe::geoOptIon, and dftfe::nudgedElasticBandClass.
|
pure virtual |
Compute function gradient (aka forces).
gradient | STL vector for gradient values. |
Implemented in dftfe::geoOptCell, dftfe::geoOptIon, and dftfe::nudgedElasticBandClass.
|
pure virtual |
check for convergence.
Implemented in dftfe::geoOptCell, dftfe::geoOptIon, and dftfe::nudgedElasticBandClass.
|
pure virtual |
Apply preconditioner to function gradient.
s | STL vector for s=-M^{-1} gradient. |
gradient | STL vector for gradient values. |
Implemented in dftfe::geoOptCell, dftfe::geoOptIon, and dftfe::nudgedElasticBandClass.
|
pure virtual |
create checkpoint for the current state of the problem i.e problem domain and solution.
Implemented in dftfe::geoOptCell, dftfe::geoOptIon, and dftfe::nudgedElasticBandClass.
|
pure virtual |
Obtain current solution.
solution | Space for current solution. |
Implemented in dftfe::geoOptCell, dftfe::geoOptIon, and dftfe::nudgedElasticBandClass.
|
pure virtual |
Update solution.
solution | Updated solution. |
Implemented in dftfe::geoOptCell, dftfe::geoOptIon, and dftfe::nudgedElasticBandClass.
|
pure virtual |
Compute function value (aka energy).
Implemented in dftfe::geoOptCell, dftfe::geoOptIon, and dftfe::nudgedElasticBandClass.