(formerly known as phd-library
).
This is a set of data analysis scripts to work with the output of the jambashbulk simulation, plus some general tools to aid in plotting.
The general overview of this repository is as follows:
packing_tools
contains code to load the output ofjambashbulk
and to calculate static properties (contact network, etc) and elastic response,hdf_tools
contains code to write and read simulations in the hdf5 (.h5
) storage format, which is much more efficient in terms of i/o.upar_uperp
contains code to calculate the fullu_\perp
andu_\parallel
elastic response to a deformation- the root directory contains some general tools.
For background and the physics behind the simulation, please see:
-
Simon Dagois-Bohy, Brian P. Tighe, Johannes Simon, Silke Henkes, and Martin van Hecke. Soft-Sphere Packings at Finite Pressure but Unstable to Shear. Phys. Rev. Lett. 109, 095703, arXiv:1203.3364.
-
Merlijn S. van Deen, Johannes Simon, Zorana Zeravcic, Simon Dagois-Bohy, Brian P. Tighe, and Martin van Hecke. Contact changes near jamming. Phys. Rev. E 90 020202(R), arXiv:1404.3156.
-
Merlijn S. van Deen, Brian P. Tighe, and Martin van Hecke. Contact Changes of Sheared Systems: Scaling, Correlations, and Mechanisms. arXiv:1606.04799
-
Merlijn S. van Deen. Mechanical Response of Foams: Elasticity, Plasticity, and Rearrangements. PhD Thesis, Leiden University, 2016. hdl:1887/40902
Several data sets created using the simulation code are available via Zenodo:
- http://dx.doi.org/10.5281/zenodo.59216 (stable packings)
- http://dx.doi.org/10.5281/zenodo.59217 (sheared packings)
- cdf.py contains tooling to plot CDFs,
- smart_annotate.py contains code to click-and-mark data points in matplotlib graphs,
- util.py contains helper functions to find external hard drives and to consistently use the same markers/colors for plotting.
- load_packing.py contains logic to parse the
jambashbulk
packing data format (N16~P1e-3~0001.txt
,particlesN16~P1e-3~SR003~step007~0001.txt
)- parser is a C-based parser to speed up this process.
- load_log.py parses
logN16~P1e-3~0001.txt
. - make_shear_graphs.py plots packings,
- V_harm.py calculates the contact network, Hessian, elastic moduli, etc.
- pytables_test.py loads static packings into
N16~P1e-3_tables.h5
files - pytables_import_shear.py loads contact change data into
N16~P1e-3_shear.h5
files - generate_cache.py generates an hdf5 file with information on the first contact change in each simulation
- dodo.py (in the root) automates these three steps for a large number of packings.
- pytables_tools.py has the
read_packing
function to read packings from the HDF format - getcc.py contains code to parse individual contact changes from the shear simulation data
- hpc.py contains the
HessianPackingCalculator
calculates upar and uperp from linear response, and calculates the strain at which the first contact change happens from this information.