Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Do the coupling points need to be modified manually? #16

Open
YZhangSDU opened this issue Oct 18, 2022 · 4 comments
Open

Do the coupling points need to be modified manually? #16

YZhangSDU opened this issue Oct 18, 2022 · 4 comments

Comments

@YZhangSDU
Copy link

Dear Prof. Stephen Gibson,
You realy do a good job to write this program. I blieve that it has helped lots of people. I met one question when I used this program.
I wonder whether the cross point, namely the coupling point, need to be modified by myself, when I calculate the predissociation cross sections. Does this program automatically find the cross point?
This code depictedd in the program.
'about += f'Coupling at R = {self.R[240]:g} Angstroms (cm-2):'
Need I replace 'R[240]' with a new point which is at the vicinity of the cross point?
If the excited states potential energy curves are more than one and the cross points are at different internuclear distance R, Could this program accurately find the coupling points?

@stggh
Copy link
Owner

stggh commented Oct 18, 2022

Hi Shuai Zhang,
Thanks for your query. Unfortunately, I am travelling until 5 November, and only have my mobile phone to access the code. Would you be able to list more lines of the code that demonstrate the issue. In generate the crossing point is unimportant to the coupled-channel code. However, if you are referring to the matching point mx for the problem of all closed channels, then that has importance. I will try to respond as best I can.

@YZhangSDU
Copy link
Author

YZhangSDU commented Oct 18, 2022 via email

@stggh
Copy link
Owner

stggh commented Nov 8, 2022

Hi Shuai Zhang,
I have returned from my travels.

Your query concerned the value for the couping at the potential curve crossing points, rather than an arbitrary R[240] internuclear distance.

The crossing point index, between two potential energy curves, i, j, may be simply determined from:

rx = np.argmin(np.abs(self.VT[i, i] - self.VT[j, j]))

I have modified cse.py to return the values of the coupling at the crossing points. NB these should (will!) match the inputted values. e.g.

(py310) [Gibbo:.+master/examples]$ ipython
Python 3.10.6 (main, Oct 24 2022, 16:07:47) [GCC 11.2.0]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.4.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: import cse

In [2]: B = cse.Cse('O2', dirpath='potentials', suffix='.dat',
   ...:             VT=['B3S-1', '3P1', 'E3S-1', '3PR1'],
   ...:             coup=[40, 4000, 0, 0, 7000, 0])

In [3]: B
Out[3]: 

Molecule: O2  mass: 1.32801e-26 kg, 7.99746 amu
Electronic states:   B³Σ₁⁻   ³ΠE³Σ₁⁻   ³ΠCoupling (cm⁻¹) at crossing point (Rx(Å)):
        B³Σ₁⁻      ³ΠE³Σ₁⁻      ³Π40(1.455) 4000(1.185) 0(0.395)
                         0(1.225) 7000(1.220)
                                     0(1.330)

I will tidy up the formatting later. Note that the coupling values do match their inputted values.

I have also modified cse_setup.py to extract unicode electronic state labels from the inputted file name, so e.g. B3S-1.dat has the unicode term B3ΣΩ -. These provide the labels for the tablulated couplings, provided by the Class __repr__.

I hope the above helps you define your problem.

@YZhangSDU
Copy link
Author

Dear Prof. Stephen Gibson,
Thank you very much for your answer. Your further additions help me a lot and do address a question I had. Besides, I have some other questions. The more details and descriptions have been sent to your email address.
Looking forward to your reply!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants