(
self,
resolution=10,
is_negative_epsilon_ok=False,
eigensolver_flops=0,
eigensolver_flags=68,
use_simple_preconditioner=False,
force_mu=False,
mu_input_file="",
epsilon_input_file="",
mesh_size=3,
target_freq=0.0,
tolerance=1.0e-7,
num_bands=1,
k_points=None,
ensure_periodicity=True,
geometry=None,
geometry_lattice=mp.Lattice(),
geometry_center=mp.Vector3(0, 0, 0),
default_material=mp.Medium(epsilon=1),
dimensions=3,
random_fields=False,
filename_prefix="",
deterministic=False,
verbose=False,
optimize_grid_size=True,
eigensolver_nwork=3,
eigensolver_block_size=-11,
)
| 73 | |
| 74 | class ModeSolver: |
| 75 | def __init__( |
| 76 | self, |
| 77 | resolution=10, |
| 78 | is_negative_epsilon_ok=False, |
| 79 | eigensolver_flops=0, |
| 80 | eigensolver_flags=68, |
| 81 | use_simple_preconditioner=False, |
| 82 | force_mu=False, |
| 83 | mu_input_file="", |
| 84 | epsilon_input_file="", |
| 85 | mesh_size=3, |
| 86 | target_freq=0.0, |
| 87 | tolerance=1.0e-7, |
| 88 | num_bands=1, |
| 89 | k_points=None, |
| 90 | ensure_periodicity=True, |
| 91 | geometry=None, |
| 92 | geometry_lattice=mp.Lattice(), |
| 93 | geometry_center=mp.Vector3(0, 0, 0), |
| 94 | default_material=mp.Medium(epsilon=1), |
| 95 | dimensions=3, |
| 96 | random_fields=False, |
| 97 | filename_prefix="", |
| 98 | deterministic=False, |
| 99 | verbose=False, |
| 100 | optimize_grid_size=True, |
| 101 | eigensolver_nwork=3, |
| 102 | eigensolver_block_size=-11, |
| 103 | ): |
| 104 | |
| 105 | self.mode_solver = None |
| 106 | self.resolution = resolution |
| 107 | self.eigensolver_flags = eigensolver_flags |
| 108 | self.k_points = k_points or [] |
| 109 | self.geometry = geometry or [] |
| 110 | self.geometry_lattice = geometry_lattice |
| 111 | self.geometry_center = mp.Vector3(*geometry_center) |
| 112 | self.default_material = default_material |
| 113 | self.random_fields = random_fields |
| 114 | self.filename_prefix = filename_prefix |
| 115 | self.optimize_grid_size = optimize_grid_size |
| 116 | self.parity = "" |
| 117 | self.iterations = 0 |
| 118 | self.all_freqs = None |
| 119 | self.freqs = [] |
| 120 | self.band_range_data = [] |
| 121 | self.total_run_time = 0 |
| 122 | self.current_k = mp.Vector3() |
| 123 | self.k_split_num = 1 |
| 124 | self.k_split_index = 0 |
| 125 | self.eigensolver_iters = [] |
| 126 | |
| 127 | grid_size = self._adjust_grid_size() |
| 128 | |
| 129 | if type(self.default_material) is not mp.Medium and callable( |
| 130 | self.default_material |
| 131 | ): |
| 132 | init_do_averaging(self.default_material) |
nothing calls this directly
no test coverage detected