Skip to content

SU(N) CG coefficients. Python wrapper of C++ code.

Notifications You must be signed in to change notification settings

atlytle/ClebschGordan

Repository files navigation

16 May, 2024
------------

// Code written by Alex Arne, downloaded from
// https://homepages.physik.uni-muenchen.de/
// ~vondelft/Papers/ClebschGordan/ClebschGordan.cpp

Needed to install Lapack libraries
sudo apt install libblas-dev liblapack-dev

Compilation commands in Makefile

This may be relevant if you try to port the code to Python:
+ https://stackoverflow.com/questions/76776727/
 difference-in-values-returned-from-c-and-python-calling-the-same-underlying-la

24 May, 2024
------------
Installed swig. Testing example from https://www.swig.org/Doc1.3/Python.html
Minimal example works as advertised.

27 May, 2024
------------
Extending swig example to ClebschGordan.
Split header off from ClebschGordan.cpp.
Expose binomial_t implementation to swig interface in ClebschGordan.i

28 May, 2024
------------
Moved "binomial" object declaration to ClebschGordan.cpp.
Needed to use dynamic linking [https://www.swig.org/Doc1.3/Python.html]
to get Lapack libraries included. 
use_ClebschGordan.py works after build.

30 May, 2024
------------
Include "weight" class in ClebschGordan.i. These are the function
arguments to the downstream functions I want to use, so we
need to be able to create these. This didn't work 'out of the box'
because the C++ constructors don't set the weights directly, and python
doesn't have access to memory. Instead introduced new
get/set functionality. Thank you to Kevin Ingles for assistance
with this.

02 June, 2024
-------------
Factorise use_ClebschGordan.py. Reproduces behavior of
5) Calculate Clebsch-Gordan coefficients for S x S' -> S'' of ClebschGordan.cpp

03 June, 2024
-------------
Set up comparisons between C++ code and sympy SU(2) CGs.

06 June, 2024
-------------
Start thinking about a port of the C++ code. Work in CGport.py.

08 June, 2024
-------------
Fixed error in in CG_swig() [m1<-->m2] in coeffs(m1, m2,..).
This passed test_CG_swig() because I had only tested w1==w2.
Generalized to CG_swig(w1, w2, w3), verified tests pass.

11 June, 2024
-------------
Wrapped C++ weight object in python Weight object to reduce
boilerplate.

About

SU(N) CG coefficients. Python wrapper of C++ code.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published