|
|
★ 小木虫: 金币+0.5, 给个红包,谢谢回帖
I recommend CASTEP, which is free for the academy and shares the same root as VASP (quite expensive).
the workflow transferring from VASP to CASTEP is quite similar.
within VASP, there are four main files that you need for a calculation:
poscar ╟ gives the positions of the atoms within the unit cell and its lattice vectors.
kpoints ╟ sets the k-point mesh to be used.
potcar ╟ determines the type of pseudopotential to be used.
incar ╟ controls most of the main calculation parameters.
on the other hand, within CASTEP, there are two files, the seed.cell, and the seed.param files, where seed is an arbitrary name you give to the system. the seed.cell essentially contains all of the poscar and kpoint parameters at once. in castep, the pseudopotential is automatically generated by the program, so you do not need to procure a potcar file of any sort. the specific pseudopotential which you would like to use (i.e. ncp or usp) can be set within seed.cell file as well. the seed.param file is essentially the equivalent to the incar file in vasp and it controls the same types of calculation parameters (e.g. cutoff, xc functional, etc.).
ASE supports CASTEP input and output formats, so atomic models can be written out into a seed.cell file the same way a poscar is written out with ase.io.write using the keyword format=castep-cell. additionally, if you are already using the VASP calculator (ase.calculators.vasp) within ase to prepare your input parameters/files, there is also one for CASTEP (ase.calculators.castep) as well.
the biggest difference is perhaps CASTEP takes two input files with the suffix "cell" and "param", other things are very similar. after all, both programs do plane-wave pseudopotential calculations.
below are a few other subtle differences (or tips?) - I am a CASTEP user who recently started using VASP!
in CASTEP the calculation job is selected by a single task keyword in the param file, rather than multiple tags as in VASP.
bandstructure/dos calculation in VASP typically takes two steps, but in CASTEP the program itself can do a self-consistent calculation followed by a non-self-consistent calculation in one go - you just need to supply two sets of kpoints paths/meshes.
variable cell geometry optimizations in CASTEP default to "constant cut-off" so typically there is no need to redo a single point calculation for the optimized geometry. but still, mind the pulay stress!
parallelization in CASTEP is fully automatic and there is no need to set ncore kpar explicitly like in vasp. it tends to maximize kpoints parallelization which is most efficient, but sometimes this can lead to high memory usage.
CASTEP has a --dry-run options - you can make use of it to check memory requirements and a number of kpoints to decide the number of mpi processes.
the cell file also takes a few keyword options such as symmetry_generate and snap_to_symmeyry. the former turns on the symmetry and the latter snap the atoms to their high symmetry positions in case the input coordinates do not have high floating-point precision. you almost always want those two in the cell file.
ase can be very useful for generating CASTEP inputs. i have also made another simpler package for just writing simple input files in python called castepinput. it is used by a more complex package for interfacing CASTEP with a workflow/data management engine called aiida (aiida-castep). it also has interfaces to vasp and quantum-espresso. |
|