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

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

Assemblers and evaluators for real kernels.

Required methods

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

Assemble the kernel matrix in-place.

Arguments

  • result - A real 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<'_, Self::FloatingPointType>,
    result: ArrayViewMut3<'_, 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 real array of dimension (ncharge_vecs, nsources) that contains ncharge_vec vectors of charges in the rows, each of which has nsources entries.
  • result - A real 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<Self::FloatingPointType>
[src]

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

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

Like evaluate_in_place but creates and returns a new result array.

Loading content...

Implementors

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

Loading content...