-
Notifications
You must be signed in to change notification settings - Fork 9
Classes
Classes to be implemented:
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 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 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.
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.
Comment creating comment pages, eventually.