Getting started¶
AMSET can be used from the command-line as a standalone program or from the
Python API. In both cases, the primary input is a vasprun.xml
file from a
uniform band structure calculation (i.e., on a regular k-point grid and not
along high-symmetry lines).
Temperature and doping ranges, scattering rates, and calculation parameters are controlled through the settings file. More details on the available settings are provided in the settings section of the documentation. An example settings file is given here.
From the command-line¶
AMSET can be run from the command-line using the amset run
command. The help
menu listing a summary of the command-line options can be printed using:
amset run -h
By default, AMSET will look for a vasprun.xml
file and settings.yaml
file in the current directory. A different directory can be specified using
the directory
option, e.g.:
amset run --directory path/to/files
Any settings specified via the command line will override those in the settings file. For example, the interpolation factor can be easily controlled using:
amset run --interpolation-factor 20
Obtaining best performance
To obtain the best performance, it is recommended to run export OMP_NUM_THREADS=1
before running AMSET. Use the nworkers
setting in the settings file if you want to
run AMSET using multiple cores.
From the Python API¶
Greater configurability is available when running AMSET from the Python API.
For example, the following snippet will look for a vasprun.xml
and
settings.yaml
file in the current directory, then run AMSET.
from amset.core.run import Runner
if __name__ == "__main__":
runner = Runner.from_directory(directory='.')
amset_data = runner.run()
The API allows for easy convergence of parameters. For example, the following snippet will run AMSET using multiple interpolation factors.
from amset.core.run import Runner
settings = {'interpolation_factor': 5}
if __name__ == "__main__":
outputs = []
for i_factor in range(10, 100, 10):
settings["interpolation_factor"] = i_factor
runner = Runner.from_directory(directory='.', settings_override=settings)
outputs.append(runner.run())
When running AMSET from the API, it is not necessary to use a settings file at all. Instead the settings can be passed as a dictionary. For example:
from amset.core.run import Runner
settings = {
"interpolation_factor": 150,
"doping": [1e15, 1e16, 1e17, 1e18],
"temperatures": [300],
"deformation_potential": (6.5, 6.5),
"elastic_constant": 190,
"static_dielectric": 13.1,
}
if __name__ == "__main__":
runner = Runner.from_vasprun("vasprun.xml.gz", settings)
amset_data = runner.run()