pub fn singular_integration(
source_point: &Array1<f64>,
source_normal: &Array1<f64>,
element_coords: &Array2<f64>,
element_type: ElementType,
physics: &PhysicsParams,
bc_values: Option<&[Complex64]>,
bc_type: i32,
compute_rhs: bool,
) -> IntegrationResultExpand description
Perform singular integration for self-element
This implements NC_SingularIntegration from the C++ code. Uses edge-based integration for the hypersingular kernel and subelement triangulation for accurate integration near singularity.
§Arguments
source_point- Source point (collocation point)source_normal- Unit normal at source pointelement_coords- Node coordinates of the field element (num_nodes × 3)element_type- Triangle or quad elementphysics- Physics parameters (wave number, etc.)bc_values- Boundary condition values at element nodes (for RHS)bc_type- Boundary condition type (0=velocity, 1=pressure)compute_rhs- Whether to compute RHS contribution
§Returns
IntegrationResult with G, H, H^T, E integrals and RHS contribution