@@ -28,12 +28,13 @@ struct Cluster12Data{D} <: ConstraintKernelData{D, 1, 2}
28
28
dist12:: D
29
29
end
30
30
31
- interactions (kd:: Cluster12Data ) = ((kd. k1, kd. k2, kd. dist12), )
32
-
33
31
function ConstraintKernelData (k1:: Int32 , k2:: Int32 , dist12:: D ) where D
34
32
return Cluster12Data {D} (k1, k2, dist12)
35
33
end
36
34
35
+ interactions (kd:: Cluster12Data ) = ((kd. k1, kd. k2, kd. dist12), )
36
+
37
+
37
38
struct Cluster23Data{D} <: ConstraintKernelData{D, 2, 3}
38
39
k1:: Int32
39
40
k2:: Int32
@@ -42,14 +43,14 @@ struct Cluster23Data{D} <: ConstraintKernelData{D, 2, 3}
42
43
dist13:: D
43
44
end
44
45
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
-
49
46
function ConstraintKernelData (k1:: Int32 , k2:: Int32 , k3:: Int32 , dist12:: D , dist13:: D ) where D
50
47
return Cluster23Data {D} (k1, k2, k3, dist12, dist13)
51
48
end
52
49
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
+
53
54
struct Cluster34Data{D} <: ConstraintKernelData{D, 3, 4}
54
55
k1:: Int32
55
56
k2:: Int32
@@ -60,14 +61,14 @@ struct Cluster34Data{D} <: ConstraintKernelData{D, 3, 4}
60
61
dist14:: D
61
62
end
62
63
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
-
67
64
function ConstraintKernelData (k1:: Int32 , k2:: Int32 , k3:: Int32 , k4:: Int32 , dist12:: D , dist13:: D , dist14:: D ) where D
68
65
return Cluster34Data {D} (k1, k2, k3, k4, dist12, dist13, dist14)
69
66
end
70
67
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
+
71
72
struct AngleClusterData{D} <: ConstraintKernelData{D, 3, 3}
72
73
k1:: Int32
73
74
k2:: Int32
@@ -77,6 +78,11 @@ struct AngleClusterData{D} <: ConstraintKernelData{D, 3, 3}
77
78
dist23:: D
78
79
end
79
80
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
+
80
86
interactions (kd:: AngleClusterData ) = ((kd. k1, kd. k2, kd. dist12), (kd. k1, kd. k3, kd. dist13), (kd. k2, kd. k3, kd. dist23))
81
87
idx_keys (:: Type{<:AngleClusterData} ) = (:k1 , :k2 , :k3 )
82
88
dist_keys (:: Type{<:AngleClusterData} ) = (:dist12 , :dist13 , :dist23 )
0 commit comments