SimulationSteps
Simulation Steps are a diverse class of components. By adding simulation steps, we introduce specific operations or calculations to be performed at intervals during the simulation. Through this type of operation, we can perform a wide variety of calculations, such as measuring temperature or pressure. We can also calculate properties of the particles like stress or the forces acting on them. One of the most important uses is to save the state of the simulation at certain intervals. This can be done using the “saveState” component, where we can choose from several formats for the data output:
"simulationSteps":[{ "type":"saveState", "parameters":{"intervalStep":10000, "outputFilePath":"output", "outputFormat":"dcd"} } ]
The complete list of available simulation steps is as follows:
AFMMaxForce
- author
Pablo Ibáñez-Freire
Implements a maximum force criterion for Atomic Force Microscopy (AFM) simulations.
This step terminates the simulation when a specified maximum force is reached.
Name |
Description |
Type |
Default |
|---|---|---|---|
maxForce |
The maximum force threshold for terminating the simulation. |
float |
Example:
{
"type": "AFMMaxForce",
"parameters":{
"maxForce": 1000.0
}
}
afmMeasurement
- author
Pablo Ibáñez-Freire
Performs measurements for Atomic Force Microscopy (AFM) simulations, recording force-distance data.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for AFM measurements. |
str |
afm_measurement.dat |
Example:
{
"type": "afmMeasurement",
"parameters":{
"outputFilePath": "afm_data.dat"
}
}
anglesMeasurement
- author
Pablo Ibáñez-Freire
Measures angles between specified triplets of particles in the simulation.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for angle measurements. |
str |
angles.dat |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of particle triplets for angle measurement. |
list of triplets |
Example:
{
"type": "anglesMeasurement",
"parameters":{
"outputFilePath": "angle_data.dat",
"selection": "model1 forceField ANGLES"
}
}
centerOfMassMeasurement
- author
Pablo Ibáñez-Freire
Measures the center of mass of a selected group of particles throughout the simulation.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for center of mass measurements. |
str |
com.dat |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of particles for center of mass calculation. |
list of ids |
Example:
{
"type": "centerOfMassMeasurement",
"parameters":{
"outputFilePath": "com_data.dat",
"selection": "model1 type A B C"
}
}
forceBetweenSetsMeasurement
- author
Pablo Palacios-Alonso
Measures the force between two sets of particles in the simulation.
Name |
Description |
Type |
Default |
|---|---|---|---|
setName_idList |
Dictionary mapping set names to lists of particle IDs. |
dict |
|
outputFilePath |
Path to the output file for force measurements. |
str |
force_between_sets.dat |
Example:
{
"type": "forceBetweenSetsMeasurement",
"parameters":{
"outputFilePath": "force_data.dat",
"setName_idList": {'set1': [1, 2, 3], 'set2': [4, 5, 6]}
}
}
gyrationRadius
- author
Pablo Ibáñez-Freire
Calculates the radius of gyration for a selected group of particles over time.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for gyration radius measurements. |
str |
gyration_radius.dat |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of particles for gyration radius calculation. |
list of ids |
Example:
{
"type": "gyrationRadius",
"parameters":{
"outputFilePath": "gyration_data.dat",
"selection": "model1 type protein"
}
}
heightMeasurement
- author
Pablo Ibáñez-Freire
Measures the height of selected particles, typically used in surface-based simulations.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for height measurements. |
str |
height.dat |
Name |
Description |
Type |
Default |
|---|---|---|---|
particleNumberAverage |
Number of particles to average for height calculation. |
int |
1 |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of particles for height measurement. |
list of ids |
Example:
{
"type": "heightMeasurement",
"parameters":{
"outputFilePath": "height_data.dat",
"particleNumberAverage": 5,
"selection": "model1 type surface"
}
}
info
- author
Pablo Ibáñez-Freire
Provides basic information about the simulation progress, including current step, estimated remaining time, and mean FPS.
Example:
{
"type": "info",
"parameters":
}
}
lambdaActivation
- author
Pablo Ibáñez-Freire
Controls the activation of lambda parameter in thermodynamic integration simulations.
Name |
Description |
Type |
Default |
|---|---|---|---|
lambdaValues |
List of lambda values to use in the simulation. |
list of float |
[0.0, 1.0] |
lambdaValueStep |
Step size for changing lambda value. |
float |
0.1 |
Example:
{
"type": "lambdaActivation",
"parameters":{
"lambdaValueStep": 0.1,
"lambdaValues": [0.0, 0.2, 0.4, 0.6, 0.8, 1.0]
}
}
lambdaCycle
- author
Pablo Ibáñez-Freire
Implements a cycle of lambda values for enhanced sampling in thermodynamic integration.
Name |
Description |
Type |
Default |
|---|---|---|---|
activationStep |
Number of steps for each lambda activation phase. |
int |
1000 |
pauseStep |
Number of steps for pause between lambda changes. |
int |
100 |
measureStep |
Number of steps for measurement at each lambda value. |
int |
500 |
lambdaValues |
List of lambda values to cycle through. |
list of float |
[0.0, 1.0] |
Example:
{
"type": "lambdaCycle",
"parameters":{
"activationStep": 1000,
"measureStep": 500,
"pauseStep": 100,
"lambdaValues": [0.0, 0.25, 0.5, 0.75, 1.0]
}
}
meanMagnetizationMeasurement
- author
Palacios Alonso
Measures the mean magnetization of selected magnetic particles in the system.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for mean magnetization measurements. |
str |
mean_magnetization.dat |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of magnetic particles for magnetization measurement. |
list of ids |
Example:
{
"type": "meanMagnetizationMeasurement",
"parameters":{
"outputFilePath": "magnetization_data.dat",
"selection": "model1 type magnetic"
}
}
meanRadius
- author
Pablo Ibáñez-Freire
Calculates the mean radius of selected particles over time.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for mean radius measurements. |
str |
mean_radius.dat |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of particles for mean radius calculation. |
list of ids |
Example:
{
"type": "meanRadius",
"parameters":{
"outputFilePath": "radius_data.dat",
"selection": "model1 type sphere"
}
}
meanSquareDisplacement
- author
Pablo Diez-Silva
Calculates the mean square displacement (MSD) of selected particles over time.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for MSD measurements. |
str |
msd.dat |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of particles for MSD calculation. |
list of ids |
Example:
{
"type": "meanSquareDisplacement",
"parameters":{
"outputFilePath": "msd_data.dat",
"selection": "model1 type diffusive"
}
}
nativeContactsMeasurement
- author
Pablo Ibáñez-Freire
Measures the native contacts between selected pairs of particles, typically used in protein folding simulations.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for native contacts measurements. |
str |
native_contacts.dat |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of particle pairs for native contacts measurement. |
list of pairs |
Example:
{
"type": "nativeContactsMeasurement",
"parameters":{
"outputFilePath": "contacts_data.dat",
"selection": "model1 contacts 1:5 6:10 11:15"
}
}
oscillatoryForceMeasurement
- author
Pablo Palacios-Alonso
Performs oscillatory force measurements to study viscoelastic properties of the system.
Name |
Description |
Type |
Default |
|---|---|---|---|
fluidDensity |
Density of the fluid. |
float |
|
outputFilePath |
Path to the output file for oscillatory force measurements. |
str |
|
id_and_force |
Dictionary of particle IDs and corresponding force amplitudes. |
dict |
|
hydrodynamicRadius |
Hydrodynamic radius of the particles. |
float |
|
f |
Frequency of the oscillatory force. |
float |
|
viscosity |
Viscosity of the fluid. |
float |
Name |
Description |
Type |
Default |
|---|---|---|---|
tolerance |
Tolerance for Gaussian kernel. Only used if kernel is ‘Gaussian’. |
float |
1e-05 |
memory |
Number of previous steps to consider in the solver. |
int |
15 |
h |
Step size for numerical integration. If 0, it’s computed automatically. |
float |
0.0 |
damping |
Damping factor for the solver. |
float |
1e-05 |
maxNIterations |
Maximum number of iterations for the solver. |
int |
10000 |
toleranceConvergence |
Convergence tolerance for the solver. |
float |
0.0001 |
kernel |
Kernel function for force calculation. Options: ‘Gaussian’ or ‘Peskin3p’. |
str |
Peskin3p |
printSteps |
Number of steps between prints of intermediate results. |
int |
0 |
notAcceleratedInterval |
Interval of non-accelerated steps in the solver. |
int |
2 |
Example:
{
"type": "oscillatoryForceMeasurement",
"parameters":{
"outputFilePath": "oscforce_results.dat",
"f": 1000000.0,
"hydrodynamicRadius": 1e-09,
"viscosity": 0.001,
"fluidDensity": 1000,
"kernel": "Gaussian",
"tolerance": 1e-06,
"maxNIterations": 20000,
"toleranceConvergence": 1e-05,
"memory": 20,
"damping": 1e-06,
"notAcceleratedInterval": 3,
"h": 1e-06,
"printSteps": 100
}
}
pairwiseForces
- author
Pablo Palacios-Alonso
Measures pairwise forces between particles in the simulation.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file where pairwise forces will be written. |
str |
Example:
{
"type": "pairwiseForces",
"parameters":{
"outputFilePath": "pairwise_forces.dat"
}
}
patchPolymersMeasurement
- author
Pablo Ibáñez-Freire
Measures properties of polymers created by dynamic bonded patchy particles, including size and surface bonding.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for polymer measurements. |
str |
|
bufferSize |
Size of the buffer for measurements. |
int |
|
surfaceEnergyThreshold |
Energy threshold for determining surface bonding. |
float |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of patchy particles to measure. |
list of ids |
Example:
{
"type": "patchPolymersMeasurement",
"parameters":{
"outputFilePath": "patch_polymers.dat",
"bufferSize": 1000,
"surfaceEnergyThreshold": -1.0,
"selection": "model1 type patchy"
}
}
potentialEnergyMeasurement
- author
Pablo Ibáñez-Freire
Measures the potential energy of selected particles or the entire system.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for potential energy measurements. |
str |
Name |
Description |
Type |
Default |
|---|---|---|---|
potentials |
List of potential types to measure. If not specified, all potentials are measured. |
list of str |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of particles for potential energy measurement. |
list of ids |
Example:
{
"type": "potentialEnergyMeasurement",
"parameters":{
"outputFilePath": "potential_energy.dat",
"potentials": ['LennardJones', 'Coulomb'],
"selection": "model1 type A"
}
}
potentialMeasurement
- author
Pablo Ibáñez-Freire
Measures the potential of individual particles in the simulation.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for potential measurements. |
str |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of particles for potential measurement. |
list of ids |
Example:
{
"type": "potentialMeasurement",
"parameters":{
"outputFilePath": "particle_potentials.dat",
"selection": "model1 type B"
}
}
savePatchyParticlesState
- author
Pablo Ibáñez-Freire
Saves the state of patchy particles, including their positions and patch orientations.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for saving the state. |
str |
|
outputFormat |
Format of the output file (e.g., ‘xyz’, ‘pdb’, ‘dcd’). |
str |
Name |
Description |
Type |
Default |
|---|---|---|---|
pbc |
Whether to apply periodic boundary conditions when saving. |
bool |
False |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of patchy particles to save. |
list of ids |
Example:
{
"type": "savePatchyParticlesState",
"parameters":{
"outputFilePath": "patchy_state.xyz",
"outputFormat": "xyz",
"pbc": True,
"selection": "model1 type patchy"
}
}
saveState
- author
Pablo Ibáñez-Freire
Saves the current state of the simulation, including particle positions and velocities.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for saving the state. |
str |
|
outputFormat |
Format of the output file (e.g., ‘xyz’, ‘pdb’, ‘dcd’). |
str |
Name |
Description |
Type |
Default |
|---|---|---|---|
pbc |
Whether to apply periodic boundary conditions when saving. |
bool |
False |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of particles to save. If not specified, all particles are saved. |
list of ids |
Example:
{
"type": "saveState",
"parameters":{
"outputFilePath": "simulation_state.pdb",
"outputFormat": "pdb",
"pbc": True,
"selection": "model1 all"
}
}
stressMeasurement
- author
Pablo Ibáñez-Freire
Measures the stress tensor of the system.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for stress tensor measurements. |
str |
|
radiusCutOff |
Radius cutoff for the calculation of atom volumes. |
float |
Example:
{
"type": "stressMeasurement",
"parameters":{
"outputFilePath": "stress_tensor.dat",
"radiusCutOff": 2.5
}
}
thermodynamicIntegration
- author
Pablo Ibáñez-Freire
Performs thermodynamic integration to calculate free energy differences.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for thermodynamic integration results. |
str |
|
stepLambda |
Step size for lambda parameter in the integration. |
float |
|
lambdaValues |
List of lambda values for the integration. |
list of float |
Example:
{
"type": "thermodynamicIntegration",
"parameters":{
"outputFilePath": "ti_results.dat",
"stepLambda": 0.1,
"lambdaValues": [0.0, 0.2, 0.4, 0.6, 0.8, 1.0]
}
}
thermodynamicMeasurement
- author
Pablo Ibáñez-Freire
Measures various thermodynamic properties of the system, including energy, temperature, and pressure.
Name |
Description |
Type |
Default |
|---|---|---|---|
outputFilePath |
Path to the output file for thermodynamic measurements. |
str |
Name |
Description |
Type |
|---|---|---|
selection |
Selection of particles for thermodynamic measurements. If not specified, all particles are included. |
list of ids |
Example:
{
"type": "thermodynamicMeasurement",
"parameters":{
"outputFilePath": "thermo.dat",
"selection": "model1 all"
}
}
vqcmMeasurement
- author
Pablo Palacios-Alonso and Pablo Ibáñez-Freire
Performs Virtual Quartz Crystal Microbalance (VQCM) measurements to study viscoelastic properties of the system.
Name |
Description |
Type |
Default |
|---|---|---|---|
fluidDensity |
Density of the fluid. |
float |
|
outputFilePath |
Path to the output file for VQCM measurements. |
str |
|
f0 |
Fundamental frequency of the quartz crystal. |
float |
|
hydrodynamicRadius |
Hydrodynamic radius of the particles. |
float |
|
viscosity |
Viscosity of the fluid. |
float |
|
overtone |
Overtone number for the measurement. |
int |
|
vwall |
Velocity of the wall. |
float |
Name |
Description |
Type |
Default |
|---|---|---|---|
tolerance |
Tolerance for Gaussian kernel. Only used if kernel is ‘Gaussian’. |
float |
1e-05 |
memory |
Number of previous steps to consider in the solver. |
int |
5 |
h |
Step size for numerical integration. If 0, it’s computed automatically. |
float |
0.0 |
damping |
Damping factor for the solver. |
float |
1e-05 |
toleranceConvergence |
Convergence tolerance for the solver. |
float |
0.0001 |
tetherInteractorNames |
List of names for tether interactors. |
list of str |
|
printSteps |
Number of steps between prints of intermediate results. |
int |
0 |
notAcceleratedInterval |
Interval of non-accelerated steps in the solver. |
int |
2 |
maxNIterations |
Maximum number of iterations for the solver. |
int |
10000 |
kernel |
Kernel function for force calculation. Options: ‘Gaussian’ or ‘Peskin3p’. |
str |
Peskin3p |
resonatorImpedance |
Impedance of the resonator. If -1, it’s ignored by UAMMD. |
float |
-1.0 |
Example:
{
"type": "vqcmMeasurement",
"parameters":{
"outputFilePath": "vqcm_results.dat",
"f0": 5000000.0,
"overtone": 3,
"hydrodynamicRadius": 1e-09,
"viscosity": 0.001,
"vwall": 0.001,
"fluidDensity": 1000,
"kernel": "Gaussian",
"tolerance": 1e-06,
"maxNIterations": 20000,
"toleranceConvergence": 1e-05,
"memory": 10,
"damping": 1e-06,
"notAcceleratedInterval": 3,
"h": 1e-06,
"resonatorImpedance": 1000000.0,
"printSteps": 100,
"tetherInteractorNames": ['tether1', 'tether2']
}
}
vqcmMeasurementFromMobility
- author
Pablo Palacios-Alonso
Performs Virtual Quartz Crystal Microbalance (VQCM) measurements from mobility data to study viscoelastic properties of the system.
Name |
Description |
Type |
Default |
|---|---|---|---|
fluidDensity |
Density of the fluid. |
float |
|
outputFilePath |
Path to the output file for VQCM measurements. |
str |
|
f0 |
Fundamental frequency of the quartz crystal. |
float |
|
hydrodynamicRadius |
Hydrodynamic radius of the particles. |
float |
|
viscosity |
Viscosity of the fluid. |
float |
|
overtone |
Overtone number for the measurement. |
int |
|
vwall |
Velocity of the wall. |
float |
Name |
Description |
Type |
Default |
|---|---|---|---|
tolerance |
Tolerance for Gaussian kernel. Only used if kernel is ‘Gaussian’. |
float |
1e-05 |
h |
Step size for numerical integration. If 0, it’s computed automatically. |
float |
0.0 |
kernel |
Kernel function for force calculation. Options: ‘Gaussian’ or ‘Peskin3p’. |
str |
Peskin3p |
tetherInteractorNames |
List of names for tether interactors. |
list of str |
|
resonatorImpedance |
Impedance of the resonator. If -1, it’s ignored by UAMMD. |
float |
-1.0 |
Example:
{
"type": "vqcmMeasurementFromMobility",
"parameters":{
"outputFilePath": "vqcm_mobility_results.dat",
"f0": 5000000.0,
"overtone": 3,
"hydrodynamicRadius": 1e-09,
"viscosity": 0.001,
"vwall": 0.001,
"fluidDensity": 1000,
"kernel": "Gaussian",
"tolerance": 1e-06,
"h": 1e-06,
"resonatorImpedance": 1000000.0,
"tetherInteractorNames": ['tether1', 'tether2']
}
}