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

Method Mult

linalg/commutingAMG.cpp:285–315  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

283
284
285 void AMG_H1 :: Mult (const BaseVector & x, BaseVector & y) const
286 {
287 static Timer timer("H1-AMG::Mult");
288 RegionTimer reg (timer);
289
290 if (inv)
291 {
292 y = (*inv) * x;
293 return;
294 }
295
296 auto hv = pmat->CreateColVector();
297 auto wc = coarsemat->CreateColVector();
298 auto dc = coarsemat->CreateColVector();
299
300 y = 0;
301 jacobi->GSSmooth (y, x);
302
303 if (recAMG)
304 {
305 hv = x - (*pmat) * y;
306 dc = Transpose (*prol) * hv;
307
308 if (recAMG)
309 recAMG -> Mult (dc, wc);
310
311 y += (*prol) * wc;
312 }
313
314 jacobi->GSSmoothBack (y, x);
315 }
316
317
318

Callers

nothing calls this directly

Calls 5

GSSmoothMethod · 0.80
MultAdd1Method · 0.80
TransposeFunction · 0.70
CreateColVectorMethod · 0.45
MultMethod · 0.45

Tested by

no test coverage detected