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

Method get_estimated_memory_usage

python/simulation.py:2565–2616  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

2563 return _has_mu(self.default_material)
2564
2565 def get_estimated_memory_usage(self):
2566 if self.fields is None:
2567 self.collect_stats = True
2568 self.init_sim()
2569
2570 if self.fragment_stats is None:
2571 self.fragment_stats = self._compute_fragment_stats(
2572 self.structure.user_volume
2573 )
2574
2575 is_complex = (
2576 self.k_point and self.k_point != mp.Vector3(0, 0, 0)
2577 ) or self.force_complex_fields
2578 realnums_per_grid_point = 1 if self.dimensions == 1 else 3
2579 E_realnums = (
2580 self.fragment_stats.num_pixels_in_box
2581 * (2 if is_complex else 1)
2582 * realnums_per_grid_point
2583 )
2584 H_realnums = (
2585 self.fragment_stats.num_pixels_in_box
2586 * (2 if is_complex else 1)
2587 * realnums_per_grid_point
2588 )
2589 D_realnums = (
2590 self.fragment_stats.num_pixels_in_box
2591 * (2 if is_complex else 1)
2592 * realnums_per_grid_point
2593 )
2594 chi1inv_realnums = self.fragment_stats.num_pixels_in_box * 9
2595
2596 Mu_realnums = 0
2597 if self.has_mu():
2598 Mu_realnums = chi1inv_realnums + H_realnums
2599
2600 dft_realnums = self.fragment_stats.num_dft_pixels * 2
2601 dispersive_realnums = (
2602 self.fragment_stats.num_susceptibility_pixels * 6 * (2 if is_complex else 1)
2603 )
2604
2605 total_realnums = (
2606 E_realnums
2607 + H_realnums
2608 + D_realnums
2609 + Mu_realnums
2610 + dft_realnums
2611 + dispersive_realnums
2612 )
2613
2614 total_bytes = total_realnums * mp.get_realnum_size()
2615
2616 return total_bytes
2617
2618 def meep_time(self):
2619 """

Callers 1

_checkMethod · 0.95

Calls 3

init_simMethod · 0.95
has_muMethod · 0.95

Tested by 1

_checkMethod · 0.76