Coder Social home page Coder Social logo

Comments (3)

kwnminho avatar kwnminho commented on July 29, 2024 1

This is working great and I like log scale coloring. Thank you for impressive jobs. I believe we can close this.

from arc-alkali-rydberg-calculator.

nikolasibalic avatar nikolasibalic commented on July 29, 2024

Hi @kwnminho ,

Thank you for question! I will look tomorrow into more details about this, but here is a preliminary summary:

  • Basis is expected to be bigger because M=m1+m2 is not anymore conserved for theta not equal 0.
  • I tried quickly reducing the basis by taking smaller detuning range - I see there is level shift but smaller than in case theta = 0. This can be expected. I should add something to more easily highlight relevant state.
  • If you work only at large distances (away from spaghetti region), you can use getC6perturbatively. Unfortunately, I see that I've introduced some bug in this function in recent updates, that breaks this function. I will fix this!

I will try to:

  • fix mentioned bug;
  • add clearer highlighting of the state; and
  • check if there are any new beasts appearing.

Will write then with more info here.

from arc-alkali-rydberg-calculator.

nikolasibalic avatar nikolasibalic commented on July 29, 2024

Hi @kwnminho

I've pushed updates I wanted, and new version is available via pip.
For getting C6 quickly best is to use getC6perturbatively. E.g.

n0 = 97
l0 = 2
j0 = 2.5
phi = 0 
dn = 10 
deltaMax = 25e9 

thetaList = np.linspace(0,2*np.pi,51)
mj = [2.5]
colourList = ["b","g","r"]

ax = plt.subplot(111, projection='polar')
ax.set_theta_zero_location("N")
line = []
    
for i in [0]:
    calculation = PairStateInteractions(Rubidium(),
                                        n0,l0,j0,n0,l0,j0,
                                        mj[i], mj[i])
    c6 = []
    for t in thetaList:
        C6=calculation.getC6perturbatively(t,phi, dn, deltaMax);
        c6.append(abs(C6))
    
    # plot results
    lineLegend, = plt.plot(thetaList,c6,"-",
                           color=colourList[i],label=("mj=%d/2"%int(2*mj[i])))
    line.append(lineLegend)
        
plt.legend(handles=line,fontsize=10)
plt.title("Rb, pairstate  97 $D_{5/2}$, $|C_6|$ in GHz $\mu$m$^{6}$",fontsize=10)
plt.show()

will give

97d_5_2_c6

For going to full pair-state calculation, as mentioned earlier, M=m1+m2 is not conserved anymore. Hence we need to include more states in the basis. This will slow down calculation, but, how many states you need to include ultimately depends on how close your atoms are. Unfortunately, there is no simple criteria - you have to include more states (larger principal quantum number range and energy range) until you are satisfied with experimental results. This is because in spaghetti region there some pair-state, originally far off from the considered one, can approach this state due to interactions.

Example of simple calculation, that uses highlighting on logarithmic scale added in the new version (see highlightScale), is

nRyd = 97
lRyd = 2
jRyd = 2.5
mjRyd = 2.5
calc1 = PairStateInteractions(Rubidium(),
                              nRyd, lRyd, jRyd,
                              nRyd, lRyd, jRyd,
                              mjRyd, mjRyd, interactionsUpTo=1)
theta = 0
calc1.defineBasis(theta, 0., 4, 5, 7e9)

rvdw = calc1.getLeRoyRadius()
calc1.diagonalise(np.linspace(rvdw,10.0,100),200,progressOutput=True)

calc1.plotLevelDiagram(highlightScale='log-2')
calc1.ax.set_xlim(rvdw,10.0,)
calc1.ax.set_ylim(-2,2)
calc1.showPlot()

produces

pair-state

@kwnminho Let me know if this answers/helps with your question, so that this issue can be closed. Or otherwise, let me know if there are remaining problems.

from arc-alkali-rydberg-calculator.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.