,
- X: PointUpdate,
+ P1: Copy,
+ P2: Copy,
+ B: Copy + Default + Transform + Position,
+ S: Copy + Default + Position,
+ X: PointUpdate,
H: DeltaEnergyInsert + DeltaEnergyRemove,
C: Wrap + Wrap + GenerateGhosts + Volume,
MA: Temperature + Fugacity,
diff --git a/hoomd-mc/src/parallel_sweep.rs b/hoomd-mc/src/parallel_sweep.rs
index 82bca815..7df13f32 100644
--- a/hoomd-mc/src/parallel_sweep.rs
+++ b/hoomd-mc/src/parallel_sweep.rs
@@ -206,7 +206,7 @@ impl ParallelSweep {
reason = "many arguments must be passed to avoid too many lines of code in other methods"
)]
#[inline(always)]
- fn generate_trial_moves(
+ fn generate_trial_moves(
local_trial: &L,
body_trials: &mut Vec>,
microstate: &Microstate,
@@ -216,13 +216,14 @@ impl ParallelSweep {
spaces: &[Vec],
space_indices: &Vec,
) where
- P: Copy,
- B: Copy + Default + Transform + Position + Send + Sync,
- S: Copy + Default + Position + Send + Sync,
+ P1: Copy,
+ P2: Copy,
+ B: Copy + Default + Transform + Position + Send + Sync,
+ S: Copy + Default + Position + Send + Sync,
L: LocalTrial + Sync,
H: DeltaEnergyOne + Sync,
C: Wrap + Wrap + GenerateGhosts + Sync,
- K: Checkerboard + Sync,
+ K: Checkerboard + Sync,
X: Sync,
{
body_trials.resize_with(space_indices.len(), Default::default);
@@ -277,15 +278,16 @@ impl ParallelSweep {
/// Update the properties of bodies with accepted moves.
#[inline(always)]
- fn update_bodies(
+ fn update_bodies(
microstate: &mut Microstate,
body_trials: &Vec>,
) -> Count
where
- P: Copy,
- B: Copy + Default + Transform + Position,
- S: Copy + Default + Position,
- X: PointUpdate,
+ P1: Copy,
+ P2: Copy,
+ B: Copy + Default + Transform + Position,
+ S: Copy + Default + Position,
+ X: PointUpdate,
C: Wrap + Wrap + GenerateGhosts,
{
let mut count = Count::default();
@@ -310,17 +312,19 @@ impl ParallelSweep {
}
}
-impl Trial, H, MA> for ParallelSweep
+impl Trial, H, MA>
+ for ParallelSweep
where
- P: Copy,
- B: Copy + Default + Transform + Position + Send + Sync,
- S: Copy + Default + Position + Send + Sync,
- X: PointUpdate + Sync,
+ P1: Copy,
+ P2: Copy,
+ B: Copy + Default + Transform + Position + Send + Sync,
+ S: Copy + Default + Position + Send + Sync,
+ X: PointUpdate + Sync,
L: LocalTrial + Sync,
H: DeltaEnergyOne + Sync,
- C: Wrap + Wrap + GenerateGhosts + Cover + Sync,
+ C: Wrap + Wrap + GenerateGhosts + Cover + Sync,
MA: Temperature,
- K: Checkerboard + Sync,
+ K: Checkerboard + Sync,
{
type Count = Count;
@@ -415,12 +419,13 @@ where
}
}
-impl Tune
for ParallelSweep
+impl Tune for ParallelSweep
where
- P: Copy,
- B: Copy + Default + Transform + Position,
- S: Copy + Default + Position,
- X: PointUpdate,
+ P1: Copy,
+ P2: Copy,
+ B: Copy + Default + Transform + Position,
+ S: Copy + Default + Position,
+ X: PointUpdate,
L: LocalTrial + Adjust + Display,
H: DeltaEnergyOne,
C: Wrap + Wrap + GenerateGhosts,
diff --git a/hoomd-mc/src/quick_compress.rs b/hoomd-mc/src/quick_compress.rs
index 37b63d24..ae9df4ed 100644
--- a/hoomd-mc/src/quick_compress.rs
+++ b/hoomd-mc/src/quick_compress.rs
@@ -441,18 +441,26 @@ impl QuickCompress {
reason = "Panic would occur due to a bug in hoomd-rs."
)]
#[inline]
- pub fn apply(
+ pub fn apply(
&mut self,
microstate: &mut Microstate,
hamiltonian: &H,
should_map_body: F,
) where
- P: Copy,
- B: Clone + Position + Transform,
- S: Clone + Position + Default,
- X: Clone + PointUpdate,
+ P1: Copy,
+ P2: Copy,
+ B: Clone + Position + Transform,
+ S: Clone + Position + Default,
+ X: Clone + PointUpdate,
H: TotalEnergy>,
- C: Clone + MapPoint + Wrap + Wrap + GenerateGhosts + Volume + Scale + PartialEq,
+ C: Clone
+ + MapPoint
+ + Wrap
+ + Wrap
+ + GenerateGhosts
+ + Volume
+ + Scale
+ + PartialEq,
Microstate: Clone,
F: Fn(&Tagged>) -> bool,
{
diff --git a/hoomd-mc/src/quick_insert.rs b/hoomd-mc/src/quick_insert.rs
index 6afc1f74..8a60a864 100644
--- a/hoomd-mc/src/quick_insert.rs
+++ b/hoomd-mc/src/quick_insert.rs
@@ -267,16 +267,17 @@ impl QuickInsert {
/// # }
/// ```
#[inline]
- pub fn apply(
+ pub fn apply(
&mut self,
microstate: &mut Microstate,
hamiltonian: &H,
) -> Count
where
- P: Copy,
- B: Position + Transform,
- S: Position + Default,
- X: PointUpdate,
+ P1: Copy,
+ P2: Copy,
+ B: Position + Transform,
+ S: Position + Default,
+ X: PointUpdate,
D: BodyDistribution>,
H: DeltaEnergyInsert + TotalEnergy>,
C: Wrap + Wrap + GenerateGhosts,
diff --git a/hoomd-mc/src/sweep.rs b/hoomd-mc/src/sweep.rs
index 59de8951..c7e4e752 100644
--- a/hoomd-mc/src/sweep.rs
+++ b/hoomd-mc/src/sweep.rs
@@ -42,12 +42,13 @@ use super::{Adjust, Count, LocalTrial, Trial, Tune, TuneOptions, tune_local::tun
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct Sweep(pub L);
-impl Trial, H, MA> for Sweep
+impl Trial, H, MA> for Sweep
where
- P: Copy,
- B: Copy + Default + Transform + Position,
- S: Copy + Default + Position,
- X: PointUpdate,
+ P1: Copy,
+ P2: Copy,
+ B: Copy + Default + Transform + Position,
+ S: Copy + Default + Position,
+ X: PointUpdate,
L: LocalTrial,
H: DeltaEnergyOne,
C: Wrap + Wrap + GenerateGhosts,
@@ -155,7 +156,7 @@ impl Sweep {
/// # }
/// ```
#[inline]
- pub fn apply_with_filter(
+ pub fn apply_with_filter(
&self,
microstate: &mut Microstate,
hamiltonian: &H,
@@ -163,10 +164,11 @@ impl Sweep {
should_move_body: F,
) -> Count
where
- P: Copy,
- B: Copy + Default + Transform + Position,
- S: Copy + Default + Position,
- X: PointUpdate,
+ P1: Copy,
+ P2: Copy,
+ B: Copy + Default + Transform + Position,
+ S: Copy + Default + Position,
+ X: PointUpdate,
L: LocalTrial,
H: DeltaEnergyOne,
C: Wrap + Wrap + GenerateGhosts,
@@ -268,7 +270,7 @@ impl Sweep {
/// # }
/// ```
#[inline]
- pub fn tune_with_options_and_filter(
+ pub fn tune_with_options_and_filter(
&mut self,
microstate: &Microstate,
hamiltonian: &H,
@@ -276,10 +278,11 @@ impl Sweep {
options: &TuneOptions,
should_move_body: F,
) where
- P: Copy,
- B: Copy + Default + Transform + Position,
- S: Copy + Default + Position,
- X: PointUpdate,
+ P1: Copy,
+ P2: Copy,
+ B: Copy + Default + Transform + Position,
+ S: Copy + Default + Position,
+ X: PointUpdate,
L: LocalTrial + Adjust + Display,
H: DeltaEnergyOne,
C: Wrap + Wrap + GenerateGhosts,
@@ -297,12 +300,13 @@ impl Sweep {
}
}
-impl