|
|
using | OperatorF = std::function< OperatorRet(lhs_type &)> |
| |
|
using | LowerF = std::function< LowerRet(lhs_type &)> |
| |
|
using | UpperF = std::function< UpperRet(lhs_type &)> |
| |
|
using | UpperLowerF = std::function< UpperLowerRet(lhs_type &)> |
| |
|
using | InverseDiagF = std::function< InverseDiagRet(lhs_type &)> |
| |
|
using | DiagF = std::function< DiagRet(lhs_type &)> |
| |
|
using | mesh_type = typename lhs_type::Mesh_t |
| |
|
using | layout_type = typename lhs_type::Layout_t |
| |
|
using | lhs_type = FieldLHS |
| |
|
using | rhs_type = FieldRHS |
| |
|
using | OperatorF = std::function< OperatorRet(lhs_type &)> |
| |
|
using | LowerF = std::function< LowerRet(lhs_type &)> |
| |
|
using | UpperF = std::function< UpperRet(lhs_type &)> |
| |
|
using | UpperLowerF = std::function< UpperLowerRet(lhs_type &)> |
| |
|
using | InverseDiagF = std::function< InverseDiagRet(lhs_type &)> |
| |
|
using | DiagF = std::function< DiagRet(lhs_type &)> |
| |
|
using | mesh_type = typename lhs_type::Mesh_t |
| |
|
using | layout_type = typename lhs_type::Layout_t |
| |
|
using | lhs_type = FieldLHS |
| |
|
using | rhs_type = FieldRHS |
| |
|
using | lhs_type = FieldLHS |
| |
|
using | rhs_type = FieldRHS |
| |
|
| void | initializeFields (mesh_type &mesh, layout_type &layout) override |
| |
| 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=pcg_preconditioner_defaults::newton_level, int degree=pcg_preconditioner_defaults::chebyshev_degree, int richardson_iterations=pcg_preconditioner_defaults::richardson_iterations, int inner=pcg_preconditioner_defaults::gauss_seidel_inner, int outer=pcg_preconditioner_defaults::gauss_seidel_outer, double omega=pcg_preconditioner_defaults::ssor_omega) override |
| |
| void | operator() (lhs_type &lhs, rhs_type &rhs, const ParameterList ¶ms) override |
| |
| virtual void | setOperator (OperatorF op) |
| |
| virtual int | getIterationCount () |
| |
|
virtual T | getResidue () const |
| |
|
|
std::unique_ptr< preconditioner< FieldLHS > > | preconditioner_m |
| |
|
lhs_type | s |
| |
|
lhs_type | pcond_out |
| |
|
OperatorF | op_m |
| |
|
T | residueNorm = 0 |
| |
|
int | iterations_m = 0 |
| |
|
lhs_type | r |
| |
|
lhs_type | d |
| |
|
lhs_type | q |
| |
◆ initializeFields()
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 >::initializeFields |
( |
mesh_type & |
mesh, |
|
|
layout_type & |
layout |
|
) |
| |
|
inlineoverridevirtual |
◆ operator()()
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 >::operator() |
( |
lhs_type & |
lhs, |
|
|
rhs_type & |
rhs, |
|
|
const ParameterList & |
params |
|
) |
| |
|
inlineoverridevirtual |
◆ setPreconditioner()
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 = pcg_preconditioner_defaults::newton_level, |
|
|
int |
degree = pcg_preconditioner_defaults::chebyshev_degree, |
|
|
int |
richardson_iterations = pcg_preconditioner_defaults::richardson_iterations, |
|
|
int |
inner = pcg_preconditioner_defaults::gauss_seidel_inner, |
|
|
int |
outer = pcg_preconditioner_defaults::gauss_seidel_outer, |
|
|
double |
omega = pcg_preconditioner_defaults::ssor_omega |
|
) |
| |
|
inlineoverridevirtual |
The documentation for this class was generated from the following file:
- ippl-src/src/LinearSolvers/PCG.h