specfem::assembly::sources_impl::sort_sources_per_medium¶
Filter and sort sources by medium type.
Extracts sources belonging to a specific medium type from a heterogeneous source collection. This function enables medium-specific processing by grouping sources with compatible physical properties and computational requirements.
// Example: Extract elastic sources from mixed collection auto [elastic_sources, indices] = sort_sources_per_medium< specfem::dimension::type::dim2, specfem::element::medium_tag::elastic_psv>( all_sources, element_types, mesh);
Note
This function is an implementation detail and should be used only within specfem::assembly::sources construction
- Template Parameters:
DimensionTag – Spatial dimension (
dim2ordim3)MediumTag – Target medium type (
elastic_psv,acoustic, etc.)
- Parameters:
sources – Complete vector of sources from all medium types
element_types – Element classification data (unused but maintained for API consistency)
mesh – Finite element mesh information (unused but maintained for API consistency)
- Returns:
std::tuple containing:
Filtered vector of sources matching the specified medium type
Original indices of the filtered sources in the input vector