CIF2CELL(1)

πŸ“¦
version 2.1.0 Β· 4 versions
, in debian trixie, ubuntu noble, ubuntu questing

πŸ’– CIF2CELL(1) πŸ’–

User Commands Β· CIF2CELL Β· User Commands

okay bestie, welcome to the cif2cell page, this is the one, this is THE girl πŸ’…


✨ NAME ✨

cif2cell β€” get your CIF files ready for electronic structure calculations 🧚


✨ SYNOPSIS ✨

cif2cell FILE [-p PROGRAM] [other options]

✨ DESCRIPTION ✨

so basically, this program generates input lattice structures for a whole bunch of electronic structure programs, starting from a CIF (Crystallographic Information Framework) file. iconic behaviour, no notes. πŸŽ€

this code was published in Comput. Phys. Commun. 182, 1183 (2011). Please cite generously. like, she's asking nicely, do it 🫢


✨ OPTIONS ✨

  • -h, --help β€” shows this help message and then dips out ✌️
  • --version β€” prints the version number, that's it, that's the whole job πŸ’«
  • -v, --verbose β€” be as verbose as physically possible, spill EVERYTHING πŸ—£οΈ
  • -q, --quiet β€” suppress all screen output except what you explicitly asked for. this one overrides the --verbose flag, so don't try to have both, she's not gonna let you πŸ’€

🌸 General options: 🌸

  • -f FILE, --file=FILE β€” the input CIF file. you only need this if you didn't already hand it over as the first argument to the program πŸ“
  • -p PROGRAM, --program=PROGRAM β€” which electronic structure code do you want input file(s) for? currently she supports: abinit, ase, atat, bmdl, castep, cellgen, cfg, cif, coo, cp2k, cpmd, crymol, crystal09, elk, emto, exciting, fhi-aims, fleur, hutsepot, kfcd, kgrn, kstr, lammps, mopac, ncol, pwscf, quantum-espresso, rspt, shape, siesta, spacegroup, spc, sprkkr, vasp, xband, xyz. and this keyword is case insensitive, so type it however your heart desires πŸ’–
  • -o FILE, --outputfile=FILE β€” name of the output file, for when you don't want the default name that your electronic structure code would normally get 🌈
  • -a, --append β€” append the output onto the given output file instead of straight up overwriting it. polite πŸ’…
  • --grammar=GRAMMAR β€” sets the CIF grammar used when parsing the input file (default is 1.1)
  • --which-filename β€” if you pair this with the --program option, the name of the output file gets printed to screen πŸ“Ί
  • -b BLOCK, --block=BLOCK β€” which block of data in the input file to use, for when your CIF file has more than one block in it 🧩

🌸 Cell generation options: 🌸

  • --no-reduce β€” don't reduce to the primitive cell 🚫
  • --force β€” attempt to force generation of the output file despite problems and/or ambiguities in the input file. there are no guarantees that what you get makes sense, but the program makes an honest attempt, she's trying her best 😭. this implies --forcealloy
  • --force-alloy β€” force generation of the output file for an alloy compound, for an electronic structure code that doesn't implement any alloy theory (like CPA) πŸ§ͺ
  • --vca β€” set up an alloy using the virtual crystal approximation (VCA). currently only the CASTEP interface supports this one πŸ‘‘
  • --cartesian β€” make the program generate any output in cartesian coordinates πŸ“
  • --coordinate-tolerance=COORDTOL β€” the parameter for deciding when two coordinates count as the same one (default=0.0002)
  • --setup-all β€” do a more complete setup, not just the geometrical part. currently only available for mopac, pwscf, quantum-espresso, rspt, vasp πŸ’«
  • --k-resolution=KRESOLUTION β€” the desired resolution in k-space (default=0.2). used for generating k-space grid options if --setup-all is specified 🌐
  • --transform-cell=[[],[],[]] β€” a transformation matrix applied to the lattice vectors and the symmetry operations, for when you, say, want to realign the cell πŸ”„
  • --body-centred-setting=0,1 β€” if set to 1, use the more symmetrical set of primitive translation vectors used for the bcc structure for other body-centred crystals too 🎯
  • --cubic-diagonal-z β€” set up a cubic cell with the [111] direction along the z-axis πŸ“
  • --rhombohedral-diagonal β€” set up a rhombohedral cell with the threefold axis along the pseudocubic [111] direction πŸ’Ž
  • --random-displacements=displacementsize β€” randomly displace all atoms. depending on the distribution, the displacement size is either the maximal displacement (for uniform distribution) or the standard deviation (for gaussian distribution), in Angstrom 🎲
  • --random-displacements-distribution=uniform/gaussian β€” the distribution used for displacing the atoms πŸ“Š
  • --export-cif-labels β€” export atom labels from the CIF file (currently only supported for castep and RSPt) 🏷️

🌸 Supercell generation options: 🌸

  • --supercell=[k,l,m]/[[],[],[]] β€” three integers separated by commas and wrapped in square brackets that specify the dimensions of a supercell, OR three vectors of integers giving the map to the supercell to be constructed from the primitive cell. if you combine this with the --no-reduce option, the supercell gets generated based on the conventional cell instead 🧱
  • --supercell-dimensions=[x,y,z]/[[],[],[]] β€” three numbers separated by commas and wrapped in square brackets that specify the desired ABSOLUTE dimensions of a supercell (in angstrom), OR three vectors of numbers giving the desired lattice vectors. the program will automatically generate a supercell, attempting to get as close as possible to the desired dimensions 🎯
  • --supercell-vacuum=[k,l,m] β€” three numbers >=0 separated by commas and wrapped in square brackets that specify a number of unit cell units of vacuum to add along the first, second or third of the generated lattice vectors 🌌
  • --supercell-translation-vector=[k,l,m], --supercell-prevacuum-translation=[k,l,m] β€” three numbers separated by commas and wrapped in square brackets that specify a shift of all atomic positions in the cell prior to vacuum generation (in units of the lattice vectors of the supercell) 🚚
  • --supercell-postvacuum-translation=[k,l,m] β€” three numbers separated by commas and wrapped in square brackets that specify a final shift of all atomic positions in the final cell (in units of the lattice vectors of the new cell) πŸ“¦
  • --supercell-realign=0,1 β€” realign the supercell lattice vectors with respect to the cartesian reference frame. for orthorhombic cells, it puts the first, second and third lattice vectors along x, y and z, respectively 🧭
  • --supercell-sort=SUPERCELLSORT β€” sort the atom positions by some scheme. currently available are: 1) by cartesian coordinate β€” example: xzy will sort first on x, then on z, then on y. 2) by lattice vector β€” example: 132 will sort first by lattice vector 1, then by lattice vector 3 and last by lattice vector 2 πŸ”’

🌸 Surface generation options: 🌸

  • --surface-wizard=[h,k,l] β€” three integers separated by commas and wrapped in square brackets that specify a (hkl) plane. the wizard will suggest a supercell map that gives the first two lattice vectors in the (hkl) plane. the third lattice vector is selected as the [hkl] direction, or as reasonably orthogonal to the (hkl) plane as possible (if the [hkl] direction is far from orthogonal to this plane) πŸ§™β™€οΈβœ¨

🌸 Printing options: 🌸

  • --print-digits=PRINTDIGITS β€” number of digits used when printing coordinates etc. to screen (default=8). useful if you need to tweak the screen output for cutting and pasting into some unsupported program. there's genuinely no point in going over 16 because of the floating point accuracy πŸ–¨οΈ
  • --print-atomic-units β€” output lattice parameters in bohrradii rather than angstrom πŸ“
  • --print-cartesian β€” atomic sites printed to screen in cartesian rather than lattice coordinates πŸ“
  • --print-symmetry-operations β€” print the symmetry operations of the generated cell πŸ”„
  • --print-seitz-matrices β€” print the symmetry operations of the generated cell in Seitz matrix form πŸ”·
  • --print-charge-state, --print-oxidation-numbers β€” print information about the oxidation state from the CIF file ⚑
  • --print-reference-bibtex β€” print the citation in BibTeX format and exit πŸ“š

🌸 Program specific options: 🌸

  • --abinit-braces β€” put curly braces around input values for ABINIT { } πŸŽ€
  • --cellgen-map=[[k,l,m],[n,o,p],[q,r,s]] β€” nine integers separated by commas and grouped three and three inside square brackets (this is a matrix in Python) that specify the map to a supercell to be output for the RSPt supercell generator cellgen. this overrides --cellgen-supercell-dims πŸ—ΊοΈ
  • --cellgen-supercell-dimensions=[k,l,m] β€” three integers separated by commas and wrapped in square brackets that specify the dimensions of a supercell to be output to the RSPt supercell generator cellgen (the diagonal elements of the map) πŸ“¦
  • --cellgen-reference-vector=[x,y,z] β€” three reals separated by commas and wrapped in square brackets that specify an optional shift of the origin used by the RSPt supercell generator cellgen 🎯
  • --castep-cartesian β€” output atom positions in cartesian rather than lattice coordinates πŸ“
  • --castep-atomic-units β€” output to CASTEP in atomic units (bohr radii) rather than angstrom πŸ“
  • --cpmd-cutoff=CPMDCUTOFF β€” set the cutoff written to the &SYSTEM block (default=100.0 Ry) βœ‚οΈ
  • --crystal09-rhombohedral-setting β€” for trigonal spacegroups where this is possible, specify the rhombohedral cell in the Crystal09 input πŸ’Ž
  • --emto-hard-sphere-radii=HARDSPHERERADII β€” set hard spheres in KSTR to something other than the default (=0.67) ⚽
  • --fhi-aims-cartesian β€” store the coordinates for FHI-AIMS in cartesian format πŸ“
  • --mopac-first-line="string" β€” string to be used for the first line (the run commands) of the MOPAC input 1️⃣
  • --mopac-second-line="string" β€” string to be used for the second line (documentation) of the MOPAC input 2️⃣
  • --mopac-third-line="string" β€” string to be used for the third line (documentation) of the MOPAC input 3️⃣
  • --mopac-freeze-structure=T/F β€” if set to 'T' then add a 0 after each coordinate (freezing the structure), if set to 'F' then add a 1 (allowing everything to relax) 🧊
  • --pwscf-pseudostring=_PSEUDO β€” string to attach to the element name to identify the pseudopotential file (e.g. something like "_HSCV_PBE-1.0.UPF") πŸ”€
  • --pwscf-atomic-units β€” write the PWSCF .in file in atomic units (bohr) rather than angstrom πŸ“
  • --pwscf-alat-units β€” use 'alat' units for the positions in the PWSCF .in file πŸ“
  • --pwscf-cartesian β€” write lattice vectors and positions to the PWSCF .in file in cartesian coordinates and set the lengths scale to 1 🧭
  • --pwscf-cartesian-latticevectors β€” drops the lattice vectors into your PWSCF .in file as cartesian coordinates and sets the lengths scale to 1. no conversion drama, we're going straight-up cartesian πŸ’…
  • --pwscf-cartesian-positions β€” same energy but for the lattice positions in that PWSCF .in file: cartesian coordinates, periodt.
  • --rspt-new β€” generates a symt.inp file in the new format. shiny new era ✨
  • --rspt-spinpol β€” generates a new-format symt.inp file with spin polarization. spins are booked and busy πŸŒ€
  • --rspt-relativistic β€” generates a new-format symt.inp file with relativistic effects baked in. fast particles, main character physics πŸš€
  • --rspt-spinaxis=[x,y,z] β€” sets the spin axis for symt.inp; the default is [0.0,0.0,0.0]. give it your three numbers, bestie 🧭
  • --rspt-no-spin β€” forces a nonmagnetic setup, and it works in conjunction with --setupall. no magnetism today, we're chillin' 🧊
  • --rspt-mtradii=N β€” an integer N that tells it which method to use for setting the muffin tin radii. yes it's really called that, and yes it's lowkey iconic 🧁
  • --rspt-cartesian-latticevectors β€” puts the lattice vectors in atomic units and sets the length scale parameter to 1.
  • --rspt-pass-wyckoff β€” passes the wyckoff labels from the CIF file through to the symt/rspt.inp file. hand them over, no gatekeeping 🫢
  • --sprkkr-minangmom=SPRKKRMINANGMOM β€” enforces a minimum onsite angular momentum (=l+1, so that 3 will be d-states). set the floor, bestie πŸ“
  • --spacegroup-supercell=[k,l,m] β€” three integers, comma-separated, wrapped in square brackets, that specify the dimensions of a supercell to be output to the elk input generator spacegroup. three numbers, one glow-up πŸ—οΈ
  • --vasp-format=VASPFORMAT β€” the format of the generated POSCAR file, either 4 or 5. default is 4. pick your era, no wrong answers (well, mostly) 🌈
  • --vasp-print-species β€” prints the atomic species to screen in the order they get put into the POSCAR file. super useful for scripting, fr fr πŸ–¨οΈ
  • --vasp-cartesian β€” writes the lattice vectors and positions to the POSCAR file in cartesian coordinates, and sets length to 1. both at once, because we're efficient πŸ’…
  • --vasp-cartesian-lattice-vectors β€” writes just the lattice vectors to the POSCAR file in cartesian coordinates and sets the length scale to 1.
  • --vasp-cartesian-positions β€” writes the atomic positions to the POSCAR file in Cartesian rather than Direct coordinates.
  • --vasp-selective-dynamics β€” outputs the POSCAR in selective dynamics format (without any constrained atoms). selective, but make it zero constraints 😌
  • --vasp-pseudo-libdr=VASPPSEUDOLIB β€” the path to the VASP pseudopotential library. you can also set this with the VASP_PAWLIB environment variable πŸ”‘πŸ«Ά
  • --vasp-pseudo-priority="_d,_pv,_sv,_h,_s" β€” sets the priority of different pseudopotentials via a list of suffixes. also available through the VASP_PP_PRIORITY environment variable. ranking the suffixes, it's giving leaderboard πŸ“Š
  • --vasp-encutfac=1.5 β€” a factor that multiplies the maximal ENCUT found in the POTCAR file. multiply, don't add πŸ’₯
  • --xyz-atomic-units β€” outputs the xyz file in atomic units (bohr radii) rather than angstrom. bohr girl summer 🌸

and that's the whole flag squad, bestie πŸ’– you made it to the end, genuinely iconic of you πŸ‘‘

this was cif2cell version 2.1.0+dfsg, dated February 2024 β€” screenshot it, cite it, love it, and go convert some crystals πŸ¦‹βœ¨
πŸ“¦ where this page comes from