The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Photonic::Retarded::OneH

VERSION

version 0.009

SYNOPSIS

    use Photonic::Retarded::OneH;
    my $nr=Photonic::Retarded::OneH->new(metric=>$g, polarization=>$p);
    $nr->iterate;
    say $nr->iteration;
    say $nr->current_a;
    say $nr->next_b2;
    my $state=$nr->nextState;

DESCRIPTION

Implements calculation of Haydock coefficients and Haydock states for the calculation of the retarded dielectric function of arbitrary periodic two component systems in arbitrary number of dimentions. One Haydock coefficient at a time.

METHODS

  • new(metric=>$m, polarization=>$e, [, smallH=>$s])

    Create a new Ph::R::OneH object with PDL::Retarded::Metric $m, with a field along the complex direction $e and with smallness parameter $s.

ACCESORS (read only)

  • metric Photonic::Retarded::Metric

    A Photonic::Retarded::Metric object defining the geometry of the system, the charateristic function, the wavenumber, wavevector and host dielectric function. Required in the initializer.

  • polarization PDL::Complex

    A non null vector defining the complex direction of the macroscopic field.

  • smallH

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

  • B ndims dims epsilon

    Accesors handled by metric (see Photonic::Retarded::Metric, inherited from Photonic::Geometry)

  • previousState currentState nextState

    The n-1-th, n-th and n+1-th Haydock states; a complex vector for each reciprocal wavevector

  • 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

  • next_c

    The n+1-th c Haydock coefficient

  • previous_g current_g next_g

    The n-1-th n-th and n+1-th g Haydock coefficients

  • iteration

    Number of completed iterations

METHODS

  • iterate

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