def get_correlation_spectra_serial(vq, trajectory, parameters): test_frequency_range = np.array(parameters.frequency_range) correlation_vector = np.zeros((len(test_frequency_range),vq.shape[1]),dtype=float) progress_bar(0) for i in range (vq.shape[1]): for k, frequency in enumerate(test_frequency_range): angular_frequency = frequency * 2 * np.pi # Frequency(THz) -> angular frequency (rad/ps) correlation_vector[k,i] = correlation.correlation2(angular_frequency, vq[:, i], trajectory.get_time_step_average(), step=parameters.correlation_function_step, integration_method=parameters.integration_method) progress_bar(float(i+1)/vq.shape[1]) return correlation_vector
def correlation_worker(n_pos, test_frequencies_range, vq, trajectory,correlation_function_step): # print('starting:',n_pos,'Time step:',trajectory.get_time_step_average(),'Frame skip:',correlation_function_step) correlation_range = [] for k, frequency in enumerate(test_frequencies_range): angular_frequency = frequency * 2 * np.pi # Frequency(THz) -> angular frequency (rad/ps) # integration_method: 0 Trapezoid method (slow) 1 Rectangle method (fast) #correlation_range.append(correlation.correlation(angular_frequency,vq,trajectory.get_time(),step=correlation_function_step,integration_method=1)) correlation_range.append(correlation.correlation2(angular_frequency, vq, trajectory.get_time_step_average(), step=correlation_function_step, integration_method=1)) # print('finishing',n_pos) return {n_pos:correlation_range}