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

Method MultAdd

linalg/sparsefactorization_interface.cpp:178–195  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

176}
177
178void SparseFactorizationInterface::MultAdd(double s, const BaseVector &x,
179 BaseVector &y) const {
180 if (is_complex)
181 return MultAdd(Complex(s), x, y);
182
183 if (map_inner_dofs)
184 map_inner_dofs.Project(inner_rhs->FV<double>(), x.FV<double>());
185 else
186 inner_rhs->FV<double>() = x.FV<double>();
187
188 Solve(*inner_rhs, *inner_solution);
189
190 if (map_inner_dofs) {
191 map_inner_dofs.EmbedAdd(y.FV<double>(), inner_solution->FV<double>(), s);
192 } else {
193 y.FV<double>() += s * inner_solution->FV<double>();
194 }
195}
196
197void SparseFactorizationInterface::MultAdd(Complex s, const BaseVector &x,
198 BaseVector &y) const {

Callers

nothing calls this directly

Calls 7

SolveFunction · 0.85
ProjectMethod · 0.80
FV<double>Method · 0.80
EmbedAddMethod · 0.80
FV<Complex>Method · 0.80
MultAddFunction · 0.70
ComplexFunction · 0.50

Tested by

no test coverage detected