def _phir(delta, tau): """Residual part of the dimensionless Helmholtz potential.""" psi = _exp(-_C*(delta-1)**2 - _D*(tau-1)**2) theta = (1-tau) + _A*((delta-1)**2)**(1/(2*_beta2)) Delta = theta**2 + _B*((delta-1)**2)**_a return util.sum(_n[0:7]*delta**_d[0:7]*tau**_t[0:7]) \ + util.sum(_n[7:51]*delta**_d[7:51]*tau**_t[7:51]*\ _exp(-delta**_c[7:51])) \ + util.sum(_n[51:54]*delta**_d[51:54]*tau**_t[51:54] * \ _exp(-_alpha*(delta-_epsilon)**2 - _beta1*(tau-_gamma)**2)) \ + util.sum(_n[54:56]*Delta**_b*delta*psi)
def _phir_tau(delta, tau): """Partial derivative of phi_r wrt tau.""" psi = _exp(-_C*(delta-1)**2 - _D*(tau-1)**2) theta = (1-tau) + _A*((delta-1)**2)**(1/(2*_beta2)) Delta = theta**2 + _B*((delta-1)**2)**_a return util.sum(_n[0:7]*_t[0:7]*delta**_d[0:7]*tau**(_t[0:7]-1)) +\ util.sum(_n[7:51]*_t[7:51]*delta**_d[7:51]*tau**(_t[7:51]-1) * \ _exp(-delta**_c[7:51])) + \ util.sum(_n[51:54]*delta**_d[51:54]*tau**_t[51:54] * \ _exp(-_alpha*(delta-_epsilon)**2-_beta1*(tau-_gamma)**2) * \ (_t[51:54]/tau-2*_beta1*(tau-_gamma))) + \ util.sum(_n[54:56]*delta*(_pder_Deltab_tau(Delta, theta)*psi + \ Delta**_b*_pder_psi_tau(tau, psi)))
def _phir_delta(delta, tau): """Partial derivative of phi_r wrt delta.""" psi = _exp(-_C*(delta-1)**2 - _D*(tau-1)**2) theta = (1-tau) + _A*((delta-1)**2)**(1/(2*_beta2)) Delta = theta**2 + _B*((delta-1)**2)**_a return util.sum(_n[0:7]*_d[0:7]*delta**(_d[0:7]-1)*tau**_t[0:7]) + \ util.sum(_n[7:51]*_exp(-delta**_c[7:51]) * \ delta**(_d[7:51]-1)*tau**_t[7:51] * \ (_d[7:51]-_c[7:51]*delta**_c[7:51])) + \ util.sum(_n[51:54]*delta**_d[51:54]*tau**_t[51:54] * \ _exp(-_alpha*(delta-_epsilon)**2 - \ _beta1*(tau-_gamma)**2) * (_d[51:54]/delta - 2*_alpha*(delta-_epsilon))) +\ util.sum(_n[54:56]*(Delta**_b*(psi+delta*_pder_psi_delta(psi, delta)) + _pder_Deltab_delta(Delta, delta, theta)*delta*psi))
def model(self, params): tau,y0,y8 = params x_data = self.info['x data (s)'] x0 = x_data[0] # raw times in seconds are too far from the epoc a = 1 - y0/y8 self._model_data[:] = y8*(1-a*_exp(-(x_data-x0)/tau)) return self._model_data
def _dtheta_Br_for_ml_complex(self, r, th, ph, c, m, l, a=6371.2): """ Calculates the d_theta(Br)/R contribution for one set of m,l, using the potential field. Inputs ------ r: radius location (km) th: latitude location (radians) ph: longitude location (radians) c: complex gauss coefficient m: Order of calculation l: Degree of calculation a: Radius (km) at which Gauss coefficients are calculated Returns ------- d_theta(Br)/R in Tesla at a particular point from a particular degree and order. """ return (l+1.)*a**(l+2.)/abs(r)**(l+2.)*c*_exp(1j*m*ph)*self._dtheta_Pml(_cos(th), l, m)/r
def exp(x): if isinstance(x, DataRef): return DataRef("exp({})".format(x)) else: return _exp(x)
def _phio_tautau(tau): """Second partial derivative of phi_o wrt delta.""" return -_no[2]*tau**-2 - \ util.sum(_no[3:8]*_gammao[3:8]**2*_exp(-_gammao[3:8]*tau)*\ (1-_exp(-_gammao[3:8]*tau))**(-2))
def _phio_tau(tau): """Partial derivative of phi_o wrt tau.""" return _no[1] + _no[2]/tau + \ util.sum(_no[3:8]*_gammao[3:8]*((1-_exp(-_gammao[3:8]*tau))**(-1) - 1))
def _phio(delta, tau): """Ideal gas part of the dimensionless Helmholtz potential.""" return numpy.log(delta) + _no[0] + _no[1]*tau + _no[2]*numpy.log(tau) + \ util.sum(_no[3:8]*numpy.log(1-_exp(-_gammao[3:8]*tau)))