Skip to content

Classes: Basis

Andrea Idini edited this page Apr 10, 2018 · 10 revisions

Basis class, refers to the basis set of the space where the problem is solved, it's used both to define the representation potential and the solver used.

The basis definition is a central part of the code and determines future expansion.

Basis are divided in

Note that basis combine. So the definition for a quantum state could be in practice a combination of bases in several different spaces. For example an electron moving in a potential, is defined by its position, spin, and eventually angular momentum. The position can be represented either continuously, x, or projected in a discrete basis, e.g. harmonic oscillator. Spin and angular momenta are intrinsically discrete bases (over the group SU(2) and SO(3), for the fluent in groups), with quantum numbers s and l respectively.

It might be worth it to implement explicitly this basis combination (this would enable to represent any possible quantum state), or to leave it implicitly. E.g. in the definition of a spherical basis for electron, one automatically knows that the involved quantum numbers are: the radial coordinate r, and either the kinetic angular momentum l and the spin s, or the total angular momentum j and parity π. This latter provision currently the most commonly used among practitioners.

Relationship with Potential and solver

Is difficult to generalise the solver used for a given basis: there are drastic differences between continuous and discrete solvers. A change of continuous basis gives rise to a different Schroedinger equation, i.e. a different differential equation to solve. The potential representation in different basis can be obtained from another basis, via a change of basis. This is particularly useful when having a potential written in a certain coordinate and want to write it in a corresponding discrete basis. This change can be analytically non trivial and hard to solve, if one wants to map continuous basis into another of different dimensions. Sometimes the solution doesn't even exist.

However, sometimes, the reduction is relatively trivial: e.g. when V(x,y,z) in cartesian coordinates is given by f(x) + f(y) + f(z) the problem can be factorized into 3 independent 1 dimensional problem. Or if the potential is central, as often happens (e.g. Coulomb interaction), the potential could be a function of V(r^2 = x^2+y^2+z^2) and one can smoothly transition between a 1D spherical problem to 3D.

Important note: a deep physical property is that the solution itself, for interacting systems, can break the symmetry of the interaction. In the same way gravitational interaction, which is spherically symmetric, generates non-spherical objects. In other words, even though the mapping is trivial, solving a spherical potential in 1D is not equivalent to solving it in 3D.

Continuous basis

Continuous basis are defined as a vector of possible states with continuous cardinality. That is, a particle can be in a state that is superposition of several positions (x), and momenta (k) coordinates. And in space and momentum space there are an infinite number of configuration.

This implies that when using a continuous basis in a computer code one has to setup the attributes:

  • array defining the point of the space taken into consideration. This is created using at least three three of these attributes:
    • "starting" point;
    • "end" point; (like left and right boundaries)
    • number of points; (in the case of uniform mesh)
    • mesh;
    • type of mesh; (uniform or otherwise)
  • boundary conditions:
    • periodic; (matches derivatives of wf)
    • zero edge; (these is the present option wf[start] = wf[end] = 0)

Discrete basis

The basis can be represented in a discrete set of states. These arise the so--called "quantum numbers". Angular momentum and spin, or parity are commonly represented in a discrete fashion. Group theory is often used to describe the different possible permitted combinations. But is not necessary at this stage to investigate it further.

Attributes:

  • minimum value
  • maximum value
  • step

Singleton structure

A discrete basis such has 3D harmonic oscillator, has a notorious shell structure. Which is, for certain quantum numbers in the harmonic oscillator basis, a given interval of corresponding angular momentum and spin are allowed. The singleton design pattern build an object of which a single instance can exist. A specific basis is built of discrete and continuous component, is a singleton.

In order to easily build the most common configuration is beneficial to setup a director->builder design paradigm with the most common presets:

  • build_1DnullXdx (1D position base, null boundary conditions, fixed mesh)
  • build_1DperiodicXdx (1D position base, periodic boundary conditions, fixed mesh)
  • build_3DsphericalRadialdr (3D spherical radial base, fixed mesh)
  • build_3DsphericalHarmonic (3D spherical isotropic harmonic oscillator)

...

In order to combine different basis states, could be beneficial to setup that the class Basis, with the given director constructors, is a collection of Base, with the above specifications and attributes for Continuous and Discrete basis.

Change of basis

Change of basis, is an extremely important feature that allows for the versatility of the code. Changing basis one can break different simmetries, consequently they provide a natural way to study different objects. For example, spherical atoms can be represented in isotropical 3D harmonic oscillator, but deformed molecules needs to consider their characteristic shape by the means of a deformed basis.

Discrete basis have often standard way of representation that imply their relationship one with the other. E.g. l-s a. are easily related to j and parity. A state with a certain l and spin projection has total angular momentum j=l+s.