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.

Required Parameters

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.

Required Parameters

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.

Required Parameters

Name

Description

Type

Default

outputFilePath

Path to the output file for angle measurements.

str

angles.dat

Required Selections

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.

Required Parameters

Name

Description

Type

Default

outputFilePath

Path to the output file for center of mass measurements.

str

com.dat

Optional Selections

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.

Required Parameters

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.

Required Parameters

Name

Description

Type

Default

outputFilePath

Path to the output file for gyration radius measurements.

str

gyration_radius.dat

Optional Selections

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.

Required Parameters

Name

Description

Type

Default

outputFilePath

Path to the output file for height measurements.

str

height.dat

Optional Parameters

Name

Description

Type

Default

particleNumberAverage

Number of particles to average for height calculation.

int

1

Optional Selections

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.

Required Parameters

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.

Required Parameters

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
  1. Palacios Alonso

Measures the mean magnetization of selected magnetic particles in the system.

Required Parameters

Name

Description

Type

Default

outputFilePath

Path to the output file for mean magnetization measurements.

str

mean_magnetization.dat

Optional Selections

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.

Required Parameters

Name

Description

Type

Default

outputFilePath

Path to the output file for mean radius measurements.

str

mean_radius.dat

Optional Selections

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.

Required Parameters

Name

Description

Type

Default

outputFilePath

Path to the output file for MSD measurements.

str

msd.dat

Optional Selections

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.

Required Parameters

Name

Description

Type

Default

outputFilePath

Path to the output file for native contacts measurements.

str

native_contacts.dat

Required Selections

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.

Required Parameters

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

Optional Parameters

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.

Required Parameters

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.

Required Parameters

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

Optional Selections

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.

Required Parameters

Name

Description

Type

Default

outputFilePath

Path to the output file for potential energy measurements.

str

Optional Parameters

Name

Description

Type

Default

potentials

List of potential types to measure. If not specified, all potentials are measured.

list of str

Optional Selections

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.

Required Parameters

Name

Description

Type

Default

outputFilePath

Path to the output file for potential measurements.

str

Required Selections

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.

Required Parameters

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

Optional Parameters

Name

Description

Type

Default

pbc

Whether to apply periodic boundary conditions when saving.

bool

False

Optional Selections

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.

Required Parameters

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

Optional Parameters

Name

Description

Type

Default

pbc

Whether to apply periodic boundary conditions when saving.

bool

False

Optional Selections

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.

Required Parameters

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.

Required Parameters

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.

Required Parameters

Name

Description

Type

Default

outputFilePath

Path to the output file for thermodynamic measurements.

str

Optional Selections

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.

Required Parameters

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

Optional Parameters

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.

Required Parameters

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

Optional Parameters

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']
        }
}