CIF2CELL(1)
π 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--verboseflag, 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 is1.1)--which-filenameβ if you pair this with the--programoption, 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 formopac,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-allis 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 to1, 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 forcastepandRSPt) π·οΈ
πΈ 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-reduceoption, 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>=0separated 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:xzywill sort first on x, then on z, then on y. 2) by lattice vector β example:132will 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 over16because 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 generatorcellgen. 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 generatorcellgen(the diagonal elements of themap) π¦--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 generatorcellgenπ―--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&SYSTEMblock (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 a0after each coordinate (freezing the structure), if set to'F'then add a1(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.infile in atomic units (bohr) rather than angstrom π--pwscf-alat-unitsβ use'alat'units for the positions in the PWSCF.infile π--pwscf-cartesianβ write lattice vectors and positions to the PWSCF.infile in cartesian coordinates and set the lengths scale to1π§--pwscf-cartesian-latticevectorsβ drops the lattice vectors into your PWSCF.infile as cartesian coordinates and sets the lengths scale to1. no conversion drama, we're going straight-up cartesian π--pwscf-cartesian-positionsβ same energy but for the lattice positions in that PWSCF.infile: cartesian coordinates, periodt.--rspt-newβ generates asymt.inpfile in the new format. shiny new era β¨--rspt-spinpolβ generates a new-formatsymt.inpfile with spin polarization. spins are booked and busy π--rspt-relativisticβ generates a new-formatsymt.inpfile with relativistic effects baked in. fast particles, main character physics π--rspt-spinaxis=[x,y,z]β sets the spin axis forsymt.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 integerNthat 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 to1.--rspt-pass-wyckoffβ passes the wyckoff labels from the CIF file through to thesymt/rspt.inpfile. hand them over, no gatekeeping π«Ά--sprkkr-minangmom=SPRKKRMINANGMOMβ enforces a minimum onsite angular momentum (=l+1, so that3will 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 generatorspacegroup. three numbers, one glow-up ποΈ--vasp-format=VASPFORMATβ the format of the generated POSCAR file, either4or5. default is4. 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 to1. 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 to1.--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 theVASP_PAWLIBenvironment variable ππ«Ά--vasp-pseudo-priority="_d,_pv,_sv,_h,_s"β sets the priority of different pseudopotentials via a list of suffixes. also available through theVASP_PP_PRIORITYenvironment 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 wascif2cellversion2.1.0+dfsg, datedFebruary 2024β screenshot it, cite it, love it, and go convert some crystals π¦β¨
π¦ where this page comes from
- debian trixie: python3-cif2cell 2.1.0+dfsg-1 Β· GPL-3.0-or-later
- ubuntu noble: python3-cif2cell 2.1.0+dfsg-1 Β· GPL-3.0-or-later
- ubuntu questing: python3-cif2cell 2.1.0+dfsg-1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms