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

Method Update

comp/facetfespace.cpp:765–994  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

763 }
764
765 void FacetFESpace :: Update()
766 {
767 FESpace::Update();
768
769 if(print)
770 *testout << " FacetFEspace with order " << order << " rel_order " << rel_order << " var_order " << var_order << endl;
771
772 bool first_update = GetTimeStamp() < ma->GetTimeStamp();
773 if (first_update) timestamp = NGS_Object::GetNextTimeStamp();
774
775 if (low_order_space)
776 low_order_space -> Update();
777
778 nel = ma->GetNE();
779 nfa = ma->GetNFacets();
780
781 if (first_update)
782 {
783 int p = 0;
784 if(!var_order) p = order;
785
786 order_facet.SetSize(nfa);
787 order_facet = p;
788
789 fine_facet.SetSize(nfa);
790 fine_facet = false;
791
792 Array<int> fanums;
793
794 for (Ngs_Element el : ma->Elements<BND>())
795 if (DefinedOn(el))
796 fine_facet[el.Facets()] = true;
797
798 for (int i = 0; i < nel; i++)
799 {
800 ElementId ei(VOL, i);
801 if (!DefinedOn(ei)) continue;
802 ELEMENT_TYPE eltype=ma->GetElType(ei);
803 const POINT3D * points = ElementTopology :: GetVertices (eltype);
804
805
806 if (ma->GetDimension() == 1)
807 {
808 auto fanums = ma->GetElVertices(ei);
809 for (auto f : fanums)
810 fine_facet[f] = true;
811 }
812
813 else if (ma->GetDimension() == 2)
814 {
815 auto fanums = ma->GetElEdges(ei);
816 for (auto f : fanums)
817 fine_facet[f] = true;
818
819 if(var_order)
820 {
821 IVec<3> el_orders = ma->GetElOrders(i);
822

Callers

nothing calls this directly

Calls 15

GetNextTimeStampFunction · 0.85
GetEdgesFunction · 0.85
GetFacesFunction · 0.85
swapFunction · 0.85
UpdateCouplingDofArrayFunction · 0.85
FacetsMethod · 0.80
UpdateFunction · 0.70
GetTimeStampFunction · 0.70
DefinedOnFunction · 0.70
GetNFacetsFunction · 0.70
TimingClass · 0.50
UpdateMethod · 0.45

Tested by

no test coverage detected