24#include <cusp/detail/config.h>
25#include <cusp/detail/multilevel.h>
26#include <cusp/detail/execution_policy.h>
30#include <cusp/precond/aggregation/detail/sa_view_traits.h>
32#include <thrust/detail/use_default.h>
44template<
typename MatrixType>
49 typedef typename MatrixType::index_type IndexType;
50 typedef typename MatrixType::value_type ValueType;
51 typedef typename MatrixType::memory_space MemorySpace;
52 typedef typename cusp::norm_type<ValueType>::type NormType;
63 sa_level(
void) : num_iters(1), rho_DinvA(0) {}
65 template<
typename SALevelType>
66 sa_level(
const SALevelType& L)
68 aggregates(L.aggregates),
70 num_iters(L.num_iters),
71 rho_DinvA(L.rho_DinvA)
155template <
typename IndexType,
157 typename MemorySpace,
158 typename SmootherType = thrust::use_default,
159 typename SolverType = thrust::use_default,
160 typename Format = thrust::use_default>
162 public cusp::multilevel<IndexType,ValueType,MemorySpace,Format,SmootherType,SolverType>::container
166 typedef typename detail::select_sa_matrix_type<IndexType,ValueType,MemorySpace>::type SetupMatrixType;
167 typedef typename cusp::multilevel<IndexType,ValueType,MemorySpace,Format,SmootherType,SolverType>::container ML;
172 std::vector< sa_level<SetupMatrixType> > sa_levels;
184 template <
typename MatrixType>
193 template <
typename MatrixType,
203 template <
typename MemorySpace2,
204 typename SmootherType2,
205 typename SolverType2,
215 template <
typename MatrixType>
226 template <
typename MatrixType,
232 template <
typename DerivedPolicy,
235 void initialize(
const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
243 template <
typename DerivedPolicy,
245 void extend_hierarchy(
const thrust::detail::execution_policy_base<DerivedPolicy> &exec,
246 const MatrixType& A);
256#include <cusp/precond/aggregation/detail/smoothed_aggregation.inl>
1D array of elements that may reside in "host" or "device" memory space
The array1d class is a 1D vector container that may contain elements stored in "host" or "device" mem...
Algebraic multigrid preconditioner based on smoothed aggregation.
void initialize(const MatrixType &A, const ArrayType &B)
smoothed_aggregation(const smoothed_aggregation< IndexType, ValueType, MemorySpace2, SmootherType2, SolverType2, Format2 > &M)
smoothed_aggregation(const MatrixType &A, const ArrayType &B)
smoothed_aggregation(const MatrixType &A)
smoothed_aggregation(void)
void initialize(const MatrixType &A)