EWOMS_REGISTER_PARAM(TypeTag,double,LinearSolverReduction,"The minimum reduction of the residual which the linear solver must achieve");
EWOMS_REGISTER_PARAM(TypeTag,double,IluRelaxation,"The relaxation factor of the linear solver's ILU preconditioner");
EWOMS_REGISTER_PARAM(TypeTag,int,LinearSolverMaxIter,"The maximum number of iterations of the linear solver");
EWOMS_REGISTER_PARAM(TypeTag,int,LinearSolverRestart,"The number of iterations after which GMRES is restarted");
EWOMS_REGISTER_PARAM(TypeTag,int,FlowLinearSolverVerbosity,"The verbosity level of the linear solver (0: off, 2: all)");
EWOMS_REGISTER_PARAM(TypeTag,int,IluFillinLevel,"The fill-in level of the linear solver's ILU preconditioner");
EWOMS_REGISTER_PARAM(TypeTag,std::string,MiluVariant,"Specify which variant of the modified-ILU preconditioner ought to be used. Possible variants are: ILU (default, plain ILU), MILU_1 (lump diagonal with dropped row entries), MILU_2 (lump diagonal with the sum of the absolute values of the dropped row entries), MILU_3 (if diagonal is positive add sum of dropped row entrires. Otherwise substract them), MILU_4 (if diagonal is positive add sum of dropped row entrires. Otherwise do nothing");
EWOMS_REGISTER_PARAM(TypeTag,bool,IluRedblack,"Use red-black partioning for the ILU preconditioner");
EWOMS_REGISTER_PARAM(TypeTag,bool,IluReorderSpheres,"Whether to reorder the entries of the matrix in the red-black ILU preconditioner in spheres starting at an edge. If false the original ordering is preserved in each color. Otherwise why try to ensure D4 ordering (in a 2D structured grid, the diagonal elements are consecutive).");
EWOMS_REGISTER_PARAM(TypeTag,bool,UseGmres,"Use GMRES as the linear solver");
EWOMS_REGISTER_PARAM(TypeTag,bool,LinearSolverRequireFullSparsityPattern,"Produce the full sparsity pattern for the linear solver");
EWOMS_REGISTER_PARAM(TypeTag,bool,LinearSolverIgnoreConvergenceFailure,"Continue with the simulation like nothing happened after the linear solver did not converge");
EWOMS_REGISTER_PARAM(TypeTag,bool,UseAmg,"Use AMG as the linear solver's preconditioner");
EWOMS_REGISTER_PARAM(TypeTag,bool,UseCpr,"Use CPR as the linear solver's preconditioner");
EWOMS_REGISTER_PARAM(TypeTag,std::string,SystemStrategy,"Strategy for reformulating and scaling linear system (none: no scaling -- should not be used with CPR, original: use weights that are equivalent to no scaling -- should not be used with CPR, simple: form pressure equation as simple sum of conservation equations, quasiimpes: form pressure equation based on diagonal block, trueimpes: form pressure equation based on linearization of accumulation term)");
EWOMS_REGISTER_PARAM(TypeTag,int,CprSolverVerbose,"Verbosity of cpr solver (0: silent, 1: print summary of inner linear solver, 2: print extensive information about inner linear solve, including setup information)");
EWOMS_REGISTER_PARAM(TypeTag,bool,CprUseDrs,"Use dynamic row sum using weights");
EWOMS_REGISTER_PARAM(TypeTag,int,CprMaxEllIter,"MaxIterations of the elliptic pressure part of the cpr solver");
EWOMS_REGISTER_PARAM(TypeTag,int,CprEllSolvetype,"Solver type of elliptic pressure solve (0: bicgstab, 1: cg, 2: only amg preconditioner)");
EWOMS_REGISTER_PARAM(TypeTag,std::string,LinearSolverConfiguration,"Configuration of solver valid is: ilu0 (default), cpr_quasiimpes, cpr_trueimpes or file (specified in LinearSolverConfigurationJsonFile) ");