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
67 lines
1.6 KiB
C++
67 lines
1.6 KiB
C++
// -*- c++ -*-
|
|
|
|
// This file is part of the Collective Variables module (Colvars).
|
|
// The original version of Colvars and its updates are located at:
|
|
// https://github.com/Colvars/colvars
|
|
// Please update all Colvars source files before making any changes.
|
|
// If you wish to distribute your changes, please submit them to the
|
|
// Colvars repository at GitHub.
|
|
|
|
#ifndef COLVARPROXY_REPLICAS_H
|
|
#define COLVARPROXY_REPLICAS_H
|
|
|
|
|
|
#ifdef COLVARS_MPI
|
|
#include <mpi.h>
|
|
typedef MPI_Comm replicas_mpi_comm_t;
|
|
#else
|
|
typedef void * replicas_mpi_comm_t;
|
|
#endif
|
|
|
|
|
|
/// \brief Methods for multiple-replica communication
|
|
class colvarproxy_replicas {
|
|
|
|
public:
|
|
|
|
/// Constructor
|
|
colvarproxy_replicas();
|
|
|
|
/// Destructor
|
|
virtual ~colvarproxy_replicas();
|
|
|
|
/// Set the multiple replicas communicator
|
|
virtual void set_replicas_mpi_communicator(replicas_mpi_comm_t comm);
|
|
|
|
/// Indicate if multi-replica support is available and active
|
|
virtual int check_replicas_enabled();
|
|
|
|
/// Index of this replica
|
|
virtual int replica_index();
|
|
|
|
/// Total number of replicas
|
|
virtual int num_replicas();
|
|
|
|
/// Synchronize replica with others
|
|
virtual void replica_comm_barrier();
|
|
|
|
/// Receive data from other replica
|
|
virtual int replica_comm_recv(char* msg_data, int buf_len, int src_rep);
|
|
|
|
/// Send data to other replica
|
|
virtual int replica_comm_send(char* msg_data, int msg_len, int dest_rep);
|
|
|
|
protected:
|
|
|
|
/// MPI communicator containint 1 root proc from each world
|
|
replicas_mpi_comm_t replicas_mpi_comm;
|
|
|
|
/// Index (rank) of this replica in the MPI implementation
|
|
int replicas_mpi_rank = 0;
|
|
|
|
/// Number of replicas in the MPI implementation
|
|
int replicas_mpi_num = 1;
|
|
};
|
|
|
|
#endif
|