Index

APIs

FieldDistributionNonuniformMedium.GridMethod
Grid(max_x, max_y, max_t, nx, ny)

Construct a discretization grid for computational domain.

Arguments

  • max_x: Linear sizes of first computational domain in meters.
  • max_y: Linear sizes of second computational domain in meters.
  • max_t: Maximum computational time in seconds.
  • nx: Number of discretization grid for first computational domain.
  • ny: Number of discretization grid for second computational domain.

Example

julia> Grid(3e-6, 10e-6, 1e-12, 60, 200);
source
FieldDistributionNonuniformMedium.PermeabilityMethod
Permeability(μ_const::Real, grid::Grid)

Construct a uniform permeability for the medium.

Arguments

  • μ_const: Permeability of the medium in N/A².
  • grid: Discretization grid.

Example

julia> grid = Grid(3e-6, 10e-6, 1e-12, 60, 200);

julia> Permeability(1., grid);
source
FieldDistributionNonuniformMedium.PermittivityMethod
Permittivity(ϵ_const::Real, grid::Grid)

Construct a uniform permittivity for the medium.

Arguments

  • ϵ_const: Permittivity of the medium in F/m.
  • grid: Discretization grid.

Example

julia> grid = Grid(3e-6, 10e-6, 1e-12, 60, 200);

julia> Permittivity(9., grid);
source
FieldDistributionNonuniformMedium.SimulatorMethod
Simulator(grid::Grid, light::Light, permittivity::Permittivity, permeability::Permeability)

Arguments

  • grid: Discretization grid for computational domain.
  • light: Light to propagate.
  • permittivity: Permittivity for the medium.
  • permeability: Permeability for the medium.

Example

```jldoctest julia> grid = Grid(3e-6, 10e-6, 1e-12, 60, 200);

julia> light = Light(2.04e-6);

julia> permittivity = Permittivity(9., grid);

julia> permeability = Permeability(1., grid);

julia> Simulator(grid, light, permittivity, permeability);

source
FieldDistributionNonuniformMedium.implant!Method
implant!(
    permittivity::Permittivity, ϵ_const::Real,
    xs::AbstractVector, ys::AbstractVector, rs::AbstractVector,
    grid::Grid
)

Implant some bubble defect into the medium.

Arguments

  • permittivity: Permittivity object.
  • ϵ_const: Permittivity of the defect in F/m.
  • xs: Position of defect of first computational domain in meters.
  • ys: Position of defect of second computational domain in meters.
  • rs: Radius of defect in meters.
  • grid: Discretization grid.

Example

julia> grid = Grid(3e-6, 10e-6, 1e-12, 60, 200);

julia> permittivity = Permittivity(9., grid);

julia> ϵ_defect = 1.;

julia> xs_defect = [0, 1e-6, -1e-6];

julia> ys_defect = [1e-6, 2e-6, 3e-6];

julia> rs_defect = [0.5e-6, 0.1e-6, 0.2e-6];

julia> implant!(
           permittivity, ϵ_defect,
           xs_defect, ys_defect, rs_defect,
           grid
       );
source
FieldDistributionNonuniformMedium.simulate!Method
simulate!(s::Simulator)

Run simulation from current t to max_t

Arguments

  • s: Simulator.

Example

julia> grid = Grid(3e-6, 10e-6, 1e-12, 60, 200);

julia> light = Light(2.04e-6);

julia> permittivity = Permittivity(9., grid);

julia> permeability = Permeability(1., grid);

julia> s = Simulator(grid, light, permittivity, permeability);

julia> simulate!(s);
source