Skip to content

Classes

Ismaele edited this page Feb 11, 2019 · 6 revisions

Classes to be implemented:

World

World class (or better, struct of const) contains whatever belonging to the physical or simulation world. Values of physical constants (hbar, c, hbar*c, masses of particles... etc...) and units.
Is initialized for certain unit set, e.g. init_world('natural Planck')

Cf. Natural units for ideas.

Basis

Basis class, refers to the basis set of the space where the problem is solved.
Currently the basis is x, with a mesh dx and a box nbox, this triggers the 1D numerov solver. For the moment, that's what is needed, and will be needed for visualization purpose.

One could envisage, in the future,

  • 2D or 3D x basis, in spherical symmetry (just a change of angular momentum term in the potential).
  • 2D or 3D x basis in Axial symmetry or Cartesian (solution factorized over multiple coordinates).
  • Harmonic oscillator, Jacobian or other functional basis (this radically changes the solver)

Bear in mind that a good basis state treatment makes a world of difference in the versatility and professionality of the code.

Eigenstate

Eigenstate class contains the

  • quantum numbers (principal quantum number, angular momentum, spin...etc...)
  • eigenenergy (energy of the state), and
  • wavefunction (expressed in terms of the basis) of any state for which solution has been found.

Ideally, one would like the solvers to span some range of energy or quantum numbers, and give back all the eigenstates in that range as vector of (in?) the eigenstate class.

Potential

This class is used to define the particle potential. A potential usually depends on the quantum numbers involved for the definition of the Basis. A potential in coordinate space depends

  • coordinate (like x)
  • strength and geometry (width and depth of a finite well, curvature of harmonic oscillator, eventual offset ...)

It is important the possibility of input both analytically defined potentials, and numerical potential defined on a mesh read from file (the mesh of the potential expression and the calculation has to correspond). In this way will be possible to act "manually" on the potential, when a GUI will be implemented.

Currently are analytically implemented finite_well, box and harmonic_oscillator potentials.

Clone this wiki locally