Trait rusty_green_kernel::evaluators::base::ComplexDirectEvaluator[][src]

pub trait ComplexDirectEvaluator: DirectEvaluatorAccessor {
    fn assemble_in_place(
        &self,
        result: ArrayViewMut2<'_, Complex<Self::FloatingPointType>>,
        threading_type: ThreadingType
    );
fn evaluate_in_place(
        &self,
        charges: ArrayView2<'_, Complex<Self::FloatingPointType>>,
        result: ArrayViewMut3<'_, Complex<Self::FloatingPointType>>,
        eval_mode: &EvalMode,
        threading_type: ThreadingType
    );
fn assemble(
        &self,
        threading_type: ThreadingType
    ) -> Array2<Complex<Self::FloatingPointType>>;
fn evaluate(
        &self,
        charges: ArrayView2<'_, Complex<Self::FloatingPointType>>,
        eval_mode: &EvalMode,
        threading_type: ThreadingType
    ) -> Array3<Complex<Self::FloatingPointType>>; }

Assemblers and evaluators for complex kernels.

Required methods

fn assemble_in_place(
    &self,
    result: ArrayViewMut2<'_, Complex<Self::FloatingPointType>>,
    threading_type: ThreadingType
)
[src]

Assemble the kernel matrix in-place.

Arguments

  • result - A complex array of dimension (ntargets, nsources) that contains the Green’s function evaluations between sources and targets. Note. The array must already have the right shape upon calling the function.
  • threading_type - Determines whether the routine should use multithreading ThreadingType::Parallel or serial exectution ThreadingType::Serial.

fn evaluate_in_place(
    &self,
    charges: ArrayView2<'_, Complex<Self::FloatingPointType>>,
    result: ArrayViewMut3<'_, Complex<Self::FloatingPointType>>,
    eval_mode: &EvalMode,
    threading_type: ThreadingType
)
[src]

Evaluate for each target the potential sum across all sources with given charges.

Arguments

  • charges - A complex array of dimension (ncharge_vecs, nsources) that contains ncharge_vec vectors of charges in the rows, each of which has nsources entries.
  • result - A complex array of shape (ncharge_vecs, ntargets, 1) if only Greens fct. values are requested or of shape (ncharge_vecs, ntargets, 4) if function values and gradients are requested. The value result[i][j][0] contains the potential sum evaluated at the jth target, using the ith charge vector. The values result[i][j][k] for k=1,..,3 contain the corresponding gradient in the x, y, and z coordinate direction. eval_mode - Either EvalMode::Value to only return function values or EvalMode::ValueGrad to return function values and derivatives.
  • threading_type - Either ThreadingType::Parallel for parallel execution or ThreadingType::Serial for serial execution. The enum ThreadingType is defined in the package rusty-kernel-tools.

fn assemble(
    &self,
    threading_type: ThreadingType
) -> Array2<Complex<Self::FloatingPointType>>
[src]

Like assemble_in_place, but creates and returns a new result array.

fn evaluate(
    &self,
    charges: ArrayView2<'_, Complex<Self::FloatingPointType>>,
    eval_mode: &EvalMode,
    threading_type: ThreadingType
) -> Array3<Complex<Self::FloatingPointType>>
[src]

Like evaluate_in_place but creates and returns a new result array.

Loading content...

Implementors

impl<P: ParticleContainerAccessor> ComplexDirectEvaluator for DirectEvaluator<P, Complex<P::FloatingPointType>>[src]

Loading content...