# pvpc **Repository Path**: luyi07/pvpc ## Basic Information - **Project Name**: pvpc - **Description**: Nuclear structure code: Projection after Variation of nucleon-Pair Condensates, pvpc for short. - **Primary Language**: C++ - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-09 - **Last Updated**: 2026-02-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README This is a nuclear structure code, based on M-scheme nucleon-pair condensates. With given shell model Hamiltonian, the code optimize one(or more) pair condensate, and projects out nuclear states with good angular momentum. What's new? --PVPC3.0 2021/6: 1) added new mode LAP: linear algebraic projection, now projection is more than 10 times faster. 2) modified mode tensordecomposition: now it uses LAP also, not any more quadrature. --PVPC2.3 2021/5: 1) added new mode DGTSR: double Gamow-Teller transition sum rules --PVPC2.2 2021/5: 1) more pair condensates: now one can order more than one pair condensates in variation 2) tensor decomposition: with a given pair condensate, one can decompose it into different parts with good angular momentum (J M) 3) added modes to skip Pandya transformation, i.e. do things without particle-hole transformation, with brute force --PVPC2.1 2021/4: 1) optimization: src/class.cpp PairCondensateProduct::ovemix11, PairCondensateProduct::ovemix21 are optimized, by introducing intermidiate matrixproducts, the total times of matrix multiplication is reduced. The same is done to cPCP::ovemix11 and cPCP::ovemix21 src/lapack-gemm.cpp used dgemm in blas to do matrix multiplication. For one multiplication with dim = 40-50, dgemm is about 4-5 times faster than our hand-written matrix-multiplication c++ lines, according to our test runs. 2) expansion on projection: now the code can project states our of SEVERAL pair condensates, not any more restricted to one pair condensate. --PVPC2.0 2021/3: 1) rename: because variation is added, so We rename the code as PVPC, standing for projection + variation + pair condensate 2) code reconstruction: now everything is built within or around a class named "PairCondensateProduct", which stands for < p1^n | xx | p2^n >, xx can be 1- or 2-body operators. In this way it seems easier to track the intermediate matrix products and traces. 3) variation: get a energetically lowest pair condensate by variation process, realized with gsl multifunction fdf_minimizer 4) triaxial projection: coded up the triaxial projection in the traditional quadrature way, with 3 Euler angles. 5) random-M0-pair: generate a proton/neutron random M=0 pair, with given space. This is just a small gadget for convenience. --PNPC1.2 2020/11: 1) speedup matrix elements to be 7 times faster --PNPC1.1 2020/10: 1) Rename: because projection is added, so I rename the code as PNPC, with P standing for projection. 2) axial projection: Added angular momentum projection codes, to project states out of pair condensates. So mode "e" is modified as below: 3) mode (e): With given M-scheme pairs, construct condensate configurations with total Mt = 0, project out bases with different J, and then diagonalize, getting eigenvalues and eigenwaves with good J. --mNPC1.0 2020/7: 1) mode (e): calculate Eg.s. = < w | H | w > / < w | w >, | w > = P^N >, with given P. 2) mode (u): unit tests on < w | w >, < w | A1^\dagger A2 | w >, < w | Q | w >