From aa3c2879992aa45eac229c3c522a990941be70d2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 29 Jul 2024 00:05:53 -0400 Subject: [PATCH] add wrapper to extract value of equal style and compatible variables --- tools/lammps-gui/lammpswrapper.cpp | 20 ++++++++++++++++++++ tools/lammps-gui/lammpswrapper.h | 1 + 2 files changed, 21 insertions(+) diff --git a/tools/lammps-gui/lammpswrapper.cpp b/tools/lammps-gui/lammpswrapper.cpp index 1ccb225a0a..ed2bde1c9f 100644 --- a/tools/lammps-gui/lammpswrapper.cpp +++ b/tools/lammps-gui/lammpswrapper.cpp @@ -102,6 +102,26 @@ void *LammpsWrapper::extract_atom(const char *keyword) return val; } +// note: equal style and compatible variables only +double LammpsWrapper::extract_variable(const char *keyword) +{ + void *ptr = nullptr; + if (lammps_handle) { +#if defined(LAMMPS_GUI_USE_PLUGIN) + ptr = ((liblammpsplugin_t *)plugin_handle)->extract_variable(lammps_handle, keyword, nullptr); +#else + ptr = lammps_extract_variable(lammps_handle, keyword, nullptr); +#endif + } + double val = *((double *)ptr); +#if defined(LAMMPS_GUI_USE_PLUGIN) + ptr = ((liblammpsplugin_t *)plugin_handle)->free(ptr); +#else + lammps_free(ptr); +#endif + return val; +} + int LammpsWrapper::id_count(const char *keyword) { int val = 0; diff --git a/tools/lammps-gui/lammpswrapper.h b/tools/lammps-gui/lammpswrapper.h index 8719ef4491..9157bf77b5 100644 --- a/tools/lammps-gui/lammpswrapper.h +++ b/tools/lammps-gui/lammpswrapper.h @@ -34,6 +34,7 @@ public: void *extract_global(const char *keyword); void *extract_pair(const char *keyword); void *extract_atom(const char *keyword); + double extract_variable(const char *keyword); int id_count(const char *idtype); int id_name(const char *idtype, int idx, char *buf, int buflen);