modernize. turn static inline into just inline

This commit is contained in:
Axel Kohlmeyer
2025-06-27 23:58:11 -04:00
parent d168de00db
commit 1b36451f6a

View File

@ -50,17 +50,15 @@ class ThrOMP {
double memory_usage_thr(); double memory_usage_thr();
inline void sync_threads() inline void sync_threads(){
{
#if defined(_OPENMP) #if defined(_OPENMP)
#pragma omp barrier #pragma omp barrier
#endif #endif
{ {;
; }
} }; // namespace LAMMPS_NS
};
enum { enum {
THR_NONE = 0, THR_NONE = 0,
THR_PAIR = 1, THR_PAIR = 1,
THR_BOND = 1 << 1, THR_BOND = 1 << 1,
@ -71,30 +69,30 @@ class ThrOMP {
THR_CHARMM = 1 << 6, /*THR_PROXY=1<<7,THR_HYBRID=1<<8, */ THR_CHARMM = 1 << 6, /*THR_PROXY=1<<7,THR_HYBRID=1<<8, */
THR_FIX = 1 << 9, THR_FIX = 1 << 9,
THR_INTGR = 1 << 10 THR_INTGR = 1 << 10
}; };
protected: protected:
// extra ev_tally setup work for threaded styles // extra ev_tally setup work for threaded styles
void ev_setup_thr(int, int, int, double *, double **, double **, ThrData *); void ev_setup_thr(int, int, int, double *, double **, double **, ThrData *);
// compute global per thread virial contribution from per-thread force // compute global per thread virial contribution from per-thread force
void virial_fdotr_compute_thr(double *const, const double *const *const, void virial_fdotr_compute_thr(double *const, const double *const *const, const double *const *const,
const double *const *const, const int, const int, const int); const int, const int, const int);
// reduce per thread data as needed // reduce per thread data as needed
void reduce_thr(void *const style, const int eflag, const int vflag, ThrData *const thr); void reduce_thr(void *const style, const int eflag, const int vflag, ThrData *const thr);
// thread safe variant error abort support. // thread safe variant error abort support.
// signals an error condition in any thread by making // signals an error condition in any thread by making
// thr_error > 0, if condition "cond" is true. // thr_error > 0, if condition "cond" is true.
// will abort from thread 0 if thr_error is > 0 // will abort from thread 0 if thr_error is > 0
// otherwise return true. // otherwise return true.
// returns false if no error found on any thread. // returns false if no error found on any thread.
// use return value to jump/return to end of threaded region. // use return value to jump/return to end of threaded region.
bool check_error_thr(const bool cond, const int tid, const char *fname, const int line, bool check_error_thr(const bool cond, const int tid, const char *fname, const int line,
const char *errmsg) const char *errmsg)
{ {
if (cond) { if (cond) {
#if defined(_OPENMP) #if defined(_OPENMP)
#pragma omp atomic #pragma omp atomic
@ -114,78 +112,76 @@ class ThrOMP {
return false; return false;
} }
return false; return false;
}; };
protected: protected:
// threading adapted versions of the ev_tally infrastructure // threading adapted versions of the ev_tally infrastructure
// style specific versions (need access to style class flags) // style specific versions (need access to style class flags)
// Pair // Pair
void e_tally_thr(Pair *const, const int, const int, const int, const int, const double, void e_tally_thr(Pair *const, const int, const int, const int, const int, const double,
const double, ThrData *const); const double, ThrData *const);
void v_tally_thr(Pair *const, const int, const int, const int, const int, const double *const, void v_tally_thr(Pair *const, const int, const int, const int, const int, const double *const,
ThrData *const); ThrData *const);
void ev_tally_thr(Pair *const, const int, const int, const int, const int, const double, void ev_tally_thr(Pair *const, const int, const int, const int, const int, const double,
const double, const double, const double, const double, const double, const double, const double, const double, const double, const double,
ThrData *const); ThrData *const);
void ev_tally_full_thr(Pair *const, const int, const double, const double, const double, void ev_tally_full_thr(Pair *const, const int, const double, const double, const double,
const double, const double, const double, ThrData *const); const double, const double, const double, ThrData *const);
void ev_tally_xyz_thr(Pair *const, const int, const int, const int, const int, const double, void ev_tally_xyz_thr(Pair *const, const int, const int, const int, const int, const double,
const double, const double, const double, const double, const double, const double, const double, const double, const double, const double,
const double, const double, ThrData *const); const double, const double, ThrData *const);
void ev_tally_xyz_full_thr(Pair *const, const int, const double, const double, const double, void ev_tally_xyz_full_thr(Pair *const, const int, const double, const double, const double,
const double, const double, const double, const double, const double, const double, const double, const double, const double, const double,
ThrData *const); ThrData *const);
void v_tally2_thr(Pair *const, const int, const int, const double, const double *const, void v_tally2_thr(Pair *const, const int, const int, const double, const double *const,
ThrData *const); ThrData *const);
void v_tally2_newton_thr(Pair *const, const int, const double *const, const double *const, void v_tally2_newton_thr(Pair *const, const int, const double *const, const double *const,
ThrData *const); ThrData *const);
void ev_tally3_thr(Pair *const, const int, const int, const int, const double, const double, void ev_tally3_thr(Pair *const, const int, const int, const int, const double, const double,
const double *const, const double *const, const double *const, const double *const, const double *const, const double *const,
const double *const, ThrData *const); const double *const, ThrData *const);
void v_tally3_thr(Pair *const, const int, const int, const int, const double *const, void v_tally3_thr(Pair *const, const int, const int, const int, const double *const,
const double *const, const double *const, const double *const, ThrData *const); const double *const, const double *const, const double *const, ThrData *const);
void ev_tally4_thr(Pair *const, const int, const int, const int, const int, const double, void ev_tally4_thr(Pair *const, const int, const int, const int, const int, const double,
const double *const, const double *const, const double *const, const double *const, const double *const, const double *const,
const double *const, const double *const, const double *const, ThrData *const); const double *const, const double *const, const double *const, ThrData *const);
void v_tally4_thr(Pair *const, const int, const int, const int, const int, const double *const, void v_tally4_thr(Pair *const, const int, const int, const int, const int, const double *const,
const double *const, const double *const, const double *const, const double *const, const double *const, const double *const,
const double *const, const double *const, ThrData *const); const double *const, const double *const, ThrData *const);
// Bond // Bond
void ev_tally_thr(Bond *const, const int, const int, const int, const int, const double, void ev_tally_thr(Bond *const, const int, const int, const int, const int, const double,
const double, const double, const double, const double, ThrData *const); const double, const double, const double, const double, ThrData *const);
// Angle // Angle
void ev_tally_thr(Angle *const, const int, const int, const int, const int, const int, void ev_tally_thr(Angle *const, const int, const int, const int, const int, const int, const double,
const double, const double *const, const double *const, const double, const double *const, const double *const, const double, const double,
const double, const double, const double, const double, const double, const double, const double, const double, const double, ThrData *const thr);
ThrData *const thr); void ev_tally13_thr(Angle *const, const int, const int, const int, const int, const double,
void ev_tally13_thr(Angle *const, const int, const int, const int, const int, const double,
const double, const double, const double, const double, ThrData *const thr); const double, const double, const double, const double, ThrData *const thr);
// Dihedral // Dihedral
void ev_tally_thr(Dihedral *const, const int, const int, const int, const int, const int, void ev_tally_thr(Dihedral *const, const int, const int, const int, const int, const int, const int,
const int, const double, const double *const, const double *const, const double, const double *const, const double *const, const double *const,
const double *const, const double, const double, const double, const double,
const double, const double, const double, const double, const double, const double, const double, const double, const double, const double,
ThrData *const); const double, const double, const double, const double, ThrData *const);
// Improper // Improper
void ev_tally_thr(Improper *const, const int, const int, const int, const int, const int, void ev_tally_thr(Improper *const, const int, const int, const int, const int, const int, const int,
const int, const double, const double *const, const double *const, const double, const double *const, const double *const, const double *const,
const double *const, const double, const double, const double, const double,
const double, const double, const double, const double, const double, const double, const double, const double, const double, const double,
ThrData *const); const double, const double, const double, const double, ThrData *const);
// style independent versions // style independent versions
void ev_tally_list_thr(Pair *const, const int, const int *const, const double *const, void ev_tally_list_thr(Pair *const, const int, const int *const, const double *const, const double,
const double, const double, ThrData *const); const double, ThrData *const);
}; }
;
// set loop range thread id, and force array offset for threaded runs. // set loop range thread id, and force array offset for threaded runs.
static inline void loop_setup_thr(int &ifrom, int &ito, int &tid, int inum, int nthreads) inline void loop_setup_thr(int &ifrom, int &ito, int &tid, int inum, int nthreads)
{ {
#if defined(_OPENMP) #if defined(_OPENMP)
tid = omp_get_thread_num(); tid = omp_get_thread_num();
@ -204,22 +200,21 @@ static inline void loop_setup_thr(int &ifrom, int &ito, int &tid, int inum, int
// helpful definitions to help compilers optimizing code better // helpful definitions to help compilers optimizing code better
typedef struct { using dbl3_t = struct _dbl3_t {
double x, y, z; double x, y, z;
} dbl3_t; };
typedef struct { using dbl4_t = struct _dbl4_t {
double x, y, z, w; double x, y, z, w;
} dbl4_t; };
typedef struct { using int3_t = struct _int3_t {
int a, b, t; int a, b, t;
} int3_t; };
typedef struct { using int4_t = struct _int4_t {
int a, b, c, t; int a, b, c, t;
} int4_t; };
typedef struct { using int5_t = struct _int5_t {
int a, b, c, d, t; int a, b, c, d, t;
} int5_t; };
} // namespace LAMMPS_NS } // namespace LAMMPS_NS
#endif #endif