Simulator¶

Initialize and add simulator in the active document

To add a simulator in SAMSON you need to create and add a dynamical model, an interaction model, and a state updater. In the following example we will apply a simulator to a molecular system in the active document using the Brenner interaction model and the Interactive modeling state updater.

# Apply a simulator to a molecule in the active document

# get a node indexer of all structural models in the active document
nodeIndexer = SAMSON.getNodes('n.t sm')

# UUID of the Brenner SAMSON Element
IMuuid = sam.Core.Container.UUID('AD608CB6-6971-7CD4-6FCC-34531998E743')

# UUID of the State Updater pack SAMSON Element
SUuuid = sam.Core.Container.UUID('F912F119-7CBB-B5BD-972A-0A02DFCF683D')

# make an instance of a simulator by providing class names of an interaction model and a state updater
simulator = SAMSON.makeSimulator(nodeIndexer, 'SMMBrennerInteractionModel', IMuuid, 'SESInteractiveModelingUpdater', SUuuid)

# now we need to create a dynamical model, an interaction model, and a state updater

# get the dynamical model from the simulator
dynamicalModel = simulator.getDynamicalModel()
# create the dynamical model
dynamicalModel.create()

# get the interaction model from the simulator
interactionModel = simulator.getInteractionModel()
# create the interaction model
interactionModel.create()
# show a window with interaction model properties
SAMSON.showProperties(interactionModel)
# initialize interaction model
interactionModel.initializeInteractions()

# get the state updater from the simulator
stateUpdater = simulator.getStateUpdater()
# create the state updater
stateUpdater.create()
# show a window with state updator properties
SAMSON.showProperties(stateUpdater)

# create the simulator
simulator.create()

# get the active document
document = SAMSON.getActiveDocument()

# turn the undo system on
SAMSON.beginHolding('Add simulator')

# hold an object for undo/redo
SAMSON.hold(dynamicalModel)
# add the dynamical model to the active document
document.addChild(dynamicalModel)

# hold an object for undo/redo
SAMSON.hold(interactionModel)
# add the interaction model to the active document in SAMSON
document.addChild(interactionModel)

# hold an object for undo/redo
SAMSON.hold(simulator)
# add the simulator to the active document
document.addChild(simulator)

# turn the undo system off
SAMSON.endHolding()

You can start and stop simulation using the SAMSON Facade (samson.Facade.SAMSON):

# start simulation
SAMSON.startSimulation()

# check until the simulation is done
# ...

# stop simulation
SAMSON.stopSimulation()

See also

SAMSON API: SBSSimulator

class samson.Simulation.Simulator.Simulator¶

Bases: samson.DataModel.DataGraph.Node

This class is the base class of simulators.

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

clone(self: samson.Simulation.Simulator.Simulator) → samson.Simulation.Simulator.Simulator¶

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.Simulation.Simulator.Simulator) → None¶

Displays the interaction model

displayForSelection(self: samson.Simulation.Simulator.Simulator) → None¶

Displays the interaction model for selection purposes

displayForShadow(self: samson.Simulation.Simulator.Simulator) → None¶

Displays the interaction model for shadow purposes

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

Erases the node

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

Returns the document the node belongs to

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

Returns the flags

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

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

getNextSimulator(self: samson.Simulation.Simulator.Simulator) → samson.Simulation.Simulator.Simulator¶

Returns the next Simulator

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

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

getPreviousSimulator(self: samson.Simulation.Simulator.Simulator) → samson.Simulation.Simulator.Simulator¶

Returns the previous Simulator

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

Returns the root of the hierarchy the node belongs to

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

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.Simulation.Simulator.Simulator, 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
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¶
activityFlag¶

The activity flag

highlightingFlag¶
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

name¶

The name of the simulator

nodeIndex¶

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

selectionFlag¶
simulatorType¶

The type of the simulator

type¶

The type of the node

typeString¶

Returns a string describing the type of this data graph node

visibilityFlag¶