Optical potentials¶
This page collects the built-in optical-potential interfaces, parameterizations, and helper utilities.
Optical-potential models and helper potential forms.
- class jitr.optical_potentials.LocalOpticalPotential(scale_radii_by_At_and_Ap=False)[source]¶
Bases:
SingleChannelOpticalModelSimple local optical potential with optional nucleus-nucleus radius scaling.
- Parameters:
scale_radii_by_At_and_Ap (bool)
- evaluate(rgrid, reaction_model, kinematics_model, Vv, rv, av, Wv, rw, aw, Wd, Vd, rd, ad, Vso, Wso, rso, aso, rC)[source]¶
Evaluate the local optical-potential terms on
rgrid.
- class jitr.optical_potentials.SingleChannelOpticalModel(params)[source]¶
Bases:
objectBase class for local single-channel optical potentials.
- evaluate(rgrid, reaction, kinematics, *params)[source]¶
Evaluate central, spin-orbit, and Coulomb terms on
rgrid.
- jitr.optical_potentials.coulomb_charged_sphere(r, zz, r_c)[source]¶
Return the Coulomb potential of a uniformly charged sphere.
- jitr.optical_potentials.perey_buck_nonlocal(r, rp, *params)[source]¶
Return the Perey-Buck nonlocal kernel factor.
- jitr.optical_potentials.regular_inverse_r(r, r_c)[source]¶
Return
1/rregularized inside a sphere of radiusr_c.
- jitr.optical_potentials.surface_peaked_gaussian_potential(r, *params)[source]¶
Return a simple surface-peaked Gaussian potential.
- jitr.optical_potentials.thomas_mean_square_radius(R, a)[source]¶
Return the mean-square radius for the Thomas spin-orbit shape.
- jitr.optical_potentials.thomas_safe(r, R, a)[source]¶
Evaluate the Thomas spin-orbit shape without overflow issues.
- jitr.optical_potentials.thomas_volume_integral(V, R, a)[source]¶
Return the volume integral for the Thomas spin-orbit shape.
- jitr.optical_potentials.woods_saxon_mean_square_radius(R, a)[source]¶
Return the mean-square radius for a Woods-Saxon term.
- jitr.optical_potentials.woods_saxon_potential(r, *params)[source]¶
Return a Woods-Saxon potential with complex depth
V + iW.
- jitr.optical_potentials.woods_saxon_prime(r, *params)[source]¶
Return the radial derivative of a Woods-Saxon potential.
- jitr.optical_potentials.woods_saxon_prime_mean_square_radius(R, a)[source]¶
Return the mean-square radius for a derivative Woods-Saxon term.
- jitr.optical_potentials.woods_saxon_prime_safe(r, R, a)[source]¶
Evaluate the radial derivative of the Woods-Saxon shape safely.
- jitr.optical_potentials.woods_saxon_prime_volume_integral(V, R, a)[source]¶
Return the volume integral for a derivative Woods-Saxon term.
- jitr.optical_potentials.woods_saxon_safe(r, R, a)[source]¶
Evaluate a Woods-Saxon shape while avoiding overflow in
exp.
- jitr.optical_potentials.woods_saxon_volume_integral(V, R, a)[source]¶
Return the volume integral for a Woods-Saxon term.
- jitr.optical_potentials.yamaguchi_potential(r, rp, *params)[source]¶
Return the Yamaguchi separable nonlocal potential.
- jitr.optical_potentials.yamaguchi_swave_delta(k, *params)[source]¶
Return the analytic s-wave phase shift for the Yamaguchi potential.
Base classes and helpers for single-channel optical potentials.
- class jitr.optical_potentials.omp.SingleChannelOpticalModel(params)[source]¶
Bases:
objectBase class for local single-channel optical potentials.
- evaluate(rgrid, reaction, kinematics, *params)[source]¶
Evaluate central, spin-orbit, and Coulomb terms on
rgrid.
- jitr.optical_potentials.omp.central(r, Vv, Rv, av, Wv, Rw, aw, Wd, Vd, Rd, ad)[source]¶
Evaluate the default Woods-Saxon central potential.
- jitr.optical_potentials.omp.spin_orbit(r, Vso, Wso, Rso, aso)[source]¶
Evaluate the default Thomas-form spin-orbit potential.
- class jitr.optical_potentials.omp.LocalOpticalPotential(scale_radii_by_At_and_Ap=False)[source]¶
Bases:
SingleChannelOpticalModelSimple local optical potential with optional nucleus-nucleus radius scaling.
- Parameters:
scale_radii_by_At_and_Ap (bool)
- evaluate(rgrid, reaction_model, kinematics_model, Vv, rv, av, Wv, rw, aw, Wd, Vd, rd, ad, Vso, Wso, rso, aso, rC)[source]¶
Evaluate the local optical-potential terms on
rgrid.
The Koning-Delaroche potential is a common optical potential for nuclear scattering. It is provided here in simplified form specifically to address this need.
See the [Koning-Delaroche paper](https://www.sciencedirect.com/science/article/pii/S0375947402013210) for details. Equation references are with respect to (w.r.t.) this paper.
- jitr.optical_potentials.kduq.get_param_names(projectile)[source]¶
Get the names of the parameters for the given projectile, in the order they are returned by the get_samples function.
- jitr.optical_potentials.kduq.get_samples(projectile, posterior='federal')[source]¶
Get the posterior samples for the given projectile (neutron or proton) from the KDUQ Federal or Democratic posteriors.
See [Pruitt, et al., 2023] (https://journals.aps.org/prc/pdf/10.1103/PhysRevC.107.014602) for details on the KDUQ posteriors.
- Parameters:
- Return type:
- Returns:
An array of shape
(NUM_POSTERIOR_SAMPLES, num_params)containing the posterior samples for the given projectile.
- jitr.optical_potentials.kduq.Vv(E, v1, v2, v3, v4, Ef)[source]¶
energy-dependent, volume-central strength - real term, Eq. (7)
- jitr.optical_potentials.kduq.Wv(E, w1, w2, Ef)[source]¶
energy-dependent, volume-central strength - imaginary term, Eq. (7)
- jitr.optical_potentials.kduq.Wd(E, d1, d2, d3, Ef)[source]¶
energy-dependent, surface-central strength - imaginary term (no real term), Eq. (7)
- jitr.optical_potentials.kduq.Vso(E, vso1, vso2, Ef)[source]¶
energy-dependent, spin-orbit strength — real term, Eq. (7)
- jitr.optical_potentials.kduq.Wso(E, wso1, wso2, Ef)[source]¶
energy-dependent, spin-orbit strength — imaginary term, Eq. (7)
- jitr.optical_potentials.kduq.delta_VC(E, Vcbar, v1, v2, v3, v4, Ef)[source]¶
energy dependent Coulomb correction term, Eq. 23
- jitr.optical_potentials.kduq.central(r, Vv, Rv, av, Wv, Rwv, awv, Wd, Rd, ad)[source]¶
Koning-Delaroche central terms at a given energy.
This matches Eq. (7) in Koning and Delaroche (2003).
- Parameters:
r (
float|ndarray) – The radius at which to evaluate the potential.Vv (
float) – The real central depth.Rv (
float) – The real central radius parameter.av (
float) – The real central diffuseness parameter.Wv (
float) – The imaginary volume depth.Rwv (
float) – The imaginary volume radius parameter.awv (
float) – The imaginary volume diffuseness parameter.Wd (
float) – The imaginary surface depth.Rd (
float) – The imaginary surface radius parameter.ad (
float) – The imaginary surface diffuseness parameter.
- Return type:
- jitr.optical_potentials.kduq.spin_orbit(r, Vso, Rso, aso, Wso, Rwso, awso)[source]¶
Koning-Delaroche spin-orbit terms at a given energy.
This matches Eq. (7) in Koning and Delaroche (2003).
- Parameters:
r (
float|ndarray) – The radius at which to evaluate the potential.Vso (
float) – The real spin-orbit depth.Rso (
float) – The real spin-orbit radius parameter.aso (
float) – The real spin-orbit diffuseness parameter.Wso (
float) – The imaginary spin-orbit depth.Rwso (
float) – The imaginary spin-orbit radius parameter.awso (
float) – The imaginary spin-orbit diffuseness parameter.
- Return type:
- class jitr.optical_potentials.kduq.Global(projectile, param_fpath=None)[source]¶
Bases:
objectGlobal Koning-Delaroche parameters
- jitr.optical_potentials.kduq.calculate_params(projectile, target, Elab, Ef_0, Ef_A, v1_0, v1_asymm, v1_A, v2_0, v2_A, v3_0, v3_A, v4_0, rv_0, rv_A, av_0, av_A, w1_0, w1_A, w2_0, w2_A, d1_0, d1_asymm, d2_0, d2_A, d2_A2, d2_A3, d3_0, rd_0, rd_A, ad_0, ad_A, Vso1_0, Vso1_A, Vso2_0, Wso1_0, Wso2_0, rso_0, rso_A, aso_0, rc_0=0.0, rc_A=0.0, rc_A2=0.0)[source]¶
Calculate the arguments for the central, spin_orbit, and coulomb_charged_sphere functions corresponding to the KDUQ potential for a given projectile, target, lab energy, and the KDUQ parameters.
- Parameters:
projectile (
tuple) – tuple (Ap, Zp) of the projectile.target (
tuple) – tuple (A, Z) of the target.Elab (
float) – Laboratory energy of the projectile in MeV.Ef_0 (
float) – Base Fermi energy.Ef_A (
float) – Atomic mass number modifier for Fermi energy.v1_0 (
float) – Parameters for the Koning-Delaroche potential. See Table V and the Appendix of Pruitt et al., 2023 for details.v1_asymm (
float) –Parameters for the Koning-Delaroche potential. See Table V and the Appendix of Pruitt et al., 2023 for details.
... –
Parameters for the Koning-Delaroche potential. See Table V and the Appendix of Pruitt et al., 2023 for details.
rc_A2 (
float) –Parameters for the Koning-Delaroche potential. See Table V and the Appendix of Pruitt et al., 2023 for details.
v1_A (float)
v2_0 (float)
v2_A (float)
v3_0 (float)
v3_A (float)
v4_0 (float)
rv_0 (float)
rv_A (float)
av_0 (float)
av_A (float)
w1_0 (float)
w1_A (float)
w2_0 (float)
w2_A (float)
d1_0 (float)
d1_asymm (float)
d2_0 (float)
d2_A (float)
d2_A2 (float)
d2_A3 (float)
d3_0 (float)
rd_0 (float)
rd_A (float)
ad_0 (float)
ad_A (float)
Vso1_0 (float)
Vso1_A (float)
Vso2_0 (float)
Wso1_0 (float)
Wso2_0 (float)
rso_0 (float)
rso_A (float)
aso_0 (float)
rc_0 (float)
rc_A (float)
- Return type:
tuple[tuple[float,...],tuple[float,...],tuple[float,...]]- Returns:
(central_params, spin_orbit_params, coulomb_params)wherecentral_paramsis(vv, Rv, av, wv, Rwv, awv, wd, Rd, ad),spin_orbit_paramsis(vso, Rso, aso, wso, Rwso, awso), andcoulomb_paramsis(Z*Zp, RC).
- class jitr.optical_potentials.kduq.KDUQ(projectile)[source]¶
Bases:
SingleChannelOpticalModelKoning-Delaroche Uncertainty Quantification (KDUQ) optical potential model.
- Parameters:
projectile (tuple)
The CHUQ potential is a global phenomenological nucleon-nucleus optical potential
See [Pruitt, et al., 2023] (https://journals.aps.org/prc/pdf/10.1103/PhysRevC.107.014602), or the original CH89 paper [Varner, et al., 1991] (https://www.sciencedirect.com/science/article/pii/037015739190039O?via%3Dihub) for details. Equation references are with respect to the former paper.
- jitr.optical_potentials.chuq.get_param_names()[source]¶
Get the names of the parameters for the given projectile, in the order they are returned by the get_samples function.
- jitr.optical_potentials.chuq.get_samples(posterior='federal')[source]¶
Get the posterior samples for the given projectile (neutron or proton) from the CHUQ Federal or Democratic posteriors.
See [Pruitt, et al., 2023] (https://journals.aps.org/prc/pdf/10.1103/PhysRevC.107.014602) for details on the CHUQ posteriors.
- Parameters:
posterior (
str) – Which CHUQ posterior to return samples from. Must be either"federal"or"democratic". Defaults to"federal".- Return type:
- Returns:
An array of shape
(NUM_POSTERIOR_SAMPLES, num_params)containing the posterior samples, ordered according toget_param_names().
- jitr.optical_potentials.chuq.central(r, V, W, Wd, Rv, av, Rd, ad)[source]¶
Form of the central term of the CHUQ potential, given by Eqs. A7-8 of [Pruitt, et al., 2023]
- Parameters:
r (
float|ndarray) – The radius at which to evaluate the potential.V (
float) – The depth of the real central potential.W (
float) – The depth of the imaginary volume potential.Wd (
float) – The depth of the imaginary surface potential.Rv (
float) – The radius of the real central potential.av (
float) – The diffuseness of the real central potential.Rd (
float) – The radius of the imaginary potential.ad (
float) – The diffuseness of the imaginary potential.
- Return type:
- jitr.optical_potentials.chuq.spin_orbit(r, Vso, Rso, aso)[source]¶
Form of the spin-orbit term of the CHUQ potential, given by Eqs. A7-8 of [Pruitt, et al., 2023]
- Parameters:
- Return type:
- jitr.optical_potentials.chuq.calculate_params(projectile, target, Elab, V0=52.9, Ve=-0.299, Vt=13.1, r0=1.25, r0_0=-0.225, a0=0.69, Wv0=7.8, Wve0=35.0, Wvew=16.0, rw=1.33, rw_0=-0.42, aw=0.69, Ws0=10.0, Wst=18.0, Wse0=36.0, Wsew=37, Vso=5.9, rso=1.34, rso_0=-1.2, aso=0.63, rc=1.24, rc_0=0.12)[source]¶
Calculate the arguments for the central, spin_orbit, and coulomb_charged_sphere functions corresponding to the CHUQ potential for a given projectile, target, lab energy, and the CHUQ parameters.
- Parameters:
projectile (
tuple) – tuple (Ap, Zp) of the projectile.target (
tuple) – tuple (A, Z) of the target.Elab (
float) – Laboratory energy of the projectile in MeV.V0 (
float) – Parameters for the Chapel-Hill optical model potential. See Table V and the Appendix of Pruitt et al., 2023 and Table 3 of Varner et al., 1991 for details.Ve (
float) –Parameters for the Chapel-Hill optical model potential. See Table V and the Appendix of Pruitt et al., 2023 and Table 3 of Varner et al., 1991 for details.
... –
Parameters for the Chapel-Hill optical model potential. See Table V and the Appendix of Pruitt et al., 2023 and Table 3 of Varner et al., 1991 for details.
rc_0 (
float) –Parameters for the Chapel-Hill optical model potential. See Table V and the Appendix of Pruitt et al., 2023 and Table 3 of Varner et al., 1991 for details.
Vt (float)
r0 (float)
r0_0 (float)
a0 (float)
Wv0 (float)
Wve0 (float)
Wvew (float)
rw (float)
rw_0 (float)
aw (float)
Ws0 (float)
Wst (float)
Wse0 (float)
Wsew (float)
Vso (float)
rso (float)
rso_0 (float)
aso (float)
rc (float)
- Return type:
tuple[tuple[float,...],tuple[float,...],tuple[float,...]]- Returns:
(central_params, spin_orbit_params, coulomb_params)wherecentral_paramsis(V0, Wv, Ws, R0, a0, Rw, aw),spin_orbit_paramsis(Vso, Rso, aso), andcoulomb_paramsis(Z*Zp, RC).
- jitr.optical_potentials.chuq.coulomb_correction(A, Z, RC)[source]¶
Coulomb correction for proton energy
- class jitr.optical_potentials.chuq.Global(param_fpath=None)[source]¶
Bases:
objectGlobal optical potential in CHUQ form.
- Parameters:
param_fpath (Path | None)
- class jitr.optical_potentials.chuq.CHUQ[source]¶
Bases:
SingleChannelOpticalModelChapel-Hill Uncertainty Quantification (CHUQ) optical potential model.
Note that CH89 is Lane consistent, so the same parameters can be used for both neutron and proton projectiles.
The Whitehead-Lim-Holt potential is a global mcroscopic nucleon-nucleus optical potential
See the [Whitehead et al., 2021] (https://journals.aps.org/prl/abstract/10.1103/PhysRevLett.127.182502) for details. Equation references are with respect to (w.r.t.) this paper.
- jitr.optical_potentials.wlh.get_param_names(projectile)[source]¶
Get the names of the parameters for the given projectile, in the order they are returned by the get_samples function.
- jitr.optical_potentials.wlh.get_samples(projectile)[source]¶
Get the parameter samples for the WLH potential for the given projectile.
- jitr.optical_potentials.wlh.spin_orbit(r, Uso, Rso, aso)[source]¶
Form of the spin-orbit term in the WLH potential. See Eq. (2) of Whitehead et al., 2021.
- jitr.optical_potentials.wlh.central(r, Uv, Rv, av, Uw, Rw, aw, Ud, Rd, ad)[source]¶
Form of the central term in the WLH potential. See Eq. (2) of Whitehead et al., 2021.
- Parameters:
r (
float|ndarray) – Radial coordinate(s) at which to evaluate the potential.Uv (
float) – Real volume potential strength parameter.Rv (
float) – Real volume potential radius parameter.av (
float) – Real volume potential diffuseness parameter.Uw (
float) – Imaginary volume potential strength parameter.Rw (
float) – Imaginary volume potential radius parameter.aw (
float) – Imaginary volume potential diffuseness parameter.Ud (
float) – Imaginary surface potential strength parameter.Rd (
float) – Imaginary surface potential radius parameter.ad (
float) – Imaginary surface potential diffuseness parameter.
- Return type:
- class jitr.optical_potentials.wlh.Global(projectile, param_fpath=None)[source]¶
Bases:
objectGlobal optical potential in WLH form.
- jitr.optical_potentials.wlh.calculate_params(projectile, target, Elab, uv0, uv1, uv2, uv3, uv4, uv5, uv6, rv0, rv1, rv2, rv3, av0, av1, av2, av3, av4, uw0, uw1, uw2, uw3, uw4, rw0, rw1, rw2, rw3, rw4, rw5, aw0, aw1, aw2, aw3, aw4, ud0, ud1, ud3, ud4, rd0, rd1, rd2, ad0, uso0, uso1, rso0, rso1, aso0, aso1)[source]¶
Calculate the arguments for the central, spin_orbit, and coulomb_charged_sphere functions corresponding to the WLH potential for a given projectile, target, lab energy, and the WLH parameters.
- Parameters:
projectile (
tuple) – tuple (A, Z) of the projectile.target (
tuple) – tuple (A, Z) of the target.Elab (
float) – Laboratory energy in MeV.uv0 (
float) – Parameters of the WLH potential. See Whitehead et al., 2021 for details.uv1 (
float) –Parameters of the WLH potential. See Whitehead et al., 2021 for details.
... –
Parameters of the WLH potential. See Whitehead et al., 2021 for details.
aso1 (
float) –Parameters of the WLH potential. See Whitehead et al., 2021 for details.
uv2 (float)
uv3 (float)
uv4 (float)
uv5 (float)
uv6 (float)
rv0 (float)
rv1 (float)
rv2 (float)
rv3 (float)
av0 (float)
av1 (float)
av2 (float)
av3 (float)
av4 (float)
uw0 (float)
uw1 (float)
uw2 (float)
uw3 (float)
uw4 (float)
rw0 (float)
rw1 (float)
rw2 (float)
rw3 (float)
rw4 (float)
rw5 (float)
aw0 (float)
aw1 (float)
aw2 (float)
aw3 (float)
aw4 (float)
ud0 (float)
ud1 (float)
ud3 (float)
ud4 (float)
rd0 (float)
rd1 (float)
rd2 (float)
ad0 (float)
uso0 (float)
uso1 (float)
rso0 (float)
rso1 (float)
aso0 (float)
- Return type:
tuple[tuple[float,...],tuple[float,...],tuple[float,...]]- Returns:
(central_params, spin_orbit_params, coulomb_params)wherecentral_paramsis(uv, Rv, av, uw, Rw, aw, ud, Rd, ad),spin_orbit_paramsis(uso, Rso, aso), andcoulomb_paramsis(Z*Zp, RC).
- class jitr.optical_potentials.wlh.WLH(projectile)[source]¶
Bases:
SingleChannelOpticalModelThe Whitehead-Lim-Holt global optical potential for nucleon-nucleus scattering.
- Parameters:
projectile (tuple)
- evaluate(rgrid, reaction, kinematics, *params)[source]¶
Evaluate the central, spin-orbit, and Coulomb terms of the WLH potential on the given radial grid for the specified reaction and kinematics, using the provided potential parameters.
- Parameters:
rgrid (
float|ndarray[tuple[Any,...],dtype[double]]) – Radial coordinate or grid in fm.reaction (
Reaction) – Reaction for which to calculate the parameters.kinematics (
ChannelKinematics) – Kinematics of the reaction channel.*params (
float) –Parameters of the WLH potential. See Whitehead et al., 2021 for details.
- Return type:
tuple[complex|ndarray[tuple[Any,...],dtype[cdouble]],complex|ndarray[tuple[Any,...],dtype[cdouble]],float|ndarray[tuple[Any,...],dtype[double]]]- Returns:
(U_central, U_spin_orbit, U_coulomb)evaluated on the radial grid.
Analytic local and nonlocal optical-potential building blocks.
- jitr.optical_potentials.potential_forms.perey_buck_nonlocal(r, rp, *params)[source]¶
Return the Perey-Buck nonlocal kernel factor.
- jitr.optical_potentials.potential_forms.woods_saxon_potential(r, *params)[source]¶
Return a Woods-Saxon potential with complex depth
V + iW.
- jitr.optical_potentials.potential_forms.woods_saxon_prime(r, *params)[source]¶
Return the radial derivative of a Woods-Saxon potential.
- jitr.optical_potentials.potential_forms.woods_saxon_safe(r, R, a)[source]¶
Evaluate a Woods-Saxon shape while avoiding overflow in
exp.
- jitr.optical_potentials.potential_forms.woods_saxon_prime_safe(r, R, a)[source]¶
Evaluate the radial derivative of the Woods-Saxon shape safely.
- jitr.optical_potentials.potential_forms.thomas_safe(r, R, a)[source]¶
Evaluate the Thomas spin-orbit shape without overflow issues.
- jitr.optical_potentials.potential_forms.surface_peaked_gaussian_potential(r, *params)[source]¶
Return a simple surface-peaked Gaussian potential.
- jitr.optical_potentials.potential_forms.woods_saxon_volume_integral(V, R, a)[source]¶
Return the volume integral for a Woods-Saxon term.
- jitr.optical_potentials.potential_forms.woods_saxon_mean_square_radius(R, a)[source]¶
Return the mean-square radius for a Woods-Saxon term.
- jitr.optical_potentials.potential_forms.woods_saxon_prime_volume_integral(V, R, a)[source]¶
Return the volume integral for a derivative Woods-Saxon term.
- jitr.optical_potentials.potential_forms.woods_saxon_prime_mean_square_radius(R, a)[source]¶
Return the mean-square radius for a derivative Woods-Saxon term.
- jitr.optical_potentials.potential_forms.thomas_volume_integral(V, R, a)[source]¶
Return the volume integral for the Thomas spin-orbit shape.
- jitr.optical_potentials.potential_forms.thomas_mean_square_radius(R, a)[source]¶
Return the mean-square radius for the Thomas spin-orbit shape.
- jitr.optical_potentials.potential_forms.coulomb_charged_sphere(r, zz, r_c)[source]¶
Return the Coulomb potential of a uniformly charged sphere.
- jitr.optical_potentials.potential_forms.regular_inverse_r(r, r_c)[source]¶
Return
1/rregularized inside a sphere of radiusr_c.