Menu

Additional informations about the MumpsSolver solution

Dear Mumps Users,

today's first thing to explain will be the testing procedures in the MumpsSolver solution. To execute the testing procedures, compiled executables should be called by "MumpsSolver.exe -test MUMPS_Tests.txt". The MumpsSolver.exe is the name of compiled executable and could differ in some projects. The pre-build and post-build events copy the necessary files (*.mtx and MUMPS_tests.txt) to the directory with a compiled executable. There are two different matricies (general and symmetric) and two different rigth hand side vector files (with one RHS vector and with four RHS vectors) used for testing which defines 8 different solution files (bear in mind the general matrix may be transposed).
The file MUMPS_Tests.txt determines which test type and which capability of the library during a single test will be performed. It looks like

%TestA    TestB    TestC    TestD
1         0        0        0
%Determinant    WriteProblem    RedirectStdOutErr    InfoOutput    IntermediateOutput
1           1           0                    0         0
%Matrix and vector files
General Matrix: matGeneral.mtx
Symmetric Matrix:   matSymmetric.mtx
One RHS vector:     rhs1.mtx
Four RHS vectors:   rhs4.mtx

The % presents a command line. Additional information should be written in the line(s) following the command. The first line tells you which tests will be performed and this is controled with 0(false) and 1 (true) in the second line. The second command is about the library capabilities (test the determinant calculation, test the writing of the problem, test the redirection of standard output/error, test the output of the local/global real/integer info and test the usage of temporary files) and same as for the previous command, the next line explains which features will be tested. Command %Matrix and vector files defines the input files containing the matricies and RHS vectors. They are all in the matrix market format as it is the solution output of the library.

Currently four test are defined:
TestA: reads the matrix, reads the rhs vector(s), solves the system, writes the solution and also returns it. It also include test for all features, defined with line 3 of MUMPS_Tests.txt
TestB: fills the matrix, fills the rhs vector(s), solves the system, writes the solution and also returns it. It also include test for all features, defined with line 3 of MUMPS_Tests.txt
TestC: reads the matrix, reads the rhs vectors, add an additional rhs vector, removes one rhs vector, solves the system, writes the solution and also returns it. It also include test for all features, defined with line 3 of MUMPS_Tests.txt
TestD: reads the matrix, reads the rhs vectors, solves the system, writes the solution, returns it, writes only one RHS vector and returns it. It also include test for all features, defined with line 3 of MUMPS_Tests.txt

These test can be used for the template of what you are trying to achieve in your programm. They were successfully runed on Win 7 Pro 64 bit for all projects and configurations. The tests are written in the correct order call of the library functions, eg. SetDeterminant() must be called before the InitializeMumps() command, and the commands about writing problem, setting the intermediate output, setting the diagnostic/output/error level must be called before Solve() command. More about the order of the command will be posted in the future.

And now a little about the future of this project. First thing to add will be an option for a MPI compilation of MUMPS project. This should be quite easy, since one only needs to include the paths to the header/library files. If I will succeed, the MumpsSolver solution will be updated along with MumpsForWindows.exe. Next thing will be to get develop a project without Intel Fortran compiler and without Intel MKL. But in order to succeed with this step, first I will need to obtain required BLAS, LAPACK, etc. libraries, compatible with visual studio c++ compiler. I have done some research about them, but my current idea is to add solutions/executables to crete VS solutions for each of needed library to this project.

I hope you will get correct results with MUMPS,
best regards
Domen Stadler

Posted by  Domen Stadler 2014-10-10

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.