ParticleSystem¶

This class describes a particle system interaction model in SAMSON. A particle system interaction model has one buffer - a force buffer which may be used to write adaptive simulation algorithms.

You can get a number of changed forces and a force of a particle in the particle system interaction model:

particleSystemInteractionModel.numberOfChangedForces
particleSystemInteractionModel.getForce(i)

You can get the index of i-th changed force. Assume for example that particle 17, 32, and 529 have had their forces changed since the last flush of the force buffer. Then the following code:

for i in range(particleSystemInteractionModel.numberOfChangedForces):
        # changedForceIndex is the index of the i-th changed force
        changedForceIndex = particleSystemInteractionModel.getChangedForceIndex(i)
        print(changedForceIndex)

This will result in the following output:

17
32
529

You can use these indeces in adaptive simulation algorithms for example together with samson.Modeling.DynamicalModel.ParticleSystem.

See also

SAMSON API: SBMInteractionModelParticleSystem

class samson.Modeling.InteractionModel.ParticleSystem¶

Bases: samson.Modeling.InteractionModel.InteractionModel

This class is the base class of particle interaction models.

class NodeType(self: samson.DataModel.DataGraph.Node.NodeType, arg0: int) → None¶

Bases: pybind11_builtins.pybind11_object

ArticulatedBody = NodeType.DynamicalModelNodeArticulatedBody¶
ArticulatedBodySystem = NodeType.DynamicalModelArticulatedBodySystem¶
Atom = NodeType.Atom¶
Backbone = NodeType.StructuralModelNodeBackbone¶
Bond = NodeType.StructuralModelNodeBond¶
Camera = NodeType.Camera¶
Chain = NodeType.StructuralModelNodeChain¶
Conformation = NodeType.StructuralModelConformation¶
Controller = NodeType.Controller¶
ControllerNode = NodeType.ControllerNode¶
DataGraphNodeGroup = NodeType.DataGraphNodeGroup¶
Document = NodeType.Document¶
DocumentManager = NodeType.DocumentManager¶
DynamicalGroup = NodeType.DynamicalModelNodeGroup¶
DynamicalModel = NodeType.DynamicalModel¶
DynamicalModelArticulatedBodySystem = NodeType.DynamicalModelArticulatedBodySystem¶
DynamicalModelNode = NodeType.DynamicalModelNode¶
DynamicalModelNodeArticulatedBody = NodeType.DynamicalModelNodeArticulatedBody¶
DynamicalModelNodeGroup = NodeType.DynamicalModelNodeGroup¶
DynamicalModelNodeParticle = NodeType.DynamicalModelNodeParticle¶
DynamicalModelNodeRigidBody = NodeType.DynamicalModelNodeRigidBody¶
DynamicalModelNodeRoot = NodeType.DynamicalModelNodeRoot¶
DynamicalModelParticleSystem = NodeType.DynamicalModelParticleSystem¶
DynamicalModelRigidBodySystem = NodeType.DynamicalModelRigidBodySystem¶
DynamicalNode = NodeType.DynamicalModelNode¶
DynamicalParticle = NodeType.DynamicalModelNodeParticle¶
DynamicalRoot = NodeType.DynamicalModelNodeRoot¶
Folder = NodeType.Folder¶
InteractionModel = NodeType.InteractionModel¶
InteractionModelArticulatedBodySystem = NodeType.InteractionModelArticulatedBodySystem¶
InteractionModelParticleSystem = NodeType.InteractionModelParticleSystem¶
InteractionModelRigidBodySystem = NodeType.InteractionModelRigidBodySystem¶
Label = NodeType.Label¶
Molecule = NodeType.StructuralModelNodeMolecule¶
NodeGroup = NodeType.DataGraphNodeGroup¶
ParticleSystem = NodeType.DynamicalModelParticleSystem¶
Path = NodeType.StructuralModelPath¶
PropertyModel = NodeType.PropertyModel¶
PropertyModelFunction = NodeType.PropertyModelFunction¶
Protein = NodeType.StructuralModelNodeProtein¶
PseudoAtom = NodeType.StructuralModelNodePseudoAtom¶
Residue = NodeType.StructuralModelNodeResidue¶
RigidBody = NodeType.DynamicalModelNodeRigidBody¶
RigidBodySystem = NodeType.DynamicalModelRigidBodySystem¶
Root = NodeType.StructuralModelNodeRoot¶
Segment = NodeType.StructuralModelNodeSegment¶
SideChain = NodeType.StructuralModelNodeSideChain¶
Simulator = NodeType.Simulator¶
SimulatorArticulatedBodySystem = NodeType.SimulatorArticulatedBodySystem¶
SimulatorParticleSystem = NodeType.SimulatorParticleSystem¶
SimulatorRigidBodySystem = NodeType.SimulatorRigidBodySystem¶
StateUpdater = NodeType.StateUpdater¶
StateUpdaterArticulatedBodySystem = NodeType.StateUpdaterArticulatedBodySystem¶
StateUpdaterParticleSystem = NodeType.StateUpdaterParticleSystem¶
StateUpdaterRigidBodySystem = NodeType.StateUpdaterRigidBodySystem¶
StructuralGroup = NodeType.StructuralModelNodeGroup¶
StructuralModel = NodeType.StructuralModel¶
StructuralModelConformation = NodeType.StructuralModelConformation¶
StructuralModelNode = NodeType.StructuralModelNode¶
StructuralModelNodeAtom = NodeType.Atom¶
StructuralModelNodeBackbone = NodeType.StructuralModelNodeBackbone¶
StructuralModelNodeBond = NodeType.StructuralModelNodeBond¶
StructuralModelNodeChain = NodeType.StructuralModelNodeChain¶
StructuralModelNodeGroup = NodeType.StructuralModelNodeGroup¶
StructuralModelNodeMolecule = NodeType.StructuralModelNodeMolecule¶
StructuralModelNodeParticle = NodeType.StructuralModelNodeParticle¶
StructuralModelNodeProtein = NodeType.StructuralModelNodeProtein¶
StructuralModelNodePseudoAtom = NodeType.StructuralModelNodePseudoAtom¶
StructuralModelNodeResidue = NodeType.StructuralModelNodeResidue¶
StructuralModelNodeRoot = NodeType.StructuralModelNodeRoot¶
StructuralModelNodeSegment = NodeType.StructuralModelNodeSegment¶
StructuralModelNodeSideChain = NodeType.StructuralModelNodeSideChain¶
StructuralModelPath = NodeType.StructuralModelPath¶
StructuralParticle = NodeType.StructuralModelNodeParticle¶
Undefined = NodeType.Undefined¶
VisualModel = NodeType.VisualModel¶
addChild(self: samson.DataModel.DataGraph.Node, node: samson.DataModel.DataGraph.Node, nextNode: samson.DataModel.DataGraph.Node=None) → bool¶

Adds a child to the node

canAddChild(self: samson.DataModel.DataGraph.Node, node: samson.DataModel.DataGraph.Node, nextNode: samson.DataModel.DataGraph.Node=None) → bool¶

Returns whether this node can add node as a child

canAddChildType(self: samson.DataModel.DataGraph.Node, nodeType: SBDDataGraphNode::Type) → bool¶

Returns whether this node can add a node with type nodeType as a child

castToInteractionModelParticleSystem(self: samson.DataModel.DataGraph.Node) → SBMInteractionModelParticleSystem¶

Casts (if possible) from SBDDataGraphNode to SBMInteractionModelParticleSystem

castToLabel(self: samson.DataModel.DataGraph.Node) → SBDDocumentLabel¶

Casts (if possible) from SBDDataGraphNode to SBDDocumentLabel

castToVisualModel(self: samson.DataModel.DataGraph.Node) → SBMVisualModel¶

Casts (if possible) from SBDDataGraphNode to SBMVisualModel

changed(self: samson.Modeling.InteractionModel.InteractionModel) → None¶

Emits the VisualModelChanged event

clone(self: samson.Modeling.Model.Model) → samson.Modeling.Model.Model¶

Returns a copy of the node and its descendants

countNodes(self: samson.DataModel.DataGraph.Node, selectionString: str='*', visitString: str='*', includeDependencies: bool=False) → int¶
Count nodes into nodeIndexer, based on a selectionPredicate and a visitPredicate, with our without dependencies).
For selectionString and visitString use Node Specification Language (SAMSON API: Node Specification Language
create(self: samson.DataModel.DataGraph.Node) → None¶

Creates the node

display(self: samson.Modeling.InteractionModel.ParticleSystem) → None¶

Displays the interaction model

displayForSelection(self: samson.Modeling.InteractionModel.ParticleSystem) → None¶

Displays the interaction model for selection purposes

displayForShadow(self: samson.Modeling.InteractionModel.ParticleSystem) → None¶

Displays the interaction model for shadow purposes

erase(self: samson.DataModel.DataGraph.Node) → None¶

Erases the node

flushForceBuffer(self: samson.Modeling.InteractionModel.ParticleSystem) → None¶

Flushes the force buffer

getChangedForceIndex(self: samson.Modeling.InteractionModel.ParticleSystem, i: int) → int¶

Returns the index of changed force i

getDocument(self: samson.DataModel.DataGraph.Node) → SBDDocument¶

Returns the document the node belongs to

getFlags(self: samson.DataModel.DataGraph.Node) → int¶

Returns the flags

getForce(self: samson.Modeling.InteractionModel.ParticleSystem, i: int) → samson.DataModel.Type.vector3¶

Returns the force applied to particle i

getForceChanged(self: samson.Modeling.InteractionModel.ParticleSystem, i: int) → SBDTypePhysicalVector3<SBDQuantityType<SBDQuantityUnitType<SBDQuantityUnitSystemSI, -12, 1, -27, 1, -15, -2, 0, 0, 0, 0, 0, 0, 0, 0>, double> >¶

Returns whether force i has been changed since the last flush

getInheritedFlags(self: samson.DataModel.DataGraph.Node) → int¶

Returns the inherited flags

getMaterial(self: samson.DataModel.DataGraph.Node) → SBDDataGraphNodeMaterial¶

Returns the material of the node

getMaterialOwner(self: samson.DataModel.DataGraph.Node) → samson.DataModel.DataGraph.Node¶

Returns the node whose material is inherited

getMemoryFootprint(self: samson.Core.Reference.ReferenceTarget) → int¶

Returns the memory footprint

getNextModel(self: samson.Modeling.Model.Model) → samson.Modeling.Model.Model¶

Returns the next model in the parent

getNextNode(*args, **kwargs)¶

Overloaded function.

  1. getNextNode(self: samson.DataModel.DataGraph.Node) -> samson.DataModel.DataGraph.Node

Returns the pointer to the next node in the children of the node’s parent

  1. getNextNode(self: samson.DataModel.DataGraph.Node, nodeType: SBDDataGraphNode::Type) -> samson.DataModel.DataGraph.Node

Returns the pointer to the next node with type nodeType in the children of the node’s parent

getNode(self: int) → samson.DataModel.DataGraph.Node¶

Returns the unique node corresponding to the node index nodeIndex

getNodes(self: samson.DataModel.DataGraph.Node, selectionString: str='*', visitString: str='*', includeDependencies: bool=False) → SBDDataGraphNodeIndexer¶
Returns nodes (in a node indexer), based on a selectionString and a visitString, with our without dependencies).
For selectionString and visitString use Node Specification Language (SAMSON API: Node Specification Language
getParent(self: samson.DataModel.DataGraph.Node) → samson.DataModel.DataGraph.Node¶

Returns the parent of the node

getParticleSystem(self: samson.Modeling.InteractionModel.ParticleSystem) → samson.Modeling.DynamicalModel.ParticleSystem¶

Returns the particle system

getPreviousModel(self: samson.Modeling.Model.Model) → samson.Modeling.Model.Model¶

Returns the previous model in the parent

getPreviousNode(*args, **kwargs)¶

Overloaded function.

  1. getPreviousNode(self: samson.DataModel.DataGraph.Node) -> samson.DataModel.DataGraph.Node

Returns the pointer to the previous node in the children of the node’s parent

  1. getPreviousNode(self: samson.DataModel.DataGraph.Node, nodeType: SBDDataGraphNode::Type) -> samson.DataModel.DataGraph.Node

Returns the pointer to the previous node with type nodeType in the children of the node’s parent

getRoot(self: samson.DataModel.DataGraph.Node) → samson.DataModel.DataGraph.Node¶

Returns the root of the hierarchy the node belongs to

getSimulatorList(self: samson.Modeling.InteractionModel.InteractionModel) → samson.DataModel.DataGraph.NodeIndexer¶

Returns the list of simulators

getThisNode(self: samson.DataModel.DataGraph.Node) → samson.DataModel.DataGraph.Node¶

Returns the pointer to this node

getTypeString(type: SBDDataGraphNode::Type) → str¶

Returns a string describing the type of the data graph node

hasOneOf(self: samson.DataModel.DataGraph.Node, nodeIndexer: SBDDataGraphNodeIndexer) → bool¶

Returns true if and only if this node is one of the nodes of the nodeIndexer, or is the ancestor of one of them

initializeInteractions(self: samson.Modeling.InteractionModel.ParticleSystem) → None¶

Initializes interactions

isDynamicalModel(self: samson.DataModel.DataGraph.Node) → bool¶

Returns true when the node is a dynamical model

isIn(*args, **kwargs)¶

Overloaded function.

  1. isIn(self: samson.DataModel.DataGraph.Node, node: samson.DataModel.DataGraph.Node) -> bool

Returns true if and only if this node is node, or descends from it

  1. isIn(self: samson.DataModel.DataGraph.Node, nodeIndexer: SBDDataGraphNodeIndexer) -> bool

Returns true if and only if this node is one of the nodes of the nodeIndexer, or descends from one of them

isInteractionModel(self: samson.DataModel.DataGraph.Node) → bool¶

Returns true when the node is a interaction model

isModel(self: samson.DataModel.DataGraph.Node) → bool¶

Returns true when the node is a model

isOneOf(self: samson.DataModel.DataGraph.Node, nodeIndexer: SBDDataGraphNodeIndexer) → bool¶

Returns true if and only if this node is one of the nodes of the nodeIndexer

isPropertyModel(self: samson.DataModel.DataGraph.Node) → bool¶

Returns true when the node is a property model

isSimulator(self: samson.DataModel.DataGraph.Node) → bool¶

Returns true when the node is a simulator

isStructuralModel(self: samson.DataModel.DataGraph.Node) → bool¶

Returns true when the node is a structural model

isStructuralParticle(self: samson.DataModel.DataGraph.Node) → bool¶

Returns true when the node is a structural particle (an atom or a pseudo-atom)

isType(self: samson.DataModel.DataGraph.Node, type: SBDDataGraphNode::Type) → bool¶

Returns true when the type of the node corresponds to type

isVisualModel(self: samson.DataModel.DataGraph.Node) → bool¶

Returns true when the node is a visual model

printDebugInfo(self: samson.Modeling.InteractionModel.ParticleSystem, offset: int=0) → None¶

Prints some debugging information in stdout

removeChild(self: samson.DataModel.DataGraph.Node, node: samson.DataModel.DataGraph.Node) → bool¶

Removes a child from the node

removeMaterial(self: samson.DataModel.DataGraph.Node) → bool¶

Removes material from the node

setColor(self: samson.DataModel.DataGraph.Node, color: SBDColor) → bool¶

Sets the color for the node (modifies an existing material of the node or adds a material with a given color)

Args:
color (Color): color to set
setColorScheme(self: samson.DataModel.DataGraph.Node, colorScheme: SBDDataGraphNodeColorScheme) → bool¶

Sets the color scheme for the node (modifies an existing material of the node or adds a material with a given color scheme)

Args:
colorScheme (ColorScheme): color scheme to set
setMaterial(self: samson.DataModel.DataGraph.Node, material: SBDDataGraphNodeMaterial) → bool¶

Sets the material for the node.

Args:
material (Material): material to set
updateInteractions(self: samson.Modeling.InteractionModel.ParticleSystem) → None¶

Updates interactions

ArticulatedBody = NodeType.DynamicalModelNodeArticulatedBody¶
ArticulatedBodySystem = NodeType.DynamicalModelArticulatedBodySystem¶
Atom = NodeType.Atom¶
Backbone = NodeType.StructuralModelNodeBackbone¶
Bond = NodeType.StructuralModelNodeBond¶
Camera = NodeType.Camera¶
Chain = NodeType.StructuralModelNodeChain¶
Conformation = NodeType.StructuralModelConformation¶
Controller = NodeType.Controller¶
ControllerNode = NodeType.ControllerNode¶
DataGraphNodeGroup = NodeType.DataGraphNodeGroup¶
Document = NodeType.Document¶
DocumentManager = NodeType.DocumentManager¶
DynamicalGroup = NodeType.DynamicalModelNodeGroup¶
DynamicalModel = NodeType.DynamicalModel¶
DynamicalModelArticulatedBodySystem = NodeType.DynamicalModelArticulatedBodySystem¶
DynamicalModelNode = NodeType.DynamicalModelNode¶
DynamicalModelNodeArticulatedBody = NodeType.DynamicalModelNodeArticulatedBody¶
DynamicalModelNodeGroup = NodeType.DynamicalModelNodeGroup¶
DynamicalModelNodeParticle = NodeType.DynamicalModelNodeParticle¶
DynamicalModelNodeRigidBody = NodeType.DynamicalModelNodeRigidBody¶
DynamicalModelNodeRoot = NodeType.DynamicalModelNodeRoot¶
DynamicalModelParticleSystem = NodeType.DynamicalModelParticleSystem¶
DynamicalModelRigidBodySystem = NodeType.DynamicalModelRigidBodySystem¶
DynamicalNode = NodeType.DynamicalModelNode¶
DynamicalParticle = NodeType.DynamicalModelNodeParticle¶
DynamicalRoot = NodeType.DynamicalModelNodeRoot¶
Folder = NodeType.Folder¶
InteractionModel = NodeType.InteractionModel¶
InteractionModelArticulatedBodySystem = NodeType.InteractionModelArticulatedBodySystem¶
InteractionModelParticleSystem = NodeType.InteractionModelParticleSystem¶
InteractionModelRigidBodySystem = NodeType.InteractionModelRigidBodySystem¶
Label = NodeType.Label¶
Molecule = NodeType.StructuralModelNodeMolecule¶
NodeGroup = NodeType.DataGraphNodeGroup¶
ParticleSystem = NodeType.DynamicalModelParticleSystem¶
Path = NodeType.StructuralModelPath¶
PropertyModel = NodeType.PropertyModel¶
PropertyModelFunction = NodeType.PropertyModelFunction¶
Protein = NodeType.StructuralModelNodeProtein¶
PseudoAtom = NodeType.StructuralModelNodePseudoAtom¶
Residue = NodeType.StructuralModelNodeResidue¶
RigidBody = NodeType.DynamicalModelNodeRigidBody¶
RigidBodySystem = NodeType.DynamicalModelRigidBodySystem¶
Root = NodeType.StructuralModelNodeRoot¶
Segment = NodeType.StructuralModelNodeSegment¶
SideChain = NodeType.StructuralModelNodeSideChain¶
Simulator = NodeType.Simulator¶
SimulatorArticulatedBodySystem = NodeType.SimulatorArticulatedBodySystem¶
SimulatorParticleSystem = NodeType.SimulatorParticleSystem¶
SimulatorRigidBodySystem = NodeType.SimulatorRigidBodySystem¶
StateUpdater = NodeType.StateUpdater¶
StateUpdaterArticulatedBodySystem = NodeType.StateUpdaterArticulatedBodySystem¶
StateUpdaterParticleSystem = NodeType.StateUpdaterParticleSystem¶
StateUpdaterRigidBodySystem = NodeType.StateUpdaterRigidBodySystem¶
StructuralGroup = NodeType.StructuralModelNodeGroup¶
StructuralModel = NodeType.StructuralModel¶
StructuralModelConformation = NodeType.StructuralModelConformation¶
StructuralModelNode = NodeType.StructuralModelNode¶
StructuralModelNodeAtom = NodeType.Atom¶
StructuralModelNodeBackbone = NodeType.StructuralModelNodeBackbone¶
StructuralModelNodeBond = NodeType.StructuralModelNodeBond¶
StructuralModelNodeChain = NodeType.StructuralModelNodeChain¶
StructuralModelNodeGroup = NodeType.StructuralModelNodeGroup¶
StructuralModelNodeMolecule = NodeType.StructuralModelNodeMolecule¶
StructuralModelNodeParticle = NodeType.StructuralModelNodeParticle¶
StructuralModelNodeProtein = NodeType.StructuralModelNodeProtein¶
StructuralModelNodePseudoAtom = NodeType.StructuralModelNodePseudoAtom¶
StructuralModelNodeResidue = NodeType.StructuralModelNodeResidue¶
StructuralModelNodeRoot = NodeType.StructuralModelNodeRoot¶
StructuralModelNodeSegment = NodeType.StructuralModelNodeSegment¶
StructuralModelNodeSideChain = NodeType.StructuralModelNodeSideChain¶
StructuralModelPath = NodeType.StructuralModelPath¶
StructuralParticle = NodeType.StructuralModelNodeParticle¶
Undefined = NodeType.Undefined¶
VisualModel = NodeType.VisualModel¶
energy¶

The energy

highlightingFlag¶
interactionModelType¶

The type of the interaction model

isCreated¶

Returns true if and only if the node is created

isErased¶

Returns true if and only if the node is erased

isHighlighted¶

Returns whether the node is highlighted

isSelected¶

Returns whether the node is selected

isSerializable¶

Returns true when the class is serializable

isVisible¶

Returns whether the node is visible

modelType¶

The type of the model

name¶

The name of the model

nodeIndex¶

Returns the node index (unique in the whole data graph, but non-persistent)

numberOfChangedForces¶

The number of changed forces since the last buffer flush

selectionFlag¶
type¶

The type of the data graph node

typeString¶

Returns a string describing the type of this data graph node

visibilityFlag¶