Name

FastFourier2DSolver — The Hybrid FFT2D + Finite-Difference-1D Poisson solver.

Synopsis

Namespace: NanoLanguage
FastFourier2DSolver(
boundary_conditions,
order
)

Description

Constructor for a Hybrid FFT2D + Finite-Difference-1D Poisson solver.

FastFourier2DSolver Arguments

boundary_conditions

The boundary conditions for the Poisson solver.

Type: A list of shape (3,2) specifying the boundary conditions on the 6 surfaces of the unit cell for the configuration.

Default: [[PeriodicBoundaryCondition]*2]*3
order

The order of the finite difference kernel used for solving in the C-direction

Type: An integer - can only be 1 or 2.

Default: 2

FastFourier2DSolver Methods

A FastFourier2DSolver object provides the following methods:

Usage Examples

Define a FastFourier2DSolver with periodic boundary conditions

poisson_solver = FastFourier2DSolver(
    boundary_conditions=[PeriodicBoundaryCondition,
                         PeriodicBoundaryCondition,
                         PeriodicBoundaryCondition ]
    )

calculator = HuckelCalculator(poisson_solver=poisson_solver)

Define a FastFourier2DSolver with Dirichlet boundary conditions in the C-direction.

poisson_solver = FastFourier2DSolver(
    boundary_conditions=[PeriodicBoundaryCondition,
                         PeriodicBoundaryCondition,
                         DirichletBoundaryCondition ]
    )

calculator = HuckelCalculator(poisson_solver=poisson_solver)

Notes

The FastFourier2DSolver uses a FFT in the A, B directions and a finite difference operator in the C direction to solve Poisson's equation[29].

The FastFourier2DSolver is the default solver for DeviceConfigurations that have no metallic and dielectric regions.