MCPcopy Create free account
hub / github.com/NGSolve/ngsolve / GetGraph

Method GetGraph

comp/bilinearform.cpp:528–801  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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)

Callers

nothing calls this directly

Calls 12

ElementIdClass · 0.85
IsRegularDofFunction · 0.85
AddMethod · 0.80
GetDofNrs2Method · 0.80
GetNDofMethod · 0.45
GetNFacetsMethod · 0.45
SizeMethod · 0.45
UpdateMethod · 0.45
DefinedOnMethod · 0.45
GetDofNrsMethod · 0.45
SetSizeMethod · 0.45
AppendMethod · 0.45

Tested by

no test coverage detected