Skip to content

Commit

Permalink
Added logic to fill in large geometric gaps
Browse files Browse the repository at this point in the history
  • Loading branch information
shankar1729 committed Apr 28, 2024
1 parent f321655 commit 83b4e3f
Showing 1 changed file with 11 additions and 0 deletions.
11 changes: 11 additions & 0 deletions src/qimpy/transport/geometry/_subdivide.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,17 @@ def select_division(quad_set: QuadSet, n_processes: int) -> int:
np.concatenate((grid_size_max_list, additional_sizes))
)

# Fill any large geometric gaps in above list:
gap_ratios = grid_size_max_list[1:] / grid_size_max_list[:-1]
for i_gap, gap_ratio in enumerate(gap_ratios):
if gap_ratio > 1.5:
log_spacing = 0.2
scale_factors = np.exp(np.arange(0, np.log(gap_ratio), log_spacing))
additional_sizes = np.round(grid_size_max_list[i_gap] * scale_factors)
grid_size_max_list = np.unique(
np.concatenate((grid_size_max_list, additional_sizes.astype(int)))
)

# Check and report candidates:
log.info("\n--- Quad subdivision candidates ---")
log.info("grid_size_max n_quads size_imbalance number_imbalance")
Expand Down

0 comments on commit 83b4e3f

Please sign in to comment.