FastFourier2DSolver

class FastFourier2DSolver(boundary_conditions=None, order=None)

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

Parameters:
boundaryConditions()
Returns:The boundary conditions for the solver.
Return type:list of DirichletBoundaryCondition | NeumannBoundaryCondition | PeriodicBoundaryCondition | MultipoleBoundaryCondition
order()
Returns:The order.
Return type:int

Usage Examples

Define a FastFourier2DSolver with periodic boundary conditions:

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

calculator = LCAOCalculator(
    poisson_solver=poisson_solver
)

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

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

calculator = LCAOCalculator(
    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 [ONK10].

The FastFourier2DSolver is the default solver for a DeviceConfiguration that has no metallic and dielectric regions.

Reference

[ONK10]T. Ozaki, K. Nishio, and H. Kino. Efficient implementation of the nonequilibrium green function method for electronic transport calculations. Phys. Rev. B, 81:035116, 2010. doi:10.1103/PhysRevB.81.035116.