-
Notifications
You must be signed in to change notification settings - Fork 13
Description
Currently, the interpolation criterion (see solver_interp_helper.hpp) (for the RT calculations at any given frequency) is based the line opacity of each individual line. However, this might not prove optimal for dust/continuum (as these frequencies might not be near lines), or overlapping lines (given that these are for the individual lines; because the relevant frequencies are close to eachother, a problem can occur if the opacity of a single line is changing rapidly compared to another overlapping line).
So I might need to change the interpolation criterion to the opacity at each (co-moving frame) frequency, and also evaluate/store the required amount of interpolation points/ray-trace results for each frequency instead of each line. This will result in a bit higher memory requirement O(Npoints*Nfrequencies). Another option is to see which lines are close enough to a given frequency, and just use max(...) of the required number of interpolation points for each (and of course take into account some continuum as well)
Work required
- Decide whether we should consider the interpolation of continuum (as it should be relatively smooth; and this would significantly reduce the extra computational cost by ignoring it)
- Decide on exact interpolation criteria (maybe consider both total opacity and total emissivity instead)
- Implement required changes in
solver_interp_helper.hpp/tppandsolver.hpp/tpp - Check for possible performance regressions
As an advantage, it will become trivial to slightly speed up the imagers given that the imager has no clue which lines are relevant for determining the number of interpolation points required (and just assumes the worst case; that all are relevant for all frequencies we are currently imaging).
Note: I will probably only start working on this after the dust/continuum implementation is done and merged.