Quick-Start¶
This tutorial shows the Markov Chain Monte Carlo simulation of a unit-sphere subject to a volume reduction of 55% under constant surface area. To this end, we will run a precursor minimization of the energy to facilitate the subsequent sampling of the equilibrium configuration.
Mesh generation¶
For the reading of mesh geometries, trimem uses the IO facilities provided by OpenMesh and thus supports IO-formats as provided by OpenMesh. For a high quality mesh of a simple sphere geometry we make use of the trimesh Python library in this tutorial using the stl-format.
>>> import trimesh
>>> mesh = trimesh.creation.icosphere(3)
>>> mesh.export('input.stl')
Configuration¶
We start by defining a Configuration file. It defines the setup of the energy
in the section [ENERGY]. The algorithm is set to minimize to
reflect that we are going to start by a precursor minimization that is defined
in the section [MINIMZATION]. The additional tether regularization and the
repulsion constraint are configured in the sections [BONDS] and
[SURFACEREPULSION], respectively.
cat << EOF > inp.conf
[GENERAL]
algorithm = minimize
info = 100
input = input.stl
output_format = vtu
[BONDS]
bond_type = Edge
r = 2
[SURFACEREPULSION]
n_search = cell-list
rlist = 0.2
exclusion_level = 2
refresh = 10
r = 2
lc1 = 0.15
[ENERGY]
kappa_b = 300.0
kappa_a = 1.0e6
kappa_v = 1.0e6
kappa_c = 0.0
kappa_t = 1.0e5
kappa_r = 1.0e3
area_fraction = 1.0
volume_fraction = 0.45
curvature_fraction = 1.0
continuation_delta = 0.0
continuation_lambda = 1.0
[HMC]
num_steps = 10000
traj_steps = 100
step_size = 2.5e-5
momentum_variance = 1.0
thin = 100
flip_ratio = 0.1
flip_type = parallel
initial_temperature = 1.0
cooling_factor = 1.0e-3
start_cooling = 10000
[MINIMIZATION]
maxiter = 2000
out_every = 0
EOF
See also
A verbosely commented default configuration can be generated with
mc_app config, see Command line interface.
Minimization¶
We can now run the precursor minimization with
mc_app run --conf inp.conf
This will write the result of the minimization as vtu-file. Additionally, a automatically numbered (starting from 0) checkpoint file is written that can be used to restart the subsequent Monte Carlo sampling.
Sampling¶
To restart a sampling simulation from a precursor minimization, the
algorithm first has to be changed to hmc in the configuration file:
sed -i 's/= minimize/= hmc/g' inp.conf
The sampling can then be initiated from the checkpoint file written by the minimization step with:
mc_app run --conf inp.conf --restart
This will write a series of vtu-files representing the trajectory of the
simulated Markov Chain (output frequency controlled by the thin parameter
of the [HMC] section).
See also
Besides the vtu output, trimem support also xyz and xdmf formats.
See trimem.mc.output.