Skip to content

Commit 1a5dac2

Browse files
committed
fix angle constraint changes
1 parent a256416 commit 1a5dac2

File tree

3 files changed

+19
-16
lines changed

3 files changed

+19
-16
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ MollyKernelDensityExt = "KernelDensity"
5050
MollyPythonCallExt = "PythonCall"
5151

5252
[compat]
53-
AcceleratedKernels = "0.4.3"
53+
AcceleratedKernels = "0.4.2"
5454
Atomix = "0.1, 1.0"
5555
AtomsBase = "0.5"
5656
AtomsCalculators = "0.2"

src/constraints/constraints.jl

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -293,12 +293,9 @@ function build_clusters(
293293

294294
# Now that we know angle_constraints do not interact with
295295
# any of the distance constraints we can build their clusters
296-
clusters_angle = ConstraintCluster{3,3}[]
297-
for ac in angle_constraints
298-
push!(clusters_angle, to_cluster(ac))
299-
end
296+
clusters_angle = StructArray(to_cluster_data(ac) for ac in angle_constraints)
300297

301-
return clusters12, clusters23, clusters34, StructArray(clusters_angle)
298+
return clusters12, clusters23, clusters34, clusters_angle
302299
end
303300

304301
function build_clusters(

src/constraints/constraints_kernel_helper.jl

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,13 @@ struct Cluster12Data{D} <: ConstraintKernelData{D, 1, 2}
2828
dist12::D
2929
end
3030

31-
interactions(kd::Cluster12Data) = ((kd.k1, kd.k2, kd.dist12), )
32-
3331
function ConstraintKernelData(k1::Int32, k2::Int32, dist12::D) where D
3432
return Cluster12Data{D}(k1, k2, dist12)
3533
end
3634

35+
interactions(kd::Cluster12Data) = ((kd.k1, kd.k2, kd.dist12), )
36+
37+
3738
struct Cluster23Data{D} <: ConstraintKernelData{D, 2, 3}
3839
k1::Int32
3940
k2::Int32
@@ -42,14 +43,14 @@ struct Cluster23Data{D} <: ConstraintKernelData{D, 2, 3}
4243
dist13::D
4344
end
4445

45-
interactions(kd::Cluster23Data) = ((kd.k1, kd.k2, kd.dist12), (kd.k1, kd.k3, kd.dist13))
46-
idx_keys(::Type{<:Cluster23Data}) = (:k1, :k2, :k3)
47-
dist_keys(::Type{<:Cluster23Data}) = (:dist12, :dist13)
48-
4946
function ConstraintKernelData(k1::Int32, k2::Int32, k3::Int32, dist12::D, dist13::D) where D
5047
return Cluster23Data{D}(k1, k2, k3, dist12, dist13)
5148
end
5249

50+
interactions(kd::Cluster23Data) = ((kd.k1, kd.k2, kd.dist12), (kd.k1, kd.k3, kd.dist13))
51+
idx_keys(::Type{<:Cluster23Data}) = (:k1, :k2, :k3)
52+
dist_keys(::Type{<:Cluster23Data}) = (:dist12, :dist13)
53+
5354
struct Cluster34Data{D} <: ConstraintKernelData{D, 3, 4}
5455
k1::Int32
5556
k2::Int32
@@ -60,14 +61,14 @@ struct Cluster34Data{D} <: ConstraintKernelData{D, 3, 4}
6061
dist14::D
6162
end
6263

63-
interactions(kd::Cluster34Data) = ((kd.k1, kd.k2, kd.dist12), (kd.k1, kd.k3, kd.dist13), (kd.k1, kd.k4, kd.dist14))
64-
idx_keys(::Type{<:Cluster34Data}) = (:k1, :k2, :k3, :k4)
65-
dist_keys(::Type{<:Cluster34Data}) = (:dist12, :dist13, :dist14)
66-
6764
function ConstraintKernelData(k1::Int32, k2::Int32, k3::Int32, k4::Int32, dist12::D, dist13::D, dist14::D) where D
6865
return Cluster34Data{D}(k1, k2, k3, k4, dist12, dist13, dist14)
6966
end
7067

68+
interactions(kd::Cluster34Data) = ((kd.k1, kd.k2, kd.dist12), (kd.k1, kd.k3, kd.dist13), (kd.k1, kd.k4, kd.dist14))
69+
idx_keys(::Type{<:Cluster34Data}) = (:k1, :k2, :k3, :k4)
70+
dist_keys(::Type{<:Cluster34Data}) = (:dist12, :dist13, :dist14)
71+
7172
struct AngleClusterData{D} <: ConstraintKernelData{D, 3, 3}
7273
k1::Int32
7374
k2::Int32
@@ -77,6 +78,11 @@ struct AngleClusterData{D} <: ConstraintKernelData{D, 3, 3}
7778
dist23::D
7879
end
7980

81+
function ConstraintKernelData(k1::Int32, k2::Int32, k3::Int32, dist12::D, dist13::D, dist23::D) where D
82+
return AngleClusterData{D}(k1, k2, k3, dist12, dist13, dist23)
83+
end
84+
85+
8086
interactions(kd::AngleClusterData) = ((kd.k1, kd.k2, kd.dist12), (kd.k1, kd.k3, kd.dist13), (kd.k2, kd.k3, kd.dist23))
8187
idx_keys(::Type{<:AngleClusterData}) = (:k1, :k2, :k3)
8288
dist_keys(::Type{<:AngleClusterData}) = (:dist12, :dist13, :dist23)

0 commit comments

Comments
 (0)