polymerEquilibrationProfiles¶
Included in QATK.Dynamics
- polymerEquilibrationProfiles(max_temperature=PhysicalQuantity(1000.0, K), final_temperature=PhysicalQuantity(300.0, K), max_pressure=PhysicalQuantity(50000.0, bar), final_pressure=PhysicalQuantity(1.0, bar), barostat_frequency=25, update_frequency=10)¶
Create temperature, pressure and barostat profiles that implement a 21-step equilibration procedure. This uses 7 cycles of NVT and NPT simulations to equilibrate the polymer system. The original protocol was designed to be run for 1.56ns. The profiles will automatically scale to any number of simulation steps, allowing the protocol to be run for longer if desired.
- Parameters:
max_temperature (PhysicalQuantity of type temperature.) – The maximum temperature used in the equilibration. This should be between the glass transition temperature and melting point of the polymer. Default: 1000 Kelvin
final_temperature (PhysicalQuantity of type temperature.) – The final temperature that the polymer is equilibrated to. Default: 300 Kelvin
max_pressure (PhysicalQuantity of type pressure.) – The maximum pressure used in the equilibration. Default: 5 GPa
final_pressure (PhysicalQuantity of type pressure.) – The final pressure that the polymer is equilibrated to. Default: 1 bar
barostat_frequency – The coupling frequency of the barostat, when NPT calculation are used. Default: 25
update_frequency – How often the quantities are updated during the simulation. Default: 10
- Returns:
List of the pressure, temperature and barostat coupling profiles that implement the equilibration protocol.
- Return type:
list
Usage Examples¶
Construct and equilibrate a configuration of polypropylene.
# Define the equilibration simulation
simulation = SoftMatterDynamicsSimulation(
pre_configuration,
NPTNoseHooverMonteCarlo(),
)
simulation.setLogging(10000)
simulation.setTrajectory(5000, f"equilibrated_pp.hdf5")
# Set the equilibration profiles
profiles = polymerEquilibrationProfiles()
# Run the equilibration
simulation.simulate(1560000, profiles=profiles)
final_configuration = simulation.currentConfiguration()
Notes¶
The polymerEquilibrationProfiles() is a utility function that creates SimulationTemperatureProfile,
SimulationPressureProfile, and SimulationBarostatFrequencyProfile profiles that implement a
21-step polymer equilibration protocol [1]. This is the same protocol that is implemented in the
PolymerEquilibration object. The arguments to the function control the maximum and final temperature, the
maximum and final pressure, the barostat frequency when using the NPT ensemble and frequency with which the profiles
update the simulation.
When running the equilibration simulation, the profiles from this function can be directly added to the simulate
method. An NPT ensemble, such as NPTNoseHooverMonteCarlo should be used in the simulation so that the
pressure can be controlled during the NPT steps in the protocol. The original protocol was designed to take 1.56 ns
using 1 fs time steps. With profiles the number of steps between each change scales with the total number of steps,
so more steps can be easily used in cases where the polymer is difficult to equilibrate.