The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Photonic::Geometry

VERSION

version 0.006

SYNOPSIS

use Photonic::Geometry;
$g=Photonic::Geometry->new(B=>$pdl);
$B=$g->B;
$G=$g->G;

DESCRIPTION

Create a geometry object to be used in a Photonic calculation.

You might want to use the related package Photonic::Geometry::FromImage2D

METHODS

  • new(B=>$pdl[, L=>$L][, units=>$units])

    Creates a new Ph::G object

    $pdl is a boolean array with 1's and 0's representing the characteriztic function within the unit cell. Its dimensions must be odd. Its number of dimensions is the dimension of space

    $L is the size of the unit cell along the cartesian axes. By default, it is the number of pixels.

    $units is an arrayref of pdl's, one for each basis vector of the lattice. It defaults to cartesian unit vectors. Note: Non-default $units are not yet implemented.

  • 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.

ACCESORS (read only)

  • B

    The characteristic function as PDL

  • L

    Unit cell sizes as a B->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.

  • unitDyads

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

  • unitDyadsLU

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

ACCESORS (read write)

Direction0

Direction of the zero length wavevector

PREDICATES

has_Direction0

Test if Direction0 has been set.

PI