I’m new here and maybe my question can seem to be stupid, sorry for that in advance.
I have successfully installed the atomate framework and now am trying to insert all my vasprun.xml files into atomate database for later analysis. So, the task is following:
Input: directory with many subdirs with different vasprun.xml files and corresponding POSCAR/CONTCAR/etc.
Task: insert all data from each vasprun.xml in the directory into atomate database(mongodb as i understood).
What is the best practice for that?
I found VaspToDb task, but it seems to work false or I have used that incorrectly.
So, my code(where paths contains all directorises with vasprun.xml files):
launchpad = LaunchPad.auto_load()
tasks = 
for path in paths:
task = VaspToDb(calc_dir=path)
fw = Firework(tasks)
wf = Workflow([fw], name=“test workflow”)
Then extract data fro database:
atomate_db = VaspCalcDb.from_db_file(PATH_TO_MY_DB_JSON)
But I cannot observe any inserted data.
Could you help me or give any hints?
Thank you in advance!
When you create the VaspToDb task, do you specify the db_file parameter? This is needed so that the VaspToDb task can actually insert the task into the database. Otherwise it simply writes a JSON file to the directory containing the data, without actually inserting anything in the DB
thank you for your reply. I devided my thoughts/questions/answers into 3 separate parts:
I think, the answer is yes. As you can see the line launchpad = LaunchPad.auto_load() is used. Before the db.json and other corresponding files, such as FW_config.yaml were configured. If I print(launchpad), it outputs the server that I set up before. Moreover, through Mongo DB GUI I can observe the changing database. Do I use it correctly?
I tried another approach, namely to create for each poscar a separate workflow. The code:
for path in paths:
struct = Structure.from_file(path+‘POSCAR’)
wf = wf_bandstructure(struct)
where paths are all directories with POSCARs, but now I receive the following error:
FileNotFoundError: [Errno 2] No such file or directory: ‘srun’: ‘srun’.
And the tasks are either FIZZLED or WAITED
- Is there any other approaches? Maybe without using VaspToDB task? I just need to insert all information of my vasprun.xml files into database for later analysis.