Transport properties from multi-valley density of states in the relaxation time approximation.
- docs: documentation of the code
- Mstar2t: Link to the repository of the Julia package implementing the computing unit of m*2T
- src: source code
- transport: Julia package which contains the methods to compute the transport coefficients
- scattering: Julia package that implements different models for the relaxation time
- plot: Julia package to plot the results of the calculations as a function of temperature and chemical potential
- server: Julia package to implement the computing unit as a server
- other: collection of utility functions
- examples: collection of scripts using the Mstar2t Julia package
- perf: script to test the performance of the code
- src: source code
- Interface: Python implementation of the client interface
- GUI: graphical user interface source code
- CLI: command-line interface source code
- Julia >= 1.6
- python >= 3.7
- ArgParse == 1.1
- CSV == 0.10
- CairoMakie == 0.10
- Colors == 0.4
- DataFrames == 1.4
- Distributions == 0.25
- Einsum == 0.4
- FastGaussQuadrature == 0.5
- GLMakie == 0.8
- HTTP == 1.7
- HypergeometricFunctions == 0.3
- JSON == 0.21
- LaTeXStrings == 1.3
- LinearAlgebra == 3.4
- Parameters == 0.12
- PlotUtils == 1.3
- PolyLog == 2.3
- Polynomials == 3.2
- QuadGK == 2.6
- SpecialFunctions == 2.1
- numpy
- pandas
- requests
- matplotlib
- colorama
- argparse
- PySide2==5.15
Since Mstar2t.jl
is a standalone Julia package, it is included as a submodule of the software. Therefore, when cloning the repository, the flag --recurse-submodules
must be included to download all the files:
HTTPS:
$ git clone --recurse-submodules https://github.com/marcofornari/etrasport.git
SSH:
$ git clone --recurse-submodules [email protected]:marcofornari/etrasport.git
$ cd Mstar2t
$ julia
Enter the Julia package manager (typing ]
) and run the following commands:
(v1.6) pkg> activate .
(Mstar2t) pkg> instantiate
Unix/Mac:
$ cd Interface
$ python3.7 -m venv Interface
$ source Interface/bin/activate
(Interface) $ pip install --upgrade pip
(Interface) $ python -m pip install -r requirements.txt
Windows:
> cd Interface
> python3.7 -m venv Interface
> .\Interface\Scripts\activate
(Interface) > pip install --upgrade pip
(Interface) > python -m pip install -r requirements.txt
There are two options to run m*2t: GUI or Command Line Interface (CLI). Both ways are designed to automatically set up the correct environment for the computing server.
(Interface) $ cd Interface/GUI
(Interface) $ python run_gui.py
First run the server (computing unit)
(Interface) $ cd Interface/CLI
(Interface) $ python run_cli.py
On a new shell, send simulations requests to the server by running:
(Interface) $ cd Interface/CLI
(Interface) $ python compute.py -i <input_file> --<tensor_name> --<plot>
Note: before running a calculation, edit the results fullpath
argument in the input_file. This path identifies the location where the results are exported and must be in the same machine in which the server is running.
(Interface) $ python compute.py -i data.txt --conductivity --seebeck --concentration --tplot
(Interface) $ python compute.py -i data.txt -esn --tplot
(Interface) $ python compute.py --help
usage: compute.py [-h] -i INPUTFILE [--conductivity] [--seebeck] [--thermal] [--concentration] [--tplot] [--muplot]
optional arguments:
-h, --help show this help message and exit
-i INPUTFILE, --inputfile INPUTFILE path to input file
--conductivity, -e compute electrical conductivity
--seebeck, -s compute Seebeck coefficient
--thermal, -k compute thermal conductivity
--concentration, -n compute carrier concentration
--tplot Temperature plot of the tensors
--muplot Fermi level plot of the results
If the environment gets corrupted and when launching the server you get a LoadError: ArgumentError
exception similar to this:
ERROR: LoadError: ArgumentError: <PackageName> is required but does not seem to be installed:
- Run `Pkg.instantiate()` to install all recorded dependencies.
you may try the following steps (see below):
- Remove the
Manifest.toml
file insideMstar2t
; - Open the julia REPL;
- Enter the julia package manager (typing
]
); - Activate the
Mstar2t
env; - Run
resolve
; - Run
instantiate
.
$ cd Mstar2t
$ rm Manifest.toml
$ julia _
_ _ _(_)_ | Documentation: https://docs.julialang.org
(_) | (_) (_) |
_ _ _| |_ __ _ | Type "?" for help, "]?" for Pkg help.
| | | | | | |/ _` | |
| | |_| | | | (_| | | Version 1.6.0-rc2 (2021-03-11)
_/ |\__'_|_|_|\__'_| | Official https://julialang.org/ release
|__/ |
(@v1.6) pkg> activate .
(Mstar2t) pkg> resolve
(Mstar2t) pkg> instantiate
This should clean and rebuild the environment with the correct dependencies.