def _generate_eos_node(include_magnetization=True): from aiida.common import LinkType from aiida.orm import Float, WorkflowNode node = WorkflowNode( process_type='aiida.workflows:common_workflows.eos').store() for index in range(5): structure = generate_structure().store() energy = Float(index).store() structure.add_incoming(node, link_type=LinkType.RETURN, link_label=f'structures__{index}') energy.add_incoming(node, link_type=LinkType.RETURN, link_label=f'total_energies__{index}') if include_magnetization: magnetization = Float(index).store() magnetization.add_incoming( node, link_type=LinkType.RETURN, link_label=f'total_magnetizations__{index}') return node
def _generate_dissociation_curve_node(include_magnetization=True): from aiida.common import LinkType from aiida.orm import Float, WorkflowNode node = WorkflowNode(process_type='aiida.workflows:common_workflows.dissociation_curve').store() for index in range(5): distance = Float(index / 10).store() energy = Float(index).store() distance.add_incoming(node, link_type=LinkType.RETURN, link_label=f'distances__{index}') energy.add_incoming(node, link_type=LinkType.RETURN, link_label=f'total_energies__{index}') if include_magnetization: magnetization = Float(index).store() magnetization.add_incoming(node, link_type=LinkType.RETURN, link_label=f'total_magnetizations__{index}') return node
def _generate_dissociation_curve_node(include_magnetization=True, include_energy=True): from aiida.common import LinkType from aiida.orm import Float, WorkflowNode node = WorkflowNode(process_type='aiida.workflows:common_workflows.dissociation_curve').store() for index in range(5): distance = Float(index / 10).store() distance.add_incoming(node, link_type=LinkType.RETURN, link_label=f'distances__{index}') # `include_energy` can be set to False to test cases with missing outputs if include_energy: energy = Float(index).store() energy.add_incoming(node, link_type=LinkType.RETURN, link_label=f'total_energies__{index}') if include_magnetization: magnetization = Float(index).store() magnetization.add_incoming(node, link_type=LinkType.RETURN, link_label=f'total_magnetizations__{index}') node.set_exit_status(0) return node