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

NAME

Physics::UEMColumn::Pulse - Class representing a pulse for the Physics::UEMColumn simulation

SYNOPSIS

  use strict;
  use warnings;

  use Physics::UEMColumn alias => ':standard';

  my $pulse = Pulse->new(
    velocity => '1e8 m/s',
    number => 1e6,
  );

ATTRIBUTES

The Physics::UEMColumn::Pulse class defines many attributes, however most are semi-private. From a practical perspective the user need only interact with the first three. The latter however, allow for a more physical creation of the pulse and thus are available to the user.

velocity

The velocity of a pulse. This is required and may be zero, though note that without further acceleration the simulation may never come to completion. Unit: m/s

location

The location of the center of the pulse within the column. Default is 0, Unit: m

number

Number of electrons contained in the pulse. Default is 1

sigma_t / sigma_z

The spatial variance in the transverse and longitudinal direction respectively. Computing an initial value for sigma_z is still a matter of much interest in the community. Any initialization seen in this code is rather naive. Unit: m^2

eta_t / eta_z

The local momentum variance in the transverse and longitudinal directions respectively. A value of 0 would imply a perfectly mono-chromated pulse (though this is unphysical). Unit: (kg m / s)^2

gamma_t / gamma_z

The momentum chirp in the transverse and longitudinal directions respectively. A value of zero would mean that the front, back and center of the pulse all have the same average momentum. Computing an initial value for gamma_z is still a matter of much interest in the community. Any initialization seen in this code is rather naive. Unit: kg m^2 / s

liouville_gamma2_t / liouville_gamma2_z

The value of the product of sigma and eta in the transverse and longitudinal directions respectively. Since it can be easily shown that these pulses obey Liouville's Theorem, this product is unchanged during propagation. This value is used internally to reduce the number of equations to solve and thus increase solution speed. This value should not be changed manually but will be calculated from values given to quantities above.

initial_width / initial_length

These attributes are for convenience only. They may be used to initialize the variance attriutes above. They represent the initial half-width 1/e maximum (HW1/eM) width or length of the pulse. Unit: m

initial_width / initial_length

This attribute is for convenience only. It may be used to initialize the variance attriutes above. It represents the excess photoemission energy imparted to the electrons in the pulse by simple photoemission. Unit: J

data

Holder for an array reference to the raw propagation history data. This should not be changed manually.

SOURCE REPOSITORY

http://github.com/jberger/Physics-UEMColumn

AUTHOR

Joel Berger, <joel.a.berger@gmail.com>

COPYRIGHT AND LICENSE

Copyright (C) 2012-2013 by Joel Berger

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.