Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
M
mooc-rr
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
cded6f222a164a22601711b16e547edb
mooc-rr
Commits
1baf3b96
Commit
1baf3b96
authored
Nov 26, 2020
by
cded6f222a164a22601711b16e547edb
💬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Program for NP Jonction
parent
129293ef
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
78 additions
and
23 deletions
+78
-23
toy_notebook_fr.ipynb
module2/exo1/toy_notebook_fr.ipynb
+78
-23
No files found.
module2/exo1/toy_notebook_fr.ipynb
View file @
1baf3b96
...
@@ -2,37 +2,92 @@
...
@@ -2,37 +2,92 @@
"cells": [
"cells": [
{
{
"cell_type": "code",
"cell_type": "code",
"execution_count":
null
,
"execution_count":
1
,
"metadata": {},
"metadata": {},
"outputs": [],
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"1.7822008619773912\n"
]
},
{
"data": {
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"source": [
"import os\n",
"# Mon program\n",
"import math\n",
"import numpy as np\n",
"import scipy as sp\n",
"import matplotlib as mpl\n",
"import matplotlib.pyplot as pl\n",
"\n",
"\n",
"__version__ = '0.3.0'\n",
"kT = 0.0258 # 0.0258 eV à température ambiante\n",
"eps0 = 8.85e-10 # permittivité du vide en F/cm\n",
"q = 1.602e-19 # charge élementaire en C\n",
"\n",
"\n",
"# remplacer les valeur par celles de l'AlGaAs/GaAs\n",
"# à rechercher... par exemple ici:\n",
"# http://www.ioffe.ru/SVA/NSM/Semicond/AlGaAs/index.html\n",
"# http://www.ioffe.ru/SVA/NSM/Semicond/GaAs/index.html\n",
"NE = 1e19 # dopage de l'émetteur 1/cm3\n",
"NB = 1e19 # densité d'états dans la BC dans la base (1/cm3)\n",
"niE = niB = 1e4 # densités intrinsèques dans l'émetteur et la base resp. (1/cm3)\n",
"NCB = 1e19 # densité d'états dans la BC dans la base (1/cm3)\n",
"NVB = 1e19 # densité d'états dans la BV dans la base (1/cm3)\n",
"NCE = 1e19 # densité d'états dans la BC dans l'émetteur (1/cm3)\n",
"NVE = 1e19 # densité d'états dans la BV dans l'émetteur (1/cm3)\n",
"DEV = 0. # discontinuité de la BV (eV)\n",
"DEC = 0. # discontinuité de la BC (eV)\n",
"DEg = 0. # discontinuité du gap (eV)\n",
"DnB = 200. # constante de diffusion dans la base (cm2/s)\n",
"LnB = 10. # longueur de diffusion dans la base (um)\n",
"vsat = 1e7 # vitesse de saturation (cm/s)\n",
"epsE = epsB = 10. # permittivité relative\n",
"\n",
"\n",
"def _jupyter_nbextension_paths():\n",
"# tension de diffusion (V)\n",
" # src & dest are os paths, and so must use os.path.sep to work correctly on Windows.\n",
"Phi = kT * math.log(NE * NB / (niE * niB)) + 0.5 * kT * math.log(NCB * NVE / (NCE * NVB)) + 0.5 * (0.5 * DEg - DEV)\n",
" # In contrast, require is a requirejs path, and thus must use `/` as the path separator.\n",
"print (Phi)\n",
" return [dict(\n",
"Va = 1. # tension appliquée (volts)\n",
" section='notebook',\n",
" # src is relative to current module\n",
" src='jupytemplate',\n",
" # dest directory is in the `nbextensions/` namespace\n",
" dest='jupytemplate',\n",
" # require is also in the `nbextensions/` namespace\n",
" # must use / as path.sep\n",
" require='jupytemplate/main',\n",
" )]\n",
"\n",
"\n",
"# largeur de la ZCE dans la base (um)\n",
"\n",
"\n",
"def get_template_path():\n",
"JC0 = (q * DnB / LnB) * NE\n",
" \"\"\"\n",
"V = np.linspace(0.4, 1.5, 100)\n",
" Get absolute path of template notebook.\n",
"XB = 1e4 * np.sqrt(2. * epsE * epsB * eps0 * NE * (Phi - V) / (q * NB * (NE * epsB + NB * epsE)))\n",
" :return: the path if the template notebook\n",
"JC = JC0 * np.exp(-(Phi - V) / kT) * (1. / (XB + (DnB / vsat)))\n",
" \"\"\"\n",
"aB = 1./np.cosh(XB/LnB)\n",
" return os.path.abspath(os.path.join(os.path.dirname(__file__), 'jupytemplate', 'template.ipynb'))"
"JB = JC * (1. - aB) / aB\n",
"Beta = JC / JB\n",
"pl.semilogy(V, JC)\n",
"pl.semilogy(V, JB)\n",
"pl.legend([\"JB, JC\"])\n",
"pl.xlabel(\"Tension (volts)\")\n",
"pl.ylabel(\"Courant (A/cm2)\")\n",
"pl.show()"
]
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
}
],
],
"metadata": {
"metadata": {
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment