Update Colvars library to version 2025-04-18
The following is a list of pull requests relevant to LAMMPS in the Colvars repository since 2024-08-06: - 752 New tool poisson_integrator_conv https://github.com/Colvars/colvars/pull/752 (@jhenin) - 733 Custom grids for all biases https://github.com/Colvars/colvars/pull/733 (@giacomofiorin, @jhenin) - 776 Avoid error in acos and asin with fast-math https://github.com/Colvars/colvars/pull/776 (@jhenin) - 773 fix: fix the clang build test failure of OPES https://github.com/Colvars/colvars/pull/773 (@HanatoK) - 768 fix: clamp the input values of asin and acos in case of fast math on aarch64 https://github.com/Colvars/colvars/pull/768 (@HanatoK) - 761 Add debug code for the Jacobi failure https://github.com/Colvars/colvars/pull/761 (@HanatoK) - 759 min_image fix; Saves long runs from crashes; https://github.com/Colvars/colvars/pull/759 (@PolyachenkoYA) - 757 Fix MSVC OpenMP issue https://github.com/Colvars/colvars/pull/757 (@HanatoK) - 755 Fix indentation of 'Init CVC' message in standard output https://github.com/Colvars/colvars/pull/755 (@jhenin) - 750 Optimize and simplify the calculation of dihedral gradients https://github.com/Colvars/colvars/pull/750 (@HanatoK) - 749 Add references to new Colvars paper https://github.com/Colvars/colvars/pull/749 (@jhenin, @giacomofiorin) - 740 Report the specific C++ standard at init time, stop warning about C++97/03 https://github.com/Colvars/colvars/pull/740 (@giacomofiorin) - 731 Improve detection of hard/mathematical boundaries https://github.com/Colvars/colvars/pull/731 (@giacomofiorin) - 729 Optimize the fit gradients https://github.com/Colvars/colvars/pull/729 (@HanatoK, @jhenin) - 728 Fix undefined behavior when getting the current working directory from std::filesystem https://github.com/Colvars/colvars/pull/728 (@giacomofiorin) - 727 Add patchversion scripting command https://github.com/Colvars/colvars/pull/727 (@giacomofiorin) - 724 Fix gradients and metric functions of distanceDir https://github.com/Colvars/colvars/pull/724 (@giacomofiorin) - 715 Add missing rotation in orientation component https://github.com/Colvars/colvars/pull/715 (@giacomofiorin) - 713 fix: try to solve #87 for non-scala components https://github.com/Colvars/colvars/pull/713 (@HanatoK) - 709 Implementation of OPES in Colvars https://github.com/Colvars/colvars/pull/709 (@HanatoK, @giacomofiorin, @jhenin) - 706 BUGFIX for Segmentation fault in colvarbias_meta::calc_energy() with useGrids off https://github.com/Colvars/colvars/pull/706 (@alphataubio) - 570 enable use of CVs defined by PyTorch neural network models https://github.com/Colvars/colvars/pull/570 (@zwpku, @giacomofiorin, @HanatoK, @jhenin) Authors: @alphataubio, @EzryStIago, @giacomofiorin, @HanatoK, @jhenin, @PolyachenkoYA, @zwpku
This commit is contained in:
@ -7,10 +7,28 @@
|
||||
// If you wish to distribute your changes, please submit them to the
|
||||
// Colvars repository at GitHub.
|
||||
|
||||
|
||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||
|
||||
// Using access() to check if a file exists (until we can assume C++14/17)
|
||||
#if !defined(_WIN32) || defined(__CYGWIN__)
|
||||
#include <unistd.h>
|
||||
#include <direct.h>
|
||||
|
||||
#if defined(__has_include)
|
||||
# if __has_include(<filesystem>)
|
||||
# include <filesystem> // MSVC only defines __cpp_lib_filesystem after include
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#else
|
||||
|
||||
#include <unistd.h>
|
||||
|
||||
#ifdef __cpp_lib_filesystem
|
||||
#include <filesystem>
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(_WIN32)
|
||||
#include <io.h>
|
||||
#endif
|
||||
@ -64,6 +82,53 @@ int colvarproxy_io::set_frame(long int)
|
||||
}
|
||||
|
||||
|
||||
std::string colvarproxy_io::get_current_work_dir() const
|
||||
{
|
||||
#ifdef __cpp_lib_filesystem
|
||||
|
||||
return std::filesystem::current_path().string();
|
||||
|
||||
#else
|
||||
|
||||
// Legacy code
|
||||
size_t constexpr buf_size = 3001;
|
||||
char buf[buf_size];
|
||||
|
||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||
char *getcwd_result = ::_getcwd(buf, buf_size);
|
||||
#else
|
||||
char *getcwd_result = ::getcwd(buf, buf_size);
|
||||
#endif
|
||||
|
||||
if (getcwd_result == nullptr) {
|
||||
cvm::error("Error: cannot read the current working directory.\n", COLVARS_INPUT_ERROR);
|
||||
return std::string("");
|
||||
}
|
||||
|
||||
return std::string(getcwd_result);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
std::string colvarproxy_io::join_paths(std::string const &path1, std::string const &path2) const
|
||||
{
|
||||
#ifdef __cpp_lib_filesystem
|
||||
|
||||
return (std::filesystem::path(path1) / std::filesystem::path(path2)).string();
|
||||
|
||||
#else
|
||||
|
||||
// Legacy code
|
||||
#if defined(_WIN32) && !defined(__CYGWIN__)
|
||||
return (path1 + "\\" + path2);
|
||||
#else
|
||||
return (path1 + "/" + path2);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
int colvarproxy_io::backup_file(char const *filename)
|
||||
{
|
||||
// Simplified version of NAMD_file_exists()
|
||||
|
||||
Reference in New Issue
Block a user