49 _mat_prop_gradient[_qp] = 0.0;
50 auto num_pts = _read_in_points ? _points.size() : _coordx.size();
52 mooseAssert((_coordx.size() == _coordy.size()) && (_coordx.size() == _coordz.size()),
53 "Size of the coordinate offsets don't match.");
55 mooseAssert(num_pts == _measurement_values.size(),
56 "Number of offsets doesn't match the number of measurements.");
58 for (
const auto idx : make_range(num_pts))
61 _read_in_points ? _points[idx] : Point(_coordx[idx], _coordy[idx], _coordz[idx]);
63 const Real measurement_value = _measurement_values[idx];
64 const auto simulation_value = _sim_var[_qp];
67 const Real weighting = computeOffsetFunction(offset);
71 Utility::pow<2>(weighting) * Utility::pow<2>(measurement_value - simulation_value);
72 _mat_prop_gradient[_qp] -=
73 2.0 * Utility::pow<2>(weighting) * (measurement_value - simulation_value);