Loading...
Searching...
No Matches
terra::linalg::GCACapable Concept Reference

Concept for types that can be used as Galerkin coarse-grid operators in a multigrid hierarchy. See galerkin_coarsening_linear.hpp for more information on GCA. More...

#include <operator.hpp>

Concept definition

template<typename Op>
concept terra::linalg::GCACapable = requires(
const Op& self_const,
const int local_subdomain_id,
const int x_cell,
const int y_cell,
const int r_cell,
const int wedge,
const dense::Mat< typename Op::ScalarType, Op::LocalMatrixDim, Op::LocalMatrixDim >& mat ) {
{ Op::LocalMatrixDim } -> std::convertible_to< int >;
{
self_const.get_local_matrix( local_subdomain_id, x_cell, y_cell, r_cell, wedge )
} -> std::same_as< dense::Mat< typename Op::ScalarType, Op::LocalMatrixDim, Op::LocalMatrixDim > >;
{ self_const.set_local_matrix( local_subdomain_id, x_cell, y_cell, r_cell, wedge, mat ) } -> std::same_as< void >;
{ self_const.get_domain() } -> std::same_as< const grid::shell::DistributedDomain& >;
{ self_const.get_radii() } -> std::same_as< grid::Grid2DDataScalar< typename Op::ScalarType > >;
}
Concept for types that can be used as Galerkin coarse-grid operators in a multigrid hierarchy....
Definition operator.hpp:81
Concept for types that behave like linear operators.
Definition operator.hpp:57

Detailed Description

Concept for types that can be used as Galerkin coarse-grid operators in a multigrid hierarchy. See galerkin_coarsening_linear.hpp for more information on GCA.