36 prepareVectorTag(_assembly, _var.number());
38 precalculateResidual();
39 const unsigned int n_test = _grad_test.size();
40 std::vector<Real> residuals(n_test);
42 if (_use_displaced_mesh)
43 for (_qp = 0; _qp < _qrule->n_points(); _qp++)
45 const auto value = precomputeQpResidual() * _ad_JxW[_qp] * _ad_coord[_qp];
46 for (_i = 0; _i < n_test; _i++)
50 for (_qp = 0; _qp < _qrule->n_points(); _qp++)
52 const auto value = precomputeQpResidual() * _JxW[_qp] * _coord[_qp];
53 for (_i = 0; _i < n_test; _i++)
57 this->addResiduals(_assembly, residuals, _var.dofIndices(), _var.scalingFactor());
60 for (
unsigned int i = 0; i < _save_in.size(); i++)
61 _save_in[i]->sys().solution().add_vector(residuals.data(), _save_in[i]->dofIndices());
68 if (_residuals.size() != _grad_test.size())
69 _residuals.resize(_grad_test.size(), 0);
70 for (
auto & r : _residuals)
73 precalculateResidual();
74 if (_use_displaced_mesh)
75 for (_qp = 0; _qp < _qrule->n_points(); _qp++)
77 const auto value = precomputeQpResidual() * _ad_JxW[_qp] * _ad_coord[_qp];
78 for (_i = 0; _i < _grad_test.size(); _i++)
82 for (_qp = 0; _qp < _qrule->n_points(); _qp++)
84 const auto value = precomputeQpResidual() * _JxW[_qp] * _coord[_qp];
85 for (_i = 0; _i < _grad_test.size(); _i++)