Trait bempp::traits::BoundaryAssembly

source ·
pub trait BoundaryAssembly {
    type T: RlstScalar;

    // Required methods
    fn assemble_singular_into_dense<Space: FunctionSpace<T = Self::T> + Sync>(
        &self,
        output: &mut Array<Self::T, BaseArray<Self::T, VectorContainer<Self::T>, DIM>, DIM>,
        trial_space: &Space,
        test_space: &Space,
    );
    fn assemble_singular_into_csr<Space: FunctionSpace<T = Self::T> + Sync>(
        &self,
        trial_space: &Space,
        test_space: &Space,
    ) -> CsrMatrix<Self::T>;
    fn assemble_singular_correction_into_dense<Space: FunctionSpace<T = Self::T> + Sync>(
        &self,
        output: &mut Array<Self::T, BaseArray<Self::T, VectorContainer<Self::T>, DIM>, DIM>,
        trial_space: &Space,
        test_space: &Space,
    );
    fn assemble_singular_correction_into_csr<Space: FunctionSpace<T = Self::T> + Sync>(
        &self,
        trial_space: &Space,
        test_space: &Space,
    ) -> CsrMatrix<Self::T>;
    fn assemble_into_dense<Space: FunctionSpace<T = Self::T> + Sync>(
        &self,
        output: &mut Array<Self::T, BaseArray<Self::T, VectorContainer<Self::T>, DIM>, DIM>,
        trial_space: &Space,
        test_space: &Space,
    );
    fn assemble_nonsingular_into_dense<Space: FunctionSpace<T = Self::T> + Sync>(
        &self,
        output: &mut Array<Self::T, BaseArray<Self::T, VectorContainer<Self::T>, DIM>, DIM>,
        trial_space: &Space,
        test_space: &Space,
        trial_colouring: &HashMap<ReferenceCellType, Vec<Vec<usize>>>,
        test_colouring: &HashMap<ReferenceCellType, Vec<Vec<usize>>>,
    );
}
Expand description

Functions for boundary assembly

Required Associated Types§

source

type T: RlstScalar

Scalar type

Required Methods§

source

fn assemble_singular_into_dense<Space: FunctionSpace<T = Self::T> + Sync>( &self, output: &mut Array<Self::T, BaseArray<Self::T, VectorContainer<Self::T>, DIM>, DIM>, trial_space: &Space, test_space: &Space, )

Assemble the singular contributions into a dense matrix

source

fn assemble_singular_into_csr<Space: FunctionSpace<T = Self::T> + Sync>( &self, trial_space: &Space, test_space: &Space, ) -> CsrMatrix<Self::T>

Assemble the singular contributions into a CSR sparse matrix

source

fn assemble_singular_correction_into_dense<Space: FunctionSpace<T = Self::T> + Sync>( &self, output: &mut Array<Self::T, BaseArray<Self::T, VectorContainer<Self::T>, DIM>, DIM>, trial_space: &Space, test_space: &Space, )

Assemble the singular correction into a dense matrix

The singular correction is the contribution is the terms for adjacent cells are assembled using an (incorrect) non-singular quadrature rule

source

fn assemble_singular_correction_into_csr<Space: FunctionSpace<T = Self::T> + Sync>( &self, trial_space: &Space, test_space: &Space, ) -> CsrMatrix<Self::T>

Assemble the singular correction into a CSR matrix

The singular correction is the contribution is the terms for adjacent cells are assembled using an (incorrect) non-singular quadrature rule

source

fn assemble_into_dense<Space: FunctionSpace<T = Self::T> + Sync>( &self, output: &mut Array<Self::T, BaseArray<Self::T, VectorContainer<Self::T>, DIM>, DIM>, trial_space: &Space, test_space: &Space, )

Assemble into a dense matrix

source

fn assemble_nonsingular_into_dense<Space: FunctionSpace<T = Self::T> + Sync>( &self, output: &mut Array<Self::T, BaseArray<Self::T, VectorContainer<Self::T>, DIM>, DIM>, trial_space: &Space, test_space: &Space, trial_colouring: &HashMap<ReferenceCellType, Vec<Vec<usize>>>, test_colouring: &HashMap<ReferenceCellType, Vec<Vec<usize>>>, )

Assemble the non-singular contributions into a dense matrix

Object Safety§

This trait is not object safe.

Implementors§

source§

impl<T: RlstScalar + MatrixInverse, Integrand: BoundaryIntegrand<T = T>, Kernel: KernelEvaluator<T = T>> BoundaryAssembly for BoundaryAssembler<T, Integrand, Kernel>

source§

type T = T