| 176 | } |
| 177 | |
| 178 | void 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 | |
| 197 | void SparseFactorizationInterface::MultAdd(Complex s, const BaseVector &x, |
| 198 | BaseVector &y) const { |
nothing calls this directly
no test coverage detected