MCPcopy
hub / github.com/TheAlgorithms/Python / electric_conductivity

Function electric_conductivity

electronics/electric_conductivity.py:6–67  ·  view source on GitHub ↗

This function can calculate any one of the three - 1. Conductivity 2. Electron Concentration 3. Electron Mobility This is calculated from the other two provided values Examples - >>> electric_conductivity(conductivity=25, electron_conc=100, mobility=0) ('mobility', 1

(
    conductivity: float,
    electron_conc: float,
    mobility: float,
)

Source from the content-addressed store, hash-verified

4
5
6def electric_conductivity(
7 conductivity: float,
8 electron_conc: float,
9 mobility: float,
10) -> tuple[str, float]:
11 """
12 This function can calculate any one of the three -
13 1. Conductivity
14 2. Electron Concentration
15 3. Electron Mobility
16 This is calculated from the other two provided values
17 Examples -
18 >>> electric_conductivity(conductivity=25, electron_conc=100, mobility=0)
19 ('mobility', 1.5604519068722301e+18)
20 >>> electric_conductivity(conductivity=0, electron_conc=1600, mobility=200)
21 ('conductivity', 5.12672e-14)
22 >>> electric_conductivity(conductivity=1000, electron_conc=0, mobility=1200)
23 ('electron_conc', 5.201506356240767e+18)
24 >>> electric_conductivity(conductivity=-10, electron_conc=100, mobility=0)
25 Traceback (most recent call last):
26 ...
27 ValueError: Conductivity cannot be negative
28 >>> electric_conductivity(conductivity=50, electron_conc=-10, mobility=0)
29 Traceback (most recent call last):
30 ...
31 ValueError: Electron concentration cannot be negative
32 >>> electric_conductivity(conductivity=50, electron_conc=0, mobility=-10)
33 Traceback (most recent call last):
34 ...
35 ValueError: mobility cannot be negative
36 >>> electric_conductivity(conductivity=50, electron_conc=0, mobility=0)
37 Traceback (most recent call last):
38 ...
39 ValueError: You cannot supply more or less than 2 values
40 >>> electric_conductivity(conductivity=50, electron_conc=200, mobility=300)
41 Traceback (most recent call last):
42 ...
43 ValueError: You cannot supply more or less than 2 values
44 """
45 if (conductivity, electron_conc, mobility).count(0) != 1:
46 raise ValueError("You cannot supply more or less than 2 values")
47 elif conductivity < 0:
48 raise ValueError("Conductivity cannot be negative")
49 elif electron_conc < 0:
50 raise ValueError("Electron concentration cannot be negative")
51 elif mobility < 0:
52 raise ValueError("mobility cannot be negative")
53 elif conductivity == 0:
54 return (
55 "conductivity",
56 mobility * electron_conc * ELECTRON_CHARGE,
57 )
58 elif electron_conc == 0:
59 return (
60 "electron_conc",
61 conductivity / (mobility * ELECTRON_CHARGE),
62 )
63 else:

Callers

nothing calls this directly

Calls 1

countMethod · 0.80

Tested by

no test coverage detected