kim init {modelname} metal unit_conversion_mode boundary f f f variable boxextent equal 25.0 region box block -${{boxextent}} ${{boxextent}} & -${{boxextent}} ${{boxextent}} & -${{boxextent}} ${{boxextent}} create_box {numelements} box read_dump {xyzfile} 0 x y z box no add yes format xyz group all region box {set_masses} change_box all x scale ${{_u_distance}} & y scale ${{_u_distance}} & z scale ${{_u_distance}} & remap atom_modify sort 0 0 kim interactions {symbol} # Use nsq neighlist method instead of binning since this is a small system variable neigh_skin equal 2.0*${{_u_distance}} neighbor ${{neigh_skin}} nsq # Variables used to rescale the positions and forces so that the quantities in the # dumpfile are in the original metal units (angstrom and eV/angstrom) even if we're # running with a Simulator Model that uses different units variable pe_metal equal "c_thermo_pe/v__u_energy" variable x_metal atom x/${{_u_distance}} variable y_metal atom y/${{_u_distance}} variable z_metal atom z/${{_u_distance}} variable fx_metal atom fx/${{_u_force}} variable fy_metal atom fy/${{_u_force}} variable fz_metal atom fz/${{_u_force}} dump dumpid all custom 1 {dumpfile} id type v_x_metal v_y_metal v_z_metal & v_fx_metal v_fy_metal v_fz_metal dump_modify dumpid sort id format line "%d %d %16.7f %16.7f %16.7f %16.7f %16.7f %16.7f" thermo_style custom v_pe_metal # Define minimization (note that etol is actually unitless, but ftol has units of force) min_style cg variable dmax equal 0.1*${{_u_distance}} min_modify dmax ${{dmax}} variable ftol equal 1e-10*${{_u_force}} minimize 1e-10 ${{ftol}} 2000 100000