Influence of setting ibrav#

from aiida import orm, load_profile
from aiida_quantumespresso.workflows.pw.base import PwBaseWorkChain
from pathlib import Path
from aiida.engine import run_get_node

from ase import io

load_profile()
atoms = io.read(Path('scf-ibrav2.in'))
structure = orm.StructureData(ase=atoms)
code = orm.load_code('qe-7.2-pw@localhost')

Run without ibrav#

builder = PwBaseWorkChain.get_builder_from_protocol(code=code, structure=structure)

results, node = run_get_node(builder)
results['output_parameters'].get_dict()['wall_time']
node.called[-1].base.repository.list_object_names()
print(node.called[-1].base.repository.get_object_content('aiida.in'))

Run with ibrav#

builder = PwBaseWorkChain.get_builder_from_protocol(code=code, structure=structure)

builder.pw.parameters['SYSTEM']['ibrav'] = 2

# Note that this is not possible - Also see https://github.com/aiidateam/aiida-quantumespresso/issues/922 
# builder.pw.parameters['SYSTEM']['celldm(1)'] = 8.0374557182  

results, node = run_get_node(builder)
results['output_parameters'].get_dict()['wall_time']
print(node.called[-1].base.repository.get_object_content('aiida.in'))

parent_folder creator#

# First run
builder = PwBaseWorkChain.get_builder_from_protocol(code=code, structure=structure)

results, node = run_get_node(builder)

# Restart
restart_builder = PwBaseWorkChain.get_builder_from_protocol(code=code, structure=structure)

parameters = restart_builder.pw.parameters.get_dict()
parameters['ELECTRONS']['startingpot'] = 'file'
restart_builder.pw.parameters = orm.Dict(parameters)
restart_builder.pw.parent_folder = node.outputs.remote_folder

restart_results, restart_node = run_get_node(restart_builder)

restart_node.inputs.pw.parent_folder.creator

You can also do the following, but only because the Dict node is not stored!

parent_folder = node.outputs.remote_folder

restart_builder = PwBaseWorkChain.get_builder_from_protocol(code=code, structure=structure)

restart_builder.pw.parameters['ELECTRONS']['startingpot'] = 'file'
restart_builder.pw.parent_folder = parent_folder

test_restults, test_node = run_get_node(restart_builder)