|
SpECTRE
v2025.08.19
|
Holds a Variables interpolated onto a list of points, and information about those points, for a local Interpolator.
More...
#include <InterpolatedVars.hpp>
Public Member Functions | |
| Info (std::vector< BlockLogicalCoords< VolumeDim > > block_coord_holders_in, const size_t iteration_in=0, std::vector< Variables< TagList > > vars_in={}, std::vector< std::vector< size_t > > global_offsets_in={}, std::unordered_set< ElementId< VolumeDim > > interpolation_is_done_for_these_elements_in={}) | |
Public Attributes | |
| std::vector< BlockLogicalCoords< VolumeDim > > | block_coord_holders |
block_coord_holders holds the list of all points (in block logical coordinates) that need to be interpolated onto for a given InterpolationTarget. More... | |
| size_t | iteration {0_st} |
If a target needs to send points in a specific order, it should also send along which iteration the block_coord_holders are for. That way they can be properly ordered in the Interpolator. | |
| size_t | reinterpolation_iteration {0_st} |
| Sometimes during a single iteration, we are unable to interpolate, but the target has a method of retrying the interpolation for the same overall iteration. This keeps track of how many times we've tried to reinterpolate for a given iteration. | |
| std::vector< Variables< TagList > > | vars {} |
vars holds the interpolated Variables on some subset of the points in block_coord_holders. The grid points inside vars are indexed according to global_offsets below. The size of vars changes as more Elements send data to this Interpolator. | |
| std::vector< std::vector< size_t > > | global_offsets {} |
global_offsets[j][i] is the index into block_coord_holders that corresponds to the index i of the DataVector held in vars[j]. The size of global_offsets changes as more Elements send data to this Interpolator. | |
| std::unordered_set< ElementId< VolumeDim > > | interpolation_is_done_for_these_elements {} |
Holds the ElementIds of Elements for which interpolation has already been done for this Info. | |
Holds a Variables interpolated onto a list of points, and information about those points, for a local Interpolator.
TagList is a tmpl::list of tags that go into the Variables.
| std::vector<BlockLogicalCoords<VolumeDim> > intrp::Vars::Info< VolumeDim, TagList >::block_coord_holders |
block_coord_holders holds the list of all points (in block logical coordinates) that need to be interpolated onto for a given InterpolationTarget.
The number of interpolated points for which results are stored in this Info (in vars and global_offsets below) corresponds to only the subset of the points in block_coord_holders that are contained in local Elements. Moreover, the number of interpolated points stored in this Info will change as more Elements send data to this Interpolator, and will be less than or equal to the size of block_coord_holders even after all Elements have sent their data (this is because this Info lives only on a single core, and this core will have access only to the local Elements).