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::LE::S::Haydock

VERSION

version 0.021

COPYRIGHT NOTICE

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

Copyright (C) 2016 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::S::Haydock;
    my $nr=Photonic::LE::S::Haydock->new(epsilon=>$epsilon,
           geometry=>$geometry);
    $nr->iterate;
    say $nr->iteration;
    say $nr->current_a;
    say $nr->next_b2;
    my $state=$nr->next_state;

DESCRIPTION

Implements calculation of Haydock coefficients and Haydock states for the calculation of the non retarded dielectric function of arbitrary periodic N component systems in arbitrary number of dimensions. One Haydock coefficient at a time. Use k,-k spinors. MQ notes.

Consumes Photonic::Roles::Haydock, Photonic::Roles::UseMask, Photonic::Roles::EpsFromGeometry - please see those for attributes.

ATTRIBUTES SUPPLIED FOR ROLE

These are provided for roles:

  • geometry Photonic::Types::GeometryG0

    A Photonic::Geometry object defining the geometry of the system, the characteristic function and the direction of the G=0 vector. Required.

  • B ndims dims r G GNorm L scale f

    Accessors handled by geometry (see Photonic::Geometry)

  • applyOperator($psi_G)

    Apply the Hamiltonian operator to state in reciprocal space. State is pm:nx:ny... The operator is the longitudinal dielectric response in reciprocal-spinor space.

  • innerProduct($left, $right)

    Returns the inner (Euclidean) product between states in reciprocal and spinor space.

  • magnitude($psi_G)

    Returns the magnitude of a state by taking the square root of the inner product of the state with itself.

  • changesign

    Returns 0, as there is no need to change sign.