1#ifndef LINEARALGEBRA_SRC_MOLPRO_LINALG_ITSOLV_SUBSPACE_QSPACE_H
2#define LINEARALGEBRA_SRC_MOLPRO_LINALG_ITSOLV_SUBSPACE_QSPACE_H
9#include <molpro/linalg/itsolv/ArrayHandlers.h>
10#include <molpro/linalg/itsolv/Logger.h>
11#include <molpro/linalg/itsolv/subspace/Dimensions.h>
12#include <molpro/linalg/itsolv/subspace/PSpace.h>
13#include <molpro/linalg/itsolv/wrap.h>
14#include <molpro/linalg/itsolv/util.h>
15#include <molpro/linalg/itsolv/helper-implementation.h>
31template <
class Q,
class ForwardIt>
34 for (
auto it = begin;
it != end; ++
it) {
41template <
class Q,
class ForwardIt>
44 for (
auto it = begin;
it != end; ++
it) {
59template <
class Rt,
class Qt,
class Pt>
89 for (
size_t i = 0;
i <
params.size(); ++
i) {
103 std::sort(rp.begin(), rp.end(), std::greater<>());
107 qq.at(
d).remove_row_col(
i,
i);
108 qx.at(
d).remove_row(
i);
109 xq.at(
d).remove_col(
i);
decltype(value_type_L{} *value_type_R{}) value_type
Definition ArrayHandler.h:182
decltype(check_abs< value_type >()) value_type_abs
Definition ArrayHandler.h:183
Class, containing a collection of array handlers used in IterativeSolver Provides a Builder sub-class...
Definition ArrayHandlers.h:25
Matrix container that allows simple data access, slicing, copying and resizing without loosing data.
Definition Matrix.h:32
auto redundant_parameters(const subspace::Matrix< value_type > &overlap, const size_t oR, const size_t nR, const value_type_abs svd_thresh, Logger &logger)
Deduces a set of parameters that are redundant due to linear dependencies.
Definition helper-implementation.h:856
auto wrap_params(ForwardIt begin, ForwardIt end)
Definition QSpace.h:42
auto cwrap_params(ForwardIt begin, ForwardIt end)
Generates vector of reference wrappers to param and action in a range of QParam objects.
Definition QSpace.h:32
std::map< EqnData, Matrix< T > > SubspaceData
Equation data blocks of the subspace, in the scalar type of the problem.
Definition SubspaceData.h:11
std::unique_ptr< LinearEigensystem< R, Q, P > > create_LinearEigensystem(const LinearEigensystemOptions &options, const std::shared_ptr< ArrayHandlers< R, Q, P > > &handlers=std::make_shared< molpro::linalg::itsolv::ArrayHandlers< R, Q, P > >())
Definition SolverFactory.h:111
std::vector< std::reference_wrapper< const A > > CVecRef
Definition wrap.h:14
std::vector< std::reference_wrapper< A > > VecRef
Definition wrap.h:11
Definition Dimensions.h:9
Container storing the Q space parameters.
Definition QSpace.h:60
typename array::ArrayHandler< R, R >::value_type_abs value_type_abs
Definition QSpace.h:65
std::shared_ptr< ArrayHandlers< R, Q, P > > m_handlers
Definition QSpace.h:185
VecRef< Q > params()
Definition QSpace.h:160
typename array::ArrayHandler< R, R >::value_type value_type
Definition QSpace.h:64
CVecRef< Q > cactions() const
Definition QSpace.h:182
void update(const CVecRef< R > ¶ms, const CVecRef< R > &actions, const SubspaceData< T > &qq_in, const SubspaceData< T > &qx_in, const SubspaceData< T > &xq_in, const Dimensions &dims, SubspaceData< T > &old_data)
Prepends parameters to the start of Q space.
Definition QSpace.h:84
Pt P
Definition QSpace.h:63
size_t size() const
Definition QSpace.h:158
void clear()
Definition QSpace.h:149
CVecRef< Q > cparams() const
Definition QSpace.h:170
size_t m_unique_id
unique id for any new parameter set
Definition QSpace.h:187
void erase(size_t i)
Erases q parameter i.
Definition QSpace.h:152
std::list< qspace::QParam< Q > > m_params
q parameter sets with new parameters first
Definition QSpace.h:188
Rt R
Definition QSpace.h:61
std::shared_ptr< Logger > m_logger
Definition QSpace.h:186
Qt Q
Definition QSpace.h:62
VecRef< Q > actions()
Definition QSpace.h:172
QSpace(std::shared_ptr< ArrayHandlers< R, Q, P > > handlers, std::shared_ptr< Logger > logger)
Definition QSpace.h:67
CVecRef< Q > params() const
Definition QSpace.h:165
CVecRef< Q > actions() const
Definition QSpace.h:177
Parameter in the Q space.
Definition QSpace.h:24
std::unique_ptr< Q > param
parameter
Definition QSpace.h:25
std::unique_ptr< Q > action
corresponding action
Definition QSpace.h:26
size_t id
unique id
Definition QSpace.h:27