NewtonRaphsonSolver< number, VectorType > Class Template Reference

Developer Documentation: MeltPoolDG::NewtonRaphsonSolver< number, VectorType > Class Template Reference
Developer Documentation
MeltPoolDG::NewtonRaphsonSolver< number, VectorType > Class Template Reference

#include <newton_raphson_solver.hpp>

Collaboration diagram for MeltPoolDG::NewtonRaphsonSolver< number, VectorType >:
[legend]

Public Member Functions

 NewtonRaphsonSolver (const NonlinearSolverData< number > &nlsolve_data)
 
void solve (VectorType &solution)
 
const VectorType & get_residual () const
 
const VectorType & get_solution_update () const
 

Public Attributes

std::function< void(const VectorType &evaluation_point, VectorType &residual)> residual = {}
 
std::function< int(const VectorType &rhs, VectorType &dst)> solve_with_jacobian = {}
 
std::function< void(VectorType &v)> reinit_vector = {}
 
std::function< void(VectorType &v)> distribute_constraints = {}
 
std::function< number()> norm_of_solution_vector = {}
 

Private Member Functions

void solve_increment (const VectorType &current_solution)
 
number suggest_new_time_increment ()
 
void set_tolerances_to_alternative_values ()
 
bool is_converged ()
 
void print_header () const
 
std::string print_checkmark (bool is_converged) const
 

Private Attributes

const NonlinearSolverData< number > nlsolve_data
 
dealii::ConditionalOStream pcout
 
const int max_number_of_iterations
 
number residual_tolerance
 
number field_correction_tolerance
 
VectorType rhs
 
VectorType solution_update
 
int iteration_counter = 0
 
int linear_iter_acc = 0
 
std::ostringstream str_
 

Constructor & Destructor Documentation

◆ NewtonRaphsonSolver()

template<typename number , typename VectorType >
MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::NewtonRaphsonSolver ( const NonlinearSolverData< number > &  nlsolve_data)
explicit

Member Function Documentation

◆ get_residual()

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
const VectorType & MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::get_residual ( ) const
inline

◆ get_solution_update()

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
const VectorType & MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::get_solution_update ( ) const
inline

◆ is_converged()

template<typename number , typename VectorType >
bool MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::is_converged ( )
private

◆ print_checkmark()

template<typename number , typename VectorType >
std::string MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::print_checkmark ( bool  is_converged) const
private

◆ print_header()

template<typename number , typename VectorType >
void MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::print_header ( ) const
private

◆ set_tolerances_to_alternative_values()

template<typename number , typename VectorType >
void MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::set_tolerances_to_alternative_values ( )
private

◆ solve()

template<typename number , typename VectorType >
void MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::solve ( VectorType &  solution)

◆ solve_increment()

template<typename number , typename VectorType >
void MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::solve_increment ( const VectorType &  current_solution)
private

◆ suggest_new_time_increment()

template<typename number , typename VectorType >
number MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::suggest_new_time_increment ( )
private

Member Data Documentation

◆ distribute_constraints

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
std::function<void(VectorType &v)> MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::distribute_constraints = {}

◆ field_correction_tolerance

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
number MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::field_correction_tolerance
private

◆ iteration_counter

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
int MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::iteration_counter = 0
private

◆ linear_iter_acc

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
int MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::linear_iter_acc = 0
private

◆ max_number_of_iterations

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
const int MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::max_number_of_iterations
private

◆ nlsolve_data

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
const NonlinearSolverData<number> MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::nlsolve_data
private

◆ norm_of_solution_vector

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
std::function<number()> MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::norm_of_solution_vector = {}

◆ pcout

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
dealii::ConditionalOStream MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::pcout
private

◆ reinit_vector

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
std::function<void(VectorType &v)> MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::reinit_vector = {}

◆ residual

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
std::function<void(const VectorType &evaluation_point, VectorType &residual)> MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::residual = {}

◆ residual_tolerance

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
number MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::residual_tolerance
private

◆ rhs

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
VectorType MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::rhs
private

◆ solution_update

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
VectorType MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::solution_update
private

◆ solve_with_jacobian

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
std::function<int(const VectorType &rhs, VectorType &dst)> MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::solve_with_jacobian = {}

◆ str_

template<typename number , typename VectorType = dealii::LinearAlgebra::distributed::Vector<number>>
std::ostringstream MeltPoolDG::NewtonRaphsonSolver< number, VectorType >::str_
private

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