QuantumLab-ZY / HamGNN

An E(3) equivariant Graph Neural Network for predicting electronic Hamiltonian matrix
GNU General Public License v3.0
63 stars 15 forks source link

Abacus Postprocess Code Not Running Correctly #33

Open smkMain opened 2 weeks ago

smkMain commented 2 weeks ago

Hello HamGNN Developers,

After what appears to be a successful compilation of the source code for abacus_postprocess, the calculation fails before the first SCF iteration when I try to run the code. To compile this code, I downloaded the source code for Abacus v3.5.3 from the git repository and replaced the 'source' folder with the 'source' folder provided with abacus_postprocess. I also tried compiling Abacus v3.5.3, the version which abacus_postprocess is based on, and the same calculation ran with no issues. Attached below is the abacus_postprocess output file, error file and input file from the failed calculation. My understanding is that one needs to be able to run abacus_postprocess in order to use HamGNN. If this is not correct, please do let me know.

Sam

abacus_postprocess_errorData.zip

BraunSakai commented 1 week ago

According to previous issues, the code complied by replacing the /source is only used for extracting H0, which cannot be used for SCF and other common calculations.

BraunSakai commented 1 week ago

Dear Dr. Zhong,

I have a question on how to get the similar output file, overlap.scfout, by using abacus_postprocess? Is any specific command line required in the INPUT file? Thank you so much.

smkMain commented 1 week ago

According to previous issues, the code complied by replacing the /source is only used for extracting H0, which cannot be used for SCF and other common calculations.

I did read the documentation for usage of the code using openmx. If the usage with Abacus is intended to be similar, then yes, I would expect that an abacus_postprocess executable appear after compiling. However, it looks like I only got another 'abacus' executable, NOT an abacus_postprocess executable. This executable fails to run a DFT calculation. I tried to compile the source code with CMake, as is done with Abacus. How would one compile the abacus_postprocess executable?

My understanding now is that the program is intended to via this procedure: 1) Use a version of Abacus from the Abacus repository to run DFT calculations 2) Use abacus_postprocess and other scripts to postprocess the DFT data in preparation for HamGNN. Is this correct?

BraunSakai commented 1 week ago

When running scf with a standard Abacus package, turn on the output of hs2 and chg, then you should again run the Abacus_postprocess in the same folder with the same INPUT. That will output the .csr files for H0 H and S.

smkMain commented 1 week ago

When running scf with a standard Abacus package, turn on the output of hs2 and chg, then you should again run the Abacus_postprocess in the same folder with the same INPUT. That will output the .csr files for H0 H and S.

Ok, thanks for the clarification. I'm still unclear about 1 thing; when I compile the source code provided for abacus-postprocess, I get an executable called 'abacus'. Is this the post-processing executable? Because it is just called 'abacus' and not 'abacus-postprocess', I got confused.

BraunSakai commented 1 week ago

When running scf with a standard Abacus package, turn on the output of hs2 and chg, then you should again run the Abacus_postprocess in the same folder with the same INPUT. That will output the .csr files for H0 H and S.

Ok, thanks for the clarification. I'm still unclear about 1 thing; when I compile the source code provided for abacus-postprocess, I get an executable called 'abacus'. Is this the post-processing executable? Because it is just called 'abacus' and not 'abacus-postprocess', I got confused.

The 'abacus' is just the 'abacus-postprocess' itself.

smkMain commented 1 week ago

When running scf with a standard Abacus package, turn on the output of hs2 and chg, then you should again run the Abacus_postprocess in the same folder with the same INPUT. That will output the .csr files for H0 H and S.

Ok, thanks for the clarification. I'm still unclear about 1 thing; when I compile the source code provided for abacus-postprocess, I get an executable called 'abacus'. Is this the post-processing executable? Because it is just called 'abacus' and not 'abacus-postprocess', I got confused.

The 'abacus' is just the 'abacus-postprocess' itself.

I see, I will try using this program and see if it works. Thanks for your help.