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

Method add_source

python/source.py:639–690  ·  view source on GitHub ↗
(self, sim)

Source from the content-addressed store, hash-verified

637 return abs(amp) ** 2
638
639 def add_source(self, sim):
640 where = mp.Volume(
641 self.center,
642 self.size,
643 dims=sim.dimensions,
644 is_cylindrical=sim.is_cylindrical,
645 ).swigobj
646 if self.direction < 0:
647 direction = sim.fields.normal_direction(where)
648 else:
649 direction = self.direction
650
651 if self.eig_vol is None:
652 self.eig_vol = mp.Volume(
653 self.eig_lattice_center,
654 self.eig_lattice_size,
655 sim.dimensions,
656 is_cylindrical=sim.is_cylindrical,
657 )
658
659 if isinstance(self.eig_band, mp.DiffractedPlanewave):
660 eig_band = 1
661 diffractedplanewave = mp.simulation.bands_to_diffractedplanewave(
662 where, self.eig_band
663 )
664 elif isinstance(self.eig_band, int):
665 eig_band = self.eig_band
666
667 add_eig_src_args = [
668 self.component,
669 self.src.swigobj,
670 direction,
671 where,
672 self.eig_vol.swigobj,
673 eig_band,
674 mp.py_v3_to_vec(
675 sim.dimensions, self.eig_kpoint, is_cylindrical=sim.is_cylindrical
676 ),
677 self.eig_match_freq,
678 self.eig_parity,
679 self.eig_resolution,
680 self.eig_tolerance,
681 self.amplitude,
682 ]
683 add_eig_src = functools.partial(
684 sim.fields.add_eigenmode_source, *add_eig_src_args
685 )
686
687 if isinstance(self.eig_band, mp.DiffractedPlanewave):
688 add_eig_src(self.amp_func, diffractedplanewave)
689 else:
690 add_eig_src(self.amp_func)
691
692
693class GaussianBeam3DSource(Source):

Callers

nothing calls this directly

Calls 1

normal_directionMethod · 0.45

Tested by

no test coverage detected