-
Notifications
You must be signed in to change notification settings - Fork 175
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* fix typo in github actions release to conda * Get from_poscar_path only when from_poscar is true (#537) Change-Id: I17774bee345634e4e72bd783e8112eefaaf9f0d3 Co-authored-by: Zhengju Sha <jenny@bytedance.com> * feature: merge run.py * fix:fix syntax bug * fix summary ratio bug * fix: fix bug of var(calypso_run_opt_path) not defined * reorganize code v1 * add: add unittest * add: add some explainations of dp+calypso in README.md * change a little bit in readme.md * change position of function * add deepmd-kit>=2.0.1 install_require in setup.py * test failed cause no tensorflow module so add tensorflow in setup.py * calc model devi in command line * fix some small bugs of modd and PBS script of cpu * fix unittest * delete parse_input.dat * fix unittest * first reorganization * secord reorganization * fix bugs * fix: fix bugs in modd_calypso.py write_modd.py and run.py * change functions name and fix bugs * remove modd_calypso.py * remove: remove modd_calypso.py * remove some useless outputs * restore dispatcher/PBS.py * refactor: make some changes in calypso related code - rename model_devi_calypso.py run_calypso.py - rename calypso.py make_calypso.py - add new file calypso_check_outcar.py calypso_run_opt.py - add new file calypso_run_model_devi.py - delete write_modd.py - modify README.md and run.py * refactor: move calypso main code(run.py) into run_calypso.py and modify test_calypso.py * docs: modify README.md related to CALYPSO * delete some useless comments in run.py * add write_model_devi_out function into make_calypso.py for passing unittest * fix a spelling mistake in calypso_run_opt.py (famx -> fmax) * change runopt script's name from run_opt.py to calypso_run_opt.py and fix bug in runopt script * fix unittest Co-authored-by: Han Wang <amcadmus@gmail.com> Co-authored-by: felix5572 <felix5572@github.com> Co-authored-by: shazj99 <shazj99@gmail.com> Co-authored-by: Zhengju Sha <jenny@bytedance.com> Co-authored-by: Han Wang <wang_han@iapcm.ac.cn>
- Loading branch information
1 parent
ff77dc6
commit 37df129
Showing
12 changed files
with
1,336 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -40,3 +40,4 @@ dbconfig.json | |
.vscode/* | ||
.idea/* | ||
_build | ||
tests/generator/calypso_test_path |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
#!/usr/bin/env python3 | ||
# -*- coding: utf-8 -*- | ||
|
||
import numpy as np | ||
import os,sys,glob,time | ||
from deepmd.calculator import DP | ||
from ase.io import read | ||
|
||
''' | ||
check if structure optimization worked well | ||
if not, this script will generate a fake outcar | ||
''' | ||
|
||
def Get_Element_Num(elements): | ||
'''Using the Atoms.symples to Know Element&Num''' | ||
element = [] | ||
ele = {} | ||
element.append(elements[0]) | ||
for x in elements: | ||
if x not in element : | ||
element.append(x) | ||
for x in element: | ||
ele[x] = elements.count(x) | ||
return element, ele | ||
|
||
def Write_Contcar(element, ele, lat, pos): | ||
'''Write CONTCAR''' | ||
f = open('CONTCAR','w') | ||
f.write('ASE-DPKit-FAILED-nan\n') | ||
f.write('1.0\n') | ||
for i in range(3): | ||
f.write('%15.10f %15.10f %15.10f\n' % tuple(lat[i])) | ||
for x in element: | ||
f.write(x + ' ') | ||
f.write('\n') | ||
for x in element: | ||
f.write(str(ele[x]) + ' ') | ||
f.write('\n') | ||
f.write('Direct\n') | ||
na = sum(ele.values()) | ||
dpos = np.dot(pos,np.linalg.inv(lat)) | ||
for i in range(na): | ||
f.write('%15.10f %15.10f %15.10f\n' % tuple(dpos[i])) | ||
|
||
def Write_Outcar(element, ele, volume, lat, pos, ene, force, stress,pstress): | ||
'''Write OUTCAR''' | ||
f = open('OUTCAR','w') | ||
for x in element: | ||
f.write('VRHFIN =' + str(x) + '\n') | ||
f.write('ions per type =') | ||
for x in element: | ||
f.write('%5d' % ele[x]) | ||
#f.write('\nvolume of cell :\n') | ||
f.write('\nDirection XX YY ZZ XY YZ ZX\n') | ||
f.write('in kB') | ||
f.write('%15.6f' % stress[0]) | ||
f.write('%15.6f' % stress[1]) | ||
f.write('%15.6f' % stress[2]) | ||
f.write('%15.6f' % stress[3]) | ||
f.write('%15.6f' % stress[4]) | ||
f.write('%15.6f' % stress[5]) | ||
f.write('\n') | ||
ext_pressure = np.sum(stress[0] + stress[1] + stress[2])/3.0 - pstress | ||
f.write('external pressure = %20.6f kB Pullay stress = %20.6f kB\n'% (ext_pressure, pstress)) | ||
f.write('volume of cell : %20.6f\n' % volume) | ||
f.write('direct lattice vectors\n') | ||
for i in range(3): | ||
f.write('%10.6f %10.6f %10.6f\n' % tuple(lat[i])) | ||
f.write('POSITION TOTAL-FORCE(eV/Angst)\n') | ||
f.write('-------------------------------------------------------------------\n') | ||
na = sum(ele.values()) | ||
for i in range(na): | ||
f.write('%15.6f %15.6f %15.6f' % tuple(pos[i])) | ||
f.write('%15.6f %15.6f %15.6f\n' % tuple(force[i])) | ||
f.write('-------------------------------------------------------------------\n') | ||
f.write('energy without entropy= %20.6f %20.6f\n' % (ene, ene)) | ||
enthalpy = ene + pstress * volume / 1602.17733 | ||
f.write('enthalpy is TOTEN = %20.6f %20.6f\n' % (enthalpy, enthalpy)) | ||
|
||
def check(): | ||
|
||
from deepmd.calculator import DP | ||
from ase.io import read | ||
model_path = sys.argv[1] | ||
Model_List = glob.glob('%s/graph*pb'%model_path) | ||
calc = DP(model='%s'%(Model_List[0])) # init the model before iteration | ||
|
||
to_be_opti = read('POSCAR') | ||
to_be_opti.calc = calc | ||
# --------------------------------- | ||
# for failed outcar | ||
atoms_symbols_f = to_be_opti.get_chemical_symbols() | ||
element_f, ele_f = Get_Element_Num(atoms_symbols_f) | ||
atoms_vol_f = to_be_opti.get_volume() | ||
atoms_stress_f = to_be_opti.get_stress() | ||
atoms_stress_f = atoms_stress_f/(0.01*0.6242) | ||
atoms_lat_f = to_be_opti.cell | ||
atoms_pos_f = to_be_opti.positions | ||
atoms_force_f = to_be_opti.get_forces() | ||
atoms_ene_f = 610612509 | ||
# --------------------------------- | ||
Write_Contcar(element_f, ele_f, atoms_lat_f, atoms_pos_f) | ||
Write_Outcar(element_f, ele_f, atoms_vol_f, atoms_lat_f, atoms_pos_f,atoms_ene_f, atoms_force_f, atoms_stress_f * -10.0, 0) | ||
|
||
cwd = os.getcwd() | ||
if not os.path.exists(os.path.join(cwd,'OUTCAR')): | ||
check() |
Oops, something went wrong.