Routines for the course "Physical Fundamentals of Microelectronics"
Project description
FOMpy
FOMpy — подпрограммы и классы для курса «Физические основы микроэлектроники» (ФОМЭ). Идея проекта в том, чтобы совместными усилиями создать достаточную базу подпрограмм для решения задач по ФОМЭ.
Документация модуля с приведением используемых формул доступна по этой ссылке.
Важно! Основной системой единиц для расчётов является СГС (Гауссова система единиц).
Установка
Данная инструкция поможет вам начать использовать пакет FOMpy в вашем проекте или работать с ним как с калькулятором.
С целью избежать возможных проблем с установкой зависимостей, рекомендуется установка в виртуальной среде.
Глобальная установка
Для того чтобы установить FOMpy глобально, выполните команду
$ pip install fti-fompy
Установка в виртуальной среде
-
Создайте виртуальную среду (возможно, придётся написать
python3
вместоpython
):$ python -m venv .venv
-
Запустите виртуальную среду:
$ source ./venv/bin/activate
Важно! В дальнейшем эту команду нужно будет выполнять каждый раз перед запуском скриптов, работающих с FOMpy. Эффект действует до закрытия окна терминала или вызова команды
deactivate
. -
Установите пакет FOMpy:
$ pip install fti-fompy
Удобный скрипт для запуска
Вы можете настроить терминал таким образом, чтобы одной командой в нём запускался интерпретатор Python, сразу после запуска готовый к работе с FOMpy.
-
Добавьте в файл
~/.bashrc
(или другой rc-файл в зависимости от вашей командной оболочки) следующие строки:FOMPY_IMPORTS=" from math import * from fompy.constants import * from fompy.materials import * from fompy.models import * from fompy.units import unit " fompy() { cd <Путь до папки с FOMpy> # Эти две строки нужны только для source .venv/bin/activate # запуска виртуальной среды PYTHONSTARTUP=<(echo "$FOMPY_IMPORTS") python }
-
Перезапустите терминал.
-
Наберите команду
$ fompy
Теперь этой командой вы можете вызывать интерпретатор
python
, в котором уже будут импортированы все нужные модули FOMpy.
Использование
В этом разделе представлены несколько примеров, демонстрирующих применение пакета FOMpy для решения простейших типичных задач.
Подробное описание доступных подпрограмм, классов и их методов можно прочитать по этой ссылке. В документации методов приведены используемые формулы и уравнения.
Пример 1: расчёт концентрации дырок в легированном полупроводнике
Необходимо найти концентрацию дырок в кремнии Si, легированном акцепторной примесью. Температура T = 300 К, концентрация акцепторной примеси Na = 1017 см−3, акцепторный уровень Ea = 0,3 эВ (от вершины валентной зоны Ev = 0).
-
Подготавливаем интерпретатор Python — воспользуемся удобной настройкой Unix shell:
$ fompy
-
Создаём объект легированного полупроводника
fompy.models.DopedSemiconductor
:- задаём в качестве базового материала кремний
fompy.materials.Si
; - приводим значения для акцепторных концентрации Na и уровня Ea;
- зануляем параметры донорной примеси Nd и Ed (считаем, что она отсутствует).
>>> si_p = DopedSemiconductor(Si, 10**17, 0.3 * eV, 0, 0)
Важно! Применение эВ требует домножения на величину
fompy.constants.eV
, равную значению 1 эВ в единицах СГС. - задаём в качестве базового материала кремний
-
Находим концентрацию дырок (температура T = 300 К по умолчанию, уровень Ферми вычисляется автоматически):
>>> n_p = si_p.p_concentration() >>> print("{:e}".format(n_p)) 3.778950e+15
Пример 2: определение проводимости
Требуется вычислить проводимость материала при заданных концентрации электронов nn = 2,0 · 1016 см−3 и дырок np = 8,5 · 1016 см−3, а также подвижности электронов μn = 3,9 · 103 см2 В−1 с−1 и дырок μp = 1,9 · 103 см2 В−1 с−1.
-
Подготавливаем интерпретатор Python:
$ fompy
-
Находим проводимость с помощью подпрограммы
fompy.models.conductivity(n, n_mob, p, p_mob)
:>>> sigma = conductivity(2. * 10**16, 3900. / volt, 8.5 * 10**16, 1900. / volt) >>> print("{:e}".format(sigma)) 3.448655e+13
Важно! Так как в условии подвижность указана в единицах см2 В−1 с−1, то для перевода в СГС нужно домножить её на величину
1. / fompy.constants.volt
, равную значению 1 В−1 в системе СГС.
Лицензия
Помощь проекту и поддержка пользователей
Если вы желаете внести свой вклад в проект, следуйте инструкциям в файле CONTRIBUTING.md. На репозитории действуют правила поведения.
Предложения и пожелания по функционалу, наполнению проекта и исправлению ошибок принимаются на сайте репозитория в разделе Issues.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file fti-fompy-0.2.0.tar.gz
.
File metadata
- Download URL: fti-fompy-0.2.0.tar.gz
- Upload date:
- Size: 20.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a348b65c9aae051b11398ca0b43701a4fc84e0e93941ce77d6188432ec0c97a2 |
|
MD5 | 73985936230218bef04c3919dcb5d1d6 |
|
BLAKE2b-256 | 919b52a29f79aaa4cf2c546f95052ce23887dd7186040b382b5d6738c1194546 |
File details
Details for the file fti_fompy-0.2.0-py3-none-any.whl
.
File metadata
- Download URL: fti_fompy-0.2.0-py3-none-any.whl
- Upload date:
- Size: 18.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.24.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.9.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dcce7c7fb6b1d89fede42176713014fae7ab1be3389e15d9913376a12c83f228 |
|
MD5 | 98ab1c34db61dd76cf6633a66b4c739e |
|
BLAKE2b-256 | f03b18aecab0fd413a9c302ff0ebacc869f875232ac6b2b9fd248ba36357950a |