Input File: Quantum

Quantum State Tools

Quantum State Shared Directives

The following may be used in any quantum state tool.

amplitude = ( re , im )
Parameters:
  • re (float) – real part of amplitude to use for relative scaling and phasing

  • im (float) – imaginary part of amplitude to use for relative scaling and phasing

cylindrical = tst
Parameters:

tst (bool) – if true use bound states appropriate for cylindrical atoms.

Specific Quantum State Tools

new qstate free [<name>] [for <module>] { <directives> }

Create a free state.

Parameters:
  • module (string) – Name of the module that will use the quantum state.

  • directives (block) –

    The following directives are supported:

    Shared directives: see Quantum State Shared Directives

    k4 = ( E , kx , ky , kz )

    The four-momentum of the free state.

    Parameters:
    • kx (float) – x-component of momentum

    • ky (float) – y-component of momentum

    • kz (float) – z-component of momentum

    • E (float) – Energy of the free state, only the sign is used. The magnitude of the energy is always computed from the momentum. Ignored for non-relativistic equations.

    spin = ( sx , sy , sz )

    Define the orientation of the spin. The magnitude of the vector is ignored. Spin 1/2 is always assumed.

    Parameters:
    • sx (float) – x-component of the spin direction

    • sy (float) – y-component of the spin direction

    • sz (float) – z-component of the spin direction

    size = ( Lx , Ly , Lz )

    Size of the wave packet envelope.

new qstate random [<name>] [for <module>] { <directives> }

Create a random state.

Parameters:
  • module (string) – Name of the module that will use the quantum state.

  • directives (block) –

    The following directives are supported:

    Shared directives: see Quantum State Shared Directives

    size = ( Lx , Ly , Lz )

    Size of the wave packet envelope.

new qstate bound [<name>] [for <module>] { <directives> }

Create a bound state.

Parameters:
  • module (string) – Name of the module that will use the quantum state.

  • directives (block) –

    The following directives are supported:

    Shared directives: see Quantum State Shared Directives

    nr_j_l_m = ( nr, j, l, m )

    Set quantum numbers defining a bound state, see Quantum Optics Modules for full discussion.

    Parameters:
    • nr (int) – radial quantum number

    • j (float) – total angular momentum quantum number

    • l (int) – parity quantum number

    • m (float) – angular momentum projection

    Tip

    The principle quantum number from Schroedinger theory is

    n = n_r + l + 1

new qstate tabulated [<name>] [for <module>] { <directives> }

Create a state using data from a file.

Parameters:
  • module (string) – Name of the module that will use the quantum state.

  • directives (block) –

    The following directives are supported:

    Shared directives: see Quantum State Shared Directives

    filename = fname

    Name of the file containing the data describing the state. The format is given here.

Quantum Modules

Quantum Module Shared Directives

The following may be used in any quantum propagation module.

orbiting charge = q0
Parameters:

q0 (float) – Charge of the particle in the external potential, in units appropriate for the given module. See Quantum Optics Modules regarding units.

orbiting mass = m0
Parameters:

m0 (float) – mass of the particle in the external potential, in units of electronic mass

soft core potential , charge = Q , radius = dr

The soft core potential is given by

\Phi = \frac{Q}{\sqrt{r^2 + \delta r^2}}

Parameters:
  • Q (float) – charge associated with the soft core potential

  • dr (float) – radius associated with the soft core potential

Specific Quantum Propagation Modules

new schroedinger equation module { directives }

Creates a module for solving the time dependent Schroedinger equation for a particle in an arbitrary external field.

Parameters:

directives (block) –

The following directives are supported:

Shared directives: see Quantum Module Shared Directives

Installable tools: Quantum State Tools, Radiation Injection

keep a2 term = tst
Parameters:

tst (bool) – whether to keep the second order term from the Hamiltonian

dipole approximation = tst
Parameters:

tst (bool) – if true, vector potential is uniform (always evaluated at origin)

relaxation time = tr
Parameters:

tr (float) – Causes module to spend this much time relaxing to ground. This may help refine the initial condition, but can be omitted. If used, one may start with a random wavefunction in order to not prejudice the results.

new klein gordon equation module { directives }

Creates a module for solving the time dependent Klein-Gordon equation for a particle in an arbitrary external field.

Parameters:

directives (block) –

The following directives are supported:

Shared directives: see Quantum Module Shared Directives

Installable tools: Quantum State Tools, Radiation Injection

new dirac equation module { directives }

Creates a module for solving the time dependent Dirac equation for a particle in an arbitrary external field.

Parameters:

directives (block) –

The following directives are supported:

Shared directives: see Quantum Module Shared Directives

Installable tools: Quantum State Tools, Radiation Injection

Quantum Diagnostics

There is a diagnostic module for performing overlap integrals against reference states. This is useful for tracking occupation probabilities.

new population diagnostic <name> { <directives> }

Creates the quantum population diagnostic. This diagnostic module uses an energy diagnostic tool to report the real and imaginary part of an overlap integral as a function of time.

Parameters:
  • name (string) – The name of the diagnostic

  • directives (block) – The directives block may contain declarations of quantum state tools or energy diagnostic tools. These tools can also be attached using any little language syntax.

Bohmian Trajectories

Particle species defined as in Input File: PIC can be used to model Bohmian trajectories that are guided by the quantum propagation modules. All matter loading directives are available, see Matter Loading. In Bohmian mechanics, particles move based on the guidance condition:

{\bf v} = {\bf j}/\rho

where {\bf j} is the probability current appropriate for the wave equation in question, and \rho is the probability density. These must satisfy the conservation law

\partial \rho / \partial t + \nabla \cdot {\bf j} = 0

In order to recover the statistical predictions of conventional quantum mechanics, the Bohmian particles should be loaded into a particle density that is commensurate with the probability density of the wavefunction. TurboWAVE will do this if the matter loading parameters satisfy loading = statistical and particle weight = fixed. Otherwise, the initial Bohmian density and wavefunction probability density will be treated as independent.

State File Format

The state file used to initialize bound states that are computed externally is an ASCII text file. All white space is treated as equivalent. White space before and after “=” is required.

The file format is:

energy = [#]
pts = [#]
components = [#]
cell_width = [#]
soft_core_radius = [#]
nuclear_charge = [#]
nr_j_l_m = [#] [#] [#] [#]
Bz = [#]
cylindrical = [tw_bool]

start_data
[#]
[#]

The tw_bool type resolves to true if the text is true, yes, or on, false otherwise. Any information can be added before start_data provided there are no label collisions. The data that follows start data is an alternating list of real and imaginary parts of the radial function at each radial grid position. Angular functions are implicit in the quantum numbers.