Skip to content

Commit 0875cfa

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent 0f22124 commit 0875cfa

1 file changed

Lines changed: 37 additions & 21 deletions

File tree

physics/diffraction.py

Lines changed: 37 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,17 @@
11
import math
22

3-
def check_min_intensity(slit_width:int = 1,diff_angle:int =0, wavelength:int =100)->bool:
3+
4+
def check_min_intensity(
5+
slit_width: int = 1, diff_angle: int = 0, wavelength: int = 100
6+
) -> bool:
47
"""
58
Checks for the condition of minimum intensity in a diffraction pattern.
6-
9+
710
Args:
811
slit_width (float): The width of the slit in millimeters.
912
diff_angle (float): The diffraction angle in radians.
1013
wavelength (float): The wavelength of light in nanometers.
11-
14+
1215
Returns:
1316
bool: True if minimum intensity is met, otherwise False.
1417
@@ -18,19 +21,22 @@ def check_min_intensity(slit_width:int = 1,diff_angle:int =0, wavelength:int =10
1821
True
1922
"""
2023
wavelength *= 10**-6
21-
n_val = round(slit_width*(diff_angle)/wavelength,5)
22-
r_val = (n_val-math.floor(n_val)==0)
24+
n_val = round(slit_width * (diff_angle) / wavelength, 5)
25+
r_val = n_val - math.floor(n_val) == 0
2326
return r_val
2427

25-
def check_max_intensity(slit_width:int =1,diff_angle:int =0,wavelength:int =100)->bool:
28+
29+
def check_max_intensity(
30+
slit_width: int = 1, diff_angle: int = 0, wavelength: int = 100
31+
) -> bool:
2632
"""
2733
Checks for the condition of maximum intensity in a diffraction pattern.
28-
34+
2935
Args:
3036
slit_width (float): The width of the slit in millimeters.
3137
diff_angle (float): The diffraction angle in radians.
3238
wavelength (float): The wavelength of light in nanometers.
33-
39+
3440
Returns:
3541
bool: True if maximum intensity is met, otherwise False.
3642
@@ -39,34 +45,38 @@ def check_max_intensity(slit_width:int =1,diff_angle:int =0,wavelength:int =100)
3945
>>> check_max_intensity(1, 0.00005, 100)
4046
True
4147
"""
42-
wavelength *=10**-6
43-
n_val = round(((2*slit_width*diff_angle)-wavelength)/(2*wavelength),4)
44-
r_val = (n_val-math.floor(n_val)==0)
48+
wavelength *= 10**-6
49+
n_val = round(((2 * slit_width * diff_angle) - wavelength) / (2 * wavelength), 4)
50+
r_val = n_val - math.floor(n_val) == 0
4551
return r_val
4652

47-
def intensity_single_slit(slit_width:int =1,diff_angle:int =0,wavelength:int =100)->int:
53+
54+
def intensity_single_slit(
55+
slit_width: int = 1, diff_angle: int = 0, wavelength: int = 100
56+
) -> int:
4857
"""
4958
Computes the intensity for a single slit diffraction pattern.
50-
59+
5160
Args:
5261
slit_width (float): The width of the slit in millimeters.
5362
diff_angle (float): The diffraction angle in radians.
5463
wavelength (float): The wavelength of light in nanometers.
55-
64+
5665
Returns:
5766
str: The intensity of the diffraction pattern.
5867
5968
>>> intensity_single_slit(1, 0.0005, 100)
6069
'0.9999999999177533 I0'
6170
"""
62-
beta = math.pi*slit_width*(math.sin(diff_angle)/wavelength)
63-
i_coeff = (math.sin(beta)/beta)**2
71+
beta = math.pi * slit_width * (math.sin(diff_angle) / wavelength)
72+
i_coeff = (math.sin(beta) / beta) ** 2
6473
return f"{i_coeff} I0"
6574

66-
def intensity_double_slit(path_diff:int=0,intensity_max:int="I0")->int:
75+
76+
def intensity_double_slit(path_diff: int = 0, intensity_max: int = "I0") -> int:
6777
"""
6878
Computes the intensity for a double slit diffraction pattern.
69-
79+
7080
Args:
7181
path_diff (float): The path difference in the two waves.
7282
intensity_max (str or int): The maximum intensity.
@@ -81,10 +91,16 @@ def intensity_double_slit(path_diff:int=0,intensity_max:int="I0")->int:
8191
>>> intensity_double_slit(0)
8292
'4.0 I0'
8393
"""
84-
r_val = 4*intensity_max*(math.cos(path_diff/2))**2 if (type(intensity_max) is int) else f"{4*(math.cos(path_diff/2)**2)} I0"
94+
r_val = (
95+
4 * intensity_max * (math.cos(path_diff / 2)) ** 2
96+
if (type(intensity_max) is int)
97+
else f"{4*(math.cos(path_diff/2)**2)} I0"
98+
)
8599
return r_val
86100

87-
if(__name__=="__main__"):
101+
102+
if __name__ == "__main__":
88103
import doctest
104+
89105
doctest.testmod()
90-
#pass
106+
# pass

0 commit comments

Comments
 (0)