|
| | PCG () |
| void | setPreconditioner (OperatorF &&op, LowerF &&lower, UpperF &&upper, UpperLowerF &&upper_and_lower, InverseDiagF &&inverse_diagonal, DiagF &&diagonal, double alpha, double beta, std::string preconditioner_type="", int level=5, int degree=31, int richardson_iterations=4, int inner=2, int outer=2, double omega=1.57079632679) override |
| void | operator() (lhs_type &lhs, rhs_type &rhs, const ParameterList ¶ms) override |
| virtual void | setOperator (OperatorF op) |
| virtual int | getIterationCount () |
| virtual void | operator() (lhs_type &lhs, rhs_type &rhs, const ParameterList ¶ms) override |
| virtual T | getResidue () const |
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
class ippl::PCG< OperatorRet, LowerRet, UpperRet, UpperLowerRet, InverseDiagRet, DiagRet, FieldLHS, FieldRHS >
Definition at line 285 of file PCG.h.
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
| using ippl::PCG< OperatorRet, LowerRet, UpperRet, UpperLowerRet, InverseDiagRet, DiagRet, FieldLHS, FieldRHS >::Base = SolverAlgorithm<FieldLHS, FieldRHS> |
|
private |
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
| using ippl::PCG< OperatorRet, LowerRet, UpperRet, UpperLowerRet, InverseDiagRet, DiagRet, FieldLHS, FieldRHS >::DiagF = std::function<DiagRet(lhs_type)> |
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
| using ippl::PCG< OperatorRet, LowerRet, UpperRet, UpperLowerRet, InverseDiagRet, DiagRet, FieldLHS, FieldRHS >::InverseDiagF = std::function<InverseDiagRet(lhs_type)> |
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
| using ippl::PCG< OperatorRet, LowerRet, UpperRet, UpperLowerRet, InverseDiagRet, DiagRet, FieldLHS, FieldRHS >::LowerF = std::function<LowerRet(lhs_type)> |
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
| using ippl::PCG< OperatorRet, LowerRet, UpperRet, UpperLowerRet, InverseDiagRet, DiagRet, FieldLHS, FieldRHS >::OperatorF = std::function<OperatorRet(lhs_type)> |
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
| typedef Base::lhs_type::value_type ippl::PCG< OperatorRet, LowerRet, UpperRet, UpperLowerRet, InverseDiagRet, DiagRet, FieldLHS, FieldRHS >::T |
|
private |
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
| using ippl::PCG< OperatorRet, LowerRet, UpperRet, UpperLowerRet, InverseDiagRet, DiagRet, FieldLHS, FieldRHS >::UpperF = std::function<UpperRet(lhs_type)> |
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
| using ippl::PCG< OperatorRet, LowerRet, UpperRet, UpperLowerRet, InverseDiagRet, DiagRet, FieldLHS, FieldRHS >::UpperLowerF = std::function<UpperLowerRet(lhs_type)> |
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
| ippl::PCG< OperatorRet, LowerRet, UpperRet, UpperLowerRet, InverseDiagRet, DiagRet, FieldLHS, FieldRHS >::PCG |
( |
| ) |
|
|
inline |
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
| void ippl::PCG< OperatorRet, LowerRet, UpperRet, UpperLowerRet, InverseDiagRet, DiagRet, FieldLHS, FieldRHS >::setPreconditioner |
( |
OperatorF && | op, |
|
|
LowerF && | lower, |
|
|
UpperF && | upper, |
|
|
UpperLowerF && | upper_and_lower, |
|
|
InverseDiagF && | inverse_diagonal, |
|
|
DiagF && | diagonal, |
|
|
double | alpha, |
|
|
double | beta, |
|
|
std::string | preconditioner_type = "", |
|
|
int | level = 5, |
|
|
int | degree = 31, |
|
|
int | richardson_iterations = 4, |
|
|
int | inner = 2, |
|
|
int | outer = 2, |
|
|
double | omega = 1.57079632679 ) |
|
inlineoverridevirtual |
template<typename OperatorRet, typename LowerRet, typename UpperRet, typename UpperLowerRet, typename InverseDiagRet, typename DiagRet, typename FieldLHS, typename FieldRHS = FieldLHS>
| std::unique_ptr<preconditioner<FieldLHS> > ippl::PCG< OperatorRet, LowerRet, UpperRet, UpperLowerRet, InverseDiagRet, DiagRet, FieldLHS, FieldRHS >::preconditioner_m |
|
protected |