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::Roles::OneH

VERSION

version 0.013

COPYRIGHT NOTICE

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
Apartado Postal 48-3
62251 Cuernavaca, Morelos
México

SYNOPSIS

use Photonic::LE::NR2::OneH;
my $nr=Photonic::LE::NR2::OneH->new(geometry=>$geometry);
$nr->iterate;
say $nr->iteration;
say $nr->current_a;
say $nr->next_b2;
my $state=$nr->nextState;
(for developers)
package Photonic::LE::NR2::OneH.pm;
$Photonic::LE::NR2::OneH::VERSION= '0.013';
use namespace::autoclean;
use Moose;
has...
with 'Photonic::Roles::OneH';

DESCRIPTION

Roles consumed by OneH objects to be used in a Photonic calculation. Basic scheme for the calculation of one Haydock coefficient and one Haydock state at a time. See also the specific implementations.

METHODS

  • new(geometry=>$g[, smallH=>$s])

    Create a new Photonic::...::OneH object with GeometryG0 $g and optional smallness parameter $s.

ACCESORS (read only)

  • geometry Photonic::Types::GeometryG0

    A Photonic::Geometry object defining the geometry of the system, the charateristic function and the direction of the G=0 vector. Should be given in the initializer.

  • B dims r G GNorm L scale f

    Accesors handled by geometry (see Photonic::Roles::Geometry)

  • smallH

    A small number used as tolerance to end the iteration. Small negative b^2 coefficients are taken to be zero.

  • previousState currentState nextState

    The n-1-th, n-th and n+1-th Haydock states

  • current_a

    The n-th Haydock coefficient a

  • current_b2 next_b2 current_b next_b

    The n-th and n+1-th b^2 and b Haydock coefficients

  • iteration

    Number of completed iterations

METHODS

  • iterate

    Performs a single Haydock iteration and updates current_a, next_b, next_b2, next_state, shifting the current values where necessary. Returns 0 when unable to continue iterating.