5402 Poisson Equation

Bagaev Dmitri edited this page May 25, 2017 · 3 revisions

Test solvers on 3D Poisson equation

This test is located in Tests/solver_test002

###Brief

Test solvers and tune parameters for on-the-fly generated matrices for 3D Poisson equation.

##Description

This test will run solvers in both serial and parallel modes with NP processes for a model problem of 3D Poisson equation. The coefficient matrix and vectors for a parallel run will be generated directly at the target processor, so no external reordering is required to be installed. The artificial right-hand side rhs=(1,1,...,1) is used. The specific solver is defined by a user. User may also provide options file to alter default solver options.

Main purpose of this test is to assess robustness of internal or external solvers during development. Another purpose is to check the behaviour of the liner solver for large and extremely large test problems without taking into account the disk memory requirements.

##Arguments

Usage: ./solver_test002 <solver_type> N<for NxNxN problem> [solver_options.xml]
  • First parameter is the Solver type:
    • inner_ilu2, inner Solver based on BiCGStab(L) solver with second order IIU factorization as preconditioner;
    • inner_ddpqiluc, 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;
    • inner_mptiluc, inner Solver based on BiCGStab(L) solver with second order Crout-ILU with inversed-based condition estimation and maximum product transversal reordering as preconditioner;
    • inner_mptilu2, inner Solver based on BiCGStab(L) solver with second order ILU and maximum product transversal reordering as preconditione;
    • trilinos_aztec, external Solver AztecOO from Trilinos package; currentty without preconditioner;
    • trilinos_belos, external Solver Belos from Trilinos package, currently without preconditioner;
    • trilinos_ml, external Solver AztecOO with ML preconditioner;
    • trilinos_ifpack, external Solver AztecOO with Ifpack preconditioner;
    • petsc, external Solver PETSc;
    • ani, external Solver from ANI3D based on ILU2 (sequential Fortran version);
    • fcbiilu2, external FCBIILU2 Solver (BIILU2 parallel F2C version);
    • k3biilu2, internal K3BIILU2 Solver (BIILU2 parallel version).
  • Second parameter is the dimension N of the 3D Poisson problem for NxNxN mesh.
  • Third optional parameter is the file with solver parameters, see examples/MatSolve/database.txt as example.

##Running test

You can run the test directly from the command line. For example, you can specify the 100x100x100 test case and solve it by the internal ILU2 based solver with the default parameters on 4 processors:

$ cd tests/solver_test002
$ mpirun -np 4 ./solver_test002 inner_ilu2 100 

##CMake tests

This test will generate solver_test002_serial_* tests for all activated solvers in CMake. Those tests will check that solvers correctly get input and correctly output solution with 20x20x20 mesh.

If USE_MPI is activated and CMake have variable ${MPIEXEC} set up correctly then the test will seed solver_test002_parallel_* tests. These tests will check that solvers get input in parallel and correctly output solution with 20x20x20 mesh using 4 processes.

##Source

Source code is adopted from examples/MatSolve

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.