-----------------------------------------------------------------------------
| 60 | } |
| 61 | //----------------------------------------------------------------------------- |
| 62 | Vec fem::petsc::create_vector_nest( |
| 63 | const std::vector< |
| 64 | std::pair<std::reference_wrapper<const common::IndexMap>, int>>& maps) |
| 65 | { |
| 66 | assert(!maps.empty()); |
| 67 | |
| 68 | // Loop over each form and create vector |
| 69 | std::vector<std::shared_ptr<la::petsc::Vector>> vecs; |
| 70 | std::vector<Vec> petsc_vecs; |
| 71 | for (auto& map : maps) |
| 72 | { |
| 73 | vecs.push_back(std::make_shared<la::petsc::Vector>(map.first, map.second)); |
| 74 | petsc_vecs.push_back(vecs.back()->vec()); |
| 75 | } |
| 76 | |
| 77 | // Create nested (VecNest) vector |
| 78 | Vec y; |
| 79 | VecCreateNest(vecs.front()->comm(), petsc_vecs.size(), nullptr, |
| 80 | petsc_vecs.data(), &y); |
| 81 | return y; |
| 82 | } |
| 83 | //----------------------------------------------------------------------------- |
| 84 | #endif |
no test coverage detected