Skip to content

mstekiel/crysfipy_symbolic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

42 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

crysfipy_-_symbolic

Symbolic calculations in sympy aiming at determining ananlytical formulas for energy levels of the f-electron in different symmetry environments.

To read

To check

TODO

  • Simplify the formulas, by looking at characterstic form, e.g. (a+b)/(a+c) find repeating substrings, wrapping imaginary unit into sqrt etc. -> look into the sympy.cse function.
  • Determine coefficients that occur only in squared form, as the sign of those will be impossible to determine from dE. However, there are some cases that also with linear terms the sign can be ambigous due to quantum phase.
  • Determine conditions on parameters that need to be fulfilled so that energies are real -> this should be automatic... -> check that eigenvalues are real
  • Implement yaml dumper -> using automatic protocol from pyaml library.
  • Test time needed to run calculations -> results in test folder.
  • Proper architecture of the dependencies.
  • Mapping between lattice-Schoenflies-HermannMauguin noteation for point group symmetry.
  • Construct the characteristic polynomial and investigate whether it can be divided by other polynomial. -> This works marvelously !!!
    • Take a look at the eigenvectors
  • Take a look at the Hamiltonian for all symmetries and J up to 5 and determine what kind of blocks are present.
  • Based on how the blocks look like, implement the solutions for eigenvalues for specific matrices -> depracted, getting roots of characteristic polynomial works well.
  • Code in which Bij parameters go into Hamiltonian, depending on symmetry.
    • please double-check my new implementation with www2.cpfs.mpg.de/~rotter/homepage_mcphase/manual/node133.html webpage (corrected, see commit history)
  • Run calculations for various symmetries and check what is the highes J for which the calculations runs fast (let's say up to 10 seconds).
  • See if there is influence on the simplified formulas by changing floats in cefmatrices.py into sympy.Rationals.

Ideas

Ideas how to improve:

  • Calculate only eigenvalues -> thats actually super fast!!!
  • Start by reducing columns and rows -> Seem like sympy is smart enough to do that on its own

Ideas how to analyse

  • If the system is overdefined one can assume some parameters are small, and substitute them in equations to 0. This will produce a system with reduced number of parameters which will act as a initial set of parameters that can be later fit
  • Find out about the physical boundaries on the parameters, like I think B_20>0

Architecture

Hamiltonian

  • has base, and matrix as defining properties
  • diagonalization
    • costly process, should be done only once by function call
    • calculating eigenvalues is way faster than calculating eigenvectors, so separate function should be used to call each procedure
    • eigenvalues can be degenerated

CEF Hamiltonian

  • is a Hamiltonian with additional properties:
    • has symmetry and J that define the base and matrix of Hamiltonian
    • can always? be reduced to block form
  • block form
    • each block is a Hamiltonian
    • eigenvalues from different blocks may be the same, in fact, there's always repeating eigenvaluesin case of J = half-integer (Kramers theorem)
    • how to store those repeated eigenvalues?
  • diagonalization should be done only in the block form, as it's too costly to diagonalize full matrix
  • how to store the eigenvalues/eigenvectors? override the inherited fields or make new ones?

Icing

  • nice printing
  • latex printing
  • yaml dimping
  • numerical evaluations

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published