| 693 | |
| 694 | template <typename TM> |
| 695 | shared_ptr<BaseMatrix> ParallelMatrix::InverseMatrixTM (shared_ptr<BitArray> subset) const |
| 696 | { |
| 697 | const SparseMatrixTM<TM> * dmat = dynamic_cast<const SparseMatrixTM<TM>*> (mat.get()); |
| 698 | if (!dmat) return nullptr; |
| 699 | |
| 700 | #ifdef USE_MUMPS |
| 701 | bool symmetric = dynamic_cast<const SparseMatrixSymmetric<TM>*> (mat.get()) != NULL; |
| 702 | if (mat->GetInverseType() == "mumps") |
| 703 | return make_shared<ParallelMumpsInverse<TM>> (*dmat, subset, nullptr, paralleldofs, symmetric); |
| 704 | else |
| 705 | #endif |
| 706 | |
| 707 | #ifdef PARALLEL |
| 708 | return make_shared<MasterInverse<TM>> (*dmat, subset, paralleldofs); |
| 709 | #endif |
| 710 | throw Exception ("ParallelMatrix: don't know how to invert"); |
| 711 | } |
| 712 | |
| 713 | |
| 714 |
nothing calls this directly
no test coverage detected