Bloch periodicity is a generalization where for some Bloch wavevector. With ordinary periodic boundaries in a cell of size L, the field components satisfy f( x + L) = f( x). Also, one can exploit symmetries of a problem to further reduce the computational requirements. Three basic types of terminations are supported in Meep: Bloch-periodic boundaries, metallic walls, and PML absorbing layers. On a computer, we can only simulate a finite region of space, which means that we must terminate our simulation with some boundary conditions. (This is different from MPB: it is equivalent to taking MPB's k-points and transforming them with reciprocal->cartesian.) The Bloch wavevector (see below) k is specified in Cartesian coordinates in units of 2π / a. If we want to run our simulation for 100 periods, we then run it for 155 time units (= 100 / f).Ī transmission spectrum, for example, would be a ratio of transmitted to incident intensities, so the units of E are irrelevant (unless there are nonlinearities). Then, if we want to specify a source corresponding to λ = 1.55μm, we specify the frequency f as 1/1.55 = 0.6452. (A similar scheme is used in MPB.)įor example, suppose we are describing some nanophotonic structure at infrared frequencies, where it is convenient to specify distances in microns. This, in turn, is equivalent to specifying f as a / λ where λ is the vacuum wavelength. In particular, the frequency f in Meep (corresponding to a time dependence e − i2π f t) is always specified in units of c / a (or equivalently ω is specified in units of 2π c / a), which is equivalent to specifying f as 1 / T: the inverse of the optical period T in units of a / c. Moreover, since c = 1 in Meep units, a (or a / c) is our unit of time as well. That means that we pick some characteristic lengthscale in the system, a, and use that as our unit of distance. In particular, because Maxwell's equations are scale invariant (multiplying the sizes of everything by 10 just divides the corresponding solution frequencies by 10), it is convenient in electromagnetic problems to choose scale-invariant units (see our online textbook, ch. As a practical matter, almost everything you might want to compute (transmission spectra, frequencies, etcetera) is expressed as a ratio anyway, so the units end up cancelling. You may have noticed the lack of annoying constants like ε 0, μ 0, and c - that's because Meep uses "dimensionless" units where all these constants are unity (you can tell it was written by theorists). Meep supports simulation in cylindrical coordinates: see Cylindrical coordinates in Meep. These effects are supported in Meep and are described in Materials in Meep. Most generally, ε depends not only on position but also on frequency (material dispersion) and on the field E itself (nonlinearity), and may include loss or gain. The σ B and σ D terms correspond to (frequency-independent) magnetic and electric conductivities, respectively. (Magnetic currents are a convenient computational fiction in some situations.) B is the magnetic flux density (often called the magnetic field), μ is the magnetic permeability, and H is the magnetic field.
Where D is the displacement field, ε is the dielectric constant, J is the current density (of electric charge), and J B is the magnetic-charge current density. In particular, the equations for the evolution of the fields are: Meep simulates Maxwell's equations, which describe the interactions of electric ( E) and magnetic ( H) fields with one another and with matter and sources. The user interface is introduced in the Meep tutorial. Instead, we focus here on the concepts that are being simulated. This introduction does not describe the user interface with which you can tell Meep to perform these tasks. Also, FDTD is only one of several useful computational methods in electromagnetism, each of which has their own special uses-we mention a few of the other methods, and try to give some hints as to which applications FDTD is well suited for and when you should consider a different method. In this section, we introduce the equations and the electromagnetic units employed by Meep, the FDTD method, and Meep's approach to FDTD. This is a widely used technique in which space is divided into a discrete grid and then the fields are evolved in time using discrete time steps-as the grid and the time steps are made finer and finer, this becomes a closer and closer approximation for the true continuous equations, and one can simulate many practical problems essentially exactly. Meep implements the finite-difference time-domain ( FDTD) method for computational electromagnetism.