Getting started
1.High-throughput adsorption modeling
(1) Prepare the input files
config.yaml
should be prepared in your working folder.
Config.yaml
file Contains two parts:
StuctInfo
partsSpecies
parts (optional)Model
parts
The format of the whole config.yaml is as follows:
StrucInfo:
file: POSCARfile
struct:
element: Au
lattice_type: fcc
latttice_constant: 4.16
facet: ['111','100'] #This is comment
supercell: [3,3] #Default: [3,3], can be undefined
layers: 4 #Default: 4, can be undefined
dope:
Cu: [3]
# This part alias for Species
Species:
file:
'NH3+': NH3+.xyz #struct_file
'NH3-': NH3-.xyz #struct_file
sml:
'O2': O=O #smiles
Model:
ads:
- ['NH3+',1]
- ['NO', 2]
- [s: 'C(=O)O',1]
- [f: 'NH3+',1]
- [s: 'C[Al](C)C',1Al]
coads:
- ['NH3','O',1,1]
StuctInfo
parts contains the information about substrate,
the keywords should be chosen as following two types: file
or struct
file
: Path , this keywords will read substrate from POSCAR filestruct
: this keywords will generate substrate according to following parameter:element
: bulk phase elementlattice_type
: lattice typelatticd_constant
: lattice parameterfacet
: crystal plane, should be a list, start with[
, separate with,
and end with]
, facet index should be a str start with'
end with'
, like'100'
,'111'
supercell
: supercell of the substrate in the xy-planelayers
: layers of the substrate in z axisdope
: dope of the substrate, the formate isdope element : [dope type1, dope type2]
before:
is the doped element, after the:
is the dope type, the dope type can be chosen as follows:0
corresponds to no doping,1
,2
and3
correspond to surface layers doped with1
,2
and3
atoms, respectively.1L
andb1
represent surface layer substitution and bulk equivalent proportional substitution.
Species
part is an optional part, which used to alias the species name, including:
sml
: using Smiles toe represent the adsorption speciesfile
: adsorption species reading from structure file, such as xyz format and vasp format
Model
part contains the adsorption modeling parameters, including:
ads
: using- [ adsorbate formular , adsorption sites type]
to represent one adsorption status, where adsorption formular should be a str start with'
end with'
. Different adsorption status should start with new line, adsorption sites type can be chosen from1
or2
.coads
: using- [ads1, ads2, ads1 sites, ads2 sites]
,ads1
andads2
is two adsorbate species formular,ads1 sites
andads2 sites
is adsorption sites type, can be chosen from1
and2
.- Each adsorbate species formular has three representation:
str format such as
'ads1'
, this format will automatically generate species according to chemical formularsmile format such as
s: 'ads1'
orsml: 'ads1'
, this format will generate spcecies according to the smile formularfile format such as
f: 'ads1'
orfile: 'ads1'
, this format will read structure from file ‘ads1’, now only ‘xyz’ and ‘vasp’ structure file format is supported
New in version 1.0.5: Adding the symbol of the element contained in the adsorbate followed by the type of adsorption site generates a configuration in which all atoms corresponding to that element are adsorbed atoms, and automatically adjusts the orientation so that the adsorbed atom is at the bottom. Such as
- [s: 'C[Al](C)C',1Al]
will generatte configurations with Al atoms as adsorbed stoms
To avoid ambiguity, it is recommended that SMILES be used when declaring complex species. Users can modify the corresponding parameters to achieve customized modeling according to their research needs.
(2) Run script
Running command htmat ads
can automate the enumeration and construction of all possible configurations, and ultimately
output structure files in the VASP format, like Au_Cu_111_1_NH_0.vasp,
Furthermore, for the adsorption models on doped surfaces, we use the get_binding_adatom
function to determine the
types of surface atoms that the adsorbate binds to in the preliminary configurations. We only select configurations
where the adsorbate is bound to a surface atom that contains a dopant atom, in order to reduce the number of final
output structures.
(3) Completion of the input file
Run the command htmat complete
, it will add the default parameters according to the current config.yaml and output
the complete_config.json file.