FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
FEAT::Solver Namespace Reference

Solver namespace. More...

Classes

class  ADPSolverBase
 Base-Class for Solvers based on Algebraic-DOF-Partitioning. More...
 
class  ADPSolverBase< Global::Matrix< LocalMatrix_, Mirror_, Mirror_ >, GlobalFilter_, SolverBase_ >
 Implementation of ADPSolverBase interface for Global::Matrix instances. More...
 
class  ADPSolverBase< Global::PMDCDSCMatrix< MatrixB_, MatrixD_ >, GlobalFilter_, SolverBase_ >
 Implementation of ADPSolverBase interface for Global::PMDCDSCMatrix instances. More...
 
class  ALGLIBMinCG
 Wrapper around ALGLIB's mincg implementation for minimising an functional's gradient. More...
 
class  ALGLIBMinLBFGS
 Wrapper around ALGLIB's lBFGS implementation for minimising an functional's gradient. More...
 
class  AmaVanka
 Additive Macro-wise Matrix-based Vanka preconditioner/smoother. More...
 
class  AnalyticFunctionOperator
 Wrapper class defining an operator based on a scalar AnalyticFunction. More...
 
class  ApproximateHessianPrecond
 Wrapper class for applying an the inverse of an operator's approximate Hessian as a preconditioner. More...
 
class  BFBT
 BFBT Schur-complement preconditioner. More...
 
class  BFBT< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >
 BFBT specialization for Global matrices. More...
 
class  BiCGStab
 (Preconditioned) Bi-Conjugate Gradient Stabilized solver implementation More...
 
class  BiCGStabL
 (Preconditioned) BiCGStab(l) solver implementation More...
 
class  BoomerAMG
 HYPRE BoomerAMGWrapper class template. More...
 
class  Chebyshev
 Chebyshev Polynomial implementation. More...
 
class  ConvertPrecond
 Solver conversion module. More...
 
class  ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > >
 Convert preconditioner specialization for Global::Vector. More...
 
class  CUDSS
 Nvidia CUDA Direct Sparse Solver wrapper. More...
 
class  CuSolverLU
 CuSolverLU solver class. More...
 
class  CuSolverQR
 CuSolverQR solver class. More...
 
class  Descent
 (Preconditioned) Descent solver implementation More...
 
class  DiagonalPrecond
 Diagonal preconditioner implementation. More...
 
class  DirectStokesCore
 Core class for conversion of Stokes systems to CSR format for direct solvers. More...
 
class  DirectStokesCore< SolverDT_, SolverIT_, LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, dim_ >, LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ >, LAFEM::SparseMatrixCSR< DT_, IT_ > >
 Core class for conversion of BCSR Stokes systems to CSR format for direct solvers. More...
 
class  DirectStokesSolver
 Direct Stokes solver class template. More...
 
class  DirectStokesSolver< Global::Matrix< LocalMatrix_, Mirror_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >
 Direct Stokes solver class for SaddlePointMatrix systems. More...
 
class  DirectStokesSolver< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, LAFEM::TupleFilter< FilterV_, FilterP_ > >
 Direct Stokes solver class for SaddlePointMatrix systems. More...
 
class  EuclidPrecond
 HYPRE Euclid Preconditioner Wrapper class template. More...
 
class  ExpressionBase
 
class  ExpressionCallCoarseSolver
 
class  ExpressionCallPrecond
 
class  ExpressionCallPrecondL
 
class  ExpressionCallPrecondR
 
class  ExpressionCallSmoother
 
class  ExpressionCallUzawaA
 
class  ExpressionCallUzawaS
 
class  ExpressionDefect
 
class  ExpressionEndSolve
 
class  ExpressionLevelTimings
 
class  ExpressionProlongation
 
class  ExpressionRestriction
 
class  ExpressionStartSolve
 
class  ExpressionTimings
 
class  FGMRES
 FGMRES(k) solver implementation. More...
 
class  FixedStepLinesearch
 Fixed step line search. More...
 
class  GenericUmfpack
 Generic UMFPACK solver class. More...
 
class  GMRES
 GMRES(k) solver implementation. More...
 
class  GroppPCG
 (Preconditioned) pipelined Conjugate-Gradient solver implementation from Bill Gropp More...
 
class  HessianPrecond
 Preconditioner that applies the inverse of an operator's Hessian. More...
 
class  HypreSolverBase
 Base-Class for solvers/preconditioners borrowed from HYPRE library. More...
 
class  IDRS
 IDR(s) solver implementation. More...
 
class  ILUPrecond
 ILU(0) and ILU(p) preconditioner implementation. More...
 
class  ILUPrecondBase
 Inheritances inside ilu_precond.hpp. More...
 
class  ILUPrecondWithBackend
 ILU(0) and ILU(p) preconditioner internal implementation. More...
 
class  ILUPrecondWithBackend< PreferredBackend::generic, LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, dim_ >, Filter_ >
 ILU(p) specialization for SparseMatrixBCSR<...> More...
 
class  ILUPrecondWithBackend< PreferredBackend::generic, LAFEM::SparseMatrixCSR< DT_, IT_ >, Filter_ >
 ILU(p) specialization for SparseMatrixCSR. More...
 
class  InvalidMatrixStructureException
 Invalid Matrix structure exception. More...
 
class  IterationStats
 Helper class for iteration statistics collection. More...
 
class  IterativeSolver
 Abstract base-class for iterative solvers. More...
 
class  JacobiPrecond
 Jacobi preconditioner implementation. More...
 
class  Linesearch
 Linesearch base class. More...
 
class  MatrixPrecond
 Matrix preconditioner implementation. More...
 
class  MKLDSS
 Intel MKL Direct Sparse Solver wrapper. More...
 
class  MQCLinesearch
 Mixed quadratic-cubic line search. More...
 
class  MultiGrid
 Multigrid preconditioner implementation. More...
 
class  MultiGridHierarchy
 Multigrid hierarchy management class template. More...
 
class  MultiGridLevelBase
 Multigrid level base class. More...
 
class  MultiGridLevelStd
 Standard Multigrid level class implementation. More...
 
class  NewtonRaphsonLinesearch
 Newton Raphson linesearch. More...
 
class  NLCG
 Nonlinear Conjugate Gradient method for finding a minimum of an functional's gradient. More...
 
class  NLOptLS
 Base class for line search based nonlinear optimizers. More...
 
class  NLOptPrecond
 Abstract base class for preconditioners for nonlinear optimization. More...
 
class  NLSD
 Nonlinear Steepest Descent method for finding a minimum of an functional's gradient. More...
 
class  NonlinearOperatorPrecondWrapper
 Wrapper class around a (potentially nonlinear) operator. More...
 
struct  OptimizationTestTraits
 Class holding additional information about certain AnalyticFunction used for optimization tests. More...
 
class  ParaSailsPrecond
 HYPRE ParaSails Preconditioner Wrapper class template. More...
 
class  PCG
 (Preconditioned) Conjugate-Gradient solver implementation More...
 
class  PCGNR
 (Preconditioned) Conjugate-Gradient on Normal Equations solver implementation More...
 
class  PCGNRILU
 ILU(p)-preconditioned Conjugate-Gradient on Normal Equations solver implementation. More...
 
class  PCR
 (Preconditioned) Conjugate-Residual solver implementation More...
 
class  PipePCG
 (Preconditioned) pipelined Conjugate-Gradient solver implementation from Ghysels and Vnaroose More...
 
class  PMR
 (Preconditioned) Minimal-Residual-Iteration solver implementation More...
 
class  PolynomialPrecond
 Polynomial preconditioner implementation. More...
 
class  PreconditionedIterativeSolver
 Abstract base-class for preconditioned iterative solvers. More...
 
class  PreconWrapper
 Provisional Legacy Preconditioners Wrapper class template. More...
 
class  PSD
 (Preconditioned) Steepest-Descent solver implementation More...
 
class  QPenalty
 Quadratic penalty iteration. More...
 
class  RBiCGStab
 (Preconditioned) reordered BiCGStab solver implementation More...
 
class  RGCR
 (Preconditioned) Recycling Generalized Conjugate Residual solver implementation More...
 
class  Richardson
 (Preconditioned) Richardson solver implementation More...
 
class  SaddleUmfpackMean
 UMFPACK Saddle-Point Mean solver class. More...
 
class  ScalePrecond
 Scaling preconditioner class template. More...
 
class  SchwarzPrecond
 Schwarz preconditioner class template declaration. More...
 
class  SchwarzPrecond< Global::Vector< LocalVector_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >
 Schwarz preconditioner specialization for Global::Vector. More...
 
class  SecantLinesearch
 Secant linesearch. More...
 
class  SingularMatrixException
 Singular Matrix exception. More...
 
class  SolverBase
 Polymorphic solver interface. More...
 
class  SolverException
 Base-class for solver generated exceptions. More...
 
class  SORPrecond
 SOR preconditioner implementation. More...
 
class  SORPrecondBase
 Inheritances inside sor_precond.hpp. More...
 
class  SORPrecondWithBackend
 Dummy class for not implemented specializations. More...
 
class  SORPrecondWithBackend< PreferredBackend::generic, LAFEM::SparseMatrixBCSR< DT_, IT_, BlockHeight_, BlockWidth_ >, Filter_ >
 
class  SORPrecondWithBackend< PreferredBackend::generic, LAFEM::SparseMatrixCSR< DT_, IT_ >, Filter_ >
 SOR preconditioner internal implementation. More...
 
class  SSORPrecond
 SSOR preconditioner implementation. More...
 
class  SSORPrecondBase
 Inheritances inside sor_precond.hpp. More...
 
class  SSORPrecondWithBackend
 Dummy class for not implemented specializations. More...
 
class  SSORPrecondWithBackend< PreferredBackend::generic, LAFEM::SparseMatrixBCSR< DT_, IT_, BlockHeight_, BlockWidth_ >, Filter_ >
 
class  SSORPrecondWithBackend< PreferredBackend::generic, LAFEM::SparseMatrixCSR< DT_, IT_ >, Filter_ >
 SSOR preconditioner internal implementation. More...
 
class  SuperLU
 (distributed) SuperLU direct sparse solver More...
 
class  Umfpack
 UMFPACK solver class. More...
 
class  UmfpackMean
 UMFPACK Mean solver class. More...
 
class  UzawaPrecond
 Uzawa preconditioner. More...
 
class  UzawaPrecond< Global::Matrix< MatrixA_, MirrorV_, MirrorV_ >, Global::Matrix< MatrixB_, MirrorV_, MirrorP_ >, Global::Matrix< MatrixD_, MirrorP_, MirrorV_ >, Global::Filter< FilterV_, MirrorV_ >, Global::Filter< FilterP_, MirrorP_ > >
 UzawaPrecond specialization for Global matrices. More...
 
class  Vanka
 Vanka preconditioner/smoother class template. More...
 
class  Vanka< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, Filter_ >
 Vanka preconditioner/smoother class template implementation. More...
 
class  VankaFactorError
 Vanka Factorization Error. More...
 
class  VoxelAmaVanka
 Additive Macro-wise Matrix-based Vanka preconditioner/smoother. More...
 

Typedefs

typedef double cudss_native_data_type
 native data type of cuDSS solver More...
 
typedef std::uint32_t cudss_native_index_type
 native index type of cuDSS solver More...
 
typedef double mkldss_native_data_type
 native data type of MKLDSS solver More...
 
typedef std::uint32_t mkldss_native_index_type
 native index type of MKLDSS solver More...
 

Enumerations

enum class  BiCGStabLPreconVariant { left , right }
 Enum for diffent preconditioning variants for BiCGStabL. More...
 
enum class  BiCGStabPreconVariant { left , right }
 Enum for different preconditioning variants for BiCGStab. More...
 
enum class  DescentVariant { fixed , steepest , defect }
 
enum class  ExpressionType {
  start_solve = 0 , end_solve , call_precond , call_precond_l ,
  call_precond_r , call_smoother , call_coarse_solver , defect ,
  timings , level_timings , prol , rest ,
  call_uzawa_s , call_uzawa_a
}
 Expression Type enumeration. More...
 
enum class  MultiGridAdaptCGC { Fixed , MinEnergy , MinDefect }
 Multigrid adaptive Coarse-Grid-Correction enumeration. More...
 
enum class  MultiGridCycle { V , F , W }
 Multigrid Cycle enumeration. More...
 
enum class  NLCGDirectionUpdate {
  undefined = 0 , DaiYuan , DYHSHybrid , FletcherReeves ,
  HagerZhang , HestenesStiefel , PolakRibiere
}
 Enum for NLCG search direction updates. More...
 
enum class  PlotMode { none = 0 , iter , summary , all }
 Solver plot modes enumeration. More...
 
enum class  Status {
  undefined = 0 , progress , success , aborted ,
  diverged , max_iter , stagnated
}
 Solver status return codes enumeration. More...
 
enum class  UzawaType { diagonal , lower , upper , full }
 Uzawa preconditioner type. More...
 
enum class  VankaType {
  nodal_diag_mult = 0x000 , nodal_full_mult = 0x001 , block_diag_mult = 0x010 , block_full_mult = 0x011 ,
  nodal_diag_add = 0x100 , nodal_full_add = 0x101 , block_diag_add = 0x110 , block_full_add = 0x111
}
 Vanka type enumeration. More...
 

Functions

template<typename Functional_ , typename Filter_ >
std::shared_ptr< ALGLIBMinCG< Functional_, Filter_ > > new_alglib_mincg (const String &section_name, const PropertyMap *section, Functional_ &functional_, Filter_ &filter_)
 Creates a new ALGLIBMinCG solver object using a PropertyMap. More...
 
template<typename Functional_ , typename Filter_ >
std::shared_ptr< ALGLIBMinCG< Functional_, Filter_ > > new_alglib_mincg (Functional_ &functional_, Filter_ &filter_, NLCGDirectionUpdate du_=ALGLIBMinCG< Functional_, Filter_ >::direction_update_default, bool keep_iterates_=false)
 Creates a new ALGLIBMinCG solver object. More...
 
template<typename Functional_ , typename Filter_ >
std::shared_ptr< ALGLIBMinLBFGS< Functional_, Filter_ > > new_alglib_minlbfgs (const String &section_name, const PropertyMap *section, Functional_ &functional_, Filter_ &filter_)
 Creates a new ALGLIBMinLBFGS solver object using a PropertyMap. More...
 
template<typename Functional_ , typename Filter_ >
std::shared_ptr< ALGLIBMinLBFGS< Functional_, Filter_ > > new_alglib_minlbfgs (Functional_ &functional_, Filter_ &filter_, alglib::ae_int_t lbfgs_dim_=alglib::ae_int_t(0), bool keep_iterates=false)
 Creates a new ALGLIBMinLBFGS solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< AmaVanka< Matrix_, Filter_ > > new_amavanka (const Matrix_ &matrix, const Filter_ &filter, typename Matrix_::DataType omega=typename Matrix_::DataType(1), Index num_steps=Index(1))
 Creates a new AmaVanka smoother object. More...
 
template<typename Operator_ , typename Filter_ >
std::shared_ptr< ApproximateHessianPrecond< Operator_, Filter_ > > new_approximate_hessian_precond (Operator_ &op_, const Filter_ &filter_)
 Creates a new ApproximateHessianPrecond. More...
 
template<typename MatrixA_ , typename MatrixB_ , typename MatrixD_ , typename FilterV_ , typename FilterP_ >
std::shared_ptr< BFBT< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ > > new_bfbt (const MatrixA_ &matrix_a, const MatrixB_ &matrix_b, const MatrixD_ &matrix_d, const FilterV_ &filter_v, const FilterP_ &filter_p, std::shared_ptr< SolverBase< typename MatrixD_::VectorTypeL > > solver_left, std::shared_ptr< SolverBase< typename MatrixD_::VectorTypeL > > solver_right, const typename MatrixB_::VectorTypeL &lumped_velo_mass_vec)
 Creates a new BFBT solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< BiCGStab< Matrix_, Filter_ > > new_bicgstab (const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr, BiCGStabPreconVariant precon_variant=BiCGStabPreconVariant::left)
 Creates a new BiCGStab solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< BiCGStab< Matrix_, Filter_ > > new_bicgstab (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new BiCGStab solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< BiCGStabL< Matrix_, Filter_ > > new_bicgstabl (const Matrix_ &matrix, const Filter_ &filter, int l=2, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr, BiCGStabLPreconVariant precon_variant=BiCGStabLPreconVariant::left)
 Creates a new BiCGStabL solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< BiCGStabL< Matrix_, Filter_ > > new_bicgstabl (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new BiCGStabL solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< BoomerAMG< Matrix_, Filter_ > > new_boomeramg (const Matrix_ &matrix, const Filter_ &filter)
 Creates a new BoomerAMG solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< BoomerAMG< Matrix_, Filter_ > > new_boomeramg (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter)
 Creates a new BoomerAMG solver object based on a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< Chebyshev< Matrix_, Filter_ > > new_chebyshev (const Matrix_ &matrix, const Filter_ &filter, const typename Matrix_::DataType fraction_min_ev=typename Matrix_::DataType(0.03), const typename Matrix_::DataType fraction_max_ev=typename Matrix_::DataType(1.1))
 Creates a new Chebyshev solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< Chebyshev< Matrix_, Filter_ > > new_chebyshev (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter)
 Creates a new Chebyshev solver object using a PropertyMap. More...
 
template<typename LocalVectorOuter_ , typename LocalVectorInner_ , typename MirrorOuter_ , typename MirrorInner_ >
std::shared_ptr< ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > > > new_convert_precond (std::shared_ptr< SolverBase< Global::Vector< LocalVectorInner_, MirrorInner_ > > > inner_solver)
 Creates a new ConvertPrecond solver object. More...
 
template<typename VectorOuter_ , typename VectorInner_ >
std::shared_ptr< ConvertPrecond< VectorOuter_, VectorInner_ > > new_convert_precond (std::shared_ptr< SolverBase< VectorInner_ > > inner_solver)
 Creates a new ConvertPrecond solver object. More...
 
std::shared_ptr< CUDSSnew_cudss (const LAFEM::SparseMatrixCSR< double, Index > &matrix)
 Creates a new CUDSS solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< Descent< Matrix_, Filter_ > > new_descent (const Matrix_ &matrix, const Filter_ &filter, DescentVariant variant, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new Descent solver object. More...
 
template<typename Vector_ , typename Filter_ >
std::shared_ptr< DiagonalPrecond< Vector_, Filter_ > > new_diagonal_precond (const String &section_name, const PropertyMap *section, const Vector_ &diag, const Filter_ &filter)
 Creates a new DiagonalPrecond solver object. More...
 
template<typename Vector_ , typename Filter_ >
std::shared_ptr< DiagonalPrecond< Vector_, Filter_ > > new_diagonal_precond (const Vector_ &diag, const Filter_ &filter)
 Creates a new DiagonalPrecond solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< DirectStokesSolver< Matrix_, Filter_ > > new_direct_stokes_solver (const Matrix_ &matrix, const Filter_ &filter)
 Creates a new DirectStokesSolver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< EuclidPrecond< Matrix_, Filter_ > > new_euclid_precond (const Matrix_ &matrix, const Filter_ &filter)
 Creates a new EuclidPrecond solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< EuclidPrecond< Matrix_, Filter_ > > new_euclid_precond (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter)
 Creates a new EuclidPrecond solver object based on a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< FGMRES< Matrix_, Filter_ > > new_fgmres (const Matrix_ &matrix, const Filter_ &filter, Index krylov_dim, typename Matrix_::DataType inner_res_scale=typename Matrix_::DataType(0), std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new FGMRES solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< FGMRES< Matrix_, Filter_ > > new_fgmres (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new FGMRES solver object using a PropertyMap. More...
 
template<typename Functional_ , typename Filter_ >
std::shared_ptr< FixedStepLinesearch< Functional_, Filter_ > > new_fixed_step_linesearch (const String &section_name, const PropertyMap *section, Functional_ &functional, Filter_ &filter)
 Creates a new FixedStepLinesearch object using a PropertyMap. More...
 
template<typename Functional_ , typename Filter_ >
std::shared_ptr< FixedStepLinesearch< Functional_, Filter_ > > new_fixed_step_linesearch (Functional_ &functional, Filter_ &filter, typename Functional_::DataType step_length, bool keep_iterates=false)
 Creates a new FixedStepLinesearch object. More...
 
template<typename Matrix_ >
std::shared_ptr< GenericUmfpack< Matrix_ > > new_generic_umfpack (const Matrix_ &matrix)
 Creates a new GenericUmfpack solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< GMRES< Matrix_, Filter_ > > new_gmres (const Matrix_ &matrix, const Filter_ &filter, Index krylov_dim, typename Matrix_::DataType inner_res_scale=typename Matrix_::DataType(0), std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new GMRES solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< GMRES< Matrix_, Filter_ > > new_gmres (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new GMRES solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< GroppPCG< Matrix_, Filter_ > > new_gropppcg (const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new GroppPCG solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< GroppPCG< Matrix_, Filter_ > > new_gropppcg (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new GroppPCG solver object using a PropertyMap. More...
 
template<typename Operator_ , typename Filter_ >
std::shared_ptr< HessianPrecond< Operator_, Filter_ > > new_hessian_precond (Operator_ &op_, const Filter_ &filter_)
 Creates a new HessianPrecond. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< IDRS< Matrix_, Filter_ > > new_idrs (const Matrix_ &matrix, const Filter_ &filter, Index krylov_dim, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new IDR(s) solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< IDRS< Matrix_, Filter_ > > new_idrs (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new IDR(s) solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< ILUPrecond< Matrix_, Filter_ > > new_ilu_precond (const String &section_name, const PropertyMap *section, PreferredBackend backend, const Matrix_ &matrix, const Filter_ &filter)
 Creates a new ILUPrecond solver object based on a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< ILUPrecond< Matrix_, Filter_ > > new_ilu_precond (PreferredBackend backend, const Matrix_ &matrix, const Filter_ &filter, const int p=0)
 Creates a new ILUPrecond solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< JacobiPrecond< Matrix_, Filter_ > > new_jacobi_precond (const Matrix_ &matrix, const Filter_ &filter, const typename Matrix_::DataType omega=typename Matrix_::DataType(1))
 Creates a new JacobiPrecond solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< JacobiPrecond< Matrix_, Filter_ > > new_jacobi_precond (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter)
 Creates a new JacobiPrecond solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< MatrixPrecond< Matrix_, Filter_ > > new_matrix_precond (const Matrix_ &matrix, const Filter_ &filter)
 Creates a new MatrixPrecond solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< MatrixPrecond< Matrix_, Filter_ > > new_matrix_precond (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter)
 Creates a new MatrixPrecond solver object. More...
 
std::shared_ptr< MKLDSSnew_mkl_dss (const LAFEM::SparseMatrixCSR< double, Index > &matrix)
 Creates a new MKLDSS solver object. More...
 
template<typename Functional_ , typename Filter_ >
std::shared_ptr< MQCLinesearch< Functional_, Filter_ > > new_mqc_linesearch (const String &section_name, const PropertyMap *section, Functional_ &functional, Filter_ &filter)
 Creates a new MQCLinesearch object using a PropertyMap. More...
 
template<typename Functional_ , typename Filter_ >
std::shared_ptr< MQCLinesearch< Functional_, Filter_ > > new_mqc_linesearch (Functional_ &functional, Filter_ &filter, bool keep_iterates=false)
 Creates a new MQCLinesearch object. More...
 
template<typename SystemMatrix_ , typename SystemFilter_ , typename TransferOperator_ >
std::shared_ptr< MultiGrid< SystemMatrix_, SystemFilter_, TransferOperator_ > > new_multigrid (std::shared_ptr< MultiGridHierarchy< SystemMatrix_, SystemFilter_, TransferOperator_ > > hierarchy, MultiGridCycle cycle=MultiGridCycle::V, int top_level=0, int crs_level=-1)
 Creates a new Multigrid preconditioner object. More...
 
template<typename Functional_ , typename Filter_ >
std::shared_ptr< NewtonRaphsonLinesearch< Functional_, Filter_ > > new_newton_raphson_linesearch (const String &section_name, const PropertyMap *section, Functional_ &functional, Filter_ &filter)
 Creates a new NewtonRaphsonLinesearch object using a PropertyMap. More...
 
template<typename Functional_ , typename Filter_ >
std::shared_ptr< NewtonRaphsonLinesearch< Functional_, Filter_ > > new_newton_raphson_linesearch (Functional_ &functional, Filter_ &filter, bool keep_iterates=false)
 Creates a new NewtonRaphsonLinesearch object. More...
 
template<typename Functional_ , typename Filter_ , typename Linesearch_ >
std::shared_ptr< NLCG< Functional_, Filter_ > > new_nlcg (const String &section_name, const PropertyMap *section, Functional_ &functional, Filter_ &filter, Linesearch_ &linesearch, std::shared_ptr< NLOptPrecond< typename Functional_::VectorTypeL, Filter_ > > precond=nullptr)
 Creates a new NLCG solver object using a PropertyMap. More...
 
template<typename Functional_ , typename Filter_ , typename Linesearch_ >
std::shared_ptr< NLCG< Functional_, Filter_ > > new_nlcg (Functional_ &functional, Filter_ &filter, Linesearch_ &linesearch, NLCGDirectionUpdate direction_update=NLCG< Functional_, Filter_ >::direction_update_default, bool keep_iterates=false, std::shared_ptr< NLOptPrecond< typename Functional_::VectorTypeL, Filter_ > > precond=nullptr)
 Creates a new NLCG solver object. More...
 
template<typename Functional_ , typename Filter_ , typename Linesearch_ >
std::shared_ptr< NLSD< Functional_, Filter_ > > new_nlsd (const String &section_name, const PropertyMap *section, Functional_ &functional, Filter_ &filter, Linesearch_ &linesearch, std::shared_ptr< NLOptPrecond< typename Functional_::VectorTypeL, Filter_ > > precond=nullptr)
 Creates a new NLSD solver object using a PropertyMap. More...
 
template<typename Functional_ , typename Filter_ , typename Linesearch_ >
std::shared_ptr< NLSD< Functional_, Filter_ > > new_nlsd (Functional_ &functional, Filter_ &filter, Linesearch_ &linesearch, bool keep_iterates=false, std::shared_ptr< NLOptPrecond< typename Functional_::VectorTypeL, Filter_ > > precond=nullptr)
 Creates a new NLSD solver object. More...
 
template<typename NonlinearOperator_ , typename... Args_>
std::shared_ptr< NonlinearOperatorPrecondWrapper< NonlinearOperator_ > > new_nonlinear_operator_precond_wrapper (Args_ &&... args)
 Creates a new NonlinearOperatorPrecondWrapper. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< ParaSailsPrecond< Matrix_, Filter_ > > new_parasails_precond (const Matrix_ &matrix, const Filter_ &filter)
 Creates a new ParaSailsPrecond solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< ParaSailsPrecond< Matrix_, Filter_ > > new_parasails_precond (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter)
 Creates a new ParaSailsPrecond solver object based on a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCG< Matrix_, Filter_ > > new_pcg (const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new PCG solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCG< Matrix_, Filter_ > > new_pcg (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new PCG solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCGNR< Matrix_, Filter_ > > new_pcgnr (const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond_l=nullptr, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond_r=nullptr)
 Creates a new PCGNR solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCGNR< Matrix_, Filter_ > > new_pcgnr (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond_l=nullptr, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond_r=nullptr)
 Creates a new PCGNR solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCGNRILU< Matrix_, Filter_ > > new_pcgnrilu (const Matrix_ &matrix, const Filter_ &filter, int ilu_p=-1)
 Creates a new PCGNRILU solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCGNRILU< Matrix_, Filter_ > > new_pcgnrilu (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter)
 Creates a new PCGNRILU solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCR< Matrix_, Filter_ > > new_pcr (const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new PCR solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCR< Matrix_, Filter_ > > new_pcr (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new PCR solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PipePCG< Matrix_, Filter_ > > new_pipepcg (const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new PipePCG solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PipePCG< Matrix_, Filter_ > > new_pipepcg (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new PipePCG solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PMR< Matrix_, Filter_ > > new_pmr (const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new PMR solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< Descent< Matrix_, Filter_ > > new_pmr (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new Descent solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PMR< Matrix_, Filter_ > > new_pmr (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new PMR solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PolynomialPrecond< Matrix_, Filter_ > > new_polynomial_precond (const Matrix_ &matrix, const Filter_ &filter, const Index m, const typename Matrix_::DataType omega=typename Matrix_::DataType(1))
 Creates a new PoynomialPrecond solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PolynomialPrecond< Matrix_, Filter_ > > new_polynomial_precond (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter)
 Creates a new PolynomialPrecond solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PSD< Matrix_, Filter_ > > new_psd (const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new PSD solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PSD< Matrix_, Filter_ > > new_psd (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new PSD solver object using a PropertyMap. More...
 
template<typename Functional_ >
std::shared_ptr< QPenalty< Functional_ > > new_qpenalty (const String &section_name, const PropertyMap *section, Functional_ &functional, std::shared_ptr< IterativeSolver< typename Functional_::VectorTypeR > > inner_solver)
 Creates a new QPenalty object using a PropertyMap. More...
 
template<typename Functional_ >
std::shared_ptr< QPenalty< Functional_ > > new_qpenalty (Functional_ &functional, std::shared_ptr< IterativeSolver< typename Functional_::VectorTypeR > > inner_solver, typename Functional_::VectorTypeR::DataType initial_penalty_param=typename Functional_::VectorTypeR::DataType(1))
 Creates a new QPenalty object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< RBiCGStab< Matrix_, Filter_ > > new_rbicgstab (const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new RBiCGStab solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< RBiCGStab< Matrix_, Filter_ > > new_rbicgstab (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new RBiCGStab solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< RGCR< Matrix_, Filter_ > > new_rgcr (const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new RGCR solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< RGCR< Matrix_, Filter_ > > new_rgcr (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new RGCR solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< Richardson< Matrix_, Filter_ > > new_richardson (const Matrix_ &matrix, const Filter_ &filter, typename Matrix_::DataType omega=typename Matrix_::DataType(1), std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new Richardson solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< Richardson< Matrix_, Filter_ > > new_richardson (const String &section_name, const PropertyMap *section, const Matrix_ &matrix, const Filter_ &filter, std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > > precond=nullptr)
 Creates a new Richardson solver object using a PropertyMap. More...
 
template<typename DT_ , typename IT_ , int dim_>
std::shared_ptr< SaddleUmfpackMean< DT_, IT_, dim_ > > new_saddle_umfpack_mean (const LAFEM::SaddlePointMatrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, dim_ >, LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ > > &matrix, const LAFEM::DenseVector< DT_, IT_ > &weight_vector)
 Creates a new UmfpackMean solver object. More...
 
template<typename DT_ , typename IT_ , int dim_>
std::shared_ptr< SaddleUmfpackMean< DT_, IT_, dim_ > > new_saddle_umfpack_mean (const LAFEM::SaddlePointMatrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, dim_ >, LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ > > &matrix, const LAFEM::MeanFilter< DT_, IT_ > &filter)
 Creates a new UmfpackMean solver object. More...
 
template<typename Filter_ , typename DataType_ >
std::shared_ptr< ScalePrecond< typename Filter_::VectorType, Filter_ > > new_scale_precond (const Filter_ &filter, DataType_ omega)
 Creates a new ScalePrecond solver object. More...
 
template<typename Filter_ >
std::shared_ptr< ScalePrecond< typename Filter_::VectorType, Filter_ > > new_scale_precond (const String &section_name, const PropertyMap *section, const Filter_ &filter)
 Creates a new ScalePrecond solver object using a PropertyMap. More...
 
template<typename LocalFilter_ , typename Mirror_ >
std::shared_ptr< SchwarzPrecond< Global::Vector< typename LocalFilter_::VectorType, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > > > new_schwarz_precond (const String &section_name, const PropertyMap *section, std::shared_ptr< SolverBase< typename LocalFilter_::VectorType > > local_solver, const Global::Filter< LocalFilter_, Mirror_ > &filter)
 Creates a new SchwarzPrecond solver object using a PropertyMap. More...
 
template<typename LocalFilter_ , typename Mirror_ >
std::shared_ptr< SchwarzPrecond< Global::Vector< typename LocalFilter_::VectorType, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > > > new_schwarz_precond (std::shared_ptr< SolverBase< typename LocalFilter_::VectorType > > local_solver, const Global::Filter< LocalFilter_, Mirror_ > &filter)
 Creates a new SchwarzPrecond solver object. More...
 
template<typename Functional_ , typename Filter_ >
std::shared_ptr< SecantLinesearch< Functional_, Filter_ > > new_secant_linesearch (const String &section_name, const PropertyMap *section, Functional_ &functional, Filter_ &filter)
 Creates a new SecantLinesearch object using a PropertyMap. More...
 
template<typename Functional_ , typename Filter_ >
std::shared_ptr< SecantLinesearch< Functional_, Filter_ > > new_secant_linesearch (Functional_ &functional, Filter_ &filter, typename Functional_::DataType secant_step=SecantLinesearch< Functional_, Filter_ >::secant_step_default, bool keep_iterates=false)
 Creates a new SecantLinesearch object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< SORPrecond< Matrix_, Filter_ > > new_sor_precond (const String &section_name, const PropertyMap *section, PreferredBackend backend, const Matrix_ &matrix, const Filter_ &filter)
 Creates a new SORPrecond solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< SORPrecond< Matrix_, Filter_ > > new_sor_precond (PreferredBackend backend, const Matrix_ &matrix, const Filter_ &filter, const typename Matrix_::DataType omega=typename Matrix_::DataType(1))
 Creates a new SORPrecond solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< SSORPrecond< Matrix_, Filter_ > > new_ssor_precond (const PreferredBackend backend, const Matrix_ &matrix, const Filter_ &filter, const typename Matrix_::DataType omega=typename Matrix_::DataType(1))
 Creates a new SSORPrecond solver object. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< SSORPrecond< Matrix_, Filter_ > > new_ssor_precond (const String &section_name, const PropertyMap *section, PreferredBackend backend, const Matrix_ &matrix, const Filter_ &filter)
 Creates a new SSORPrecond solver object using a PropertyMap. More...
 
template<typename Matrix_ , typename Filter_ >
std::shared_ptr< SuperLU< Matrix_, Filter_ > > new_superlu (const Matrix_ &matrix, const Filter_ &filter)
 Creates a new SuperLU solver object. More...
 
std::shared_ptr< Umfpacknew_umfpack (const LAFEM::SparseMatrixCSR< double, Index > &matrix)
 Creates a new Umfpack solver object. More...
 
std::shared_ptr< UmfpackMeannew_umfpack_mean (const LAFEM::SparseMatrixCSR< double, Index > &matrix, const LAFEM::DenseVector< double, Index > &weight_vector)
 Creates a new UmfpackMean solver object. More...
 
std::shared_ptr< UmfpackMeannew_umfpack_mean (const LAFEM::SparseMatrixCSR< double, Index > &matrix, const LAFEM::MeanFilter< double, Index > &filter)
 Creates a new UmfpackMean solver object. More...
 
template<typename MatrixA_ , typename MatrixB_ , typename MatrixD_ , typename FilterV_ , typename FilterP_ >
std::shared_ptr< UzawaPrecond< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ > > new_uzawa_precond (const MatrixA_ &matrix_a, const MatrixB_ &matrix_b, const MatrixD_ &matrix_d, const FilterV_ &filter_v, const FilterP_ &filter_p, std::shared_ptr< SolverBase< typename MatrixB_::VectorTypeL > > solver_a, std::shared_ptr< SolverBase< typename MatrixD_::VectorTypeL > > solver_s, UzawaType type=UzawaType::diagonal, bool auto_init_s=true)
 Creates a new UzawaPrecond solver object. More...
 
template<typename MatrixA_ , typename MatrixB_ , typename MatrixD_ , typename Filter_ >
std::shared_ptr< Vanka< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, Filter_ > > new_vanka (const LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ > &matrix, const Filter_ &filter, VankaType type, typename MatrixA_::DataType omega=typename MatrixA_::DataType(1), Index num_iter=Index(1))
 Creates a new Vanka solver object. More...
 
template<typename Matrix_ , typename Filter_ , typename ColoringType_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
std::shared_ptr< VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ > > new_voxel_amavanka (const Matrix_ &matrix, const Filter_ &filter, const ColoringType_ &coloring, typename Matrix_::DataType omega=typename Matrix_::DataType(1), Index num_steps=Index(1))
 Creates a new VoxelAmaVanka smoother object. More...
 
std::ostream & operator<< (std::ostream &os, DescentVariant dv)
 
template<typename Vector_ , typename Matrix_ , typename Filter_ >
Status solve (IterativeSolver< Vector_ > &solver, Vector_ &vec_sol, const Vector_ &vec_rhs, const Matrix_ &matrix, const Filter_ &filter)
 Overload of solve() function for IterativeSolver solvers. More...
 
template<typename Vector_ , typename Matrix_ , typename Filter_ >
Status solve (SolverBase< Vector_ > &solver, Vector_ &vec_sol, const Vector_ &vec_rhs, const Matrix_ &matrix, const Filter_ &filter)
 Solve linear system with initial solution guess. More...
 
bool status_success (Status status)
 Status success check function. More...
 

Variables

static constexpr bool direct_stokes_solver_available
 specifies whether at least one backend for the DirectStokesSolver class is available More...
 

Detailed Description

Solver namespace.

Typedef Documentation

◆ cudss_native_data_type

native data type of cuDSS solver

Definition at line 25 of file cudss.hpp.

◆ cudss_native_index_type

native index type of cuDSS solver

Definition at line 27 of file cudss.hpp.

◆ mkldss_native_data_type

native data type of MKLDSS solver

Definition at line 25 of file mkl_dss.hpp.

◆ mkldss_native_index_type

native index type of MKLDSS solver

Definition at line 30 of file mkl_dss.hpp.

Enumeration Type Documentation

◆ BiCGStabLPreconVariant

Enum for diffent preconditioning variants for BiCGStabL.

Definition at line 20 of file bicgstabl.hpp.

◆ BiCGStabPreconVariant

Enum for different preconditioning variants for BiCGStab.

Definition at line 19 of file bicgstab.hpp.

◆ DescentVariant

enum class FEAT::Solver::DescentVariant
strong
Enumerator
fixed 

simple fixed Richardson iteration

steepest 

symmetrically preconditioned steepest descent

defect 

left-preconditioned defect minimization

Definition at line 17 of file descent.hpp.

◆ ExpressionType

enum class FEAT::Solver::ExpressionType
strong

Expression Type enumeration.

Enumerator
start_solve 

start new solve process

end_solve 

end last solve process

call_precond 

call preconditioner

call_precond_l 

call L preconditioner

call_precond_r 

call R preconditioner

call_smoother 

call smoother

call_coarse_solver 

call coarse grid solver

defect 

annotate iterations defect

timings 

annotate iterations timings

level_timings 

annotate level timings

prol 

prolonation (multigrid)

rest 

restriction (multigrid)

call_uzawa_s 

call S matrix solver (uzawa complement)

call_uzawa_a 

call A matrix solver (uzawa complement)

Definition at line 21 of file expression.hpp.

◆ MultiGridAdaptCGC

Multigrid adaptive Coarse-Grid-Correction enumeration.

Enumerator
Fixed 

fixed coarse grid correction damping

MinEnergy 

Energy-Minimization.

MinDefect 

Defect-Minimization.

Definition at line 37 of file multigrid.hpp.

◆ MultiGridCycle

enum class FEAT::Solver::MultiGridCycle
strong

Multigrid Cycle enumeration.

This enumeration specifies the various cycles supported by the MultiGrid solver.

Enumerator

Multigrid V-Cycle.

Multigrid F-Cycle.

Multigrid W-Cycle.

Definition at line 24 of file multigrid.hpp.

◆ NLCGDirectionUpdate

Enum for NLCG search direction updates.

Definition at line 22 of file nlcg.hpp.

◆ PlotMode

enum class FEAT::Solver::PlotMode
strong

Solver plot modes enumeration.

Enumerator
none 

No plotting whatsoever.

iter 

Plot every iteration (if applicable)

summary 

Plot a summary after each solver run.

all 

Plot every iteration (if applicable) and a summary.

Definition at line 53 of file iterative.hpp.

◆ Status

enum class FEAT::Solver::Status
strong

Solver status return codes enumeration.

This enumeration defined the solver status return codes, which specify whether the solver application was successful or failed due to some reason.

Enumerator
undefined 

undefined status

progress 

continue iteration (internal use only)

success 

solving successful (convergence criterion fulfilled)

aborted 

premature abort (solver aborted due to internal errors or preconditioner failure)

diverged 

solver diverged (divergence criterion fulfilled)

max_iter 

solver reached maximum iterations

stagnated 

solver stagnated (stagnation criterion fulfilled)

Definition at line 46 of file base.hpp.

◆ UzawaType

enum class FEAT::Solver::UzawaType
strong

Uzawa preconditioner type.

This enumeration specifies the various preconditioner types implemented in the UzawaPrecond class template.

Enumerator
diagonal 

diagonal Uzawa preconditioner

lower 

lower-diagonal Uzawa preconditioner

upper 

upper-diagonal Uzawa preconditioner

full 

full Uzawa preconditioner

Definition at line 28 of file uzawa_precond.hpp.

◆ VankaType

enum class FEAT::Solver::VankaType
strong

Vanka type enumeration.

This enumeration specifies the various types of supported Vanka variants. See the documentation of the Vanka solver class template for details.

Enumerator
nodal_diag_mult 

Nodal diagonal Vanka type (multiplicative)

nodal_full_mult 

Nodal full Vanka type (multiplicative)

block_diag_mult 

Blocked diagonal Vanka type (multiplicative)

block_full_mult 

Blocked full Vanka type (multiplicative)

nodal_diag_add 

Nodal diagonal Vanka type (additive)

nodal_full_add 

Nodal full Vanka type (additive)

block_diag_add 

Blocked diagonal Vanka type (additive)

block_full_add 

Blocked full Vanka type (additive)

Definition at line 891 of file vanka.hpp.

Function Documentation

◆ new_alglib_mincg() [1/2]

template<typename Functional_ , typename Filter_ >
std::shared_ptr< ALGLIBMinCG< Functional_, Filter_ > > FEAT::Solver::new_alglib_mincg ( const String section_name,
const PropertyMap section,
Functional_ &  functional_,
Filter_ &  filter_ 
)
inline

Creates a new ALGLIBMinCG solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]functional_The functional
[in]filter_The system filter.
Returns
A shared pointer to a new ALGLIBMinCG object.

Definition at line 1087 of file alglib_wrapper.hpp.

◆ new_alglib_mincg() [2/2]

template<typename Functional_ , typename Filter_ >
std::shared_ptr< ALGLIBMinCG< Functional_, Filter_ > > FEAT::Solver::new_alglib_mincg ( Functional_ &  functional_,
Filter_ &  filter_,
NLCGDirectionUpdate  du_ = ALGLIBMinCG<Functional_, Filter_>::direction_update_default,
bool  keep_iterates_ = false 
)
inline

Creates a new ALGLIBMinCG solver object.

Parameters
[in]functional_The functional
[in]filter_The system filter.
[in]keep_iterates_Flag for keeping the iterates, defaults to false
Returns
A shared pointer to a new ALGLIBMinCG object.

Definition at line 1060 of file alglib_wrapper.hpp.

◆ new_alglib_minlbfgs() [1/2]

template<typename Functional_ , typename Filter_ >
std::shared_ptr< ALGLIBMinLBFGS< Functional_, Filter_ > > FEAT::Solver::new_alglib_minlbfgs ( const String section_name,
const PropertyMap section,
Functional_ &  functional_,
Filter_ &  filter_ 
)
inline

Creates a new ALGLIBMinLBFGS solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]functional_The functional
[in]filter_The system filter.
Returns
A shared pointer to a new ALGLIBMinLBFGS object.

Definition at line 561 of file alglib_wrapper.hpp.

◆ new_alglib_minlbfgs() [2/2]

template<typename Functional_ , typename Filter_ >
std::shared_ptr< ALGLIBMinLBFGS< Functional_, Filter_ > > FEAT::Solver::new_alglib_minlbfgs ( Functional_ &  functional_,
Filter_ &  filter_,
alglib::ae_int_t  lbfgs_dim_ = alglib::ae_int_t(0),
bool  keep_iterates = false 
)
inline

Creates a new ALGLIBMinLBFGS solver object.

Parameters
[in]functional_The functional
[in]filter_The system filter.
[in]lbfgs_dim_How many vectors to keep for the lBFGS hessian update. Defaults to min(7, functional_.columns()).
[in]keep_iteratesKeep all iterates in a std::deque. Defaults to false.
Returns
A shared pointer to a new ALGLIBMinLBFGS object.

Definition at line 535 of file alglib_wrapper.hpp.

◆ new_amavanka()

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< AmaVanka< Matrix_, Filter_ > > FEAT::Solver::new_amavanka ( const Matrix_ &  matrix,
const Filter_ &  filter,
typename Matrix_::DataType  omega = typename Matrix_::DataType(1),
Index  num_steps = Index(1) 
)

Creates a new AmaVanka smoother object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter
[in]omegaThe damping parameter.
[in]num_stepsThe number of Vanka iterations to be performed.
Returns
A shared pointer to a new AmaVanka object.

Definition at line 497 of file amavanka.hpp.

◆ new_approximate_hessian_precond()

template<typename Operator_ , typename Filter_ >
std::shared_ptr< ApproximateHessianPrecond< Operator_, Filter_ > > FEAT::Solver::new_approximate_hessian_precond ( Operator_ &  op_,
const Filter_ &  filter_ 
)
inline

Creates a new ApproximateHessianPrecond.

Template Parameters
Operator_The operator's type.
Filter_The type of the filte for the preconditioner.
Parameters
[in]op_The (nonlinear) operator.
[in]filter_The system filter.
Returns
A shared pointer to a new HessianPrecond object.

Definition at line 327 of file hessian_precond.hpp.

◆ new_bfbt()

template<typename MatrixA_ , typename MatrixB_ , typename MatrixD_ , typename FilterV_ , typename FilterP_ >
std::shared_ptr< BFBT< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ > > FEAT::Solver::new_bfbt ( const MatrixA_ &  matrix_a,
const MatrixB_ &  matrix_b,
const MatrixD_ &  matrix_d,
const FilterV_ &  filter_v,
const FilterP_ &  filter_p,
std::shared_ptr< SolverBase< typename MatrixD_::VectorTypeL > >  solver_left,
std::shared_ptr< SolverBase< typename MatrixD_::VectorTypeL > >  solver_right,
const typename MatrixB_::VectorTypeL &  lumped_velo_mass_vec 
)
inline

Creates a new BFBT solver object.

Parameters
[in]matrix_a,matrix_b,matrix_dThe three sub-matrices of the saddle-point system matrix.
[in]filter_v,filter_pThe two sub-filters of the system.
[in]solver_leftThe solver object for the left L_p-matrix.
[in]solver_rightThe solver object for the right L_p-matrix.
[in]lumped_velo_mass_vecThe inverse lumped velocity mass matrix vector
Returns
A shared pointer to a new BFBT object.

Definition at line 449 of file bfbt.hpp.

◆ new_bicgstab() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< BiCGStab< Matrix_, Filter_ > > FEAT::Solver::new_bicgstab ( const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr,
BiCGStabPreconVariant  precon_variant = BiCGStabPreconVariant::left 
)
inline

Creates a new BiCGStab solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
[in]precon_variantWhich preconditioning variant to use, defaults to left
Returns
A shared pointer to a new BiCGStab object.

Definition at line 608 of file bicgstab.hpp.

◆ new_bicgstab() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< BiCGStab< Matrix_, Filter_ > > FEAT::Solver::new_bicgstab ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new BiCGStab solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new BiCGStab object.

Definition at line 638 of file bicgstab.hpp.

◆ new_bicgstabl() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< BiCGStabL< Matrix_, Filter_ > > FEAT::Solver::new_bicgstabl ( const Matrix_ &  matrix,
const Filter_ &  filter,
int  l = 2,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr,
BiCGStabLPreconVariant  precon_variant = BiCGStabLPreconVariant::left 
)
inline

Creates a new BiCGStabL solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]lA parameter for the solver configuration
[in]precondThe preconditioner. May be nullptr.
[in]precon_variantWhich preconditioning variant to use, defaults to left
Returns
A shared pointer to a new BiCGStabL object.

Definition at line 558 of file bicgstabl.hpp.

◆ new_bicgstabl() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< BiCGStabL< Matrix_, Filter_ > > FEAT::Solver::new_bicgstabl ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new BiCGStabL solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new BiCGStabL object.

Definition at line 588 of file bicgstabl.hpp.

◆ new_boomeramg() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< BoomerAMG< Matrix_, Filter_ > > FEAT::Solver::new_boomeramg ( const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new BoomerAMG solver object.

Parameters
[in]matrixThe global system matrix.
[in]filterThe global system filter.
Returns
A shared pointer to a new BoomerAMG object.

Definition at line 619 of file hypre.hpp.

◆ new_boomeramg() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< BoomerAMG< Matrix_, Filter_ > > FEAT::Solver::new_boomeramg ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new BoomerAMG solver object based on a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new BoomerAMG object.

Definition at line 644 of file hypre.hpp.

◆ new_chebyshev() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< Chebyshev< Matrix_, Filter_ > > FEAT::Solver::new_chebyshev ( const Matrix_ &  matrix,
const Filter_ &  filter,
const typename Matrix_::DataType  fraction_min_ev = typename Matrix_::DataType(0.03),
const typename Matrix_::DataType  fraction_max_ev = typename Matrix_::DataType(1.1) 
)
inline

Creates a new Chebyshev solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new Chebyshev object.

Definition at line 299 of file chebyshev.hpp.

◆ new_chebyshev() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< Chebyshev< Matrix_, Filter_ > > FEAT::Solver::new_chebyshev ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new Chebyshev solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new Chebyshev object.

Definition at line 326 of file chebyshev.hpp.

◆ new_convert_precond() [1/2]

template<typename LocalVectorOuter_ , typename LocalVectorInner_ , typename MirrorOuter_ , typename MirrorInner_ >
std::shared_ptr< ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > > > FEAT::Solver::new_convert_precond ( std::shared_ptr< SolverBase< Global::Vector< LocalVectorInner_, MirrorInner_ > > >  inner_solver)
inline

Creates a new ConvertPrecond solver object.

Parameters
[in]inner_solverThe actual solver, which shall be executed with converted rhs/sol vectors
Returns
A shared pointer to a new ConvertPrecond object.

Definition at line 235 of file convert_precond.hpp.

◆ new_convert_precond() [2/2]

template<typename VectorOuter_ , typename VectorInner_ >
std::shared_ptr< ConvertPrecond< VectorOuter_, VectorInner_ > > FEAT::Solver::new_convert_precond ( std::shared_ptr< SolverBase< VectorInner_ > >  inner_solver)
inline

Creates a new ConvertPrecond solver object.

Parameters
[in]inner_solverThe actual solver, which shall be executed with converted rhs/sol vectors
Returns
A shared pointer to a new ConvertPrecond object.

Definition at line 130 of file convert_precond.hpp.

◆ new_cudss()

std::shared_ptr< CUDSS > FEAT::Solver::new_cudss ( const LAFEM::SparseMatrixCSR< double, Index > &  matrix)
inline

Creates a new CUDSS solver object.

Parameters
[in]matrixThe system matrix.
Returns
A shared pointer to a new CUDSS object.

Definition at line 105 of file cudss.hpp.

Referenced by FEAT::Solver::DirectStokesSolver< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, LAFEM::TupleFilter< FilterV_, FilterP_ > >::DirectStokesSolver().

◆ new_descent()

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< Descent< Matrix_, Filter_ > > FEAT::Solver::new_descent ( const Matrix_ &  matrix,
const Filter_ &  filter,
DescentVariant  variant,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new Descent solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]variantThe desired descent variant.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new Descent object.

Definition at line 335 of file descent.hpp.

◆ new_diagonal_precond() [1/2]

template<typename Vector_ , typename Filter_ >
std::shared_ptr< DiagonalPrecond< Vector_, Filter_ > > FEAT::Solver::new_diagonal_precond ( const String section_name,
const PropertyMap section,
const Vector_ &  diag,
const Filter_ &  filter 
)
inline

Creates a new DiagonalPrecond solver object.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]diagThe vector representing the diagonal matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new DiagonalPrecond object.

Definition at line 111 of file diagonal_precond.hpp.

◆ new_diagonal_precond() [2/2]

template<typename Vector_ , typename Filter_ >
std::shared_ptr< DiagonalPrecond< Vector_, Filter_ > > FEAT::Solver::new_diagonal_precond ( const Vector_ &  diag,
const Filter_ &  filter 
)
inline

Creates a new DiagonalPrecond solver object.

Parameters
[in]diagThe vector representing the diagonal matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new DiagonalPrecond object.

Definition at line 86 of file diagonal_precond.hpp.

◆ new_direct_stokes_solver()

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< DirectStokesSolver< Matrix_, Filter_ > > FEAT::Solver::new_direct_stokes_solver ( const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new DirectStokesSolver object.

Parameters
[in]matrixA resident reference to the system matrix.
[in]filterA resident reference to the system filter.
Returns
A shared pointer to a new DirectStokesSolver object.

Definition at line 1446 of file direct_stokes_solver.hpp.

◆ new_euclid_precond() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< EuclidPrecond< Matrix_, Filter_ > > FEAT::Solver::new_euclid_precond ( const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new EuclidPrecond solver object.

Parameters
[in]matrixThe global system matrix.
[in]filterThe global system filter.
Returns
A shared pointer to a new EuclidPrecond object.

Definition at line 485 of file hypre.hpp.

◆ new_euclid_precond() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< EuclidPrecond< Matrix_, Filter_ > > FEAT::Solver::new_euclid_precond ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new EuclidPrecond solver object based on a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new EuclidPrecond object.

Definition at line 510 of file hypre.hpp.

◆ new_fgmres() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< FGMRES< Matrix_, Filter_ > > FEAT::Solver::new_fgmres ( const Matrix_ &  matrix,
const Filter_ &  filter,
Index  krylov_dim,
typename Matrix_::DataType  inner_res_scale = typename Matrix_::DataType(0),
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new FGMRES solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]krylov_dimThe maximum Krylov subspace dimension. Must be > 0.
[in]inner_res_scaleThe scaling factor for the inner GMRES loop residual. See the details of the FGMRES class documentation for details
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new FGMRES object.

Definition at line 444 of file fgmres.hpp.

◆ new_fgmres() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< FGMRES< Matrix_, Filter_ > > FEAT::Solver::new_fgmres ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new FGMRES solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new FGMRES object.

Definition at line 474 of file fgmres.hpp.

◆ new_fixed_step_linesearch() [1/2]

template<typename Functional_ , typename Filter_ >
std::shared_ptr< FixedStepLinesearch< Functional_, Filter_ > > FEAT::Solver::new_fixed_step_linesearch ( const String section_name,
const PropertyMap section,
Functional_ &  functional,
Filter_ &  filter 
)
inline

Creates a new FixedStepLinesearch object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself.
[in]sectionA pointer to the PropertyMap section configuring this solver.
[in]functionalThe functional.
[in]filterThe system filter.
Returns
A shared pointer to a new FixedStepLinesearch object.

Definition at line 221 of file fixed_step_linesearch.hpp.

◆ new_fixed_step_linesearch() [2/2]

template<typename Functional_ , typename Filter_ >
std::shared_ptr< FixedStepLinesearch< Functional_, Filter_ > > FEAT::Solver::new_fixed_step_linesearch ( Functional_ &  functional,
Filter_ &  filter,
typename Functional_::DataType  step_length,
bool  keep_iterates = false 
)
inline

Creates a new FixedStepLinesearch object.

Parameters
[in]functionalThe functional.
[in]filterThe system filter.
[in]step_lengthThe step length the "line search" is to take.
[in]keep_iteratesFlag for keeping the iterates, defaults to false.
Returns
A shared pointer to a new FixedStepLinesearch object.

Definition at line 195 of file fixed_step_linesearch.hpp.

◆ new_generic_umfpack()

template<typename Matrix_ >
std::shared_ptr< GenericUmfpack< Matrix_ > > FEAT::Solver::new_generic_umfpack ( const Matrix_ &  matrix)
inline

Creates a new GenericUmfpack solver object.

Parameters
[in]matrixThe system matrix.
Returns
A shared pointer to a new GenericUmfpack object.

Definition at line 779 of file umfpack.hpp.

◆ new_gmres() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< GMRES< Matrix_, Filter_ > > FEAT::Solver::new_gmres ( const Matrix_ &  matrix,
const Filter_ &  filter,
Index  krylov_dim,
typename Matrix_::DataType  inner_res_scale = typename Matrix_::DataType(0),
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new GMRES solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]krylov_dimThe maximum Krylov subspace dimension. Must be > 0.
[in]inner_res_scaleThe scaling factor for the inner GMRES loop residual. See the details of the GMRES class documentation for details
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new GMRES object.

Definition at line 453 of file gmres.hpp.

◆ new_gmres() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< GMRES< Matrix_, Filter_ > > FEAT::Solver::new_gmres ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new GMRES solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new GMRES object.

Definition at line 483 of file gmres.hpp.

◆ new_gropppcg() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< GroppPCG< Matrix_, Filter_ > > FEAT::Solver::new_gropppcg ( const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new GroppPCG solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new GroppPCG object.

Definition at line 283 of file gropppcg.hpp.

◆ new_gropppcg() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< GroppPCG< Matrix_, Filter_ > > FEAT::Solver::new_gropppcg ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new GroppPCG solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new GroppPCG object.

Definition at line 312 of file gropppcg.hpp.

◆ new_hessian_precond()

template<typename Operator_ , typename Filter_ >
std::shared_ptr< HessianPrecond< Operator_, Filter_ > > FEAT::Solver::new_hessian_precond ( Operator_ &  op_,
const Filter_ &  filter_ 
)
inline

Creates a new HessianPrecond.

Template Parameters
Operator_The operator's type.
Filter_The type of the filte for the preconditioner.
Parameters
[in]op_The (nonlinear) operator.
[in]filter_The system filter.
Returns
A shared pointer to a new HessianPrecond object.

Definition at line 157 of file hessian_precond.hpp.

◆ new_idrs() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< IDRS< Matrix_, Filter_ > > FEAT::Solver::new_idrs ( const Matrix_ &  matrix,
const Filter_ &  filter,
Index  krylov_dim,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new IDR(s) solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]krylov_dimThe maximum Krylov subspace dimension. Must be > 0.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new IDRS object.

Definition at line 447 of file idrs.hpp.

◆ new_idrs() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< IDRS< Matrix_, Filter_ > > FEAT::Solver::new_idrs ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new IDR(s) solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new IDRS object.

Definition at line 476 of file idrs.hpp.

◆ new_ilu_precond() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< ILUPrecond< Matrix_, Filter_ > > FEAT::Solver::new_ilu_precond ( const String section_name,
const PropertyMap section,
PreferredBackend  backend,
const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new ILUPrecond solver object based on a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]backendThe backend to be preferred. This implementation works with generic and cuda.
[in]matrixThe system matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new ILUPrecond object.

Definition at line 1845 of file ilu_precond.hpp.

◆ new_ilu_precond() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< ILUPrecond< Matrix_, Filter_ > > FEAT::Solver::new_ilu_precond ( PreferredBackend  backend,
const Matrix_ &  matrix,
const Filter_ &  filter,
const int  p = 0 
)
inline

Creates a new ILUPrecond solver object.

Parameters
[in]backendThe backend to be preferred. This implementation works with generic and cuda.
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]pMaximum level of fill-in.
Returns
A shared pointer to a new ILUPrecond object.

Definition at line 1817 of file ilu_precond.hpp.

◆ new_jacobi_precond() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< JacobiPrecond< Matrix_, Filter_ > > FEAT::Solver::new_jacobi_precond ( const Matrix_ &  matrix,
const Filter_ &  filter,
const typename Matrix_::DataType  omega = typename Matrix_::DataType(1) 
)
inline

Creates a new JacobiPrecond solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]omegaThe damping parameter for Jacobi.
Returns
A shared pointer to a new JacobiPrecond object.

Definition at line 181 of file jacobi_precond.hpp.

◆ new_jacobi_precond() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< JacobiPrecond< Matrix_, Filter_ > > FEAT::Solver::new_jacobi_precond ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new JacobiPrecond solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
Returns
A shared pointer to a new JacobiPrecond object.

Definition at line 204 of file jacobi_precond.hpp.

◆ new_matrix_precond() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< MatrixPrecond< Matrix_, Filter_ > > FEAT::Solver::new_matrix_precond ( const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new MatrixPrecond solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new JacobiPrecond object.

Definition at line 115 of file matrix_precond.hpp.

◆ new_matrix_precond() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< MatrixPrecond< Matrix_, Filter_ > > FEAT::Solver::new_matrix_precond ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new MatrixPrecond solver object.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new JacobiPrecond object.

Definition at line 140 of file matrix_precond.hpp.

◆ new_mkl_dss()

std::shared_ptr< MKLDSS > FEAT::Solver::new_mkl_dss ( const LAFEM::SparseMatrixCSR< double, Index > &  matrix)
inline

Creates a new MKLDSS solver object.

Parameters
[in]matrixThe system matrix.
Returns
A shared pointer to a new MKLDSS object.

Definition at line 110 of file mkl_dss.hpp.

Referenced by FEAT::Solver::DirectStokesSolver< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, LAFEM::TupleFilter< FilterV_, FilterP_ > >::DirectStokesSolver().

◆ new_mqc_linesearch() [1/2]

template<typename Functional_ , typename Filter_ >
std::shared_ptr< MQCLinesearch< Functional_, Filter_ > > FEAT::Solver::new_mqc_linesearch ( const String section_name,
const PropertyMap section,
Functional_ &  functional,
Filter_ &  filter 
)
inline

Creates a new MQCLinesearch object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself.
[in]sectionA pointer to the PropertyMap section configuring this solver.
[in]functionalThe functional.
[in]filterThe system filter.
Returns
A shared pointer to a new MQCLinesearch object.

Definition at line 841 of file mqc_linesearch.hpp.

◆ new_mqc_linesearch() [2/2]

template<typename Functional_ , typename Filter_ >
std::shared_ptr< MQCLinesearch< Functional_, Filter_ > > FEAT::Solver::new_mqc_linesearch ( Functional_ &  functional,
Filter_ &  filter,
bool  keep_iterates = false 
)
inline

Creates a new MQCLinesearch object.

Parameters
[in]functionalThe functional.
[in]filterThe system filter.
[in]keep_iteratesFlag for keeping the iterates, defaults to false.
Returns
A shared pointer to a new MQCLinesearch object.

Definition at line 816 of file mqc_linesearch.hpp.

◆ new_multigrid()

template<typename SystemMatrix_ , typename SystemFilter_ , typename TransferOperator_ >
std::shared_ptr< MultiGrid< SystemMatrix_, SystemFilter_, TransferOperator_ > > FEAT::Solver::new_multigrid ( std::shared_ptr< MultiGridHierarchy< SystemMatrix_, SystemFilter_, TransferOperator_ > >  hierarchy,
MultiGridCycle  cycle = MultiGridCycle::V,
int  top_level = 0,
int  crs_level = -1 
)

Creates a new Multigrid preconditioner object.

Parameters
[in]hierarchyA pointer to the multigrid hierarchy object.
[in]cycleThe desired multigrid cycle.
[in]top_levelThe desired top-level for this multigrid solver.
Set to 0 to use the finest level in the multigrid hierarchy.
[in]crs_levelThe desired coarse-level for this multigrid solver.
Set to -1 to use the coarsest level in the multigrid hierarchy.
Returns
A shared pointer to a new MultiGrid object.

Definition at line 2027 of file multigrid.hpp.

◆ new_newton_raphson_linesearch() [1/2]

template<typename Functional_ , typename Filter_ >
std::shared_ptr< NewtonRaphsonLinesearch< Functional_, Filter_ > > FEAT::Solver::new_newton_raphson_linesearch ( const String section_name,
const PropertyMap section,
Functional_ &  functional,
Filter_ &  filter 
)
inline

Creates a new NewtonRaphsonLinesearch object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]functionalThe functional
[in]filterThe system filter.
Returns
A shared pointer to a new NewtonRaphsonLinesearch object.

Definition at line 282 of file newton_raphson_linesearch.hpp.

◆ new_newton_raphson_linesearch() [2/2]

template<typename Functional_ , typename Filter_ >
std::shared_ptr< NewtonRaphsonLinesearch< Functional_, Filter_ > > FEAT::Solver::new_newton_raphson_linesearch ( Functional_ &  functional,
Filter_ &  filter,
bool  keep_iterates = false 
)
inline

Creates a new NewtonRaphsonLinesearch object.

Parameters
[in]functionalThe functional.
[in]filterThe system filter.
[in]keep_iteratesFlag for keeping the iterates, defaults to false
Returns
A shared pointer to a new NewtonRaphsonLinesearch object.

Definition at line 257 of file newton_raphson_linesearch.hpp.

◆ new_nlcg() [1/2]

template<typename Functional_ , typename Filter_ , typename Linesearch_ >
std::shared_ptr< NLCG< Functional_, Filter_ > > FEAT::Solver::new_nlcg ( const String section_name,
const PropertyMap section,
Functional_ &  functional,
Filter_ &  filter,
Linesearch_ &  linesearch,
std::shared_ptr< NLOptPrecond< typename Functional_::VectorTypeL, Filter_ > >  precond = nullptr 
)
inline

Creates a new NLCG solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]functionalThe functional.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
[in]linesearchThe linesearch to use.
Returns
A shared pointer to a new NLCG object.

Definition at line 946 of file nlcg.hpp.

◆ new_nlcg() [2/2]

template<typename Functional_ , typename Filter_ , typename Linesearch_ >
std::shared_ptr< NLCG< Functional_, Filter_ > > FEAT::Solver::new_nlcg ( Functional_ &  functional,
Filter_ &  filter,
Linesearch_ &  linesearch,
NLCGDirectionUpdate  direction_update = NLCG<Functional_, Filter_>::direction_update_default,
bool  keep_iterates = false,
std::shared_ptr< NLOptPrecond< typename Functional_::VectorTypeL, Filter_ > >  precond = nullptr 
)
inline

Creates a new NLCG solver object.

Parameters
[in]functionalThe functional.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
[in]linesearchThe linesearch to use.
[in]direction_updateThe direction update to use, defaults to Polak-Ribiere.
[in]keep_iteratesFlag for keeping the iterates, defaults to false
Returns
A shared pointer to a new NLCG object.

Definition at line 911 of file nlcg.hpp.

◆ new_nlsd() [1/2]

template<typename Functional_ , typename Filter_ , typename Linesearch_ >
std::shared_ptr< NLSD< Functional_, Filter_ > > FEAT::Solver::new_nlsd ( const String section_name,
const PropertyMap section,
Functional_ &  functional,
Filter_ &  filter,
Linesearch_ &  linesearch,
std::shared_ptr< NLOptPrecond< typename Functional_::VectorTypeL, Filter_ > >  precond = nullptr 
)
inline

Creates a new NLSD solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself.
[in]sectionA pointer to the PropertyMap section configuring this solver.
[in]functionalThe nonlinear functional.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
[in]linesearchThe linesearch to use.
Returns
A shared pointer to a new NLSD object.

Definition at line 428 of file nlsd.hpp.

◆ new_nlsd() [2/2]

template<typename Functional_ , typename Filter_ , typename Linesearch_ >
std::shared_ptr< NLSD< Functional_, Filter_ > > FEAT::Solver::new_nlsd ( Functional_ &  functional,
Filter_ &  filter,
Linesearch_ &  linesearch,
bool  keep_iterates = false,
std::shared_ptr< NLOptPrecond< typename Functional_::VectorTypeL, Filter_ > >  precond = nullptr 
)
inline

Creates a new NLSD solver object.

Parameters
[in]functionalThe nonlinear functional.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
[in]linesearchThe linesearch to use.
[in]keep_iteratesFlag for keeping the iterates, defaults to false
Returns
A shared pointer to a new NLSD object.

Definition at line 395 of file nlsd.hpp.

◆ new_nonlinear_operator_precond_wrapper()

template<typename NonlinearOperator_ , typename... Args_>
std::shared_ptr< NonlinearOperatorPrecondWrapper< NonlinearOperator_ > > FEAT::Solver::new_nonlinear_operator_precond_wrapper ( Args_ &&...  args)
inline

Creates a new NonlinearOperatorPrecondWrapper.

Template Parameters
NonlinearOperator_The operator to be used.
Parameters
[in]argsArguments passed to the NonlinearOperator's constructor.
Returns
A shared_ptr to a new NonlinearOperatorPrecondWrapper object.

Definition at line 199 of file nlopt_precond.hpp.

◆ new_parasails_precond() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< ParaSailsPrecond< Matrix_, Filter_ > > FEAT::Solver::new_parasails_precond ( const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new ParaSailsPrecond solver object.

Parameters
[in]matrixThe global system matrix.
[in]filterThe global system filter.
Returns
A shared pointer to a new ParaSailsPrecond object.

Definition at line 345 of file hypre.hpp.

◆ new_parasails_precond() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< ParaSailsPrecond< Matrix_, Filter_ > > FEAT::Solver::new_parasails_precond ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new ParaSailsPrecond solver object based on a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new ParaSailsPrecond object.

Definition at line 370 of file hypre.hpp.

◆ new_pcg() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCG< Matrix_, Filter_ > > FEAT::Solver::new_pcg ( const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new PCG solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new PCG object.

Definition at line 306 of file pcg.hpp.

◆ new_pcg() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCG< Matrix_, Filter_ > > FEAT::Solver::new_pcg ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new PCG solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new PCG object.

Definition at line 335 of file pcg.hpp.

◆ new_pcgnr() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCGNR< Matrix_, Filter_ > > FEAT::Solver::new_pcgnr ( const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond_l = nullptr,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond_r = nullptr 
)
inline

Creates a new PCGNR solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precond_lThe left preconditioner. May be nullptr.
[in]precond_rThe right preconditioner. May be nullptr.
Returns
A shared pointer to a new PCGNR object.

Definition at line 400 of file pcgnr.hpp.

◆ new_pcgnr() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCGNR< Matrix_, Filter_ > > FEAT::Solver::new_pcgnr ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond_l = nullptr,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond_r = nullptr 
)
inline

Creates a new PCGNR solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precond_lThe left preconditioner. May be nullptr.
[in]precond_rThe right preconditioner. May be nullptr.
Returns
A shared pointer to a new PCGNR object.

Definition at line 433 of file pcgnr.hpp.

◆ new_pcgnrilu() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCGNRILU< Matrix_, Filter_ > > FEAT::Solver::new_pcgnrilu ( const Matrix_ &  matrix,
const Filter_ &  filter,
int  ilu_p = -1 
)
inline

Creates a new PCGNRILU solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]ilu_pMaximum allowed fill-in for ILU preconditioner. Set to -1 to disable preconditioning.
Returns
A shared pointer to a new PCGNRILU object.

Definition at line 373 of file pcgnrilu.hpp.

◆ new_pcgnrilu() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCGNRILU< Matrix_, Filter_ > > FEAT::Solver::new_pcgnrilu ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new PCGNRILU solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new PCGNRILU object.

Definition at line 398 of file pcgnrilu.hpp.

◆ new_pcr() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCR< Matrix_, Filter_ > > FEAT::Solver::new_pcr ( const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new PCR solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new PCR object.

Definition at line 300 of file pcr.hpp.

◆ new_pcr() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PCR< Matrix_, Filter_ > > FEAT::Solver::new_pcr ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new PCR solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new PCR object.

Definition at line 329 of file pcr.hpp.

◆ new_pipepcg() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PipePCG< Matrix_, Filter_ > > FEAT::Solver::new_pipepcg ( const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new PipePCG solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new PipePCG object.

Definition at line 321 of file pipepcg.hpp.

◆ new_pipepcg() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PipePCG< Matrix_, Filter_ > > FEAT::Solver::new_pipepcg ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new PipePCG solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new PipePCG object.

Definition at line 350 of file pipepcg.hpp.

◆ new_pmr() [1/3]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PMR< Matrix_, Filter_ > > FEAT::Solver::new_pmr ( const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new PMR solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new PMR object.

Definition at line 267 of file pmr.hpp.

◆ new_pmr() [2/3]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< Descent< Matrix_, Filter_ > > FEAT::Solver::new_pmr ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new Descent solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new Descent object.

Definition at line 364 of file descent.hpp.

◆ new_pmr() [3/3]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PMR< Matrix_, Filter_ > > FEAT::Solver::new_pmr ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new PMR solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new PMR object.

Definition at line 296 of file pmr.hpp.

◆ new_polynomial_precond() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PolynomialPrecond< Matrix_, Filter_ > > FEAT::Solver::new_polynomial_precond ( const Matrix_ &  matrix,
const Filter_ &  filter,
const Index  m,
const typename Matrix_::DataType  omega = typename Matrix_::DataType(1) 
)
inline

Creates a new PoynomialPrecond solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]mThe order of the polynom
[in]omegaThe damping parameter for the internal jacobi preconditioner.
Returns
A shared pointer to a new PolynomialPrecond object.

Definition at line 240 of file polynomial_precond.hpp.

◆ new_polynomial_precond() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PolynomialPrecond< Matrix_, Filter_ > > FEAT::Solver::new_polynomial_precond ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new PolynomialPrecond solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new PolynomialPrecond object.

Definition at line 266 of file polynomial_precond.hpp.

◆ new_psd() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PSD< Matrix_, Filter_ > > FEAT::Solver::new_psd ( const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new PSD solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new PSD object.

Definition at line 241 of file psd.hpp.

◆ new_psd() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< PSD< Matrix_, Filter_ > > FEAT::Solver::new_psd ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new PSD solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new PSD object.

Definition at line 270 of file psd.hpp.

◆ new_qpenalty() [1/2]

template<typename Functional_ >
std::shared_ptr< QPenalty< Functional_ > > FEAT::Solver::new_qpenalty ( const String section_name,
const PropertyMap section,
Functional_ &  functional,
std::shared_ptr< IterativeSolver< typename Functional_::VectorTypeR > >  inner_solver 
)
inline

Creates a new QPenalty object using a PropertyMap.

Template Parameters
Functional_The type of the quadratic penalty function \( Q \).
Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]functionalThe quadratic penalty function \( Q \).
[in]inner_solverThe inner solver for solving the penalized unconstrained optimization problem.
Returns
An std::shared_ptr to the new QPenalty solver object

Definition at line 421 of file qpenalty.hpp.

◆ new_qpenalty() [2/2]

template<typename Functional_ >
std::shared_ptr< QPenalty< Functional_ > > FEAT::Solver::new_qpenalty ( Functional_ &  functional,
std::shared_ptr< IterativeSolver< typename Functional_::VectorTypeR > >  inner_solver,
typename Functional_::VectorTypeR::DataType  initial_penalty_param = typename Functional_::VectorTypeR::DataType(1) 
)
inline

Creates a new QPenalty object.

Template Parameters
Functional_The type of the quadratic penalty function \( Q \).
Parameters
[in]functionalThe quadratic penalty function \( Q \).
[in]inner_solverThe inner solver for solving the penalized unconstrained optimization problem.
Returns
An std::shared_ptr to the new QPenalty solver object

Definition at line 392 of file qpenalty.hpp.

◆ new_rbicgstab() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< RBiCGStab< Matrix_, Filter_ > > FEAT::Solver::new_rbicgstab ( const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new RBiCGStab solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new RBiCGStab object.

Definition at line 403 of file rbicgstab.hpp.

◆ new_rbicgstab() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< RBiCGStab< Matrix_, Filter_ > > FEAT::Solver::new_rbicgstab ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new RBiCGStab solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new RBiCGStab object.

Definition at line 432 of file rbicgstab.hpp.

◆ new_rgcr() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< RGCR< Matrix_, Filter_ > > FEAT::Solver::new_rgcr ( const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new RGCR solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new RGCR object.

Definition at line 259 of file rgcr.hpp.

◆ new_rgcr() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< RGCR< Matrix_, Filter_ > > FEAT::Solver::new_rgcr ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new RGCR solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new RGCR object.

Definition at line 288 of file rgcr.hpp.

◆ new_richardson() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< Richardson< Matrix_, Filter_ > > FEAT::Solver::new_richardson ( const Matrix_ &  matrix,
const Filter_ &  filter,
typename Matrix_::DataType  omega = typename Matrix_::DataType(1),
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new Richardson solver object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]omegaThe damping parameter for the solver.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new Richardson object.

Definition at line 249 of file richardson.hpp.

◆ new_richardson() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< Richardson< Matrix_, Filter_ > > FEAT::Solver::new_richardson ( const String section_name,
const PropertyMap section,
const Matrix_ &  matrix,
const Filter_ &  filter,
std::shared_ptr< SolverBase< typename Matrix_::VectorTypeL > >  precond = nullptr 
)
inline

Creates a new Richardson solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]precondThe preconditioner. May be nullptr.
Returns
A shared pointer to a new Richardson object.

Definition at line 279 of file richardson.hpp.

◆ new_saddle_umfpack_mean() [1/2]

template<typename DT_ , typename IT_ , int dim_>
std::shared_ptr< SaddleUmfpackMean< DT_, IT_, dim_ > > FEAT::Solver::new_saddle_umfpack_mean ( const LAFEM::SaddlePointMatrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, dim_ >, LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ > > &  matrix,
const LAFEM::DenseVector< DT_, IT_ > &  weight_vector 
)
inline

Creates a new UmfpackMean solver object.

Parameters
[in]matrixThe system matrix.
[in]weight_vectorThe weight vector to be used as a Lagrange multiplier.
Returns
A shared pointer to a new UmfpackMean object.

Definition at line 602 of file umfpack.hpp.

◆ new_saddle_umfpack_mean() [2/2]

template<typename DT_ , typename IT_ , int dim_>
std::shared_ptr< SaddleUmfpackMean< DT_, IT_, dim_ > > FEAT::Solver::new_saddle_umfpack_mean ( const LAFEM::SaddlePointMatrix< LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, dim_ >, LAFEM::SparseMatrixBCSR< DT_, IT_, dim_, 1 >, LAFEM::SparseMatrixBCSR< DT_, IT_, 1, dim_ > > &  matrix,
const LAFEM::MeanFilter< DT_, IT_ > &  filter 
)
inline

Creates a new UmfpackMean solver object.

Parameters
[in]matrixThe system matrix.
[in]filterA reference to the mean filter containing the weight vector.
Returns
A shared pointer to a new UmfpackMean object.

Definition at line 625 of file umfpack.hpp.

◆ new_scale_precond() [1/2]

template<typename Filter_ , typename DataType_ >
std::shared_ptr< ScalePrecond< typename Filter_::VectorType, Filter_ > > FEAT::Solver::new_scale_precond ( const Filter_ &  filter,
DataType_  omega 
)
inline

Creates a new ScalePrecond solver object.

Parameters
[in]filterThe system filter.
[in]omegaThe scaling parameter for the preconditioner.
Returns
A shared pointer to a new ScalePrecond object.

Definition at line 122 of file scale_precond.hpp.

◆ new_scale_precond() [2/2]

template<typename Filter_ >
std::shared_ptr< ScalePrecond< typename Filter_::VectorType, Filter_ > > FEAT::Solver::new_scale_precond ( const String section_name,
const PropertyMap section,
const Filter_ &  filter 
)
inline

Creates a new ScalePrecond solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]filterThe system filter.
Returns
A shared pointer to a new ScalePrecond object.

Definition at line 144 of file scale_precond.hpp.

◆ new_schwarz_precond() [1/2]

template<typename LocalFilter_ , typename Mirror_ >
std::shared_ptr< SchwarzPrecond< Global::Vector< typename LocalFilter_::VectorType, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > > > FEAT::Solver::new_schwarz_precond ( const String section_name,
const PropertyMap section,
std::shared_ptr< SolverBase< typename LocalFilter_::VectorType > >  local_solver,
const Global::Filter< LocalFilter_, Mirror_ > &  filter 
)
inline

Creates a new SchwarzPrecond solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]local_solverThe local solver object.
[in]filterThe global system filter.
Returns
A shared pointer to a new SchwarzPrecond object.

Definition at line 258 of file schwarz_precond.hpp.

◆ new_schwarz_precond() [2/2]

template<typename LocalFilter_ , typename Mirror_ >
std::shared_ptr< SchwarzPrecond< Global::Vector< typename LocalFilter_::VectorType, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > > > FEAT::Solver::new_schwarz_precond ( std::shared_ptr< SolverBase< typename LocalFilter_::VectorType > >  local_solver,
const Global::Filter< LocalFilter_, Mirror_ > &  filter 
)
inline

Creates a new SchwarzPrecond solver object.

Parameters
[in]local_solverThe local solver object.
[in]filterThe global system filter.
Returns
A shared pointer to a new SchwarzPrecond object.

Definition at line 223 of file schwarz_precond.hpp.

◆ new_secant_linesearch() [1/2]

template<typename Functional_ , typename Filter_ >
std::shared_ptr< SecantLinesearch< Functional_, Filter_ > > FEAT::Solver::new_secant_linesearch ( const String section_name,
const PropertyMap section,
Functional_ &  functional,
Filter_ &  filter 
)
inline

Creates a new SecantLinesearch object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]functionalThe functional
[in]filterThe system filter.
Returns
A shared pointer to a new SecantLinesearch object.

Definition at line 342 of file secant_linesearch.hpp.

◆ new_secant_linesearch() [2/2]

template<typename Functional_ , typename Filter_ >
std::shared_ptr< SecantLinesearch< Functional_, Filter_ > > FEAT::Solver::new_secant_linesearch ( Functional_ &  functional,
Filter_ &  filter,
typename Functional_::DataType  secant_step = SecantLinesearch<Functional_, Filter_>::secant_step_default,
bool  keep_iterates = false 
)
inline

Creates a new SecantLinesearch object.

Parameters
[in]functionalThe functional.
[in]filterThe system filter.
[in]secant_stepLength for first secant step.
[in]keep_iteratesFlag for keeping the iterates, defaults to false
Returns
A shared pointer to a new SecantLinesearch object.

Definition at line 314 of file secant_linesearch.hpp.

◆ new_sor_precond() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< SORPrecond< Matrix_, Filter_ > > FEAT::Solver::new_sor_precond ( const String section_name,
const PropertyMap section,
PreferredBackend  backend,
const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new SORPrecond solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]backendThe backend to be preferred. This implementation works with generic and cuda.
[in]matrixThe system matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new SORPrecond object.

Definition at line 914 of file sor_precond.hpp.

◆ new_sor_precond() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< SORPrecond< Matrix_, Filter_ > > FEAT::Solver::new_sor_precond ( PreferredBackend  backend,
const Matrix_ &  matrix,
const Filter_ &  filter,
const typename Matrix_::DataType  omega = typename Matrix_::DataType(1) 
)
inline

Creates a new SORPrecond solver object.

Parameters
[in]backendThe backend to be preferred. This implementation works with generic and cuda.
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]omegaThe damping value.
Returns
A shared pointer to a new SORPrecond object.

Definition at line 885 of file sor_precond.hpp.

◆ new_ssor_precond() [1/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< SSORPrecond< Matrix_, Filter_ > > FEAT::Solver::new_ssor_precond ( const PreferredBackend  backend,
const Matrix_ &  matrix,
const Filter_ &  filter,
const typename Matrix_::DataType  omega = typename Matrix_::DataType(1) 
)
inline

Creates a new SSORPrecond solver object.

Parameters
[in]backendThe backend to be preferred. This implementation works with generic and cuda.
[in]matrixThe system matrix.
[in]filterThe system filter.
[in]omegaThe damping value.
Returns
A shared pointer to a new SSORPrecond object.

Definition at line 857 of file ssor_precond.hpp.

◆ new_ssor_precond() [2/2]

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< SSORPrecond< Matrix_, Filter_ > > FEAT::Solver::new_ssor_precond ( const String section_name,
const PropertyMap section,
PreferredBackend  backend,
const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Creates a new SSORPrecond solver object using a PropertyMap.

Parameters
[in]section_nameThe name of the config section, which it does not know by itself
[in]sectionA pointer to the PropertyMap section configuring this solver
[in]backendThe backend to be preferred. This implementation works with generic and cuda.
[in]matrixThe system matrix.
[in]filterThe system filter.
Returns
A shared pointer to a new SSORPrecond object.

Definition at line 887 of file ssor_precond.hpp.

◆ new_superlu()

template<typename Matrix_ , typename Filter_ >
std::shared_ptr< SuperLU< Matrix_, Filter_ > > FEAT::Solver::new_superlu ( const Matrix_ &  matrix,
const Filter_ &  filter 
)

Creates a new SuperLU solver object.

Parameters
[in]matrixThe system matrix
[in]filterThe system filter
Returns
A shared pointer to a new SuperLU object.

Definition at line 202 of file superlu.hpp.

◆ new_umfpack()

std::shared_ptr< Umfpack > FEAT::Solver::new_umfpack ( const LAFEM::SparseMatrixCSR< double, Index > &  matrix)
inline

Creates a new Umfpack solver object.

Parameters
[in]matrixThe system matrix.
Returns
A shared pointer to a new Umfpack object.

Definition at line 116 of file umfpack.hpp.

Referenced by FEAT::Solver::DirectStokesSolver< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, LAFEM::TupleFilter< FilterV_, FilterP_ > >::DirectStokesSolver().

◆ new_umfpack_mean() [1/2]

std::shared_ptr< UmfpackMean > FEAT::Solver::new_umfpack_mean ( const LAFEM::SparseMatrixCSR< double, Index > &  matrix,
const LAFEM::DenseVector< double, Index > &  weight_vector 
)
inline

Creates a new UmfpackMean solver object.

Parameters
[in]matrixThe system matrix.
[in]weight_vectorThe weight vector to be used as a Lagrange multiplier.
Returns
A shared pointer to a new UmfpackMean object.

Definition at line 228 of file umfpack.hpp.

◆ new_umfpack_mean() [2/2]

std::shared_ptr< UmfpackMean > FEAT::Solver::new_umfpack_mean ( const LAFEM::SparseMatrixCSR< double, Index > &  matrix,
const LAFEM::MeanFilter< double, Index > &  filter 
)
inline

Creates a new UmfpackMean solver object.

Parameters
[in]matrixThe system matrix.
[in]filterA reference to the mean filter containing the weight vector.
Returns
A shared pointer to a new UmfpackMean object.

Definition at line 247 of file umfpack.hpp.

◆ new_uzawa_precond()

template<typename MatrixA_ , typename MatrixB_ , typename MatrixD_ , typename FilterV_ , typename FilterP_ >
std::shared_ptr< UzawaPrecond< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ > > FEAT::Solver::new_uzawa_precond ( const MatrixA_ &  matrix_a,
const MatrixB_ &  matrix_b,
const MatrixD_ &  matrix_d,
const FilterV_ &  filter_v,
const FilterP_ &  filter_p,
std::shared_ptr< SolverBase< typename MatrixB_::VectorTypeL > >  solver_a,
std::shared_ptr< SolverBase< typename MatrixD_::VectorTypeL > >  solver_s,
UzawaType  type = UzawaType::diagonal,
bool  auto_init_s = true 
)
inline

Creates a new UzawaPrecond solver object.

Parameters
[in]matrix_a,matrix_b,matrix_dThe three sub-matrices of the saddle-point system matrix.
[in]filter_v,filter_pThe two sub-filters of the system.
[in]solver_aThe solver object for the A-matrix block.
[in]solver_sThe solver object for the S-matrix block.
[in]typeSpecifies the type of the preconditioner.
[in]auto_init_sSpecifies whether to automatically initialize the S-matrix solver.
Returns
A shared pointer to a new UzawaPrecond object.

Definition at line 686 of file uzawa_precond.hpp.

◆ new_vanka()

template<typename MatrixA_ , typename MatrixB_ , typename MatrixD_ , typename Filter_ >
std::shared_ptr< Vanka< LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ >, Filter_ > > FEAT::Solver::new_vanka ( const LAFEM::SaddlePointMatrix< MatrixA_, MatrixB_, MatrixD_ > &  matrix,
const Filter_ &  filter,
VankaType  type,
typename MatrixA_::DataType  omega = typename MatrixA_::DataType(1),
Index  num_iter = Index(1) 
)

Creates a new Vanka solver object.

Parameters
[in]matrixThe saddle-point system matrix.
[in]filterThe system filter
[in]typeSpecifies the Vanka type.
[in]omegaThe relaxation parameter.
[in]num_iterThe number of Vanka iterations to be performed.
Returns
A shared pointer to a new Vanka object.

Definition at line 1995 of file vanka.hpp.

◆ new_voxel_amavanka()

template<typename Matrix_ , typename Filter_ , typename ColoringType_ , FEAT::Intern::VankaAssemblyPolicy pol_threading_ = FEAT::Intern::VankaAssemblyPolicy::batchedAssembly, FEAT::Intern::VankaMacroPolicy macro_type_ = FEAT::Intern::VankaMacroPolicy::uniformMacros>
std::shared_ptr< VoxelAmaVanka< Matrix_, Filter_, pol_threading_, macro_type_ > > FEAT::Solver::new_voxel_amavanka ( const Matrix_ &  matrix,
const Filter_ &  filter,
const ColoringType_ &  coloring,
typename Matrix_::DataType  omega = typename Matrix_::DataType(1),
Index  num_steps = Index(1) 
)

Creates a new VoxelAmaVanka smoother object.

Parameters
[in]matrixThe system matrix.
[in]filterThe system filter
[in]coloringThe coloring of the voxel array.
[in]omegaThe damping parameter.
[in]num_stepsThe number of Vanka iterations to be performed.
Returns
A shared pointer to a new AmaVanka object.

Definition at line 684 of file voxel_amavanka.hpp.

◆ operator<<()

std::ostream & FEAT::Solver::operator<< ( std::ostream &  os,
DescentVariant  dv 
)

Definition at line 29 of file descent.hpp.

◆ solve() [1/2]

template<typename Vector_ , typename Matrix_ , typename Filter_ >
Status FEAT::Solver::solve ( IterativeSolver< Vector_ > &  solver,
Vector_ &  vec_sol,
const Vector_ &  vec_rhs,
const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Overload of solve() function for IterativeSolver solvers.

Definition at line 1001 of file iterative.hpp.

References FEAT::Solver::IterativeSolver< Vector_ >::correct().

◆ solve() [2/2]

template<typename Vector_ , typename Matrix_ , typename Filter_ >
Status FEAT::Solver::solve ( SolverBase< Vector_ > &  solver,
Vector_ &  vec_sol,
const Vector_ &  vec_rhs,
const Matrix_ &  matrix,
const Filter_ &  filter 
)
inline

Solve linear system with initial solution guess.

Parameters
[in]solverThe solver object that is to be used for solving the system.
[in,out]vec_solThe solution vector containing an initial guess.
[in]vec_rhsThe right-hand-side vector of the linear system.
[in]matrixThe matrix of the linear system.
[in]filterThe filter of the linear system.
Attention
vec_sol and vec_rhs must not refer to the same vector object!
Returns
A status code representing the status of the solving step.

Definition at line 347 of file base.hpp.

References FEAT::Solver::SolverBase< Vector_ >::apply(), FEAT::LAFEM::Layout, and status_success().

Referenced by FEAT::Control::Meshopt::DuDvFunctionalControl< DT_, IT_, DomainControl_ >::apply().

◆ status_success()

bool FEAT::Solver::status_success ( Status  status)
inline

Status success check function.

This function takes a Status value as input and checks whether it represents a 'successful' run. A solving run is interpreted as successful, if one of the following status codes was returned:

For any other status code, the solving run is interpreted as unsuccessful.

Parameters
[in]statusA status code returned by a solver.
Returns
true, if the run was successful, otherwise false.

Definition at line 108 of file base.hpp.

References max_iter, stagnated, and success.

Referenced by FEAT::Solver::MultiGrid< SystemMatrix_, SystemFilter_, TransferOperator_ >::_apply_coarse(), FEAT::Solver::PreconditionedIterativeSolver< Vector_ >::_apply_precond(), FEAT::Solver::SchwarzPrecond< Global::Vector< LocalVector_, Mirror_ >, Global::Filter< LocalFilter_, Mirror_ > >::apply(), FEAT::Solver::ConvertPrecond< VectorOuter_, VectorInner_ >::apply(), FEAT::Solver::ConvertPrecond< Global::Vector< LocalVectorOuter_, MirrorOuter_ >, Global::Vector< LocalVectorInner_, MirrorInner_ > >::apply(), FEAT::Solver::BFBT< MatrixA_, MatrixB_, MatrixD_, FilterV_, FilterP_ >::apply(), and solve().

Variable Documentation

◆ direct_stokes_solver_available

constexpr bool FEAT::Solver::direct_stokes_solver_available
staticconstexpr
Initial value:
=
false

specifies whether at least one backend for the DirectStokesSolver class is available

Definition at line 1036 of file direct_stokes_solver.hpp.