version 0.4.4
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 >
auto withIDBCForceFunction (Assembler &&assembler) const
 A helper function to create another NonlinearSolverFactory object after binding IDBCForceFunction to the configuration of the nonlinear solver. This then helps to handle inhomogeneous Dirichlet BCs when using a certain control routine to perform a nonlinear analysis. 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...
 

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. If inhomogeneous Dirichlet BCs are present, please call withIDBCForceFunction first.

◆ withIDBCForceFunction()

template<typename NLSSetting >
template<typename Assembler >
auto Ikarus::NonlinearSolverFactory< NLSSetting >::withIDBCForceFunction ( Assembler &&  assembler) const
inline
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 factory.

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