SpECTRE  v2024.03.19
LinearSolver::Actions Namespace Reference

Actions applicable to any parallel linear solver. More...

Classes

struct  BuildMatrix
 Build the explicit matrix representation of the linear operator. More...
 
struct  CollectTotalNumPoints
 Dispatch global reduction to get the size of the matrix. More...
 
struct  MakeIdentityIfSkipped
 Make the iterative linear solve the identity operation on the source vector if no iterations were performed at all. Useful for disabling a preconditioner by setting its number of iterations to zero. More...
 
struct  PrepareBuildMatrix
 Receive the reduction and initialize the algorithm. More...
 
struct  ProjectBuildMatrix
 
struct  SetUnitVector
 Set the operand to a unit vector with a '1' at the current grid point. Applying the operator to this operand gives a column of the matrix. We jump back to this until we have iterated over all grid points. More...
 
struct  StoreMatrixColumn
 Write result out to disk, reset operand back to zero, and keep iterating. More...
 

Typedefs

template<typename LinearSolverType , typename BuildOperatorActions = tmpl::list<>, typename Label = typename LinearSolverType::options_group>
using make_identity_if_skipped = tmpl::conditional_t< std::is_same_v< BuildOperatorActions, tmpl::list<> >, MakeIdentityIfSkipped< LinearSolverType >, tmpl::list< MakeIdentityIfSkipped< LinearSolverType, detail::ProceedLabel< Label > >, BuildOperatorActions, ::Actions::Label< detail::ProceedLabel< Label > > > >
 Run MakeIdentityIfSkipped, and also run the BuildOperatorActions if the linear solver is skipped. See MakeIdentityIfSkipped for details.
 

Detailed Description

Actions applicable to any parallel linear solver.