Represents a sparse linear solver that uses the Gemeralized Minimal RESidual (GMRES) algorithm.
SystemObject Extreme.Mathematics.AlgorithmsManagedIterativeAlgorithmDenseVectorT,
T,
SolutionReportDenseVectorT,
T Extreme.Mathematics.LinearAlgebra.IterativeSolversIterativeSparseSolverT Extreme.Mathematics.LinearAlgebra.IterativeSolversGeneralizedMinimalResidualSolverT
Namespace: Extreme.Mathematics.LinearAlgebra.IterativeSolversAssembly: Extreme.Numerics.Net40 (in Extreme.Numerics.Net40.dll) Version: 6.0.16073.0 (6.0.16312.0)
public class GeneralizedMinimalResidualSolver<T> : IterativeSparseSolver<T>
Public Class GeneralizedMinimalResidualSolver(Of T)
Inherits IterativeSparseSolver(Of T)
generic<typename T>
public ref class GeneralizedMinimalResidualSolver : public IterativeSparseSolver<T>
type GeneralizedMinimalResidualSolver<'T> =
class
inherit IterativeSparseSolver<'T>
end
Type Parameters
 T
The GeneralizedMinimalResidualSolverT type exposes the following members.
Top
 Name  Description 

 ConvergenceTests 
Gets the collection of convergence tests for the algorithm.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 EstimatedError 
Gets a value indicating the size of the absolute
error of the result.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 EvaluationsNeeded 
Gets the number of evaluations needed to execute the algorithm.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 EvaluationsRemaining 
Gets the number of evaluations still available.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 HasSharedDegreeOfParallelism 
Indicates whether the degree of parallelism is a property that is shared
across instances.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 InitialGuess 
Gets or sets the solution of the system of equations.
(Inherited from IterativeSparseSolverT.) 
 IterationsBetweenRestarts 
Gets or sets the number of minor iterations in each major iteration.

 IterationsNeeded 
Gets the number of iterations needed by the
algorithm to reach the desired accuracy.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 IterationsRemaining 
Gets the number of iterations remaining.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 LastCorrection 
Gets the vector containing the residuals of the solution.
(Inherited from IterativeSparseSolverT.) 
 LeftPreconditioner  (Inherited from IterativeSparseSolverT.) 
 LinearOperator 
Gets the sparse matrix of the system of equations.
(Inherited from IterativeSparseSolverT.) 
 MaxDegreeOfParallelism 
Gets or sets the maximum degree of parallelism enabled by this instance.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 MaxEvaluations 
Gets or sets the maximum number of evaluations during the calculation.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 MaxIterations  Gets or sets the maximum number of iterations
to use when approximating the roots of the target
function.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 MinIterations 
Gets or sets the minimum iterations that have to be performed.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 ParallelOptions 
Gets the configuration for the parallel behavior of the algorithm.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 Preconditioner  (Inherited from IterativeSparseSolverT.) 
 Residuals 
Gets the vector containing the residuals of the solution.
(Inherited from IterativeSparseSolverT.) 
 ResidualTest 
Gets the convergence test based on the size of the residuals.
(Inherited from IterativeSparseSolverT.) 
 Result 
Gets or sets the solution of the system of equations.
(Inherited from IterativeSparseSolverT.) 
 RightHandSide 
Gets or sets the right hand side of the system of equations.
(Inherited from IterativeSparseSolverT.) 
 SolutionReport 
Gets the result of an algorithm after it has executed.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 SolutionTest 
Gets the convergence test based on the size of the residuals.
(Inherited from IterativeSparseSolverT.) 
 Status  (Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 ThrowExceptionOnFailure 
Gets or sets a value indicating whether to throw an
exception when the algorithm fails to converge.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
Top
 Name  Description 

 Equals  Determines whether the specified Object is equal to the current Object. (Inherited from Object.) 
 Finalize  Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) 
 GetHashCode  Serves as a hash function for a particular type. (Inherited from Object.) 
 GetType  Gets the Type of the current instance. (Inherited from Object.) 
 IncrementEvaluations 
Increments the number of evaluations by one.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 IncrementEvaluations(Int32) 
Increments the number of evaluations by the specified amount.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 Iterate 
Performs one iteration of the algorithm.
(Overrides ManagedIterativeAlgorithmT, TError, TReportIterate.) 
 Iterated 
Performs operations after the iteration stage of the algorithm is complete.
(Inherited from IterativeSparseSolverT.) 
 MemberwiseClone  Creates a shallow copy of the current Object. (Inherited from Object.) 
 OnConvergence 
Performs actions after convergence is achieved.
(Overrides ManagedIterativeAlgorithmT, TError, TReportOnConvergence.) 
 OnFailure 
Performs any tasks after the main algorithm has failed to converge.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 OnInit 
Performs initialization tasks when the algorithm is first run.
(Overrides IterativeSparseSolverTOnInit.) 
 ReportFailure 
Records the results of an algorithm in case it fails.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 ReportResult 
Records the results of an algorithm.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 ReportSuccess 
Records the results of a algorithm that converged successfully.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 ResetEvaluations 
Resets the number of evaluations to zero.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 Restart 
Prepares the algorithm to be run again with possibly different inputs.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 Run 
Runs the algorithm.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 Run(ParallelOptions) 
Runs the algorithm using the specified parallelization options.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 SetResult 
Sets the results of an algorithm's execution.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 Solve 
Solves the system of equations and returns the solution.
(Inherited from IterativeSparseSolverT.) 
 Solve(VectorT) 
Solves the system of equations for the specified righthand side and returns the result.
(Inherited from IterativeSparseSolverT.) 
 Solve(VectorT, VectorT) 
Solves the system of equations for the specified righthand side and returns the result.
(Inherited from IterativeSparseSolverT.) 
 TestConvergence 
Checks whether the algorithm has converged.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 ThreadSafeIncrementEvaluations 
Increments the number of evaluations by one.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 ThreadSafeIncrementEvaluations(Int32) 
Increments the number of evaluations by the specified amount.
(Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 ThrowConvergenceException  (Inherited from ManagedIterativeAlgorithmT, TError, TReport.) 
 ToString  Returns a string that represents the current object. (Inherited from Object.) 
Top
Use the GeneralizedMinimalResidualSolverT class to solve large, nonsymmetric sparse
systems of equations using the Generalized Minimal Residual (GMRES) method.
To solve a system of equations using this class, construct a new instance, passing the matrix of
the system to the constructor.
You can optionally set a preconditioner by setting the
Preconditioner property. By default, a JacobiPreconditionerT
is used. Finally, the Solve(VectorT) method solves the system.
Once the algorithm finished, the Status property indicates
whether the algorithm completed successfully.
The memory requirements of the GMRES method increase with every iteration. To limit memory use, the algorithm
is restarted after a number of iterations specified by the IterationsBetweenRestarts property.
The default value is 30.
Numerical Libraries
Supported in: 6.0
Reference