Web Analytics Made Easy - Statcounter
Skip to content

Modeling and Simulation#

Modeling and simulation are the two main tasks performed by users of SAMSON, and two library groups support these tasks: the Modeling Library Group and the Simulation Library Group.

SAMSON represents nanosystems using five categories of models:

Simulators (potentially interactive ones) are used to build physically-based models, and predict properties.

Models and simulators are nodes in SAMSON's data graph. All models derive from the SBMModel class, while all model nodes (children of models) derive from the SBMModelNode class. Simulators derive from the SBSSimulator class. Both SBMModel and SBSSimulator derive from the SBDDataGraphNode class.

Models#

Structural models#

Structural model icon Structural models describe the geometry and topology of nanosystems in SAMSON. Typically, a structural model contains atoms (SBAtom class) and bonds (SBBond class), and might contain nodes representing higher organization levels (e.g. molecules, residues, etc.).

Structural models may send structural events.

Visual models#

Visual model icon Visual models are used to provide graphical representations. A visual model may be e.g. a secondary structure representation of a protein, an isosurface of an electron density, a volumetric representation of an electrostatic field, etc.

SAMSON Extensions provide visual models that derive from the SBMVisualModel class and implement display functions called by SAMSON's internal renderer. Visual models may send visual events.

Dynamical models#

Dynamical model icon Dynamical models are used to indicate where degrees of freedom are in structural nodes. For example, a particle system applied to a group of structural particles (atoms or pseudo-atoms) assigns three translational degrees of freedom to each particle. Dynamical models describe the dynamical state and store positions, momenta and masses.

Dynamical models support passive signaling mechanisms through buffers (i.e. they provide a list of updated positions and updated momenta at each time step), and may send dynamical events.

Interaction models#

Interaction model icon Interaction models are used to represent energies and forces in a dynamical model. For example, an interaction model may be e.g. a simple Lennard-Jones model to describe unbounded interactions between a group of particles, a spring model, an elastic network model, a universal force field, etc.

An interaction model is in charge of providing forces corresponding to the degrees of freedom in a dynamical model. For example, an interaction model applied to a particle system provides both the total energy of the particle system and the force applied to each particle in the particle system.

SAMSON Extensions provide interaction models that (indirectly) derive from the SBMInteractionModel class and implement interaction update functions (SBMInteractionModel::updateInteractions).

Interaction models support passive signaling mechanisms through buffers (i.e. they provide a list of updated forces at each time step), and may send interaction events.

Property models#

Property model icon Property models are used to represent properties of nanosystems that are not already described by the first four categories of models. For example, property models may be e.g. a simple number describing the gyration radius of a protein, a scalar field (such as an electron density), a vector field (to represent e.g. an electrostatic field), a function, etc.

SAMSON Extensions provide property models that (indirectly) derive from the SBMPropertyModel class and may implement functions that depend on specific types of property models. For example, a function (SBMPropertyModelFunction) will implement a getValue function (SBMPropertyModelFunction::getValue).

Property models may send property events.

State updaters#

State updater State updaters implement methods used to advance states during simulations. State updaters may be e.g. minimization algorithms, Monte Carlo methods, molecular dynamics algorithms, etc.

SAMSON Extensions provide state updaters that (indirectly) derive from the SBSStateUpdater class and implement state update functions (SBSStateUpdater::updateState).

Simulators#

Simulators (indirectly) derive from the SBSSimulator class. A simulator is applied to a dynamical model, an interaction model, and a state updater. When users start interactive simulation, SAMSON goes through all simulators added to the data graph and calls their state updaters to update the state of the attached dynamical models.

Simulators may send simulator events, while state updaters may send state updater events.

Tip

See User guide: Modeling and Simulation for more information on how simulators are used in SAMSON.