iterative-solver 0.0
 
Loading...
Searching...
No Matches
molpro::linalg::itsolv::PSpaceMetric< R, P > Struct Template Reference

The metric of a problem in the P space, for IterativeSolver::add_p() More...

#include <IterativeSolver.h>

Detailed Description

template<class R, class P = std::map<size_t, typename R::value_type>>
struct molpro::linalg::itsolv::PSpaceMetric< R, P >

The metric of a problem in the P space, for IterativeSolver::add_p()

Template Parameters
Rthe type of container for solutions and residuals
Pthe type of a P-space vector

Public Types

using value_type = typename R::value_type
 

Public Attributes

array::Span< value_type > pp_matrix
 the metric matrix in the P space, in the layout of the kernel matrix given to add_p(), which copies it
 
std::function< void(const std::vector< std::vector< value_type > > &, const CVecRef< P > &, const VecRef< R > &)> apply
 

Member Typedef Documentation

◆ value_type

template<class R , class P = std::map<size_t, typename R::value_type>>
using molpro::linalg::itsolv::PSpaceMetric< R, P >::value_type = typename R::value_type

Member Data Documentation

◆ apply

template<class R , class P = std::map<size_t, typename R::value_type>>
std::function<void(const std::vector<std::vector<value_type>>&, const CVecRef<P>&, const VecRef<R>&)> molpro::linalg::itsolv::PSpaceMetric< R, P >::apply

adds the action of the metric on vectors in the P space, like the function for the kernel given to add_p(); needed with MetricStorage::Stored, ignored with MetricStorage::OnTheFly, and kept by the solver

◆ pp_matrix

template<class R , class P = std::map<size_t, typename R::value_type>>
array::Span<value_type> molpro::linalg::itsolv::PSpaceMetric< R, P >::pp_matrix

the metric matrix in the P space, in the layout of the kernel matrix given to add_p(), which copies it