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: object

Physical 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_cell is the incoming point-level beta array. beta_c_2 receives 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 betaCells after applying the configured pump.

points are transverse (x, y) topology coordinates. betaCells has 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 betaCells after applying the configured pump.

points are transverse (x, y) topology coordinates. betaCells has shape (numberOfPoints, numberOfLevels) and stores the excited-state fraction before pumping. The returned array has the same shape.

class pyInclude.pumping.BetaIntegrationGaussianSolver

Bases: object

Default PumpProperties solver 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