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

Method Assemble

comp/linearform.cpp:59–663  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

57
58 template <class SCAL>
59 void S_LinearForm<SCAL> :: Assemble (LocalHeap & clh)
60 {
61 static Timer timer("Vector assembling");
62 static Timer timer1("Vector assembling 1", NoTracing);
63 static Timer timer2("Vector assembling 2", NoTracing);
64 static Timer timer3("Vector assembling 3", NoTracing);
65 static mutex linformsurfneighprint_mutex;
66 static mutex addelvec3_mutex;
67 RegionTimer reg (timer);
68
69 assembled = true;
70
71 if (independent)
72 {
73 AssembleIndependent(clh);
74 return;
75 }
76
77 try
78 {
79 BaseStatusHandler::PushStatus ("Assemble Vector");
80 timer1.Start();
81
82 // check if integrators fit to space
83 /*
84 for (int i = 0; i < NumIntegrators(); i++)
85 if (parts[i] -> BoundaryForm())
86 {
87 for (int j = 0; j < ma->GetNSE(); j++)
88 {
89 HeapReset hr(clh);
90 if (!parts[i] -> SkeletonForm()){
91 if (parts[i] -> DefinedOn (ma->GetSElIndex(j)))
92 parts[i] -> CheckElement (fespace->GetSFE(j, clh));
93 }else{
94 //TODO: get aligned volelement and check that
95 }
96 }
97 }
98 else
99 {
100 if (parts[i] -> SkeletonForm())
101 {
102 throw Exception ("There are no LinearformIntegrator which act on the skeleton so far!");
103 }
104 else
105 {
106 for (int j = 0; j < ma->GetNE(); j++)
107 {
108 HeapReset hr(clh);
109 if (parts[i] -> DefinedOn (ma->GetElIndex(j)))
110 parts[i] -> CheckElement (fespace->GetFE(j, clh));
111 }
112 }
113 }
114 */
115
116 /*

Callers

nothing calls this directly

Calls 15

ToStringFunction · 0.85
ElementIdClass · 0.85
IMClass · 0.85
GetNameFunction · 0.85
SetParallelStatusMethod · 0.80
StopMethod · 0.80
TransformVecMethod · 0.80
ClearMethod · 0.80
PointMethod · 0.80
GetFESpaceMethod · 0.80
GetMeshAccessMethod · 0.80

Tested by

no test coverage detected