pyInclude.pumping
Pump integration routines for evolving the excited-state fraction beta.
The public entry point is integrateLaserPump. The lower functions are the
legacy beta-int3 algorithm, kept as implementation detail and accelerated with
numba when available.
- class pyInclude.pumping.Constants(speedOfLight=np.float64(299792458.0), planckConstant=np.float64(6.62607015e-34), *, c=None, h=None)
Bases:
objectPhysical constants used by the pump energy-to-photon conversion.
- describeConstant(name)
Return description, unit, and default for a known constant.
- toDict()
Return the compact dictionary consumed by the legacy pump kernel.
- pyInclude.pumping.beta_int3Kernel_jit(beta_crystal, pulse, beta_store, Ntot_gradient, pump, pump_BRM, pump_l, I_pump, time_step, crystal_step, sigma_abs, sigma_ems, inv_photon_energy, inv_tau_fluo, extr, brm, R)
Propagate pump intensity and update beta along one crystal line.
- pyInclude.pumping.beta_int3LoopOverPoints(p, beta_cell, pump_dict, intensity, beta_c_2, beta_crystal_scratch, pulse_scratch, beta_store_scratch, Ntot_gradient, time_step, crystal_step, sigma_abs, sigma_ems, inv_photon_energy, inv_tau_fluo, extr, brm, R, pump_scratch, pump_brm_scratch, pump_l_scratch, debug=False)
Run the one-dimensional pump kernel for every transverse mesh point.
The super-Gaussian factor turns the global pump intensity into a local intensity for each
(x, y)sample before z propagation starts.
- pyInclude.pumping.beta_int3Main(p, beta_cell, pump, beta_c_2, intensity, const, crystal, steps, int_field, mode, Ntot_gradient)
Run one pump update over all transverse points and z levels.
beta_cellis the incoming point-level beta array.beta_c_2receives the beta state after pumping. Scratch arrays are allocated once here and reused by the inner loops for performance.
- pyInclude.pumping.integrateLaserPump(points, betaCells, pumpProperties, gainMedium, timeStep, constants=None, pumpSubsteps=100)
Return
betaCellsafter applying the configured pump.pointsare transverse(x, y)topology coordinates.betaCellshas shape(numberOfPoints, numberOfLevels)and stores the excited-state fraction before pumping. The returned array has the same shape.
- pyInclude.pumping.runLaserPumpStep(points, betaCells, pumpProperties, gainMedium, timeStep, constants=None, pumpSubsteps=100)
Return
betaCellsafter applying the configured pump.pointsare transverse(x, y)topology coordinates.betaCellshas shape(numberOfPoints, numberOfLevels)and stores the excited-state fraction before pumping. The returned array has the same shape.
- class pyInclude.pumping.BetaIntegrationGaussianSolver
Bases:
objectDefault
PumpPropertiessolver for a super-Gaussian pump beam.- step(input, pump)
Return beta after pumping using the Simulation pump-solver protocol.
- pyInclude.pumping.BetaIntegrationSolver
alias of
BetaIntegrationGaussianSolver
- pyInclude.pumping.BetaInt3PumpSolver
alias of
BetaIntegrationGaussianSolver