SpECTRE  v2024.04.12
DistributedLinearSolverAlgorithmTestHelpers Namespace Reference

Functionality to test parallel linear solvers on multiple elements. More...

Classes

struct  CollectOperatorAction
 
struct  ComputeOperatorAction
 
struct  ExpectedResult
 
struct  InitializeElement
 
struct  LinearOperator
 
struct  ScalarFieldTag
 
struct  Source
 
struct  TestResult
 

Typedefs

using fields_tag = Tags::Variables< tmpl::list< ScalarFieldTag > >
 
using sources_tag = db::add_tag_prefix<::Tags::FixedSource, fields_tag >
 
using operator_applied_to_fields_tag = db::add_tag_prefix< LinearSolver::Tags::OperatorAppliedTo, fields_tag >
 
template<typename Metavariables , typename LinearSolverType = typename Metavariables::linear_solver, typename PreconditionerType = typename Metavariables::preconditioner>
using initialization_actions = tmpl::list< InitializeElement, typename LinearSolverType::initialize_element, ComputeOperatorAction< fields_tag >, helpers::detail::init_preconditioner< PreconditionerType >, Parallel::Actions::TerminatePhase >
 
template<typename Metavariables , typename LinearSolverType = typename Metavariables::linear_solver, typename PreconditionerType = typename Metavariables::preconditioner>
using register_actions = tmpl::list< typename LinearSolverType::register_element, helpers::detail::register_preconditioner< PreconditionerType >, Parallel::Actions::TerminatePhase >
 
template<typename Metavariables , typename LinearSolverType = typename Metavariables::linear_solver, typename PreconditionerType = typename Metavariables::preconditioner>
using solve_actions = tmpl::list< typename LinearSolverType::template solve< tmpl::list< detail::run_preconditioner< PreconditionerType >, ComputeOperatorAction< typename LinearSolverType::operand_tag > > >, Parallel::Actions::TerminatePhase >
 
template<typename Metavariables , typename LinearSolverType = typename Metavariables::linear_solver, typename PreconditionerType = typename Metavariables::preconditioner>
using test_actions = tmpl::list< TestResult< typename LinearSolverType::options_group > >
 
template<typename Metavariables >
using ElementArray = elliptic::DgElementArray< Metavariables, tmpl::list< Parallel::PhaseActions< Parallel::Phase::Initialization, initialization_actions< Metavariables > >, Parallel::PhaseActions< Parallel::Phase::Register, register_actions< Metavariables > >, Parallel::PhaseActions< Parallel::Phase::Solve, solve_actions< Metavariables > >, Parallel::PhaseActions< Parallel::Phase::Testing, test_actions< Metavariables > > > >
 
template<typename Metavariables >
using component_list = tmpl::push_back< tmpl::append< helpers::detail::get_component_list< typename Metavariables::linear_solver >, helpers::detail::get_component_list< typename Metavariables::preconditioner > >, ElementArray< Metavariables >, observers::Observer< Metavariables >, observers::ObserverWriter< Metavariables >, helpers::OutputCleaner< Metavariables > >
 

Functions

size_t get_index (const ElementId< 1 > &element_id)
 

Detailed Description

Functionality to test parallel linear solvers on multiple elements.