-
-
Notifications
You must be signed in to change notification settings - Fork 21
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
SS-183: Find a Crystal structure of Diamond and Pass through Psi4 Quantum #314
Comments
Hi Sul. I am on to this. I got the PDB file of diamond. I will run it through this code. Diamond Coordinates :
|
Start thinking like a scientist. You have coordinates of diamond. Diamond comes as a solid that is packed of repeating units. Does psi4 take repeating units? Put an image of your coordinates here by dragging and dropping. Lets visualize it first. |
So you might have to choose a quantum software that can: https://pyscf.org/ 1.) Develop some code with pyscf that takes the input of diamond. |
1.) I am developing the PySCF code in here : The mol.build() method ultimately converts the given geometry into an internal format stored as Mole._atom, which can be accessed and manipulated for further computational chemistry tasks. 2.) Time-Dependent Self-Consistent Field (TD-SCF) excitations often referred to as Time-Dependent Density Functional Theory (TD-DFT) focuses on calculating the energies required to excite a molecule from its ground state to various excited states, based on its optimized geometry. Currently going through the documentation to get the final output. |
Next tasks: 1.) See if you can get the monomer or one cube from the lattice structure in xyz format. Once done, if you can achieve it. Pass it through https://github.com/wutobias/r2z to convert the cartersian into internal coordinates. See if that works if not, lets do it manually. 2.) Figure out which basis set and level of theory to use for gemstones. |
1.) Adamantane is the monomer in Diamond.
Conversion of Adamantane from cartersian into internal coordinates in Colab : |
That's not right. How is Adamantane the monomer of diamond? It's a functional group. There's no hydrogens. Think for a second on how you are going to do this. Come up with a plan and don't make wild guesses. |
Sorry @Sulstice now I understood the mistake. I think I need to draw a monomer of diamond from scratch. I will think more |
Yep, it's not always that easy. |
@rylandf If you're still alive, might need some help. |
Yeah I'm alive. I guess there's a few things to talk about but it looks like you're on the right track.
|
@rylandf thank you very much for your help and commitment on this. I really appreciate your help. @Sulstice As Raylad said below structure(unit cell not the monomer) will be partially counted when we do space filling. Furthermore, as we are planing to excite the unit cell of diamond the file that we only consider just for now is xyz coordinates file. Hence, according to the details that provided by @rylandf we can prepare a xyz file of the unit cell of diamond without considering the real bonds between atoms. And I think if we change the bond lengths of this structure it may effect the xyz coordinates of each atom as well? So if it is what is the minimum , maximum or how much of a bond length that we need to select?(The carbon–carbon (C–C) bond length in diamond usually is 1.54 Å so I think this value may be appropriate). Am I right Sul? |
@ANUGAMAGE Sure Looking at the pictures of diamond @rylandf with the repeating units. The input file is then what into PySCF:
from pyscf.pbc import gto as pbcgto
cell_diamond = pbcgto.M(atom = '''
C 0.0000 0.0000 0.0000
C 0 .8917 0.8917 0.8917
C 1.7834 1.7834 0.0000
C 2.6751 2.6751 0.8917
C 1.7834 0.0000 1.7834
C 2.6751 0.8917 2.6751
C 0.0000 1.7834 1.7834
C 0.8917 2.6751 2.6751
''',
basis = 'gth-szv',
pseudo = 'gth-pade',
a = np.eye(3) * 3.5668) There we go, that's the monomer of diamond for the input. @rylandf What level of theory and basis set do people use for something like diamond. I guess ab-initio with coupled cluster for the electron correlation is important for these systems? |
Whatever software you're using should have a setting for crystals, it might be called something like "periodic boundary conditions", "infinite lattice", etc. If you have the setting correct then the software will expect a structure file which repeats, and handle everything appropriately. Keep in mind I've only done DFT with pseudopotentials and planewaves basis. Either way, it depends dramatically on what you're trying to accomplish, what information you want from these calculations. I have a couple sources to share to give you some direction, but you're going to have to do some comparing between them to figure out the best for your needs. General best practice is to repeat the calculations with a couple basis sets and compare the results with each other and experimental data if available to test for convergence and see what best captures all the relevant forces. Here's a couple databases of force fields for different elemental systems: And here's a couple papers that may be relevant, the first one specificially used diamond as an example while analyzing basis set selection: |
@rylandf Thanks Ryland. PBC is our main issue. Psi4 doesn't process repeating units so we opted into for PySCF. How it handles PBC I don't exactly know. The first paper that you suggested is pretty good and I see some post-HF ab-initio methods (MP2) in the second paper seem pretty good. 1.) Suggest to me a level of theory and basis set that you think is appropriate for diamond based off the papers. |
going through few papers mentioned in above,
Hence I suggest below methods :
On the other hand, ab-initio is based on Many-Body Wavefunction Methods like Hartree-Fock (HF) and post-Hartree-Fock. Furthermore, this calculations used to identify the coordinates of a each electron and how each electron make interactions with each other and how they are correlated to each other. These methods are more complicated when comparing to DFT and highly computationally intensive. Double-Zeta (cc-pVDZ) : Each orbital is represented by two sets of functions, description of electronic structure by considering more flexibility in the wavefunction and capturing some correlation effects but not all. Triple-Zeta (cc-pVTZ) : This basis sets add a third set of functions for each orbital, further increasing the flexibility of the wavefunction and specially used for calculations requiring greater precision, such as geometry optimizations and vibrational frequency analyses. Quadruple-Zeta (cc-pVQZ) : include four sets of functions per orbital, to enhance the accuracy and precision significantly. Furthermore, They are capable of capturing even subtle correlation effects[Capture post-Hartree-Fock methods. they involve both dynamic correlation (fluctuations in electron distribution) and static correlation (near-degeneracy effects)] but come with increased computational costs. |
Hi @Sulstice , I ran TDDFT(Time dependent DFT) calculations for the unit cell of diamond and here are the results. I have used Matplotlib to get the uv excitation graph. Code :
Results :
Results indicate that "TD-SCF states [0, 2] not converged". I think we need more computational power to run these calculations. |
Plot things in Convergence happens in steps so you can try to minimize over 100 iteractions and the convergence failure can come out at maybe lets say step 30. Depending on where it failed on the iteration cycle can be a clue. |
We are going to test first cases of writing universal coordinates of gemstones
1.) Find a crystal PDB file of diamond with one unit or repeating units.
2.) Process the coordinates through a quantum software: https://github.com/psi4/psi4
Code:
The text was updated successfully, but these errors were encountered: