|  | @ -160,7 +160,7 @@ public: | 
		
	
		
			
				|  |  | 				LOG4CPLUS_INFO(logger, "Using no preconditioner."); |  |  | 				LOG4CPLUS_INFO(logger, "Using no preconditioner."); | 
		
	
		
			
				|  |  | 			} |  |  | 			} | 
		
	
		
			
				|  |  | 
 |  |  | 
 | 
		
	
		
			
				|  |  | 			if (s->getString("lemethod").compare("bicgstab") == 0) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  | 			if (s->getString("lemethod") == "bicgstab") { | 
		
	
		
			
				|  |  | 				LOG4CPLUS_INFO(logger, "Using BiCGStab method."); |  |  | 				LOG4CPLUS_INFO(logger, "Using BiCGStab method."); | 
		
	
		
			
				|  |  | 				if (precond == "ilu") { |  |  | 				if (precond == "ilu") { | 
		
	
		
			
				|  |  | 					gmm::bicgstab(*gmmxxMatrix, x, b, gmm::ilu_precond<gmm::csr_matrix<Type>>(*gmmxxMatrix), iter); |  |  | 					gmm::bicgstab(*gmmxxMatrix, x, b, gmm::ilu_precond<gmm::csr_matrix<Type>>(*gmmxxMatrix), iter); | 
		
	
	
		
			
				|  | @ -183,7 +183,7 @@ public: | 
		
	
		
			
				|  |  | 				} else if (precond == "none") { |  |  | 				} else if (precond == "none") { | 
		
	
		
			
				|  |  | 					gmm::gmres(*gmmxxMatrix, x, b, gmm::identity_matrix(), s->get<unsigned>("restart"), iter); |  |  | 					gmm::gmres(*gmmxxMatrix, x, b, gmm::identity_matrix(), s->get<unsigned>("restart"), iter); | 
		
	
		
			
				|  |  | 				} */ |  |  | 				} */ | 
		
	
		
			
				|  |  | 			} else if (s->getString("lemethod").compare("qmr") == 0) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  | 			} else if (s->getString("lemethod") == "qmr") { | 
		
	
		
			
				|  |  | 				LOG4CPLUS_INFO(logger, "Using QMR method."); |  |  | 				LOG4CPLUS_INFO(logger, "Using QMR method."); | 
		
	
		
			
				|  |  | 				if (precond == "ilu") { |  |  | 				if (precond == "ilu") { | 
		
	
		
			
				|  |  | 					gmm::qmr(*gmmxxMatrix, x, b, gmm::ilu_precond<gmm::csr_matrix<Type>>(*gmmxxMatrix), iter); |  |  | 					gmm::qmr(*gmmxxMatrix, x, b, gmm::ilu_precond<gmm::csr_matrix<Type>>(*gmmxxMatrix), iter); | 
		
	
	
		
			
				|  | @ -191,7 +191,7 @@ public: | 
		
	
		
			
				|  |  | 				   * TBH, I don't understand it completely (why the comparison with 0?), so I don't know how to fix it |  |  | 				   * TBH, I don't understand it completely (why the comparison with 0?), so I don't know how to fix it | 
		
	
		
			
				|  |  | 				   * (Thomas Heinemann, 2012-12-21) |  |  | 				   * (Thomas Heinemann, 2012-12-21) | 
		
	
		
			
				|  |  | 				   */ |  |  | 				   */ | 
		
	
		
			
				|  |  | 				else if (precond == "diagonal" == 0) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  | 				else if (precond == "diagonal") { | 
		
	
		
			
				|  |  | 					gmm::qmr(*gmmxxMatrix, x, b, gmm::diagonal_precond<gmm::csr_matrix<Type>>(*gmmxxMatrix), iter); |  |  | 					gmm::qmr(*gmmxxMatrix, x, b, gmm::diagonal_precond<gmm::csr_matrix<Type>>(*gmmxxMatrix), iter); | 
		
	
		
			
				|  |  | 				} else if (precond == "ildlt") { |  |  | 				} else if (precond == "ildlt") { | 
		
	
		
			
				|  |  | 					gmm::qmr(*gmmxxMatrix, x, b, gmm::ildlt_precond<gmm::csr_matrix<Type>>(*gmmxxMatrix), iter); |  |  | 					gmm::qmr(*gmmxxMatrix, x, b, gmm::ildlt_precond<gmm::csr_matrix<Type>>(*gmmxxMatrix), iter); | 
		
	
	
		
			
				|  | @ -253,7 +253,7 @@ public: | 
		
	
		
			
				|  |  | 	 * Throws an exception of type InvalidSettings in case the selected method is illegal. |  |  | 	 * Throws an exception of type InvalidSettings in case the selected method is illegal. | 
		
	
		
			
				|  |  | 	 */ |  |  | 	 */ | 
		
	
		
			
				|  |  | 	static void validateLeMethod(const std::string& lemethod) { |  |  | 	static void validateLeMethod(const std::string& lemethod) { | 
		
	
		
			
				|  |  | 		if (lemethod.compare("bicgstab") != 0 && lemethod.compare("qmr") != 0) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  | 		if ((lemethod != "bicgstab") && (lemethod != "qmr")) { | 
		
	
		
			
				|  |  | 			throw exceptions::InvalidSettingsException() << "Argument " << lemethod << " for option 'lemethod' is invalid."; |  |  | 			throw exceptions::InvalidSettingsException() << "Argument " << lemethod << " for option 'lemethod' is invalid."; | 
		
	
		
			
				|  |  | 		} |  |  | 		} | 
		
	
		
			
				|  |  | 	} |  |  | 	} | 
		
	
	
		
			
				|  | @ -263,7 +263,7 @@ public: | 
		
	
		
			
				|  |  | 	 * Throws an exception of type InvalidSettings in case the selected preconditioner is illegal. |  |  | 	 * Throws an exception of type InvalidSettings in case the selected preconditioner is illegal. | 
		
	
		
			
				|  |  | 	 */ |  |  | 	 */ | 
		
	
		
			
				|  |  | 	static void validatePreconditioner(const std::string& preconditioner) { |  |  | 	static void validatePreconditioner(const std::string& preconditioner) { | 
		
	
		
			
				|  |  | 		if (preconditioner.compare("ilu") != 0 && preconditioner.compare("diagonal") != 0 && preconditioner.compare("ildlt") && preconditioner.compare("none") != 0) { |  |  |  | 
		
	
		
			
				|  |  |  |  |  | 		if ((preconditioner != "ilu") && (preconditioner != "diagonal") && (preconditioner != "ildlt") && (preconditioner != "none")) { | 
		
	
		
			
				|  |  | 			throw exceptions::InvalidSettingsException() << "Argument " << preconditioner << " for option 'precond' is invalid."; |  |  | 			throw exceptions::InvalidSettingsException() << "Argument " << preconditioner << " for option 'precond' is invalid."; | 
		
	
		
			
				|  |  | 		} |  |  | 		} | 
		
	
		
			
				|  |  | 	} |  |  | 	} | 
		
	
	
		
			
				|  | 
 |