|
|
# Solve the Matrix stored in mtx format
|
|
|
|
|
|
The code for this example is located in `examples/MatSolve`
|
|
|
The code for this example is located in `Examples/MatSolve`
|
|
|
|
|
|
## Brief
|
|
|
|
... | ... | @@ -13,26 +13,24 @@ The code loads the matrix and right-hand side from files. If right-hand side is |
|
|
|
|
|
## Arguments
|
|
|
```
|
|
|
Usage: ./MatSolve method_number<0:INNER_ILU2,1:INNER_MLILUC,2:PETSc,3:Trilinos_Aztec,4:Trilinos_Belos,5:Trilinos_Ifpack,6:Trilinos_ML,7:ANI> matrix.mtx [right_hand_side.rhs] [solver_options.txt]
|
|
|
Usage: ./MatSolve -m "matrix.mtx" [arguments]
|
|
|
```
|
|
|
- First parameter is the Solver type:
|
|
|
+ 0 – `INNER_ILU2`, inner Solver based on BiCGStab(L) solver with second order ILU factorization as preconditioner;
|
|
|
+ 1 – `INNER_MLILUC`, inner Solver based on BiCGStab(L) solver with second order Crout-ILU with inversed-based condition estimation and unsymmetric reordering for diagonal dominance as preconditioner;
|
|
|
+ 2 – `PETSc`, external Solver AztecOO from Trilinos package;
|
|
|
+ 3 – `Trilinos_Aztec`, external Solver Belos from Trilinos package, currently without preconditioner;
|
|
|
+ 4 – `Trilinos_Belos`, external Solver AztecOO with ML preconditioner;
|
|
|
+ 5 – `Trilinos_Ifpack`, external Solver AztecOO with Ifpack preconditioner;
|
|
|
+ 6 – `Trilinos_ML`, external Solver PETSc;
|
|
|
+ 7 – `ANI`, external Solver from ANI3D based on ILU2 (sequential Fortran version).
|
|
|
- Second parameter is the file with matrix in mtx format.
|
|
|
- Third optional parameter is the file with right-hand side in mtx format.
|
|
|
- Fourth optional parameter is the file with solver parameters, see `examples/MatSolve/database.txt` as example.
|
|
|
|
|
|
- Available arguments
|
|
|
* Required
|
|
|
+ -m, --matrix, specifies path to the matrix file, e.g. "/tmp/A.mtx"
|
|
|
* Optional
|
|
|
+ -b, --bvector, specifies path to the rhs file, e.g. "/tmp/b.rhs"
|
|
|
+ -x, --xvector, specifies path to the solution
|
|
|
+ -p, --parameters, specifies path to the database file, see `Examples/MatSolve/database.xml` as example;
|
|
|
+ -t, --type, specifies solver type, "inner_ilu2" by default
|
|
|
+ -h, --help, prints help message
|
|
|
|
|
|
## Running example
|
|
|
You can generate matrices using [[FVDiscr|1710-FVDiscr-Example]] example. The following line uses matrix `/tmp/A.mtx` and right-hand side `/tmp/b.rhs` from [[FVDiscr example|1710-FVDiscr-Example#running-example]].
|
|
|
```
|
|
|
$ cd examples/MatSolve
|
|
|
$ mpirun -np 4 ./MatSolve 0 /tmp/A.mtx /tmp/b.rhs
|
|
|
$ cd Examples/MatSolve
|
|
|
$ mpirun -np 4 ./MatSolve -m /tmp/A.mtx -b /tmp/b.rhs
|
|
|
load matrix: 0.346156
|
|
|
load vector: 0.0542159
|
|
|
preconditioner: 0.516358
|
... | ... | @@ -43,4 +41,3 @@ norms: 0.00276518 |
|
|
reason: converged due to relative tolerance
|
|
|
```
|
|
|
|
|
|
|