exp_grad_function=s.get_grad_adp_pdf, exp_function=s.get_pdf, conv=100) calc = Calc1D(target_data=target_pdf, exp_grad_function=null_func, exp_function=s.get_pdf, conv=100) starting_atoms = atoms.copy() starting_adps = ADP(atoms, adps=adp_tensor * np.random.random(adp_tensor.shape)) starting_adps.set_calculator(adp_calc) starting_atoms.info['adps'] = starting_adps plot_pdf(s.get_r(), target_pdf, s.get_pdf(starting_atoms), show=False, save_file='../random/start') starting_atoms.set_calculator(adp_calc) traj = classical_dynamics(starting_atoms, .01, 100) nrg = [] for atoms in traj: atoms.set_momenta(atoms.info['adps'].get_positions() * 1000) nrg.append(atoms.get_potential_energy()) print(traj[np.argmin(nrg)].info['adps'].get_positions() / adp_tensor) target_atoms.set_momenta(target_atoms.info['adps'].get_positions() * 1000) # view(target_atoms) # view(traj) plot_pdf(s.get_r(), target_pdf, s.get_pdf(traj[np.argmin(nrg)]), show=False, save_file='../random/min')
exp_grad_function=s.get_grad_adp_pdf, exp_function=s.get_pdf, conv=100) calc = Calc1D(target_data=target_pdf, exp_grad_function=null_func, exp_function=s.get_pdf, conv=100) starting_atoms = atoms.copy() starting_adps = ADP(atoms, adps=adp_tensor * adp_tensor_target * 1.5) starting_adps.set_calculator(adp_calc) starting_atoms.info['adps'] = starting_adps plot_pdf(s.get_r(), target_pdf, s.get_pdf(starting_atoms), show=False) starting_atoms.set_calculator(adp_calc) traj = classical_dynamics(starting_atoms, .01, 100) nrg = [] for atoms in traj: atoms.set_momenta(atoms.info['adps'].get_positions() * 1000) nrg.append(atoms.get_potential_energy()) print(traj[np.argmin(nrg)].info['adps'].get_positions() / adp_tensor) target_atoms.set_momenta(target_atoms.info['adps'].get_positions() * 1000) view(target_atoms) view(traj) plot_pdf(s.get_r(), target_pdf, s.get_pdf(traj[np.argmin(nrg)]), show=False) save_file = '../janus/' # need a way to plot the ADPs