You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
It currently is only implemented for scalar/vector 3d quantities, but it should be easy to extend to tensors.
And looking at the interpolation implementation, I don't think we are using LinInterp in the right way. Namely:
we perform the setup inside the 1d interpolation. This means that different vars (for vector quantities) perform the setup. We do not cause race donditions because...
for vector fields, we create the LinInterp object with ncols*ncomps "columns"
At the very least, we are doing more work than we should, and with tensor fields, this extra work may more noticeable.
Battle plan:
Change the current impl, to perform setup and interpolation in two different kernels.
Add support for tensor fields.
Follow up:
3. The vertical remapper is calling perform_vertical_interpolation, but that's a waste! All variables in the remapper are remapped with the same src/tgt pressures, so we should do the LinInterp once for all fields. Hence, we should add vertical interpolation overloads that accept a LinInterp object, so that it can be recycled for several vertical interpolations.
The text was updated successfully, but these errors were encountered:
It currently is only implemented for scalar/vector 3d quantities, but it should be easy to extend to tensors.
And looking at the interpolation implementation, I don't think we are using LinInterp in the right way. Namely:
At the very least, we are doing more work than we should, and with tensor fields, this extra work may more noticeable.
Battle plan:
Follow up:
3. The vertical remapper is calling
perform_vertical_interpolation
, but that's a waste! All variables in the remapper are remapped with the same src/tgt pressures, so we should do the LinInterp once for all fields. Hence, we should add vertical interpolation overloads that accept a LinInterp object, so that it can be recycled for several vertical interpolations.The text was updated successfully, but these errors were encountered: