Luis Mochán
and 6 contributors

Photonic - A perl package for calculations on photonics and metamaterials.

Copyright (C) 1916 by W. Luis Mochán

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301 USA

    mochan@fis.unam.mx

Instituto de Ciencias Físicas, UNAM
62251 Cuernavaca, Morelos
México

# NAME

Photonic::Roles::Geometry

version 0.012

# SYNOPSIS

    use Photonic::Geometry::FromB;
$g=Photonic::Geometry->new(B=>$pdl);
$B=$g->B;
$G=$g->G;
(for developers)
    package Photonic::Geometry::FromB;
$Photonic::Geometry::Geometry::VERSION = '0.012'; use namespace::autoclean; use Moose; has 'B' =>(is=>'ro', isa=>'PDL', required=>1, documentation=>'charateristic function'); with 'Photonic::Roles::Geometry'; # DESCRIPTION Roles consumed by geometry objects to be used in a Photonic calculation. See also the specific implementations under Photonic::Geometry. # ACCESORS (defined by the implementation) • B The characteristic function as PDL # ACCESORS (read write) • Direction0 Direction of the zero length wavevector # ACCESORS (read only) • L Unit cell sizes as a ndims pdl. • units Basis e_i of basis vectors for the lattice • dims The dimensions [$X, $Y...] of the PDL B • ndims The number of dimensions of the PDL B, i.e., the dimensionality of space. • npoints Number of points within unit cell. • scale The distance between neighbor pixels along the axes. • r The position coordinates. In 2D, a 2,$X,$Y pdl. In 3D, a 3,$X,$Y,$Z pdl.

• G

The reciprocal lattice. In 2D, a 2, $X,$Y pdl. G.R=multiple of 2\pi.

• GNorm

The reciprocal lattice, normalized to 1. In 2D, a 2, $X,$Y pdl.

• f

Filling fraction of B region

• unitPairs

Normalized sum of pairs of unit vectors u_{(ij)}=normalized e_ i+e_j.

Matrix of dyads of unit vector pairs d^{ij}_{kl}=u^{i}_{kl}u^{j}_{kl} as 2d matrix, adjusted for symmetry

LU decomposition of unitDyads. Used to obtain cartesian components of dielectric tensor from longitudinal dielectric functions along the directions given by unitPairs

# METHODS

• Vec2LC_G($v_G) Returns the longitudinal component of a 'complex' vector field$v_G in reciprocal space.

• LC2Vec_G(\$s_G)

Longitudinal vector field from its longitudinal components in reciprocal space. Scalar field to vector field.

# PREDICATES

has_Direction0

Test if Direction0 has been set.