#!/usr/bin/env python # coding: utf-8 # In[1]: from pyiron import Project # In[2]: def calc_minimize(job): job_mini = job.copy_to( new_job_name=job.job_name + '_mini', new_database_entry=False ) job_mini.calc_minimize(pressure=0) return job_mini # In[3]: def calc_murnaghan(job): job_murn = job.copy_to( new_job_name=job.job_name + '_murn_lmp', new_database_entry=False ) return job_murn.create_job( job_type=pr.job_type.Murnaghan, job_name=job.job_name + '_murn' ) # In[4]: def calc_phonons_for_each_structure(job): job_phono = job.copy_to( new_job_name=job.job_name + '_phono_lmp', new_database_entry=False ) phono = job_phono.create_job( job_type=pr.job_type.PhonopyJob, job_name=job.job_name + '_phono' ) return phono.create_job( job_type=pr.job_type.StructureListMaster, job_name='struct_master' ) # In[5]: pr = Project('calculation') potential = 'Fe_C_Hepburn_Ackland_eam' element = 'Fe' # In[6]: structure = pr.create_ase_bulk(element, cubic=True) # In[7]: job = pr.create_job(pr.job_type.Lammps, 'lmp') job.structure = structure job.potential = potential job.server.run_mode.interactive = True # In[8]: job_lst_master = job.create_pipeline( step_lst=[ calc_minimize, calc_murnaghan, calc_phonons_for_each_structure, ] ) # In[9]: job_lst_master.run() # In[10]: pr.job_table() # In[ ]: