Packmol.jl
Packmol.jl is in very early stages of development.
See also
MolSimToolkit.jl/Packmol-Input-Creator
Reference
Packmol.run_packmol
— Functionrun_packmol()
run_packmol(input_file::String)
Runs the packmol executable with the input file input_file
. This will run the classical http://m3g.iqm.unicamp.br/packmol
program, which is a pre-compiled binary. The input file is a text file with the same syntax as the packmol input files.
If no input file is provided, a file explorer will be opened to choose the input file.
To disable the file explorer, set the environment variable PACKMOL_GUI="false"
.
Packmol.pack_monoatomic!
— Functionpack_monoatomic!(positions::AbstractVector{<:SVector{N,T}}, unitcell, tol)
Pack a monoatomic system with iniital positions x
and distance tolerance tol
, into the unitcell defined by unitcell
, considering periodic boundary conditions.
The unitcell can be a vector, in the case of orthorhombic cells, or a matrix, in the case of triclinic cells.
The coordinates and the unitcells can be two- or three-dimensional.
Example
julia> using Packmol, StaticArrays
julia> coordinates = 100 * rand(SVector{3,Float64}, 10^5);
julia> unitcell = [100.0, 100.0, 100.0]; tolerance = 2.0;
julia> pack_monoatomic!(coordinates, unitcell, tolerance)
After packing, the coordinates
array will have updated positions for the atoms without overlaps.