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

Method Update

comp/h1hofespace.cpp:564–820  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

562
563
564 void H1HighOrderFESpace :: Update()
565 {
566 static Timer timer ("H1HighOrderFESpace::Update");
567 // static Timer timer1 ("H1HighOrderFESpace::Update 1");
568 // static Timer timer2 ("H1HighOrderFESpace::Update 2");
569 // static Timer timer3 ("H1HighOrderFESpace::Update 3");
570 RegionTimer reg(timer);
571
572 // timer1.Start();
573 FESpace::Update();
574
575 if (order_policy == CONSTANT_ORDER)
576 fixed_order = true;
577
578 TORDER maxorder = 0;
579 TORDER minorder = 99;
580
581 if (low_order_space) low_order_space -> Update();
582
583 bool first_update = GetTimeStamp() < ma->GetTimeStamp();
584 if (first_update) timestamp = NGS_Object::GetNextTimeStamp();
585
586 int dim = ma->GetDimension();
587 size_t nv = ma->GetNV();
588 size_t ned = (dim <= 1) ? 0 : ma->GetNEdges();
589 size_t nfa = (dim <= 2) ? 0 : ma->GetNFaces();
590 size_t ne = ma->GetNE();
591
592 if (first_update)
593 {
594 used_edge.SetSize(ned);
595 used_face.SetSize(nfa);
596 used_vertex.SetSize(nv);
597
598 used_edge = false;
599 used_face = false;
600 used_vertex = false;
601
602 // for (FESpace::Element el : Elements (VOL))
603
604 // for (auto vb : { VOL, BND, BBND })
605 for (auto vb : Range(VOL, VorB(dim+1)))
606 ParallelFor
607 (ma->GetNE(vb), [&] (size_t nr)
608 {
609 ElementId ei(vb, nr);
610 Ngs_Element el = (*ma)[ei];
611
612 // if (!DefinedOn (el)) return;
613 if (DefinedOnX (el).IsTrue())
614 {
615 used_vertex[el.Vertices()] = true;
616 if (dim >= 2) used_edge[el.Edges()] = true;
617 if (dim == 3) used_face[el.Faces()] = true;
618 }
619 });
620
621 /*

Callers

nothing calls this directly

Calls 15

GetNextTimeStampFunction · 0.85
VorBEnum · 0.85
DefinedOnXFunction · 0.85
GetFacesFunction · 0.85
GetEdgesFunction · 0.85
swapFunction · 0.85
UpdateDofTablesFunction · 0.85
UpdateCouplingDofArrayFunction · 0.85
VerticesMethod · 0.80
EdgesMethod · 0.80
FacesMethod · 0.80
UpdateFunction · 0.70

Tested by

no test coverage detected