Skip to main content

Routines for the course "Physical Fundamentals of Microelectronics"

Project description

PyPI version PyPI license PyPI - Downloads
GitHub contributors GitHub commit activity Coverage
GitHub milestone

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 в системе СГС.

Лицензия

MIT

Помощь проекту и поддержка пользователей

Если вы желаете внести свой вклад в проект, следуйте инструкциям в файле 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

fti-fompy-0.2.0.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

fti_fompy-0.2.0-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

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

Hashes for fti-fompy-0.2.0.tar.gz
Algorithm Hash digest
SHA256 a348b65c9aae051b11398ca0b43701a4fc84e0e93941ce77d6188432ec0c97a2
MD5 73985936230218bef04c3919dcb5d1d6
BLAKE2b-256 919b52a29f79aaa4cf2c546f95052ce23887dd7186040b382b5d6738c1194546

See more details on using hashes here.

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

Hashes for fti_fompy-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 dcce7c7fb6b1d89fede42176713014fae7ab1be3389e15d9913376a12c83f228
MD5 98ab1c34db61dd76cf6633a66b4c739e
BLAKE2b-256 f03b18aecab0fd413a9c302ff0ebacc869f875232ac6b2b9fd248ba36357950a

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page