specfem::assembly::sources_impl::sort_sources_per_medium

template<specfem::element::dimension_tag DimensionTag, specfem::element::medium_tag MediumTag>
std::tuple<std::vector<std::shared_ptr<specfem::sources::source<DimensionTag>>>, std::vector<int>> specfem::assembly::sources_impl::sort_sources_per_medium(const std::vector<std::shared_ptr<specfem::sources::source<DimensionTag>>> &sources, const specfem::assembly::element_types<DimensionTag> &element_types, const specfem::assembly::mesh<DimensionTag> &mesh)

Filter and sort sources by medium type.

Extracts sources matching the specified medium tag and returns them with their original indices for mapping.

Template Parameters:
  • DimensionTag – Spatial dimension

  • MediumTag – Target medium type to filter

Parameters:
  • sources – All sources to filter

  • element_types – Element classification data (unused but kept for interface consistency)

  • mesh – Finite element mesh (unused but kept for interface consistency)

Returns:

Tuple of (filtered sources, original indices)