| 526 | |
| 527 | |
| 528 | MatrixGraph BilinearForm :: GetGraph (int level, bool symmetric) |
| 529 | { |
| 530 | static Timer timer ("BilinearForm::GetGraph"); |
| 531 | RegionTimer reg (timer); |
| 532 | |
| 533 | size_t ndof = fespace->GetNDof(); |
| 534 | size_t nf = ma->GetNFacets(); |
| 535 | size_t neV = ma->GetNE(VOL); |
| 536 | size_t neB = ma->GetNE(BND); |
| 537 | size_t neBB = ma->GetNE(BBND); |
| 538 | // const Array<SpecialElement*> & specialelements = fespace->GetSpecialElements(); |
| 539 | // size_t nspe = specialelements.Size(); |
| 540 | |
| 541 | Array<DofId> dnums; |
| 542 | Array<int> fnums; //facets of one element |
| 543 | Array<int> elnums; //elements neighbouring one facet |
| 544 | Array<int> nbelems; //neighbour elements |
| 545 | |
| 546 | |
| 547 | int maxind = neV + neB + neBB + specialelements.Size(); |
| 548 | |
| 549 | for (auto seg : se_groups) |
| 550 | { |
| 551 | seg -> Update(); |
| 552 | maxind += seg -> GetNElements(); |
| 553 | } |
| 554 | |
| 555 | if (fespace->UsesDGCoupling()) maxind += nf; |
| 556 | |
| 557 | |
| 558 | TableCreator<int> creator(maxind); |
| 559 | for ( ; !creator.Done(); creator++) |
| 560 | { |
| 561 | |
| 562 | /* |
| 563 | task_manager->CreateJob |
| 564 | ([&] (const TaskInfo & ti) |
| 565 | |
| 566 | { |
| 567 | Array<int> dnums; |
| 568 | |
| 569 | auto myr = Range(ne).Split(ti.task_nr, ti.ntasks); |
| 570 | for (auto i : myr) |
| 571 | { |
| 572 | if (!fespace->DefinedOn (ma->GetElIndex(i))) continue; |
| 573 | |
| 574 | if (eliminate_internal) |
| 575 | fespace->GetDofNrs (i, dnums, EXTERNAL_DOF); |
| 576 | else |
| 577 | fespace->GetDofNrs (i, dnums); |
| 578 | |
| 579 | for (int d : dnums) |
| 580 | if (d != -1) creator.Add (i, d); |
| 581 | } |
| 582 | |
| 583 | |
| 584 | auto mysr = Range(nse).Split(ti.task_nr, ti.ntasks); |
| 585 | for (auto i : mysr) |
nothing calls this directly
no test coverage detected