Skip to content
Snippets Groups Projects
Commit bb674c8c authored by Carl Poelking's avatar Carl Poelking
Browse files

Utilities.

parent 926cd6dd
No related branches found
No related tags found
No related merge requests found
...@@ -66,6 +66,19 @@ def mp_compute_column_block(gi, gj_list, kfct): ...@@ -66,6 +66,19 @@ def mp_compute_column_block(gi, gj_list, kfct):
krow.append(k) krow.append(k)
return krow return krow
def mp_compute_column_block_idx(gi, gj_list, kfct):
"""
Evaluates kfct for each pair (i, j), with j from j_list
"""
krow = []
for gj in gj_list:
if gj < gi:
k = 0.
else:
k = kfct(gi, gj)
krow.append(k)
return krow
def compute_upper_triangle( def compute_upper_triangle(
kfct, kfct,
g_list, g_list,
...@@ -79,7 +92,7 @@ def compute_upper_triangle( ...@@ -79,7 +92,7 @@ def compute_upper_triangle(
gi = g_list[i] gi = g_list[i]
for j in range(i, dim): for j in range(i, dim):
gj = g_list[j] gj = g_list[j]
kij = kfct(gi, gj) kij = kfct_primed(gi, gj)
kmat[i,j] = kij kmat[i,j] = kij
kmat[j,i] = kij kmat[j,i] = kij
return kmat return kmat
...@@ -93,6 +106,7 @@ def mp_compute_upper_triangle( ...@@ -93,6 +106,7 @@ def mp_compute_upper_triangle(
tstart_twall=(None,None), tstart_twall=(None,None),
backup=True, backup=True,
verbose=True, verbose=True,
embed_idx=True,
**kwargs): **kwargs):
""" """
Compute kernel matrix computed from pairs of objects in object list Compute kernel matrix computed from pairs of objects in object list
...@@ -110,8 +124,9 @@ def mp_compute_upper_triangle( ...@@ -110,8 +124,9 @@ def mp_compute_upper_triangle(
t_wall = tstart_twall[1] t_wall = tstart_twall[1]
dim = len(g_list) dim = len(g_list)
kmat = np.zeros((dim,dim)) kmat = np.zeros((dim,dim))
# Embed mp index in g-list objects if embed_idx:
for mp_idx, g in enumerate(g_list): g.mp_idx = mp_idx # Embed mp index in g-list objects
for mp_idx, g in enumerate(g_list): g.mp_idx = mp_idx
# Divide onto column blocks # Divide onto column blocks
col_idcs = np.arange(len(g_list)) col_idcs = np.arange(len(g_list))
col_div_list = np.array_split(col_idcs, n_blocks) col_div_list = np.array_split(col_idcs, n_blocks)
...@@ -130,7 +145,7 @@ def mp_compute_upper_triangle( ...@@ -130,7 +145,7 @@ def mp_compute_upper_triangle(
pool = mp.Pool(processes=n_procs) pool = mp.Pool(processes=n_procs)
# Prime mp function # Prime mp function
mp_compute_column_block_primed = fct.partial( mp_compute_column_block_primed = fct.partial(
mp_compute_column_block, mp_compute_column_block if embed_idx else mp_compute_column_block_idx,
gj_list=gj_list, gj_list=gj_list,
kfct=kfct_primed) kfct=kfct_primed)
# Map & close # Map & close
......
...@@ -46,8 +46,8 @@ def structure_from_ase( ...@@ -46,8 +46,8 @@ def structure_from_ase(
log=None): log=None):
# NOTE Center of mass is computed without considering PBC => Requires unwrapped coordinates # NOTE Center of mass is computed without considering PBC => Requires unwrapped coordinates
structure = None structure = None
frag_bond_matrix = None frag_bond_matrix = np.array([], dtype=bool)
atom_bond_matrix = None atom_bond_matrix = np.array([], dtype=bool)
frag_labels = [] frag_labels = []
atom_labels = [] atom_labels = []
# System properties # System properties
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment