This thread is locked.Only browsing is available.
 Top Page > Browsing
 Output format of the stress tensor Date: 2017/05/22 23:44 Name: Pascal Bliem   Dear OpenMX developers,when the stress tensor is calculated in the variable cell optimisation, the output in the System.Name.out file looks like this: Cell vectors (Ang.) and derivatives of total energy with respect to them (Hartree/Bohr) ********************************************************************************************************************** a1 = 3.45297 0.00000 0.00000 dE/da1 = 0.00653 0.00000 -0.00000 a2 = 0.00000 3.18735 0.00000 dE/da2 = 0.00000 -0.00415 0.00000 a3 = 0.00000 0.00000 3.32548 dE/da3 = -0.00000 0.00000 0.00012Unfortunately, there are very few digits on the values for the derivatives of total energy with respect to the cell vectors. Is there another place in one of the the output files where I can find these values with more digits? Or can I somehow enable an output with higher precision on these values?Cheers,Pascal
 Page: [1]

 Re: Output format of the stress tensor ( No.1 ) Date: 2017/05/29 09:56 Name: Yung Ting Lee  Dear Pascal,If you want to have more decimal digits of lattice vectors or dE/da, you can modify the "MD_pac.c" code.The code in "MD_pac.c" for printing lattice vectors and dE/da is written in the line 1477-1482 as below:-------------------------------------------------------------printf(" Cell vectors and derivatives of total energy with respect to them\n");printf(" a1(Ang.) =%10.5f %10.5f %10.5f dE/da1(a.u.) =%10.5f %10.5f %10.5f\n", tv[1][1]*BohrR,tv[1][2]*BohrR,tv[1][3]*BohrR,dE_da[1][1],dE_da[1][2],dE_da[1][3]);printf(" a2(Ang.) =%10.5f %10.5f %10.5f dE/da2(a.u.) =%10.5f %10.5f %10.5f\n", tv[2][1]*BohrR,tv[2][2]*BohrR,tv[2][3]*BohrR,dE_da[2][1],dE_da[2][2],dE_da[2][3]);printf(" a3(Ang.) =%10.5f %10.5f %10.5f dE/da3(a.u.) =%10.5f %10.5f %10.5f\n", tv[3][1]*BohrR,tv[3][2]*BohrR,tv[3][3]*BohrR,dE_da[3][1],dE_da[3][2],dE_da[3][3]);-------------------------------------------------------------You can change float value of lattice vectors or dE/da from 5 decimal digits to 10 or more decimal digits, e.g. "%10.5f" ->"%15.10f" in the line 1477.Then, recompile the OpenMX code and use it to perform calculations. The output file will show more decimal digits.For example,-------------------------------------------------------------printf(" Cell vectors and derivatives of total energy with respect to them\n");printf(" a1(Ang.) =%15.10f %15.10f %15.10f dE/da1(a.u.) =%15.10f %15.10f %15.10f\n",tv[1][1]*BohrR,tv[1][2]*BohrR,tv[1][3]*BohrR,dE_da[1][1],dE_da[1][2],dE_da[1][3]);printf(" a2(Ang.) =%15.10f %15.10f %15.10f dE/da2(a.u.) =%15.10f %15.10f %15.10f\n",tv[2][1]*BohrR,tv[2][2]*BohrR,tv[2][3]*BohrR,dE_da[2][1],dE_da[2][2],dE_da[2][3]);printf(" a3(Ang.) =%15.10f %15.10f %15.10f dE/da3(a.u.) =%15.10f %15.10f %15.10f\n",tv[3][1]*BohrR,tv[3][2]*BohrR,tv[3][3]*BohrR,dE_da[3][1],dE_da[3][2],dE_da[3][3]);-------------------------------------------------------------Best regards,Yung Ting Lee

 Page: [1]