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
05e816ab
"platforms/vscode:/vscode.git/clone" did not exist on "5eb3f8adc689fc62bca0c227037c0adf7916c25c"
Commit
05e816ab
authored
Aug 08, 2018
by
peastman
Browse files
Fixed stack overflow
parent
f6cbe7d6
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
16 additions
and
5 deletions
+16
-5
wrappers/python/simtk/openmm/app/charmmpsffile.py
wrappers/python/simtk/openmm/app/charmmpsffile.py
+16
-5
No files found.
wrappers/python/simtk/openmm/app/charmmpsffile.py
View file @
05e816ab
...
...
@@ -1367,15 +1367,26 @@ def set_molecules(atom_list):
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
def
_set_owner
(
atom_list
,
owner_array
,
atm
,
mol_id
):
""" Recursively sets ownership of given atom and all bonded partners """
""" Sets ownership of given atom and all bonded partners """
# This could be written more simply as a recursive function, but that leads
# to stack overflows, so I flattened it into an iterative one.
partners
=
[
atom_list
[
atm
].
bond_partners
]
loop_index
=
[
0
]
atom_list
[
atm
].
marked
=
mol_id
for
partner
in
atom_list
[
atm
].
bond_partners
:
while
len
(
partners
)
>
0
:
if
loop_index
[
-
1
]
>=
len
(
partners
[
-
1
]):
partners
.
pop
()
loop_index
.
pop
()
continue
partner
=
partners
[
-
1
][
loop_index
[
-
1
]]
loop_index
[
-
1
]
+=
1
if
not
partner
.
marked
:
owner_array
.
append
(
partner
.
idx
)
_set_owner
(
atom_list
,
owner_array
,
partner
.
idx
,
mol_id
)
partner
.
marked
=
mol_id
partners
.
append
(
partner
.
bond_partners
)
loop_index
.
append
(
0
)
elif
partner
.
marked
!=
mol_id
:
raise
MoleculeError
(
'Atom %d in multiple molecules'
%
partner
.
idx
)
raise
MoleculeError
(
'Atom %d in multiple molecules'
%
partner
.
idx
)
# ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
...
...
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