Dear all,
I use the SparseDirectUMFPACK solver for doing some post-processing steps.
I also measure some cpu_times in my program in order to compare different methods regarding efficiency. For my question only the following three lines of code from my program are relevant:
---------------------------------------------------
timer.enter_section("Initialize Direct Solver");
sparse_direct_solver.initialize(global_matrix);
timer.leave_subsection("Initialize Direct Solver");
---------------------------------------------------
So I only measure the time which is neeed for executing the member function "initialize":
->Solving a scalar problem with dim=2 and 263425 DoFs the above call takes about 1.3 seconds, whereas solving the linear system takes only 0.8 seconds.
->Solving the same scalar problem with dim=3 and only 72369 DoFs the above call takes about 4.4 seconds and solving the linear system about 3.2 seconds.
-My first question is what this function actually does since it takes longer than assembling and solving the system together?
The documentation says: "This function does nothing. It is only here to provide a interface consistent with other sparse direct solvers."
By having a look in the function body I´ve seen that this function acutally does nothing, i.e. the function body is empty.
-My second question is why for my dim=3 case the function call takes much longer as in the dim=2 case? In the latter I have much more DoFs.
My guess was that the number of DoFs is the essential quantity but this is obviously not the case.
Any input would be greatly appreciated!
Best
Simon