Module wafer::grid[][src]

The meat of the calculation is performed on a finite grid. Basically all of the computation work is done within this module.

Re-exports

use config;
use config::CentralDifference;
use config::Config;
use config::Index3;
use config::InitialCondition;
use errors::*;
use indicatif::ProgressBar;
use indicatif::ProgressStyle;
use input;
use ndarray::Array3;
use ndarray::ArrayView3;
use ndarray::ArrayViewMut3;
use ndarray::Zip;
use ndarray_parallel::prelude::*;
use noisy_float::prelude::*;
use output;
use potential;
use potential::Potentials;
use slog::Logger;
use std::f64::MAX;

Structs

Observables

Holds all computed observables for the current wavefunction.

Functions

compute_observables

Computes observable values of the system, for example the energy

eta

Estimates completion time for the convergence of the current wavefunction.

evolve

Evolves the solution a number of steps

get_mut_work_area

Shortcut to getting a mutable slice of the workable area of the current array. In other words, the finite element only cells are removed

get_norm_squared

Calculate the normalisation condition of a wavefunction. The square root portion of this calculation happens later as we sometimes require just this condition.

get_work_area

Shortcut to getting a slice of the workable area of the current array. In other words, the finite element only cells are removed

normalise_wavefunction

Normalisation of the wavefunction

orthogonalise_wavefunction

Uses Gram Schmidt orthogonalisation to identify the next excited state's wavefunction, even if it's degenerate

run

Runs the calculation and holds long term (system time) wavefunction storage

solve

Runs the actual computation once system is setup and ready.