qimpy.transport.material.ab_initio.Light

class Light(*, ab_initio, coherent=True, gauge='velocity', A0=None, E0=None, omega=0.0, t0=0.0, sigma=0.0, smearing=0.001, checkpoint_in=(None, ''))

Bases: TreeNode

Parameters:
  • ab_initio (AbInitio)

  • coherent (bool)

  • gauge (str)

  • A0 (Tensor)

  • E0 (Tensor)

  • omega (dict[int, Tensor])

  • t0 (dict[int, Tensor])

  • sigma (dict[int, Tensor])

  • smearing (float)

  • checkpoint_in (CheckpointPath)

__init__(*, ab_initio, coherent=True, gauge='velocity', A0=None, E0=None, omega=0.0, t0=0.0, sigma=0.0, smearing=0.001, checkpoint_in=(None, ''))

Initialize coherent light interaction.

Parameters:
  • coherent (bool) – [Input file] Switch between coherent and Lindbladian implementations.

  • gauge (str) – [Input file] Switch between ‘velocity’ or ‘length’ gauge.

  • A0 (list[complex] | None) – [Input file] Vector potential amplitude. TODO: specify details about differences in CW vs pulse mode. Exactly one of A0 or E0 must be specified.

  • E0 (list[complex] | None) – [Input file] Electric-field amplitude. Exactly one of A0 or E0 must be specified.

  • omega (float) – [Input file] Angular frequency / photon energy of the light.

  • t0 (float) – [Input file] Center of Gaussian pulse, used only if sigma is non-zero.

  • sigma (float) – [Input file] Time width of Gaussian pulse, if non-zero.

  • smearing (float) – [Input file] Width of Gaussian function to represent delta function.

  • ab_initio (AbInitio)

  • checkpoint_in (CheckpointPath)

Return type:

None

Methods

__init__

Initialize coherent light interaction.

add_child

Construct child object self.`attr_name` of type cls.

add_child_one_of

Invoke add_child on one of several child options in args.

initialize_fields

rho_dot

save_checkpoint

Save self and all children in hierarchy to cp_path.

Attributes

ab_initio

coherent

Whether term is Coherent or Lindbladian

gauge

one of velocity or length

A0

Vector potential amplitude

E0

Electric field amplitude

smearing

Width of Gaussian

omega

light frequency

t0

center of Gaussian pulse, if sigma is non-zero

sigma

width of Gaussian pulse in time, if non-zero

amp_mat

Amplitude matrix, precomputed A0 .

plus

document

plus_deg

document

minus

document

minus_deg

document

constant_params

constant values of parameters

child_names

Names of attributes with child objects.

variant_name

Version of children having variants (if any)

A0: Tensor

Vector potential amplitude

E0: Tensor

Electric field amplitude

amp_mat: dict[int, Tensor]

Amplitude matrix, precomputed A0 . P or E0 . R

coherent: bool

Whether term is Coherent or Lindbladian

constant_params: dict[str, Tensor]

constant values of parameters

gauge: str

one of velocity or length

Type:

Gauge

minus: dict[int, Tensor]

document

Type:

TODO

minus_deg: dict[int, Tensor]

document

Type:

TODO

omega: dict[int, Tensor]

light frequency

plus: dict[int, Tensor]

document

Type:

TODO

plus_deg: dict[int, Tensor]

document

Type:

TODO

sigma: dict[int, Tensor]

width of Gaussian pulse in time, if non-zero

smearing: float

Width of Gaussian

t0: dict[int, Tensor]

center of Gaussian pulse, if sigma is non-zero