physics module
Full Documentation for hippynn.graphs.nodes.physics module.
Click here for a summary page.
Nodes for physics transformations
- class AtomToMolSummer(name, parents, module='auto', **kwargs)[source]
 Bases:
ExpandParents,AutoNoKw,SingleNode- expansion1(features, pdxer, **kwargs)[source]
 Used for creation from parents with signature (Node, AtomIndexer)
- input_names = ('features', 'system_index', 'n_systems')
 
- parent_expander: ParentExpander = <hippynn.graphs.nodes.base.definition_helpers.ParentExpander object>
 
- class BondToMolSummmer(name, parents, module='auto', **kwargs)[source]
 Bases:
ExpandParents,AutoNoKw,SingleNode- auto_module_class
 alias of
MolPairSummer
- expansion0(features, *, purpose, **kwargs)[source]
 Used for creation from parents with signature (Node)
- expansion1(features, pdxer, pair_idxer, **kwargs)[source]
 Used for creation from parents with signature (Node, AtomIndexer, PairIndexer)
- expansion2(features, system_index, n_systems, **kwargs)[source]
 Used for creation from parents with signature (Node, Node, Node, Node, Node)
- input_names = ('pairfeatures', 'system_index', 'n_systems', 'pair_first')
 
- parent_expander: ParentExpander = <hippynn.graphs.nodes.base.definition_helpers.ParentExpander object>
 
- class ChargeMomentNode(name, parents, module='auto', **kwargs)[source]
 Bases:
ExpandParents,AutoNoKw,SingleNode- expansion0(charges, *, purpose, **kwargs)[source]
 Used for creation from parents with signature (Node)
- expansion1(charges, positions, *, purpose, **kwargs)[source]
 Used for creation from parents with signature (Charges, PositionsNode)
- expansion2(charges, positions, pdxer, **kwargs)[source]
 Used for creation from parents with signature (Charges, PositionsNode, AtomIndexer)
- input_names = ('charges', 'positions', 'system_index', 'n_systems')
 
- parent_expander: ParentExpander = <hippynn.graphs.nodes.base.definition_helpers.ParentExpander object>
 
- class ChargePairSetup(name, parents, *args, **kwargs)[source]
 Bases:
ExpandParents- expansion0(charges, *, purpose, **kwargs)[source]
 Used for creation from parents with signature (Charges)
- expansion1(charges, species, *, purpose, **kwargs)[source]
 Used for creation from parents with signature (Charges, SpeciesNode)
- expansion2(charges, pos_or_pair, species, *, purpose, **kwargs)[source]
 Used for creation from parents with signature (Charges, Node, SpeciesNode)
- expansion3(charges, positions, pidxer, *, cutoff_distance, **kwargs)[source]
 Used for creation from parents with signature (Charges, PositionsNode, PaddingIndexer)
- expansion4(charges, pairfinder, pidxer, *, cutoff_distance, **kwargs)[source]
 Used for creation from parents with signature (Charges, PairIndexer, AtomIndexer)
- parent_expander: ParentExpander = <hippynn.graphs.nodes.base.definition_helpers.ParentExpander object>
 
- class CombineEnergyNode(*args, module='auto', **kwargs)[source]
 Bases:
AutoNoKw,Energies,ExpandParents,MultiNodeCombines Local atom energies from different Energy Nodes.
Note
This node has parent expansion, following these procedures.
If matching (Node, Energies), then apply expansion0
If matching (Energies, Node), then apply expansion0
If matching (Node, Node), then apply expansion1
If matching (Node, Node, PaddingIndexer), then apply expansion2
Asserts that the number of parents is 4
Transforms the parents to have index states (<IdxType.Atoms>, <IdxType.Atoms>, None, None)
- auto_module_class
 alias of
CombineEnergy
- expansion0(energy_1, energy_2, **kwargs)[source]
 Used for creation from parents with signature (Energies, Node)
- expansion1(energy_1, energy_2, **kwargs)[source]
 Used for creation from parents with signature (Node, Node)
- expansion2(energy_1, energy_2, pdindexer, **kwargs)[source]
 Used for creation from parents with signature (Node, Node, PaddingIndexer)
- input_names = ('input_atom_energy_1', 'input_atom_energy_2', 'system_index', 'n_systems')
 
- main_output_name = 'mol_energy'
 
- output_index_states = (<IdxType.Systems>, <IdxType.Atoms>)
 
- output_names = ('mol_energy', 'atom_energies')
 
- parent_expander: ParentExpander = <hippynn.graphs.nodes.base.definition_helpers.ParentExpander object>
 
- class CoulombEnergyNode(*args, module='auto', module_kwargs=None, **kwargs)[source]
 Bases:
AutoKw,ChargePairSetup,Energies,MultiNode,_DeprecatedNamesMixinBesides the normal ‘name’ and ‘parents’ arguments, this node requires an energy_conversion parameter. This corresponds to coulomb’s constant k in the equation E = kqq/r.
Note
This node has parent expansion, following these procedures.
If matching (Charges), then apply expansion0
If matching (Charges, PairIndexer), then apply expansion1
If matching (Charges, PositionsNode), then apply expansion1
If matching (Charges, SpeciesNode), then apply expansion1
If matching (Charges, Node, SpeciesNode), then apply expansion2
If matching (Charges, PositionsNode, PaddingIndexer), then apply expansion3
If matching (Charges, PairIndexer, AtomIndexer), then apply expansion4
Asserts that the number of parents is 6
Gets main_output of nodes: casts MultiNodes to their main output
Transforms the parents to have index states (<IdxType.Atoms>, None, None, None, None, None)
- auto_module_class
 alias of
CoulombEnergy
- auto_module_kwargs: Tuple[str] | Dict[str, str] | None = 'energy_conversion_factor'
 
- input_names = ('charges', 'pair_dist', 'pair_first', 'pair_second', 'system_index', 'n_systems')
 
- main_output_name = 'system_energies'
 
- output_index_states = (<IdxType.Systems>, <IdxType.Atoms>, <IdxType.Atoms>)
 
- output_names = ('system_energies', 'atom_energies', 'atom_voltages')
 
- parent_expander: ParentExpander = <hippynn.graphs.nodes.base.definition_helpers.ParentExpander object>
 
- class DipoleNode(name, parents, module='auto', **kwargs)[source]
 Bases:
ChargeMomentNodeCompute the dipole of point charges.
Note
This node has parent expansion, following these procedures.
If matching (Node), then apply expansion0
If matching (Charges, PositionsNode), then apply expansion1
If matching (Charges, PositionsNode, AtomIndexer), then apply expansion2
Asserts that the number of parents is 4
Gets main_output of nodes: casts MultiNodes to their main output
Transforms the parents to have index states (<IdxType.Atoms>, <IdxType.Atoms>, None, None)
- name: str
 
- parent_expander: ParentExpander = <hippynn.graphs.nodes.base.definition_helpers.ParentExpander object>
 
- torch_module: torch.nn.Module
 
- class GradientNode(name, parents, sign, **kwargs)[source]
 Bases:
AutoKw,SingleNodeCompute the gradient of a quantity.
- auto_module_kwargs: Tuple[str] | Dict[str, str] | None = ('sign',)
 
- input_names = ('energy', 'coordinates')
 
- class MultiGradientNode(name: str, molecular_energies_parent: Node, generalized_coordinates_parents: tuple[Node], signs: tuple[int], **kwargs)[source]
 - 
Compute the gradient of a quantity.
- auto_module_class
 alias of
MultiGradient
- auto_module_kwargs: Tuple[str] | Dict[str, str] | None = ('signs',)
 
 
- class PerAtom(name, parents, module='auto', **kwargs)[source]
 Bases:
ExpandParents,AutoNoKw,SingleNode- expansion0(features, *, purpose, **kwargs)[source]
 Used for creation from parents with signature (Node)
- expansion1(features, species, **kwargs)[source]
 Used for creation from parents with signature (Node, Node)
- input_names = ('features', 'species')
 
- parent_expander: ParentExpander = <hippynn.graphs.nodes.base.definition_helpers.ParentExpander object>
 
- class QuadrupoleNode(name, parents, module='auto', **kwargs)[source]
 Bases:
ChargeMomentNodeCompute the traceless quadrupole of point charges.
Note
This node has parent expansion, following these procedures.
If matching (Node), then apply expansion0
If matching (Charges, PositionsNode), then apply expansion1
If matching (Charges, PositionsNode, AtomIndexer), then apply expansion2
Asserts that the number of parents is 4
Gets main_output of nodes: casts MultiNodes to their main output
Transforms the parents to have index states (<IdxType.Atoms>, <IdxType.Atoms>, None, None)
- auto_module_class
 alias of
Quadrupole
- name: str
 
- parent_expander: ParentExpander = <hippynn.graphs.nodes.base.definition_helpers.ParentExpander object>
 
- torch_module: torch.nn.Module
 
- class ScreenedCoulombEnergyNode(name, parents, energy_conversion_factor, cutoff_distance, screening=None, module='auto', **kwargs)[source]
 Bases:
AutoKw,ChargePairSetup,Energies,MultiNode,_DeprecatedNamesMixinBesides the normal ‘name’ and ‘parents’ arguments, this node requires an energy_conversion parameter. This corresponds to coulomb’s constant k in the equation E = kqq/r.
Note
This node has parent expansion, following these procedures.
If matching (Charges), then apply expansion0
If matching (Charges, PairIndexer), then apply expansion1
If matching (Charges, PositionsNode), then apply expansion1
If matching (Charges, SpeciesNode), then apply expansion1
If matching (Charges, Node, SpeciesNode), then apply expansion2
If matching (Charges, PositionsNode, PaddingIndexer), then apply expansion3
If matching (Charges, PairIndexer, AtomIndexer), then apply expansion4
Asserts that the number of parents is 6
Gets main_output of nodes: casts MultiNodes to their main output
Transforms the parents to have index states (<IdxType.Atoms>, None, None, None, None, None)
- auto_module_class
 alias of
ScreenedCoulombEnergy
- auto_module_kwargs: Tuple[str] | Dict[str, str] | None = {'energy_conversion_factor': 'energy_conversion_factor', 'radius': 'cutoff_distance', 'screening': 'screening'}
 
- input_names = ('charges', 'pair_dist', 'pair_first', 'pair_second', 'system_index', 'n_systems')
 
- main_output_name = 'system_energies'
 
- output_index_states = (<IdxType.Systems>, <IdxType.Atoms>, <IdxType.Atoms>)
 
- output_names = ('system_energies', 'atom_energies', 'atom_voltages')
 
- parent_expander: ParentExpander = <hippynn.graphs.nodes.base.definition_helpers.ParentExpander object>
 
- parent_expansion_kwargs: Tuple[str] | Dict[str, str] | None = ('cutoff_distance',)
 
- class StrainInducer(name, parents, module='auto', **kwargs)[source]
 - 
- auto_module_class
 alias of
CellScaleInducer
- input_names = ('coordinates', 'cell')
 
- output_index_states = NotImplemented
 
- output_names = ('strained_coordinates', 'strained_cell', 'strain')
 
 
- class StressForceNode(name, parents, module='auto', **kwargs)[source]
 - 
- auto_module_class
 alias of
StressForce
- input_names = ('energy', 'strain', 'coordinates', 'cell')
 
- output_names = ('forces', 'stress')
 
 
- class VecMag(name, parents, module='auto', _helper=None, **kwargs)[source]
 Bases:
ExpandParents,AutoNoKw,SingleNode- expansion2(vector, helper, *, purpose, **kwargs)[source]
 Used for creation from parents with signature (Node, Node)
- input_names = ('vector',)
 
- parent_expander: ParentExpander = <hippynn.graphs.nodes.base.definition_helpers.ParentExpander object>
 
- setup_stressforce_nodes(energy_node, return_transformed_inputs=False, positions_node='auto', cell_node='auto', strain_node='auto')[source]
 _summary_
- Parameters:
 energy_node – the energy to differenitate
return_transformed_inputs – If true, return the strained positions, strained cell, and strain
position_node – defaults to “auto”
cell_node – defaults to “auto”
strain_node – defaults to “auto”
Using “auto” will cause a failure if the corresponding node cannot be found or is ambiguous.
- Returns:
 (forces, stress) or (forces, stress, strained_positions, strained_cell, strain) depending on return_transformed_inputs flag.