version 0.4.1
Ikarus::NonlinearSolverFactory< NLSSetting > Struct Template Reference

A factory class for creating nonlinear solvers. More...

#include <ikarus/solver/nonlinearsolver/nonlinearsolverfactory.hh>

Public Member Functions

 NonlinearSolverFactory (NLSSetting s)
 Constructs a NonlinearSolverFactory with the given settings. More...
 
template<typename Assembler >
requires Concepts::FlatAssembler<typename std::remove_cvref_t<Assembler>::element_type>
auto create (Assembler &&assembler) const
 Creates a nonlinear solver using the provided assembler. More...
 

Public Attributes

NLSSetting settings
 

Detailed Description

template<typename NLSSetting>
struct Ikarus::NonlinearSolverFactory< NLSSetting >

This class is responsible for creating nonlinear solvers using the provided settings and an assembler that satisfies the FlatAssembler concept.

Template Parameters
NLSSettingThe type of the settings used for creating nonlinear solvers.

Constructor & Destructor Documentation

◆ NonlinearSolverFactory()

template<typename NLSSetting >
Ikarus::NonlinearSolverFactory< NLSSetting >::NonlinearSolverFactory ( NLSSetting  s)
inline
Parameters
sThe settings to be used by the factory.

Member Function Documentation

◆ create()

template<typename NLSSetting >
template<typename Assembler >
requires Concepts::FlatAssembler<typename std::remove_cvref_t<Assembler>::element_type>
auto Ikarus::NonlinearSolverFactory< NLSSetting >::create ( Assembler &&  assembler) const
inline

The assembler must satisfy the FlatAssembler concept.

Template Parameters
AssemblerThe type of the assembler used for creating the nonlinear solver.
Parameters
assemblerThe assembler to be used for creating the nonlinear solver.
Returns
The created nonlinear solver.
Note
The assembler's dBCOption is checked, and the appropriate update function is used based on whether the option is set to Reduced or not.

Member Data Documentation

◆ settings

template<typename NLSSetting >
NLSSetting Ikarus::NonlinearSolverFactory< NLSSetting >::settings

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