MCPcopy Create free account
hub / github.com/NanoComp/meep / _rootfun

Method _rootfun

python/solver.py:1043–1072  ·  view source on GitHub ↗
(k)

Source from the content-addressed store, hash-verified

1041
1042 def rootfun(b):
1043 def _rootfun(k):
1044 # First, look in the cached table
1045 tab_val = bktab.get((b, k), None)
1046 if tab_val:
1047 if verbosity.mpb > 0:
1048 print(f"find-k {b} at {k}: {tab_val[0]} (cached)")
1049 return tab_val
1050 else:
1051 self.num_bands = b
1052 self.k_points = [korig + kdir1.scale(k)]
1053 self.run_parity(p, False)
1054 v = self.mode_solver.compute_group_velocity_component(kdir1)
1055
1056 # Cache computed values
1057 for _b, _f, _v in zip(
1058 range(band_min, b - band_min + 1),
1059 self.freqs[band_min - 1 :],
1060 v[band_min - 1 :],
1061 ):
1062 tabval = bktab.get((_b, k0s[_b - band_min]), None)
1063
1064 if not tabval or abs(_f - omega) < abs(tabval[0]):
1065 k0s[_b - band_min + 1] = k
1066
1067 bktab[(_b, k)] = (_f - omega, _v)
1068
1069 fun = self.freqs[-1] - omega
1070 if verbosity.mpb > 0:
1071 print(f"find-k {b} at {k}: {fun}")
1072 return (fun, v[-1])
1073
1074 return _rootfun
1075

Callers

nothing calls this directly

Calls 5

run_parityMethod · 0.95
absFunction · 0.85
getMethod · 0.80
scaleMethod · 0.45

Tested by

no test coverage detected