# Supported Problems¶

## Materials¶

The library currently requires that materials be isotropic at and beyond the location of the boundary. It is fine to have arbitrary media in the interior of the simulation, but any such material should be seperated from the boundary by a distance of at least $$\delta$$.

Mathematically, the reason for this is that inhomogeneities in the materials may result in waves being (correctly) reflected back into the domain from beyond the location we place an artificial boundary. The best way to handle these situations, in general, is to use a larger compuational domain (if possible).

In principle, it is possible to handled layered media. We are considering adding this ability in a future release.

## Initial Conditions¶

Initial conditions need to be compactly supported (or at least appear to be numerically) away from the artificial boundaries. That is any initial conditions should be zero within $$\delta$$ of the boundary condition.

The issue here is that with non-zero initial conditions, we need a way to initialize the auxiliary variables we use in the boundary condition. In general, we do not know how to initialize the auxiliary variables to arbitrary conditions.

## Other Boundary Conditions¶

Currently, we support any configuration of rectangular homogeneous Dirichlet, homogeneous Neumann, and CRBC/DAB boundaries intersecting at right angles. Note that it is possible to implement PEC/PMC boundaries under these constraints. We do not currently support periodic conditions.