Skip to content

Draft: [PL/TRM] Deduplicated IP data accessors

Christoph Lehmann requested to merge chleh/ogs:deduplicate-ip-data-access into master

This MR adds some utility functions for:

  • accessing IP data in IPWriter compatible storage order (as opposed to extrapolator compatible storage order; both orders are transposed to each other)
  • accessing vector valued IP data
  • extrapolating data having IPWriter compatible storage order

Finally, the IP data accessors have been deduplicated: We don't need two accessors (one for IPWriter, one for extrapolator) for IP data anymore.

Subsequently, the following will be implemented:

  • deduplication of IP data access in all processes
  • simplifying the IP data accessor signature for the extrapolator (e.g., do not pass time, solution vector, dof table anymore).

Note: In this MR I chose that the IPWriter storage order is the central one. Extrapolator compatible storage will be derived from that. That might entail some small performance losses. But on the other hand that choice simplifies the signature of IP data accessors, cf:

std::vector<double> getSigma() const;

vs.

std::vector<double> const& getIntPtSigma(
        const double t,
        std::vector<GlobalVector*> const& x,
        std::vector<NumLib::LocalToGlobalIndexMap const*> const& dof_table,
        std::vector<double>& cache) const;

Follow-up of !4237 (merged).

Merge request reports