From 33f2ede3f1a3b516acb57e91826d7da4745e3260 Mon Sep 17 00:00:00 2001 From: mkirsz <s1351949@sms.ed.ac.uk> Date: Wed, 20 Nov 2024 13:58:39 +0000 Subject: [PATCH] added missing conversion for stress --- include/tadah/mlip/dataset_readers/vasp_outcar_reader.h | 1 + include/tadah/mlip/dataset_readers/vasp_vasprun_reader.h | 1 + src/vasp_outcar_reader.cpp | 1 + src/vasp_vasprun_reader.cpp | 1 + 4 files changed, 4 insertions(+) diff --git a/include/tadah/mlip/dataset_readers/vasp_outcar_reader.h b/include/tadah/mlip/dataset_readers/vasp_outcar_reader.h index 81b4e6f..d17f2a4 100644 --- a/include/tadah/mlip/dataset_readers/vasp_outcar_reader.h +++ b/include/tadah/mlip/dataset_readers/vasp_outcar_reader.h @@ -72,6 +72,7 @@ public: private: std::string raw_data_; // Stores raw file data + double s_conv = 6.241509074e-4; // kbar -> eV/A^3 }; #endif // VASP_OUTCAR_READER_H diff --git a/include/tadah/mlip/dataset_readers/vasp_vasprun_reader.h b/include/tadah/mlip/dataset_readers/vasp_vasprun_reader.h index 589d8d3..77d8bfa 100644 --- a/include/tadah/mlip/dataset_readers/vasp_vasprun_reader.h +++ b/include/tadah/mlip/dataset_readers/vasp_vasprun_reader.h @@ -159,6 +159,7 @@ protected: private: Structure _s; ///< Internal structure representation. bool stress_tensor_bool = false; ///< Flag indicating stress tensor presence. + double s_conv = 6.241509074e-4; // kbar -> eV/A^3 }; #endif // VASP_VASPRUN_READER_H diff --git a/src/vasp_outcar_reader.cpp b/src/vasp_outcar_reader.cpp index 2f3f53a..a9c4339 100644 --- a/src/vasp_outcar_reader.cpp +++ b/src/vasp_outcar_reader.cpp @@ -110,6 +110,7 @@ void VaspOutcarReader::parse_data() { s.stress(0,1) = s.stress(1,0) = row[3]; // xy s.stress(1,2) = s.stress(2,1) = row[4]; // yz s.stress(0,2) = s.stress(2,0) = row[5]; // zx + s.stress *= s_conv; } } diff --git a/src/vasp_vasprun_reader.cpp b/src/vasp_vasprun_reader.cpp index cf72d1d..16ab534 100644 --- a/src/vasp_vasprun_reader.cpp +++ b/src/vasp_vasprun_reader.cpp @@ -141,6 +141,7 @@ void VaspVasprunReader::extract_stress_tensor(rx::xml_node<> *calculation_node) _s.stress(r, 0) = x; _s.stress(r, 1) = y; _s.stress(r, 2) = z; + _s.stress *= s_conv; } else { std::cerr << "Error parsing stress tensor components." << std::endl; } -- GitLab