ironflow.nodes.pyiron_atomistics module
Ryven nodes specific to pyiron (or with ironflow improvements like an ipywidgets representation).
- class ironflow.nodes.pyiron_atomistics.ApplyStrain_Node(params)[source]
Bases:
OutputsOnlyAtomsApply strain on atomic structure supercell.
- Inputs:
structure (pyiron_atomistics.Atoms): The atomic structure to strain. strain (float): The isotropic strain to apply, where 0 is unstrained. (Default is 0.)
- Outputs:
(pyiron_atomistics.Atoms): A strained copy of the input structure.
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- node_function(structure, strain, **kwargs) dict[source]
Takes all data input as kwargs, must return a dict with one entry for each data output
- outputs: List[NodeOutput]
- title = 'ApplyStrain'
- class ironflow.nodes.pyiron_atomistics.AtomisticOutput_Node(params)[source]
Bases:
DataNodeSelect Generic Output item.
- Inputs:
- job (AtomisticGenericJob): A job with an output attribute of type
pyiron_atomistics.atomistics.job.atomistic.GenericOutput.
field (dtypes.Choice): Which output field to look at. Automatically populates once the job is valid.
- Outputs:
output (numpy.ndarray): The selected output field.
- color = '#c69a15'
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>]
- node_function(job, field, transpose, index, **kwargs) dict[source]
Takes all data input as kwargs, must return a dict with one entry for each data output
- outputs: List[NodeOutput]
- title = 'AtomisticOutput'
- version: str = 'v0.1'
- class ironflow.nodes.pyiron_atomistics.AtomisticTaker(params)[source]
Bases:
JobTaker,ABC- property extra_representations: dict
When developing nodes, override this with any desired additional representations.
Note that standard representations exist for all output ports using the port’s label (where available), so if you add a key here matching one of those labels, you will override the standard output.
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>]
- outputs: List[NodeOutput]
- valid_job_classes = [<class 'pyiron_atomistics.lammps.lammps.Lammps'>]
- class ironflow.nodes.pyiron_atomistics.BeautifulHasGroups(has_groups: HasGroups | None)[source]
Bases:
objectA helper class for giving classes that inherit from pyiron_base.HasGroups a more appealing representation in ipywidgets.
- class ironflow.nodes.pyiron_atomistics.BulkStructure_Node(params)[source]
Bases:
OutputsOnlyAtomsGenerate a bulk atomic structure.
- Inputs:
element (str): The atomic symbol for the desired atoms. (Default is “Fe”.) crystal_structure (str | None): Must be one of sc, fcc, bcc, hcp, diamond, zincblende,
rocksalt, cesiumchloride, fluorite or wurtzite.
a (float | None): Lattice constant. c (float | None): Lattice constant. c_over_a (float | None): c/a ratio used for hcp. Default is ideal ratio: sqrt(8/3). u (float | None): Internal coordinate for Wurtzite structure. orthorhombic (bool): Construct orthorhombic unit cell instead of primitive cell. (Takes precedence over cubic
flag when both are true.)
cubic (bool): Construct cubic unit cell if possible.
- Outputs:
structure (pyiron_atomistics.Atoms): A mono-species bulk structure.
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>]
- node_function(element, crystal_structure, a, c, c_over_a, u, orthorhombic, cubic, **kwargs) dict[source]
Takes all data input as kwargs, must return a dict with one entry for each data output
- outputs: List[NodeOutput]
- title = 'BulkStructure'
- class ironflow.nodes.pyiron_atomistics.CalcMD_Node(params)[source]
Bases:
AtomisticTakerExecute a static atomistic engine evaluation.
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- outputs: List[NodeOutput]
- title = 'CalcMD'
- class ironflow.nodes.pyiron_atomistics.CalcMinimize_Node(params)[source]
Bases:
AtomisticTakerExecute a static atomistic engine evaluation.
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- outputs: List[NodeOutput]
- title = 'CalcMinimize'
- class ironflow.nodes.pyiron_atomistics.CalcMurnaghan_Node(params)[source]
Bases:
JobNode- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>]
- outputs: List[NodeOutput]
- title = 'CalcMurnaghan'
- valid_job_classes = [<class 'pyiron_atomistics.atomistics.master.murnaghan.Murnaghan'>]
- class ironflow.nodes.pyiron_atomistics.CalcStatic_Node(params)[source]
Bases:
AtomisticTakerExecute a static atomistic engine evaluation.
- outputs: List[NodeOutput]
- title = 'CalcStatic'
- class ironflow.nodes.pyiron_atomistics.ChangeSpecies_Node(params)[source]
Bases:
OutputsOnlyAtoms- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- node_function(structure, species, indices, **kwargs)[source]
Takes all data input as kwargs, must return a dict with one entry for each data output
- outputs: List[NodeOutput]
- title = 'ChangeSpecies'
- class ironflow.nodes.pyiron_atomistics.Engine(params)[source]
Bases:
DataNodeA parent class for engines (jobs).
- color = '#5d95de'
- outputs: List[NodeOutput]
- class ironflow.nodes.pyiron_atomistics.GBStructure_Node(params)[source]
Bases:
OutputsOnlyAtomsGenerate a grain boundary structure based on the aimsgb.GrainBoundary module.
- Inputs:
axis : Rotational axis for the GB you want to construct (for example, axis=[1,0,0]) sigma (int) : The sigma value of the GB you want to construct (for example, sigma=5) plane: The grain boundary plane of the GB you want to construct (for example, plane=[2,1,0]) initial_struct : Initial bulk structure from which you want to construct the GB (a pyiron
structure object).
- delete_layerTo delete layers of the GB. For example, delete_layer=’1b0t1b0t’. The first
4 characters is for first grain and the other 4 is for second grain. b means bottom layer and t means top layer. Integer represents the number of layers to be deleted. The first t and second b from the left hand side represents the layers at the GB interface. Default value is delete_layer=’0b0t0b0t’, which means no deletion of layers.
- add_if_distIf you want to add extra interface distance, you can specify add_if_dist.
Default value is add_if_dist=0.0
- to_primitiveTo generate primitive or non-primitive GB structure. Default value is
to_primitive=False
uc_a (int): Number of unit cell of grain A. Default to 1. uc_b (int): Number of unit cell of grain B. Default to 1.
- Outputs:
structure (pyiron_atomistics.Atoms): A GB based of the initial_struct.
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- node_function(initial_struct, axis, sigma, plane, to_primitive, delete_layer, add_if_dist, uc_a, uc_b, **kwargs) dict[source]
Takes all data input as kwargs, must return a dict with one entry for each data output
- outputs: List[NodeOutput]
- title = 'GBStructure'
- class ironflow.nodes.pyiron_atomistics.JobName_Node(params)[source]
Bases:
DataNodeCreate a sanitized job name, optionally with a floating point parameter.
- Inputs:
name_base (str): The stem for the final name. (Default is “job”.) parameter (float|None): The parameter value to add to the name. ndigits (int|None): How many digits to keep from floating point values.
(Default 8. Use None to not round at all.)
special_symbols (dict|None): Not documented, sorry. (Default is None.)
- Outputs:
job_name (str): The base plus float sanitized into a valid job name.
- color = '#aabb44'
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>]
- node_function(name_base, parameter, ndigits, special_symbols, **kwargs)[source]
Takes all data input as kwargs, must return a dict with one entry for each data output
- outputs: List[NodeOutput]
- title = 'JobName'
- class ironflow.nodes.pyiron_atomistics.JobTable_Node(params)[source]
Bases:
Node- color = '#aabb44'
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>]
- title = 'JobTable'
- class ironflow.nodes.pyiron_atomistics.LammpsPotentials_Node(params)[source]
Bases:
DataNodeGiven a structure, returns the available compatible Lammps potential names.
- color = '#aabb44'
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>]
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>]
- node_function(structure, **kwargs) dict[source]
Takes all data input as kwargs, must return a dict with one entry for each data output
- outputs: List[NodeOutput]
- title = 'LammpsPotentials'
- class ironflow.nodes.pyiron_atomistics.Lammps_Node(params)[source]
Bases:
EngineCreates a Lammps engine (job) object for use by a calculator
- property extra_representations: dict
When developing nodes, override this with any desired additional representations.
Note that standard representations exist for all output ports using the port’s label (where available), so if you add a key here matching one of those labels, you will override the standard output.
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>]
- node_function(project, structure, potential, **kwargs) dict[source]
Takes all data input as kwargs, must return a dict with one entry for each data output
- outputs: List[NodeOutput]
- title = 'Lammps'
- update_event(inp=-1)[source]
Gets called when an input received a signal or some node requested data of an output in exec mode
- version: str = 'v0.2'
- class ironflow.nodes.pyiron_atomistics.MaterialProperty_Node(params)[source]
Bases:
DataNode- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>]
- node_function(property, source, *args, **kwargs) dict[source]
Takes all data input as kwargs, must return a dict with one entry for each data output
- outputs: List[NodeOutput]
- title = 'MaterialProperty'
- class ironflow.nodes.pyiron_atomistics.OutputsOnlyAtoms(params)[source]
Bases:
DataNode,ABCA helper class that manages representations for nodes whose only output is a pyiron_atomistics.Atoms object.
- Outputs:
structure (pyiron_atomistics.Atoms): An atomic structure.
- color = '#aabb44'
- property extra_representations: dict
When developing nodes, override this with any desired additional representations.
Note that standard representations exist for all output ports using the port’s label (where available), so if you add a key here matching one of those labels, you will override the standard output.
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>]
- outputs: List[NodeOutput]
- class ironflow.nodes.pyiron_atomistics.Project_Node(params)[source]
Bases:
DataNodeCreate a pyiron project.
- Inputs:
name (str): The name of the project. Will access existing project data under that name. (Default is “.”.)
- Outputs:
project (pyiron_atomistics.Project): The project object.
- color = '#aabb44'
- property extra_representations: dict
When developing nodes, override this with any desired additional representations.
Note that standard representations exist for all output ports using the port’s label (where available), so if you add a key here matching one of those labels, you will override the standard output.
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>]
- node_function(name, **kwargs) dict[source]
Takes all data input as kwargs, must return a dict with one entry for each data output
- outputs: List[NodeOutput]
- title = 'Project'
- class ironflow.nodes.pyiron_atomistics.PyironTable_Node(params)[source]
Bases:
JobMaker- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>, <ironflow.model.port.NodeOutputBP object>]
- n = 1
- n_fixed_input_cols = 4
- n_fixed_output_cols = 3
- n_table_cols = 2
- outputs: List[NodeOutput]
- title = 'PyironTable'
- valid_job_classes = [<class 'pyiron_base.jobs.datamining.TableJob'>]
- class ironflow.nodes.pyiron_atomistics.Repeat_Node(params)[source]
Bases:
OutputsOnlyAtomsRepeat atomic structure supercell.
- Inputs:
structure (pyiron_atomistics.Atoms): The structure to repeat periodically. all (int): The number of times to repeat it in each of the three bravais lattice directions.
- Outputs:
structure (pyiron_atomistics.Atoms): A repeated copy of the input structure.
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- node_function(structure, all, **kwargs) dict[source]
Takes all data input as kwargs, must return a dict with one entry for each data output
- outputs: List[NodeOutput]
- title = 'Repeat'
- class ironflow.nodes.pyiron_atomistics.SlabStructure_Node(params)[source]
Bases:
OutputsOnlyAtomsGenerate a surface based on the ase.build.surface module.
- Parameters:
element (str) – The atomic symbol for the desired atoms. (Default is “Fe”.)
surface_type (str) – The string specifying the surface type generators available through ase (fcc111, hcp0001 etc.)
size (tuple) – Three-tuple of integers to give size (repetitions) of the surface
vacuum (float) – Length of vacuum layer added to the surface along the z direction
center (bool) – Tells if the surface layers have to be at the center or at one end along the z-direction.
orthogonal (bool) – Construct orthogonal cell.
a (float | None) – Lattice constant.
- Returns:
Requested surface
- Return type:
pyiron_atomistics.atomistics.structure.atoms.Atoms instance
- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>]
- node_function(element, surface_type, size_a, size_b, size_c, vacuum, center, orthogonal, a) dict[source]
Takes all data input as kwargs, must return a dict with one entry for each data output
- outputs: List[NodeOutput]
- title = 'SlabStructure'
- class ironflow.nodes.pyiron_atomistics.SurfaceEnergy_Node(params)[source]
Bases:
DataNode- init_inputs: List[NodeInputBP] = [<ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>, <ironflow.model.port.NodeInputBP object>]
- init_outputs: List[NodeOutputBP] = [<ironflow.model.port.NodeOutputBP object>]
- node_function(bulk_structure, bulk_energy, surface_structure, surface_energy, **kwargs) dict[source]
Takes all data input as kwargs, must return a dict with one entry for each data output
- outputs: List[NodeOutput]
- title = 'SurfaceEnergy'