From 3736f3c49ce62308b08bf03e23074d87c5a20b02 Mon Sep 17 00:00:00 2001 From: knc6 Date: Sat, 13 Apr 2024 08:58:16 -0400 Subject: [PATCH 1/9] Add intermat. --- setup.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/setup.py b/setup.py index cbef4ec..794509d 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ "numpy>=1.22.0", "scipy>=1.6.3", "jarvis-tools>=2021.07.19", - "alignn", + # "alignn", ], long_description=long_description, long_description_content_type="text/markdown", @@ -24,5 +24,8 @@ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ], + scripts=[ + "intermat/run_intermat.py", + ], python_requires=">=3.8", ) From 8d24e95237b81d35e1fdcb331d2a43fdd88562e9 Mon Sep 17 00:00:00 2001 From: knc6 Date: Sat, 13 Apr 2024 09:01:55 -0400 Subject: [PATCH 2/9] ASE hard dependency remove. --- intermat/calculators.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/intermat/calculators.py b/intermat/calculators.py index ef1a9f7..6cca2d9 100644 --- a/intermat/calculators.py +++ b/intermat/calculators.py @@ -11,8 +11,6 @@ from jarvis.tasks.qe.qe import QEjob import numpy as np from jarvis.core.atoms import Atoms, ase_to_atoms -from ase.optimize.fire import FIRE -from ase.constraints import ExpCellFilter from jarvis.db.jsonutils import loadjson @@ -216,9 +214,9 @@ def predict( if "potential" not in self.extra_params: # Download from # https://doi.org/10.6084/m9.figshare.24187602 - self.extra_params["potential"] = ( - "Mishin-Ni-Al-Co-2013.eam.alloy" - ) + self.extra_params[ + "potential" + ] = "Mishin-Ni-Al-Co-2013.eam.alloy" from ase.calculators.eam import EAM @@ -308,6 +306,8 @@ def predict( info["atoms"] = ase_to_atoms(atoms) return info # ,forces,stress elif self.relax_atoms and not self.relax_cell: + from ase.optimize.fire import FIRE + optimizer = FIRE dyn = optimizer(atoms) dyn.run(fmax=self.fmax, steps=self.steps) @@ -317,6 +317,9 @@ def predict( info["atoms"] = atoms return info # ,forces,stress elif self.relax_cell: + from ase.optimize.fire import FIRE + from ase.constraints import ExpCellFilter + atoms = ExpCellFilter(atoms) optimizer = FIRE dyn = optimizer(atoms) From 0e0e350ee1ce5e3b61c9b322e41c3f9da3216848 Mon Sep 17 00:00:00 2001 From: knc6 Date: Sat, 13 Apr 2024 09:05:26 -0400 Subject: [PATCH 3/9] Update config. --- intermat/config.py | 2 +- setup.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/intermat/config.py b/intermat/config.py index 0beebe8..39840be 100644 --- a/intermat/config.py +++ b/intermat/config.py @@ -126,7 +126,7 @@ maxiter=100, convergence={"energy": 1}, # convergence={"density": 1e-12, "energy": 1e-1}, - eigensolver=Davidson(niter=2), + # eigensolver=Davidson(niter=2), out_file="gs.out", out_gpw="out.gpw", kp_length=10, diff --git a/setup.py b/setup.py index 794509d..d005a9b 100644 --- a/setup.py +++ b/setup.py @@ -13,6 +13,7 @@ "numpy>=1.22.0", "scipy>=1.6.3", "jarvis-tools>=2021.07.19", + "pydantic_settings", # "alignn", ], long_description=long_description, From 20ed5d365bae5910de1484e8136d882f0d47daf5 Mon Sep 17 00:00:00 2001 From: knc6 Date: Sat, 13 Apr 2024 09:10:27 -0400 Subject: [PATCH 4/9] Fix config arg. --- intermat/run_intermat.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/intermat/run_intermat.py b/intermat/run_intermat.py index 9032e73..8a3612d 100644 --- a/intermat/run_intermat.py +++ b/intermat/run_intermat.py @@ -145,4 +145,4 @@ def main(config_file_or_dict): help="Settings file for intermat.", ) args = parser.parse_args(sys.argv[1:]) - main(config_file=args.config_file) + main(config_file_or_dict=args.config_file) From 71b28298cb03cc70b82cb9adad4ec6fe263d157a Mon Sep 17 00:00:00 2001 From: knc6 Date: Sat, 13 Apr 2024 09:17:43 -0400 Subject: [PATCH 5/9] Fix cli. --- intermat/run_intermat.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/intermat/run_intermat.py b/intermat/run_intermat.py index 8a3612d..aa62bf7 100644 --- a/intermat/run_intermat.py +++ b/intermat/run_intermat.py @@ -21,17 +21,24 @@ def main(config_file_or_dict): else: config_dat = loadjson(config_file_or_dict) # A few default setting check - if not os.path.exists(config_dat["lammps_params"]["pair_coeff"]): + pprint.pprint(config_dat) + if "lammps_params" in config_dat and not os.path.exists( + config_dat["lammps_params"]["pair_coeff"] + ): config_dat["lammps_params"]["pair_coeff"] = os.path.join( os.path.dirname(__file__), "tests", "Mishin-Ni-Al-Co-2013.eam.alloy", ) - if not os.path.exists(config_dat["lammps_params"]["control_file"]): + if "lammps_params" in config_dat and not os.path.exists( + config_dat["lammps_params"]["control_file"] + ): config_dat["lammps_params"]["control_file"] = os.path.join( os.path.dirname(__file__), "tests", "relax.mod" ) - if not os.path.exists(config_dat["potential"]): + if "potential" in config_dat and not os.path.exists( + config_dat["potential"] + ): config_dat["potential"] = os.path.join( os.path.dirname(__file__), "tests", From 9254c8255aff0e858bc49436ff7a544525f614a7 Mon Sep 17 00:00:00 2001 From: knc6 Date: Sat, 13 Apr 2024 11:21:37 -0400 Subject: [PATCH 6/9] Add results. --- intermat/run_intermat.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/intermat/run_intermat.py b/intermat/run_intermat.py index aa62bf7..6e2324d 100644 --- a/intermat/run_intermat.py +++ b/intermat/run_intermat.py @@ -13,6 +13,7 @@ from intermat.config import IntermatConfig from jarvis.db.jsonutils import loadjson from jarvis.db.figshare import get_jid_data +from jarvis.db.jsonutils import dumpjson def main(config_file_or_dict): @@ -136,10 +137,11 @@ def main(config_file_or_dict): t2 = time.time() print("Time taken:", t2 - t1) info = {} - info["syste"] = combined_atoms + print("combined_atoms", combined_atoms) + info["systems"] = [s.to_dict() for s in combined_atoms] info["time_taken"] = t2 - t1 info["wads"] = wads - return wads + return info if __name__ == "__main__": @@ -152,4 +154,5 @@ def main(config_file_or_dict): help="Settings file for intermat.", ) args = parser.parse_args(sys.argv[1:]) - main(config_file_or_dict=args.config_file) + results = main(config_file_or_dict=args.config_file) + dumpjson(data=results, filename="intermat_results.json") From 4bfd6d865f675d83e3c91e047b81bc9690b16346 Mon Sep 17 00:00:00 2001 From: knc6 Date: Sat, 13 Apr 2024 14:01:26 -0400 Subject: [PATCH 7/9] Add plot. --- intermat/run_intermat.py | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/intermat/run_intermat.py b/intermat/run_intermat.py index 6e2324d..c0384e4 100644 --- a/intermat/run_intermat.py +++ b/intermat/run_intermat.py @@ -95,16 +95,17 @@ def main(config_file_or_dict): + " It might be energetically very high/less stable." ) print(combined_atoms[0]) + combined_atoms = combined_atoms[0] else: if config.verbose: for ii, i in enumerate(combined_atoms): print("Structure ", ii) print(i) print() - wads = "" + # wads = "" if config.calculator_method != "": # print("combined_atoms", combined_atoms) - + print("config.calculator_method", config.calculator_method) wads = x.calculate_wad( method=config.calculator_method, do_surfaces=config.do_surfaces, @@ -116,12 +117,14 @@ def main(config_file_or_dict): combined_atoms = Atoms.from_dict( x.generated_interfaces[index]["generated_interface"] ) - print("Generated interface:\n", combined_atoms) - if config.plot_wads: - + # print("Generated interface:\n", combined_atoms) + if config.plot_wads and config.disp_intvl != 0: + # xy = np.array(x.xy) + # print('xy', xy) X = x.X Y = x.Y - + # X = xy[:,0] + # Y = xy[:,1] wads = np.array(wads).reshape(len(X), len(Y)) fig, ax = plt.subplots(subplot_kw={"projection": "3d"}) @@ -137,10 +140,11 @@ def main(config_file_or_dict): t2 = time.time() print("Time taken:", t2 - t1) info = {} - print("combined_atoms", combined_atoms) - info["systems"] = [s.to_dict() for s in combined_atoms] + # print("combined_atoms", combined_atoms) + info["systems"] = combined_atoms.to_dict() info["time_taken"] = t2 - t1 - info["wads"] = wads + info["wads"] = wads.tolist() + print("info", info) return info From f3d9bd6d67dad5eeaf4dec6ca16ca28db6172797 Mon Sep 17 00:00:00 2001 From: knc6 Date: Sat, 13 Apr 2024 14:25:52 -0400 Subject: [PATCH 8/9] Modify run script. --- intermat/run_intermat.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/intermat/run_intermat.py b/intermat/run_intermat.py index c0384e4..f6f2101 100644 --- a/intermat/run_intermat.py +++ b/intermat/run_intermat.py @@ -102,7 +102,7 @@ def main(config_file_or_dict): print("Structure ", ii) print(i) print() - # wads = "" + wads = "" if config.calculator_method != "": # print("combined_atoms", combined_atoms) print("config.calculator_method", config.calculator_method) @@ -137,13 +137,14 @@ def main(config_file_or_dict): # import plotly.graph_objects as go # fig = go.Figure(data=[go.Surface(z=wads, x=X, y=Y)]) # fig.show() + wads = wads.tolist() t2 = time.time() print("Time taken:", t2 - t1) info = {} # print("combined_atoms", combined_atoms) info["systems"] = combined_atoms.to_dict() info["time_taken"] = t2 - t1 - info["wads"] = wads.tolist() + info["wads"] = wads print("info", info) return info From eb5d4a4c9030b82d637e7e78f5419a4c1e98da6b Mon Sep 17 00:00:00 2001 From: Kamal Choudhary Date: Sat, 13 Apr 2024 16:21:35 -0400 Subject: [PATCH 9/9] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fc13f58..74e18ad 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,5 @@ ![alt text](https://github.com/usnistgov/intermat/actions/workflows/main.yml/badge.svg) - +[![name](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/gist/knc6/0d9aa89f671687c6e925eea2be9b824a/intermat_gettingstarted.ipynb)