(surf, copy=False, incomplete="raise", extra="")
| 307 | |
| 308 | |
| 309 | def _check_complete_surface(surf, copy=False, incomplete="raise", extra=""): |
| 310 | surf = complete_surface_info(surf, copy=copy, verbose=_verbose_safe_false()) |
| 311 | fewer = np.where([len(t) < 3 for t in surf["neighbor_tri"]])[0] |
| 312 | if len(fewer) > 0: |
| 313 | fewer = list(fewer) |
| 314 | fewer = (fewer[:80] + ["..."]) if len(fewer) > 80 else fewer |
| 315 | fewer = ", ".join(str(f) for f in fewer) |
| 316 | msg = ( |
| 317 | f"Surface {_bem_surf_name[surf['id']]} has topological defects: " |
| 318 | f"{len(fewer)} / {len(surf['rr'])} vertices have fewer than three " |
| 319 | f"neighboring triangles [{fewer}]{extra}" |
| 320 | ) |
| 321 | _on_missing(on_missing=incomplete, msg=msg, name="on_defects") |
| 322 | return surf |
| 323 | |
| 324 | |
| 325 | def _fwd_bem_linear_collocation_solution(bem): |
no test coverage detected