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
The cg to dg interpolation (Interpolations::CG2DG), used by DGTransport::prepareAdvection, is very slow because it always recomputes the needed parametric map. This map should be precomputed once and stored, as is done everywhere else in the code.
Precomputation is difficult with the current interface as a standalone function. Either the precomputed matrix should be passed explicitly as an argument or we refactor the functionality into a class where the object holds the map. I think the latter is more ergonomic and I already implemented it this way in the GPU implementation (see KokkosDGTransport.cpp). The only downside I see, is that it is easier to accidentally make a redundant copy of the precomuted matrix this way.
The text was updated successfully, but these errors were encountered:
The cg to dg interpolation (
Interpolations::CG2DG
), used byDGTransport::prepareAdvection
, is very slow because it always recomputes the needed parametric map. This map should be precomputed once and stored, as is done everywhere else in the code.Precomputation is difficult with the current interface as a standalone function. Either the precomputed matrix should be passed explicitly as an argument or we refactor the functionality into a class where the object holds the map. I think the latter is more ergonomic and I already implemented it this way in the GPU implementation (see KokkosDGTransport.cpp). The only downside I see, is that it is easier to accidentally make a redundant copy of the precomuted matrix this way.
The text was updated successfully, but these errors were encountered: