Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
tsoc
openmm
Commits
16b6e4aa
"platforms/opencl/src/OpenCLKernelFactory.cpp" did not exist on "15811b7c56b65a5e94e4c7b212100b37b4de331f"
Commit
16b6e4aa
authored
Jul 29, 2020
by
peastman
Browse files
Bug fixes
parent
46098e35
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
14 additions
and
14 deletions
+14
-14
platforms/common/src/CommonKernels.cpp
platforms/common/src/CommonKernels.cpp
+14
-14
No files found.
platforms/common/src/CommonKernels.cpp
View file @
16b6e4aa
...
...
@@ -6268,41 +6268,41 @@ void CommonIntegrateNoseHooverStepKernel::getChainStates(ContextImpl& context, v
vector
<
mm_double2
>
stateVec
;
state
.
download
(
stateVec
);
for
(
int
j
=
0
;
j
<
stateVec
.
size
();
j
++
)
{
positions
[
i
].
push_back
(
stateVec
[
i
].
x
);
velocities
[
i
].
push_back
(
stateVec
[
i
].
y
);
positions
[
i
].
push_back
(
stateVec
[
j
].
x
);
velocities
[
i
].
push_back
(
stateVec
[
j
].
y
);
}
}
else
{
vector
<
mm_float2
>
stateVec
;
state
.
download
(
stateVec
);
for
(
int
j
=
0
;
j
<
stateVec
.
size
();
j
++
)
{
positions
[
i
].
push_back
((
float
)
stateVec
[
i
].
x
);
velocities
[
i
].
push_back
((
float
)
stateVec
[
i
].
y
);
positions
[
i
].
push_back
((
float
)
stateVec
[
j
].
x
);
velocities
[
i
].
push_back
((
float
)
stateVec
[
j
].
y
);
}
}
}
}
void
CommonIntegrateNoseHooverStepKernel
::
setChainStates
(
ContextImpl
&
context
,
const
vector
<
vector
<
double
>
>&
positions
,
const
vector
<
vector
<
double
>
>&
velocities
)
{
int
numChains
=
chainState
.
size
();
int
numChains
=
positions
.
size
();
bool
useDouble
=
cc
.
getUseDoublePrecision
()
||
cc
.
getUseMixedPrecision
();
if
(
positions
.
size
()
!=
numChains
||
velocities
.
size
()
!=
numChains
)
throw
OpenMMException
(
"setChainStates(): wrong number of chains"
);
chainState
.
clear
();
for
(
int
i
=
0
;
i
<
numChains
;
i
++
)
{
ComputeArray
&
state
=
chainState
[
i
];
if
(
positions
[
i
].
size
()
!=
state
.
getSize
()
||
velocities
[
i
].
size
()
!=
state
.
getSize
())
throw
OpenMMException
(
"setChainStates(): wrong number of beads in chain"
);
int
chainLength
=
positions
[
i
].
size
();
chainState
[
i
]
=
ComputeArray
();
if
(
useDouble
)
{
chainState
[
i
].
initialize
<
mm_double2
>
(
cc
,
chainLength
,
"chainState"
+
cc
.
intToString
(
i
));
vector
<
mm_double2
>
stateVec
;
for
(
int
j
=
0
;
j
<
state
.
getSize
()
;
j
++
)
for
(
int
j
=
0
;
j
<
chainLength
;
j
++
)
stateVec
.
push_back
(
mm_double2
(
positions
[
i
][
j
],
velocities
[
i
][
j
]));
s
tate
.
upload
(
stateVec
);
chainS
tate
[
i
]
.
upload
(
stateVec
);
}
else
{
chainState
[
i
].
initialize
<
mm_float2
>
(
cc
,
chainLength
,
"chainState"
+
cc
.
intToString
(
i
));
vector
<
mm_float2
>
stateVec
;
for
(
int
j
=
0
;
j
<
state
.
getSize
()
;
j
++
)
for
(
int
j
=
0
;
j
<
chainLength
;
j
++
)
stateVec
.
push_back
(
mm_float2
((
float
)
positions
[
i
][
j
],
(
float
)
velocities
[
i
][
j
]));
s
tate
.
upload
(
stateVec
);
chainS
tate
[
i
]
.
upload
(
stateVec
);
}
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment