/[escript]/trunk/escriptcore/src/escriptcpp.cpp
ViewVC logotype

Diff of /trunk/escriptcore/src/escriptcpp.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 6798 by aellery, Mon Feb 11 05:42:06 2019 UTC revision 6799 by aellery, Mon Mar 25 05:53:58 2019 UTC
# Line 954  args("source", "q", "r","factor"), Line 954  args("source", "q", "r","factor"),
954    enum_<escript::SolverOptions>("SolverOptions")    enum_<escript::SolverOptions>("SolverOptions")
955      .value("DEFAULT", escript::SO_DEFAULT)      .value("DEFAULT", escript::SO_DEFAULT)
956    
     .value("TARGET_CPU", escript::SO_TARGET_CPU)  
     .value("TARGET_GPU", escript::SO_TARGET_GPU)  
   
     .value("CUSP", escript::SO_PACKAGE_CUSP)  
957      .value("MKL", escript::SO_PACKAGE_MKL)      .value("MKL", escript::SO_PACKAGE_MKL)
958      .value("PASO", escript::SO_PACKAGE_PASO)      .value("PASO", escript::SO_PACKAGE_PASO)
959      .value("TRILINOS", escript::SO_PACKAGE_TRILINOS)      .value("TRILINOS", escript::SO_PACKAGE_TRILINOS)
# Line 986  args("source", "q", "r","factor"), Line 982  args("source", "q", "r","factor"),
982      .value("TFQMR", escript::SO_METHOD_TFQMR)      .value("TFQMR", escript::SO_METHOD_TFQMR)
983    
984      .value("AMG", escript::SO_PRECONDITIONER_AMG)      .value("AMG", escript::SO_PRECONDITIONER_AMG)
     .value("AMLI", escript::SO_PRECONDITIONER_AMLI)  
985      .value("GAUSS_SEIDEL", escript::SO_PRECONDITIONER_GAUSS_SEIDEL)      .value("GAUSS_SEIDEL", escript::SO_PRECONDITIONER_GAUSS_SEIDEL)
986      .value("ILU0", escript::SO_PRECONDITIONER_ILU0)      .value("ILU0", escript::SO_PRECONDITIONER_ILU0)
987      .value("ILUT", escript::SO_PRECONDITIONER_ILUT)      .value("ILUT", escript::SO_PRECONDITIONER_ILUT)
# Line 1003  args("source", "q", "r","factor"), Line 998  args("source", "q", "r","factor"),
998      .value("CLASSIC_INTERPOLATION_WITH_FF_COUPLING", escript::SO_INTERPOLATION_CLASSIC_WITH_FF_COUPLING)      .value("CLASSIC_INTERPOLATION_WITH_FF_COUPLING", escript::SO_INTERPOLATION_CLASSIC_WITH_FF_COUPLING)
999      .value("DIRECT_INTERPOLATION", escript::SO_INTERPOLATION_DIRECT)      .value("DIRECT_INTERPOLATION", escript::SO_INTERPOLATION_DIRECT)
1000    
     .value("AGGREGATION_COARSENING", escript::SO_COARSENING_AGGREGATION)  
     .value("CIJP_COARSENING", escript::SO_COARSENING_CIJP)  
     .value("CIJP_FIXED_RANDOM_COARSENING", escript::SO_COARSENING_CIJP_FIXED_RANDOM)  
     .value("FALGOUT_COARSENING", escript::SO_COARSENING_FALGOUT)  
     .value("HMIS_COARSENING", escript::SO_COARSENING_HMIS)  
     .value("PMIS_COARSENING", escript::SO_COARSENING_PMIS)  
     .value("RUGE_STUEBEN_COARSENING", escript::SO_COARSENING_RUGE_STUEBEN)  
     .value("STANDARD_COARSENING", escript::SO_COARSENING_STANDARD)  
     .value("YAIR_SHAPIRA_COARSENING", escript::SO_COARSENING_YAIR_SHAPIRA)  
   
1001      .value("DEFAULT_REORDERING", escript::SO_REORDERING_DEFAULT)      .value("DEFAULT_REORDERING", escript::SO_REORDERING_DEFAULT)
1002      .value("MINIMUM_FILL_IN", escript::SO_REORDERING_MINIMUM_FILL_IN)      .value("MINIMUM_FILL_IN", escript::SO_REORDERING_MINIMUM_FILL_IN)
1003      .value("NESTED_DISSECTION", escript::SO_REORDERING_NESTED_DISSECTION)      .value("NESTED_DISSECTION", escript::SO_REORDERING_NESTED_DISSECTION)
# Line 1070  args("source", "q", "r","factor"), Line 1055  args("source", "q", "r","factor"),
1055      .def("hasConverged", &escript::SolverBuddy::hasConverged,"Returns ``True`` if the last solver call has been finalized successfully.\n\n"      .def("hasConverged", &escript::SolverBuddy::hasConverged,"Returns ``True`` if the last solver call has been finalized successfully.\n\n"
1056          ":note: if an exception has been thrown by the solver the status of this"          ":note: if an exception has been thrown by the solver the status of this"
1057          "flag is undefined.\n")          "flag is undefined.\n")
     .def("setCoarsening", &escript::SolverBuddy::setCoarsening, args("coarsening"),"Sets the key of the coarsening method to be applied in AMG or AMLI\n\n"  
         ":param method: selects the coarsening method .\n"  
         ":type method: in `DEFAULT`, `YAIR_SHAPIRA_COARSENING`, `RUGE_STUEBEN_COARSENING`, `AGGREGATION_COARSENING`, `CIJP_FIXED_RANDOM_COARSENING`, `CIJP_COARSENING`, `FALGOUT_COARSENING`, `PMIS_COARSENING`, `HMIS_COARSENING`")  
     .def("getCoarsening", &escript::SolverBuddy::getCoarsening,"Returns the key of the coarsening algorithm to be applied AMG or AMLI\n\n"  
         ":rtype: in the list `DEFAULT`, `YAIR_SHAPIRA_COARSENING`, `RUGE_STUEBEN_COARSENING`, `AGGREGATION_COARSENING`, `CIJP_FIXED_RANDOM_COARSENING`, `CIJP_COARSENING`, `FALGOUT_COARSENING`, `PMIS_COARSENING`, `HMIS_COARSENING`")  
     .def("setMinCoarseMatrixSize", &escript::SolverBuddy::setMinCoarseMatrixSize, args("size"),"Sets the minimum size of the coarsest level matrix in AMG or AMLI\n\n"  
         ":param size: minimum size of the coarsest level matrix .\n"  
         ":type size: positive ``int``")  
     .def("getMinCoarseMatrixSize", &escript::SolverBuddy::getMinCoarseMatrixSize,"Returns the minimum size of the coarsest level matrix in AMG or AMLI")  
1058      .def("setPreconditioner", &escript::SolverBuddy::setPreconditioner, args("preconditioner"),"Sets the preconditioner to be used.\n\n"      .def("setPreconditioner", &escript::SolverBuddy::setPreconditioner, args("preconditioner"),"Sets the preconditioner to be used.\n\n"
1059          ":param preconditioner: key of the preconditioner to be used.\n"          ":param preconditioner: key of the preconditioner to be used.\n"
1060          ":type preconditioner: in `ILU0`, `ILUT`, `JACOBI`, `AMG`, `AMLI`, `REC_ILU`, `GAUSS_SEIDEL`, `RILU`, `NO_PRECONDITIONER`\n"          ":type preconditioner: in `ILU0`, `ILUT`, `JACOBI`, `AMG`, , `REC_ILU`, `GAUSS_SEIDEL`, `RILU`, `NO_PRECONDITIONER`\n"
1061          ":note: Not all packages support all preconditioner. It can be assumed that a package makes a reasonable choice if it encounters an unknown"          ":note: Not all packages support all preconditioner. It can be assumed that a package makes a reasonable choice if it encounters an unknown"
1062          "preconditioner.\n")          "preconditioner.\n")
1063      .def("getPreconditioner", &escript::SolverBuddy::getPreconditioner,"Returns the key of the preconditioner to be used.\n\n"      .def("getPreconditioner", &escript::SolverBuddy::getPreconditioner,"Returns the key of the preconditioner to be used.\n\n"
1064          ":rtype: in the list `ILU0`, `ILUT`, `JACOBI`, `AMLI`, `AMG`, `REC_ILU`, `GAUSS_SEIDEL`, `RILU`,  `NO_PRECONDITIONER`")          ":rtype: in the list `ILU0`, `ILUT`, `JACOBI`, `AMG`, `REC_ILU`, `GAUSS_SEIDEL`, `RILU`,  `NO_PRECONDITIONER`")
     .def("setSmoother", &escript::SolverBuddy::setSmoother, args("smoother"),"Sets the smoother to be used.\n\n"  
         ":param smoother: key of the smoother to be used.\n"  
         ":type smoother: in `JACOBI`, `GAUSS_SEIDEL`\n"  
         ":note: Not all packages support all smoothers. It can be assumed that a package makes a reasonable choice if it encounters an unknown smoother.")  
     .def("getSmoother", &escript::SolverBuddy::getSmoother,"Returns key of the smoother to be used.\n\n"  
         ":rtype: in the list `JACOBI`, `GAUSS_SEIDEL`")  
1065      .def("setSolverMethod", &escript::SolverBuddy::setSolverMethod, args("method"),"Sets the solver method to be used. Use ``method``=``DIRECT`` to indicate that a direct rather than an iterative solver should be used and use ``method``=``ITERATIVE`` to indicate that an iterative rather than a direct solver should be used.\n\n"      .def("setSolverMethod", &escript::SolverBuddy::setSolverMethod, args("method"),"Sets the solver method to be used. Use ``method``=``DIRECT`` to indicate that a direct rather than an iterative solver should be used and use ``method``=``ITERATIVE`` to indicate that an iterative rather than a direct solver should be used.\n\n"
1066          ":param method: key of the solver method to be used.\n"          ":param method: key of the solver method to be used.\n"
1067          ":type method: in `DEFAULT`, `DIRECT`, `CHOLEVSKY`, `PCG`, `CR`, `CGS`, `BICGSTAB`, `GMRES`, `PRES20`, `ROWSUM_LUMPING`, `HRZ_LUMPING`, `ITERATIVE`, `NONLINEAR_GMRES`, `TFQMR`, `MINRES`\n"          ":type method: in `DEFAULT`, `DIRECT`, `CHOLEVSKY`, `PCG`, `CR`, `CGS`, `BICGSTAB`, `GMRES`, `PRES20`, `ROWSUM_LUMPING`, `HRZ_LUMPING`, `ITERATIVE`, `NONLINEAR_GMRES`, `TFQMR`, `MINRES`\n"
# Line 1104  args("source", "q", "r","factor"), Line 1074  args("source", "q", "r","factor"),
1074          ":note: Not all packages are support on all implementation. An exception may be thrown on some platforms if a particular package is requested.")          ":note: Not all packages are support on all implementation. An exception may be thrown on some platforms if a particular package is requested.")
1075      .def("getPackage", &escript::SolverBuddy::getPackage,"Returns the solver package key\n\n"      .def("getPackage", &escript::SolverBuddy::getPackage,"Returns the solver package key\n\n"
1076          ":rtype: in the list `DEFAULT`, `PASO`, `CUSP`, `MKL`, `UMFPACK`, `TRILINOS`")          ":rtype: in the list `DEFAULT`, `PASO`, `CUSP`, `MKL`, `UMFPACK`, `TRILINOS`")
     .def("setSolverTarget", &escript::SolverBuddy::setSolverTarget, args("target"),"Sets the solver target to be used.\n\n"  
         ":param target: key of the solver target to be used.\n"  
         ":type target: in `TARGET_CPU`, `TARGET_GPU`\n")  
     .def("getSolverTarget", &escript::SolverBuddy::getSolverTarget, "Returns the solver target key\n\n"  
         ":rtype: in the list `TARGET_CPU`, `TARGET_GPU`")  
1077      .def("setReordering", &escript::SolverBuddy::setReordering, args("ordering"),"Sets the key of the reordering method to be applied if supported by the solver. Some direct solvers support reordering to optimize compute time and storage use during elimination.\n\n"      .def("setReordering", &escript::SolverBuddy::setReordering, args("ordering"),"Sets the key of the reordering method to be applied if supported by the solver. Some direct solvers support reordering to optimize compute time and storage use during elimination.\n\n"
1078          ":param ordering: selects the reordering strategy.\n"          ":param ordering: selects the reordering strategy.\n"
1079          ":type ordering: in 'NO_REORDERING', 'MINIMUM_FILL_IN', 'NESTED_DISSECTION', 'DEFAULT_REORDERING'")          ":type ordering: in 'NO_REORDERING', 'MINIMUM_FILL_IN', 'NESTED_DISSECTION', 'DEFAULT_REORDERING'")
# Line 1119  args("source", "q", "r","factor"), Line 1084  args("source", "q", "r","factor"),
1084          ":type restart: ``int``")          ":type restart: ``int``")
1085      .def("getRestart", &escript::SolverBuddy::getRestart,"Returns the number of iterations steps after which GMRES performs a restart. If 0 is returned no restart is performed.\n\n"      .def("getRestart", &escript::SolverBuddy::getRestart,"Returns the number of iterations steps after which GMRES performs a restart. If 0 is returned no restart is performed.\n\n"
1086          ":rtype: ``int``")          ":rtype: ``int``")
     .def("setDiagonalDominanceThreshold", &escript::SolverBuddy::setDiagonalDominanceThreshold, args("threshold"),"Sets the threshold for diagonal dominant rows which are eliminated during AMG coarsening.\n\n"  
         ":param value: threshold\n"  
         ":type value: ``float``")  
     .def("getDiagonalDominanceThreshold", &escript::SolverBuddy::getDiagonalDominanceThreshold,"Returns the threshold for diagonal dominant rows which are eliminated during AMG coarsening.\n\n"  
         ":rtype: ``float``")  
1087      .def("setTruncation", &escript::SolverBuddy::setTruncation, args("truncation"),"Sets the number of residuals in GMRES to be stored for orthogonalization. The more residuals are stored the faster GMRES converged\n\n"      .def("setTruncation", &escript::SolverBuddy::setTruncation, args("truncation"),"Sets the number of residuals in GMRES to be stored for orthogonalization. The more residuals are stored the faster GMRES converged\n\n"
1088          ":param truncation: truncation\n"          ":param truncation: truncation\n"
1089          ":type truncation: ``int``")          ":type truncation: ``int``")
# Line 1139  args("source", "q", "r","factor"), Line 1099  args("source", "q", "r","factor"),
1099          ":type iter_max: ``int``")          ":type iter_max: ``int``")
1100      .def("getIterMax", &escript::SolverBuddy::getIterMax,"Returns maximum number of iteration steps\n\n"      .def("getIterMax", &escript::SolverBuddy::getIterMax,"Returns maximum number of iteration steps\n\n"
1101          ":rtype: ``int``")          ":rtype: ``int``")
     .def("setLevelMax", &escript::SolverBuddy::setLevelMax, args("level_max"),"Sets the maximum number of coarsening levels to be used in an algebraic multi-level solver or preconditioner\n\n"  
         ":param level_max: maximum number of levels\n"  
         ":type level_max: ``int``")  
     .def("getLevelMax", &escript::SolverBuddy::getLevelMax,"Returns the maximum number of coarsening levels to be used in an algebraic multi level solver or preconditioner\n\n"  
         ":rtype: ``int``")  
     .def("setCycleType", &escript::SolverBuddy::setCycleType, args("cycle_type"),"Sets the cycle type (V-cycle or W-cycle) to be used in an algebraic multi-level solver or preconditioner\n\n"  
         ":param cycle_type: the type of cycle\n"  
         ":type cycle_type: ``int``")  
     .def("getCycleType", &escript::SolverBuddy::getCycleType,"Returns the cyle type (V- or W-cycle) to be used in an algebraic multi level solver or preconditioner\n\n"  
         ":rtype: ``int``")  
     .def("setCoarseningThreshold", &escript::SolverBuddy::setCoarseningThreshold, args("theta"),"Sets the threshold for coarsening in the algebraic multi level solver or\n"  
         "preconditioner\n\n"  
         ":param theta: threshold for coarsening\n"  
         ":type theta: positive ``float``")  
     .def("getCoarseningThreshold", &escript::SolverBuddy::getCoarseningThreshold,"Returns the threshold for coarsening in the algebraic multi level solver\n"  
         "or preconditioner\n\n"  
         ":rtype: ``float``")  
1102      .def("setNumSweeps", &escript::SolverBuddy::setNumSweeps, args("sweeps"),"Sets the number of sweeps in a Jacobi or Gauss-Seidel/SOR preconditioner.\n\n"      .def("setNumSweeps", &escript::SolverBuddy::setNumSweeps, args("sweeps"),"Sets the number of sweeps in a Jacobi or Gauss-Seidel/SOR preconditioner.\n\n"
1103          ":param sweeps: number of sweeps\n"          ":param sweeps: number of sweeps\n"
1104          ":type sweeps: positive ``int``")          ":type sweeps: positive ``int``")
1105      .def("getNumSweeps", &escript::SolverBuddy::getNumSweeps,"Returns the number of sweeps in a Jacobi or Gauss-Seidel/SOR preconditioner.\n\n"      .def("getNumSweeps", &escript::SolverBuddy::getNumSweeps,"Returns the number of sweeps in a Jacobi or Gauss-Seidel/SOR preconditioner.\n\n"
1106          ":rtype: ``int``")          ":rtype: ``int``")
     .def("setNumPreSweeps", &escript::SolverBuddy::setNumPreSweeps, args("sweeps"),"Sets the number of sweeps in the pre-smoothing step of a multi level\n"  
         "solver or preconditioner\n\n"  
         ":param sweeps: number of sweeps\n"  
         ":type sweeps: positive ``int``")  
     .def("getNumPreSweeps", &escript::SolverBuddy::getNumPreSweeps,"Returns he number of sweeps in the pre-smoothing step of a multi level solver or preconditioner\n\n"  
         ":rtype: ``int``")  
     .def("setNumPostSweeps", &escript::SolverBuddy::setNumPostSweeps, args("sweeps"),"Sets the number of sweeps in the post-smoothing step of a multi level\n"  
         "solver or preconditioner\n\n"  
         ":param sweeps: number of sweeps\n"  
         ":type sweeps: positive ``int``")  
     .def("getNumPostSweeps", &escript::SolverBuddy::getNumPostSweeps,"Returns he number of sweeps in the post-smoothing step of a multi level solver or preconditioner\n\n"  
         ":rtype: ``int``")  
1107      .def("setTolerance", &escript::SolverBuddy::setTolerance, args("rtol"),"Sets the relative tolerance for the solver\n\n"      .def("setTolerance", &escript::SolverBuddy::setTolerance, args("rtol"),"Sets the relative tolerance for the solver\n\n"
1108          ":param rtol: relative tolerance\n"          ":param rtol: relative tolerance\n"
1109          ":type rtol: non-negative ``float``")          ":type rtol: non-negative ``float``")
# Line 1211  args("source", "q", "r","factor"), Line 1142  args("source", "q", "r","factor"),
1142      .def("setComplex", &escript::SolverBuddy::setComplex, args("complex"),"Sets the complex flag for the coefficient matrix to ``flag``.\n\n"      .def("setComplex", &escript::SolverBuddy::setComplex, args("complex"),"Sets the complex flag for the coefficient matrix to ``flag``.\n\n"
1143          ":param flag: If True, the complex flag is set otherwise reset.\n"          ":param flag: If True, the complex flag is set otherwise reset.\n"
1144          ":type flag: ``bool``")          ":type flag: ``bool``")
1145        .def("setDim", &escript::SolverBuddy::setDim, args("dim"),"Sets the dimension of the problem.\n\n"
1146            ":param dim: Either 2 or 3.\n"
1147            ":rtype: ``int``")
1148        .def("getDim", &escript::SolverBuddy::setDim, "Returns the dimension of the problem.\n\n"
1149            ":rtype: ``int``")
1150      .def("isSymmetric", &escript::SolverBuddy::isSymmetric,"Checks if symmetry of the coefficient matrix is indicated.\n\n"      .def("isSymmetric", &escript::SolverBuddy::isSymmetric,"Checks if symmetry of the coefficient matrix is indicated.\n\n"
1151          ":return: True if a symmetric PDE is indicated, False otherwise\n"          ":return: True if a symmetric PDE is indicated, False otherwise\n"
1152          ":rtype: ``bool``")          ":rtype: ``bool``")
# Line 1219  args("source", "q", "r","factor"), Line 1155  args("source", "q", "r","factor"),
1155      .def("setSymmetry", &escript::SolverBuddy::setSymmetry, args("symmetry"),"Sets the symmetry flag for the coefficient matrix to ``flag``.\n\n"      .def("setSymmetry", &escript::SolverBuddy::setSymmetry, args("symmetry"),"Sets the symmetry flag for the coefficient matrix to ``flag``.\n\n"
1156          ":param flag: If True, the symmetry flag is set otherwise reset.\n"          ":param flag: If True, the symmetry flag is set otherwise reset.\n"
1157          ":type flag: ``bool``")          ":type flag: ``bool``")
1158        .def("isHermitian", &escript::SolverBuddy::isHermitian,"Checks if the coefficient matrix is indicated to be Hermitian.\n\n"
1159            ":return: True if a hermitian PDE is indicated, False otherwise\n"
1160            ":rtype: ``bool``")
1161        .def("setHermitianOn", &escript::SolverBuddy::setHermitianOn,"Sets the hermitian flag to indicate that the coefficient matrix is hermitian.")
1162        .def("setHermitianOff", &escript::SolverBuddy::setHermitianOff,"Clears the hermitian flag for the coefficient matrix.")
1163        .def("setHermitian", &escript::SolverBuddy::setHermitian, args("hermitian"),"Sets the hermitian flag for the coefficient matrix to ``flag``.\n\n"
1164            ":param flag: If True, the hermitian flag is set otherwise reset.\n"
1165            ":type flag: ``bool``")
1166      .def("isVerbose", &escript::SolverBuddy::isVerbose,"Returns ``True`` if the solver is expected to be verbose.\n\n"      .def("isVerbose", &escript::SolverBuddy::isVerbose,"Returns ``True`` if the solver is expected to be verbose.\n\n"
1167          ":return: True if verbosity of switched on.\n"          ":return: True if verbosity of switched on.\n"
1168          ":rtype: ``bool``")          ":rtype: ``bool``")
# Line 1253  args("source", "q", "r","factor"), Line 1197  args("source", "q", "r","factor"),
1197      .def("setLocalPreconditioner", &escript::SolverBuddy::setLocalPreconditioner, args("local"),"Sets the flag to use  local preconditioning\n\n"      .def("setLocalPreconditioner", &escript::SolverBuddy::setLocalPreconditioner, args("local"),"Sets the flag to use  local preconditioning\n\n"
1198          ":param use: If ``True``, local preconditioning on each MPI rank is applied\n"          ":param use: If ``True``, local preconditioning on each MPI rank is applied\n"
1199          ":type use: ``bool``")          ":type use: ``bool``")
     .def("setMinCoarseMatrixSparsity", &escript::SolverBuddy::setMinCoarseMatrixSparsity, args("sparsity"),"Sets the minimum sparsity on the coarsest level. Typically a direct solver is used when the sparsity becomes bigger than the set limit.\n\n"  
         ":param sparsity: minimal sparsity\n"  
         ":type sparsity: ``float``")  
     .def("getMinCoarseMatrixSparsity", &escript::SolverBuddy::getMinCoarseMatrixSparsity,"Returns the minimum sparsity on the coarsest level. Typically a direct solver is used when the sparsity becomes bigger than the set limit.\n\n"  
         ":return: minimal sparsity\n"  
         ":rtype: ``float``")  
1200      .def("setNumRefinements", &escript::SolverBuddy::setNumRefinements, args("refinements"),"Sets the number of refinement steps to refine the solution when a direct solver is applied.\n\n"      .def("setNumRefinements", &escript::SolverBuddy::setNumRefinements, args("refinements"),"Sets the number of refinement steps to refine the solution when a direct solver is applied.\n\n"
1201          ":param refinements: number of refinements\n"          ":param refinements: number of refinements\n"
1202          ":type refinements: non-negative ``int``")          ":type refinements: non-negative ``int``")
1203      .def("getNumRefinements", &escript::SolverBuddy::getNumRefinements,"Returns the number of refinement steps to refine the solution when a direct solver is applied.\n\n"      .def("getNumRefinements", &escript::SolverBuddy::getNumRefinements,"Returns the number of refinement steps to refine the solution when a direct solver is applied.\n\n"
1204          ":rtype: non-negative ``int``")          ":rtype: non-negative ``int``")
     .def("setNumCoarseMatrixRefinements", &escript::SolverBuddy::setNumCoarseMatrixRefinements, args("refinements"),"Sets the number of refinement steps to refine the solution on the coarsest level when a direct solver is applied.\n\n"  
         ":param refinements: number of refinements\n"  
         ":type refinements: non-negative ``int``")  
     .def("getNumCoarseMatrixRefinements", &escript::SolverBuddy::getNumCoarseMatrixRefinements,"Returns the number of refinement steps to refine the solution on the coarsest level when a direct solver is applied.\n\n"  
         ":rtype: non-negative ``int``")  
     .def("usePanel", &escript::SolverBuddy::usePanel,"Returns ``True`` if a panel is used to search for unknown in the AMG coarsening, The panel approach is normally faster but can lead to larger coarse level systems.\n\n"  
         ":return: ``True`` if a panel is used to find unknowns in AMG coarsening\n"  
         ":rtype: ``bool``")  
     .def("setUsePanelOn", &escript::SolverBuddy::setUsePanelOn,"Sets the flag to use a panel to find unknowns in AMG coarsening")  
     .def("setUsePanelOff", &escript::SolverBuddy::setUsePanelOff,"Sets the flag to use a panel to find unknowns in AMG coarsening to off")  
     .def("setUsePanel", &escript::SolverBuddy::setUsePanel, args("use"),"Sets the flag to use  a panel to find unknowns in AMG coarsening\n\n"  
         ":param use: If ``True``,a panel is used to find unknowns in AMG coarsening\n"  
         ":type use: ``bool``")  
     .def("setAMGInterpolation", &escript::SolverBuddy::setAMGInterpolation, args("interpolation"),"Set the interpolation method for the AMG preconditioner.\n\n"  
         ":param method: key of the interpolation method to be used.\n"  
         ":type method: in `CLASSIC_INTERPOLATION_WITH_FF_COUPLING`, `CLASSIC_INTERPOLATION`, `DIRECT_INTERPOLATION`")  
     .def("getAMGInterpolation", &escript::SolverBuddy::getAMGInterpolation,"Returns key of the interpolation method for the SAMG preconditioner\n\n"  
         ":rtype: in the list `CLASSIC_INTERPOLATION_WITH_FF_COUPLING`, `CLASSIC_INTERPOLATION`, `DIRECT_INTERPOLATION`")  
1205      .def("setODESolver", &escript::SolverBuddy::setODESolver, args("solver"),"Set the solver method for ODEs.\n\n"      .def("setODESolver", &escript::SolverBuddy::setODESolver, args("solver"),"Set the solver method for ODEs.\n\n"
1206          ":param method: key of the ODE solver method to be used.\n"          ":param method: key of the ODE solver method to be used.\n"
1207          ":type method: in `CRANK_NICOLSON`, `BACKWARD_EULER`, `LINEAR_CRANK_NICOLSON`")          ":type method: in `CRANK_NICOLSON`, `BACKWARD_EULER`, `LINEAR_CRANK_NICOLSON`")

Legend:
Removed from v.6798  
changed lines
  Added in v.6799

  ViewVC Help
Powered by ViewVC 1.1.26