# Tag Info

14

The question is too broad to be answered directly so I will provide a somewhat general scheme. Basically in an integral like $$\int d\mu A B C$$ one would seek to expand each part in irreducible representations of a given group, say for instance \begin{align} B=\frac{1}{\vert \mathbf{r}-\mathbf{r}^\prime\vert} =\frac{1}{r} \sum_{\ell} \left(\frac{r'}{r}\...

13

Psi4 and PySCF Psi4 and PySCF are free, open source programs that can do both parallel integrals and SCF. MPI parallellization is quite rare in quantum chemistry codes, since the algorithms don't tend to parallellize easily across nodes.. MPQC If you really want to do massively parallel calculations, then the Massively Parallel Quantum Chemistry (MPQC) ...

11

Your Octave code is trying to do the integral by quadrature, which makes very little sense since it will have a huge problems with the cusp. Since this is a one-center problem, the best approach is to use the Legendre expansion for $|r_1-r_2|^{-1}$, which decomposes the interaction into a radial part and an angular part: $r_{12}^{-1} = \frac {4\pi} {r_>} ... 10 While this earlier question on our site was asking why fewer 2e- integrals were printed by PySCF than expected, and your question is simply asking how to calculate the 1e- and 2e- integrals in the first place (so the two questions are not duplicated), that question gave an excellent example for how to print the 2e- integrals for the He atom in a 6-31g basis ... 10 You might be interested to know that I've recently presented a general solution to this problem in Curing basis set overcompleteness with pivoted Cholesky decompositions, J. Chem. Phys. 151, 241102 (2019). The method is amazingly versatile, it also works if you have nuclei that are "unphysically" close to each other as I showed in Accurate reproduction of ... 9 First, you have to transform all the basis functions into the irreducible representations (irreps) of the point group of the molecule. You can do this with standard projection formulas. Once, you know the irreps of the basis functions, you have to look at the product table of the point group to find out whether the product of those four basis functions ... 9 General vs segmented contraction Unless one is using a fully decontracted a.k.a "primitive" basis set, one uses contracted Gaussian-type orbitals (cGTOs), which are given as a linear combination of the primitive Gaussian-type orbitals (pGTOs):$\chi_i^\text{cGTO}({\bf r}) = \sum_{\alpha} d_{\alpha i} \chi_\alpha^\text{pGTO}({\bf r}) $. ... 8 This can be solved analytically, a complete solution can be found here To refrain from rewriting the entire derivation I will only say that you need to integrate over all 3 dimensional degrees of freedom for both electrons, so TAR86 is correct. In the derivation at the link, the distance between the electrons ($\mid r_1 - r_2 \mid \equiv r_{12}$) is better ... 8 Integral Screening It is possible to place upper bounds on integrals based on the Cauchy-Schwartz inequality: $$\left( a a | b b \right) \ge \left( a c | b d \right)$$ If the first integral is computed and deemed insignificant, the latter is as well. One can further combine this with the appropriate density matrix element and decide that the resulting ... 8 I assume you're referring to eq 51 of the Hirata-Head-Gordon-Bartlett paper. One should note that these are not two-electron integrals, since there is only one spatial position; these are rather weighted four-center one-electron integrals. As always, the problem when you have four indices is that there is a huge number of integrals that come out, and you ... 7 MRCC There are more programs with parallel SCF capability, but it is quite hard to scale SCF (with HF exchange) to large number of cores. MRCC indeed has a recent hybrid multi-node (MPI) & multi-threaded (OpenMP) parallel HF/hybrid DFT code relying on an integral direct density fitting algorithm, but you should not expect great scaling above few hundred ... 6 MOLPRO Continuing Susi's excellent benchmarking for$\ce{Zn}$and$\ce{Zn_2}$, MOLPRO 2012 gives for$\ce{Zn}$: RHF-SCF energy: -1777.84665521 CPU time for INT: 0.42 SEC CPU time for RHF: 0.01 SEC Disk used for INT: 12.87 MB However the RHF energy was converged already at iteration 1, so there wasn't much work to do: ITERATION DDIFF ... 6 AFAIK the standard way is to obtain the memory efficiency at the expense of some code repetition in the innermost loop. A preliminary example goes like: Construct a nested loop that only loops over the non-redundant (i,j,k,l) quartets. Say by do i =1,norb do j =1,i do k =1,i do l =1,k if(k==i .and. l>j) cycle In ... 5 "I was able to guess most of results, except the ones with value 0.663472." I am able to confirm that your integrals are correct even for the 0.663472 case, because by calculating them myself in MOLPRO (a completely different program from what you used), I get the same indices of 2 2 1 1: &FCI NORB= 2,NELEC= 2,MS2= 0, ORBSYM=1,5,ISYM=0, 0.... 5 To start with, while it's not as necessary, you can apply symmetry arguments to one-electron integrals. Consider$\langle\mu|O_1|\nu\rangle$, where$O_1$is some one-electron operator. If the molecule has some point group symmetry, we can form basis functions/operators that are irreducible representations of the group. Once we have the functions expressed in ... 4 The work is a single integral over$|r_1-r_2|$, not a double integral over$r_1$and$r_2$. As you are fixing particle 1, you shouldn't integrate over particle 1. Moreover, the work is$w(r) = \int Fdr$, not$w(r) = \int Frdr$, as you can see from dimensional analysis ($dr$has the dimension of length, too). Therefore, you treat$r_1$as constant, integrate ... 4 NWChem NWChem is an ideal package for massively parallel needs. JCP recently published a collection of articles focused on the special topic "Electronic Structure Software". Not only NWCHem, GAMESS, and ACES4, but various other packages have the capability to do massively parallel calculations. 4 MRCC MRCC stores 1- and 2-electron integrals in an ASCII file called fort.55 which is formatted very similarly to FCIDUMP. The fort.55 file stores the integral values and integral indices in exactly the same way as in FCIDUMP, but has a different header. One has to delete the header of the FCIDUMP file and replace it with something like this (here my example ... 4 I figured it might be worthwhile to address some the misconceptions in the question, as they are probably fairly common. No SCF prior The AO two-electron integrals (and actually all the AO integrals used in the SCF procedure) can be generated before doing any cycles. This is because they are just among atomic orbitals, which we know from the beginning of the ... 4 I would like to post a partial answer that I have for now. For the indices ijkl in the FCIDUMP file, it corresponds to the integral (see https://theochem.github.io/horton/2.0.2/user_hamiltonian_io.html) $$\tag{1} \int dx_1dx_2\chi_i^*(x_1)\chi_k^*(x_2)\chi_j(x_1)\chi_l(x_2)$$ while the indices in the paper, it is$$\tag{2} \int dx_1dx_2\chi_i^*(x_1)\chi_j^... 4 Boy, you're not starting off easy. Proper implementation of symmetry is quite a job, especially since most systems of interest nowadays have no symmetry. For a reference, you can look at e.g. Dovesi's work on the use of symmetry in CRYSTAL, which is a periodic Hartree-Fock code using Gaussian orbitals. Symmetry is much more important in the periodic case, ... 3 GAMESS(US) has this facility implemented, but this feature may not be available in the public release. 3 Psi4 Psi4 provides functions for reading and writing FCIDUMP files from wavefunction objects. Using Psi4 as a Python module, these look something like: import psi4 #Writing (default fname is "INTDUMP") E, wfn = psi4.energy('scf', return_wfn=True) psi4.fcidump(wfn) #Reading ##Returns dict of numerous properties including 1e ("hcore") and ... 3 In the density fitting / resolution-of-the-identity (RI) formalism, a two-electron integral$(ij|kl)$in the atomic-orbital basis is approximated as$(ij|kl) \approx \sum_{PQ} (ij|P) (P|Q)^{-1} (Q|kl)$where$P$and$Q$are auxiliary functions, and$(P|Q)^{-1}\$ is the inverse Coulomb overlap matrix. The RI expression can be written in a form that resembles ...

3

Here is an updated version of your code that I believe now works. I had to add in a few of the values that were computed elsewhere in your code, but otherwise it is mostly the same. import numpy as np nb = 4 S = np.zeros([nb,nb]) # nb is the number of basis set and I have it in the code distancess=np.array([[0.0, 0.0, 0.0], [0.0, 0.0, 1.4]]) #is an array ...

2

I'm not sure how your current code is supposed to work. Focusing just on the first half: electron2 = [] for line in open('Two_Electron.txt'): r,c,d,e,v = line.split() r = int(r)-1 c = int(c)-1 d = int(d)-1 e = int(e)-1 v = float(v) if c == 0: electron2.append( [v] ) else: electron2[-1].append(v) It ...

2

GAMESS Most parts of GAMESS are parallelised with MPI (including SCF), and can run on multiple CPUs. The parallel SCF runs entirely on replicated memory, however other parallel algorithms such as MP2, CCSD etc. use distributed memory. GAMESS is free, and you can also access the source code. Some parts of the GAMESS are also parallelised with OpenMP like the ...

Only top voted, non community-wiki answers of a minimum length are eligible