Constructor for a Hybrid FFT2D + Finite-Difference-1D Poisson solver.
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
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
A FastFourier2DSolver object provides the following methods:
This object supports cloning. See the section called “Cloning of ATK Python objects”.
boundaryConditions(): Return the boundary conditions.
order(): Return the order
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)
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.