def get_time_deriv_from_index(self, i0, q, y): # Setup fit variables x = _utils.get_ds_fit_x(y, q) # Evaluate fits data = self.fit_data[i0] ooxy_coorb = _utils.eval_vector_fit( 2, data['omega_orb']['bfOrders'], data['omega_orb']['coefs'], data['omega_orb']['bVecIndices'], x) omega = _utils.eval_fit( data['omega']['bfOrders'], data['omega']['coefs'], x) cAdot_coorb = _utils.eval_vector_fit( 3, data['chiA']['bfOrders'], data['chiA']['coefs'], data['chiA']['bVecIndices'], x) cBdot_coorb = _utils.eval_vector_fit( 3, data['chiB']['bfOrders'], data['chiB']['coefs'], data['chiB']['bVecIndices'], x) # Do rotations to the coprecessing frame, find dqdt, and append dydt = _utils.assemble_dydt(y, ooxy_coorb, omega, cAdot_coorb, cBdot_coorb) return dydt
def get_omega(self, i0, q, y): x = _utils.get_ds_fit_x(y, q) data = self.fit_data[i0] omega = _utils.eval_fit( data['omega']['bfOrders'], data['omega']['coefs'], x) return omega
def _eval_comp(data, q, chiA, chiB): nodes = [] for orders, coefs, ni in zip(data['orders'], data['coefs'], data['nodeIndices']): nodes.append( _utils.eval_fit(orders, coefs, np.append(q, np.append(chiA[ni], chiB[ni])))) return np.array(nodes).dot(data['EI_basis'])