UFF gradients

1283 days ago by gael.varoquaux

# Define some symbolic variables var('a k_eff T v m h gamma') 
       
\left(a, 
 k_{\mbox{eff}}, 
 T, 
 v, 
 m, 
 h, 
 \gamma\right)
\left(a, 
 k_{\mbox{eff}}, 
 T, 
 v, 
 m, 
 h, 
 \gamma\right)
# Expression of the phase shift. Attention: k_eff is the effective Raman wave vector. phi = a*k_eff*T^2 + (h * k_eff^2 * T^3 * gamma)/(2*m) + k_eff*T^2 * (7*a*T^2/12 - T*v)*gamma + k_eff*T^4*(31*a*T^2/360 - h*k_eff*T/(2*m) - T*v/4)*gamma^2 phi 
       
{{{k_{\mbox{eff}} {T}^{4} } \left( \frac{{{31 a} {T}^{2} }}{360} - \frac{{v T}}{4} - \frac{{{h k_{\mbox{eff}}} T}}{{2 m}} \right)} {\gamma}^{2} } + \frac{{{{h {k_{\mbox{eff}}}^{2} } {T}^{3} } \gamma}}{{2 m}} + {{{k_{\mbox{eff}} {T}^{2} } \left( \frac{{{7 a} {T}^{2} }}{12} - {v T} \right)} \gamma} + {{a k_{\mbox{eff}}} {T}^{2} }
{{{k_{\mbox{eff}} {T}^{4} } \left( \frac{{{31 a} {T}^{2} }}{360} - \frac{{v T}}{4} - \frac{{{h k_{\mbox{eff}}} T}}{{2 m}} \right)} {\gamma}^{2} } + \frac{{{{h {k_{\mbox{eff}}}^{2} } {T}^{3} } \gamma}}{{2 m}} + {{{k_{\mbox{eff}} {T}^{2} } \left( \frac{{{7 a} {T}^{2} }}{12} - {v T} \right)} \gamma} + {{a k_{\mbox{eff}}} {T}^{2} }
# Truncate phi to the first order value (this is expression 64 of Borde, Metrologia 2002, 39, 435-463) phi = taylor(phi, gamma, 0, 1).expand() phi 
       
\frac{{{{{7 a} k_{\mbox{eff}}} {T}^{4} } \gamma}}{12} - {{{k_{\mbox{eff}} v} {T}^{3} } \gamma} + \frac{{{{h {k_{\mbox{eff}}}^{2} } {T}^{3} } \gamma}}{{2 m}} + {{a k_{\mbox{eff}}} {T}^{2} }
\frac{{{{{7 a} k_{\mbox{eff}}} {T}^{4} } \gamma}}{12} - {{{k_{\mbox{eff}} v} {T}^{3} } \gamma} + \frac{{{{h {k_{\mbox{eff}}}^{2} } {T}^{3} } \gamma}}{{2 m}} + {{a k_{\mbox{eff}}} {T}^{2} }
# Divide the phase shift by the scaling factor var('S') assume(S > 0) phi = phi.subs_expr(T==sqrt(S/k_eff)) Phi = (phi/S).expand() Phi 
       
\frac{{{{7 a} S} \gamma}}{{12 k_{\mbox{eff}}}} - \frac{{{v \sqrt{ S }} \gamma}}{\sqrt{ k_{\mbox{eff}} }} + \frac{{{{h \sqrt{ k_{\mbox{eff}} }} \sqrt{ S }} \gamma}}{{2 m}} + a
\frac{{{{7 a} S} \gamma}}{{12 k_{\mbox{eff}}}} - \frac{{{v \sqrt{ S }} \gamma}}{\sqrt{ k_{\mbox{eff}} }} + \frac{{{{h \sqrt{ k_{\mbox{eff}} }} \sqrt{ S }} \gamma}}{{2 m}} + a
var('epsilon kappa delta_a') Phi_Rb = Phi.subs(k_eff=k_eff*(1+epsilon), m=m*kappa, a=a+delta_a) 
       
delta_Phi = Phi - Phi_Rb # Remove the UFF component, to keep only the gradient component delta_Phi = delta_Phi delta_Phi.simplify() 
       
\frac{{{{-7 \left( \delta_{a} + a \right)} S} \gamma}}{{{12 \left( \epsilon + 1 \right)} k_{\mbox{eff}}}} + \frac{{{{7 a} S} \gamma}}{{12 k_{\mbox{eff}}}} + \frac{{{v \sqrt{ S }} \gamma}}{\sqrt{ {\left( \epsilon + 1 \right) k_{\mbox{eff}}} }} - \frac{{{v \sqrt{ S }} \gamma}}{\sqrt{ k_{\mbox{eff}} }} - \frac{{{{h \sqrt{ {\left( \epsilon + 1 \right) k_{\mbox{eff}}} }} \sqrt{ S }} \gamma}}{{{2 \kappa} m}} + \frac{{{{h \sqrt{ k_{\mbox{eff}} }} \sqrt{ S }} \gamma}}{{2 m}} - \delta_{a}
\frac{{{{-7 \left( \delta_{a} + a \right)} S} \gamma}}{{{12 \left( \epsilon + 1 \right)} k_{\mbox{eff}}}} + \frac{{{{7 a} S} \gamma}}{{12 k_{\mbox{eff}}}} + \frac{{{v \sqrt{ S }} \gamma}}{\sqrt{ {\left( \epsilon + 1 \right) k_{\mbox{eff}}} }} - \frac{{{v \sqrt{ S }} \gamma}}{\sqrt{ k_{\mbox{eff}} }} - \frac{{{{h \sqrt{ {\left( \epsilon + 1 \right) k_{\mbox{eff}}} }} \sqrt{ S }} \gamma}}{{{2 \kappa} m}} + \frac{{{{h \sqrt{ k_{\mbox{eff}} }} \sqrt{ S }} \gamma}}{{2 m}} - \delta_{a}
delta_Phi = taylor(delta_Phi, epsilon, 0, 1) (delta_Phi/(gamma*S)).expand().simplify().factor().simplify() 
       
\frac{{{{{{{{7 \delta_{a}} \epsilon} \kappa} \sqrt{ k_{\mbox{eff}} }} m} {S}^{\frac{3}{2}} } \gamma} + {{{{{{{7 a} \epsilon} \kappa} \sqrt{ k_{\mbox{eff}} }} m} {S}^{\frac{3}{2}} } \gamma} - {{{{{{7 \delta_{a}} \kappa} \sqrt{ k_{\mbox{eff}} }} m} {S}^{\frac{3}{2}} } \gamma} - {{{{{{{6 \epsilon} \kappa} k_{\mbox{eff}}} m} v} S} \gamma} + {{{{{6 h} \kappa} {k_{\mbox{eff}}}^{2} } S} \gamma} - {{{{{3 \epsilon} h} {k_{\mbox{eff}}}^{2} } S} \gamma} - {{{{6 h} {k_{\mbox{eff}}}^{2} } S} \gamma} - {{{{{12 \delta_{a}} \kappa} {k_{\mbox{eff}}}^{\frac{3}{2}} } m} \sqrt{ S }}}{{{{{{12 \kappa} {k_{\mbox{eff}}}^{\frac{3}{2}} } m} {S}^{\frac{3}{2}} } \gamma}}
\frac{{{{{{{{7 \delta_{a}} \epsilon} \kappa} \sqrt{ k_{\mbox{eff}} }} m} {S}^{\frac{3}{2}} } \gamma} + {{{{{{{7 a} \epsilon} \kappa} \sqrt{ k_{\mbox{eff}} }} m} {S}^{\frac{3}{2}} } \gamma} - {{{{{{7 \delta_{a}} \kappa} \sqrt{ k_{\mbox{eff}} }} m} {S}^{\frac{3}{2}} } \gamma} - {{{{{{{6 \epsilon} \kappa} k_{\mbox{eff}}} m} v} S} \gamma} + {{{{{6 h} \kappa} {k_{\mbox{eff}}}^{2} } S} \gamma} - {{{{{3 \epsilon} h} {k_{\mbox{eff}}}^{2} } S} \gamma} - {{{{6 h} {k_{\mbox{eff}}}^{2} } S} \gamma} - {{{{{12 \delta_{a}} \kappa} {k_{\mbox{eff}}}^{\frac{3}{2}} } m} \sqrt{ S }}}{{{{{{12 \kappa} {k_{\mbox{eff}}}^{\frac{3}{2}} } m} {S}^{\frac{3}{2}} } \gamma}}
# 1 second estimate numerics = dict( a = 9.81, v = 900/3.6, k_eff = 4*3.14/767e-9, epsilon = 1/60., S = (4*3.14/767e-9)*1^2, m = 1.49e-25, h = 1e-34, kappa = 1/2.18, ) delta_Phi.subs(numerics).expand() 
       
{{-0.573611111111111 \delta_{a}} \gamma} - {1.994542415538619 \gamma} - {1.00000000000000 \delta_{a}}
{{-0.573611111111111 \delta_{a}} \gamma} - {1.994542415538619 \gamma} - {1.00000000000000 \delta_{a}}
print latex(delta_Phi.subs(numerics).expand()) 
       
{{-0.573611111111111 \delta_{a}} \gamma} - {1.994542415538619 \gamma} -
{1.00000000000000 \delta_{a}}
{{-0.573611111111111 \delta_{a}} \gamma} - {1.994542415538619 \gamma} - {1.00000000000000 \delta_{a}}
# 2 seconds estimate numerics2 = numerics.copy() numerics2['S'] = (4*3.14/767e-9)*2^2 delta_Phi.subs(numerics2).expand() 
       
{{-2.294444444444445 \delta_{a}} \gamma} - {3.798334831077238 \gamma} - {1.00000000000000 \delta_{a}}
{{-2.294444444444445 \delta_{a}} \gamma} - {3.798334831077238 \gamma} - {1.00000000000000 \delta_{a}}
# 1 second estimate, with very small velocity numerics3 = numerics.copy() numerics3['v'] = 900./3600 delta_Phi.subs(numerics3).expand() 
       
{{-0.573611111111111 \delta_{a}} \gamma} + {0.0867075844613810 \gamma} - {1.00000000000000 \delta_{a}}
{{-0.573611111111111 \delta_{a}} \gamma} + {0.0867075844613810 \gamma} - {1.00000000000000 \delta_{a}}