Skip to content

Commit c841c11

Browse files
[pre-commit.ci] auto fixes from pre-commit.com hooks
for more information, see https://pre-commit.ci
1 parent 9f4f139 commit c841c11

1 file changed

Lines changed: 31 additions & 21 deletions

File tree

‎physics/diffraction.py‎

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

3-
def check_min_intensity(slit_width = 1,diff_angle=0, wavelength=100):
3+
4+
def check_min_intensity(slit_width=1, diff_angle=0, wavelength=100):
45
"""
56
Checks for the condition of minimum intensity in a diffraction pattern.
6-
7+
78
Args:
89
slit_width (float): The width of the slit in millimeters.
910
diff_angle (float): The diffraction angle in radians.
1011
wavelength (float): The wavelength of light in nanometers.
11-
12+
1213
Returns:
1314
bool: True if minimum intensity is met, otherwise False.
1415
@@ -18,19 +19,20 @@ def check_min_intensity(slit_width = 1,diff_angle=0, wavelength=100):
1819
True
1920
"""
2021
wavelength *= 10**-6
21-
n_val = round(slit_width*(diff_angle)/wavelength,5)
22-
r_val = (n_val-math.floor(n_val)==0)
22+
n_val = round(slit_width * (diff_angle) / wavelength, 5)
23+
r_val = n_val - math.floor(n_val) == 0
2324
return r_val
2425

25-
def check_max_intensity(slit_width=1,diff_angle=0,wavelength=100):
26+
27+
def check_max_intensity(slit_width=1, diff_angle=0, wavelength=100):
2628
"""
2729
Checks for the condition of maximum intensity in a diffraction pattern.
28-
30+
2931
Args:
3032
slit_width (float): The width of the slit in millimeters.
3133
diff_angle (float): The diffraction angle in radians.
3234
wavelength (float): The wavelength of light in nanometers.
33-
35+
3436
Returns:
3537
bool: True if maximum intensity is met, otherwise False.
3638
@@ -39,34 +41,36 @@ def check_max_intensity(slit_width=1,diff_angle=0,wavelength=100):
3941
>>> check_max_intensity(1, 0.00005, 100)
4042
True
4143
"""
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)
44+
wavelength *= 10**-6
45+
n_val = round(((2 * slit_width * diff_angle) - wavelength) / (2 * wavelength), 4)
46+
r_val = n_val - math.floor(n_val) == 0
4547
return r_val
4648

47-
def intensity_single_slit(slit_width=1,diff_angle=0,wavelength=100):
49+
50+
def intensity_single_slit(slit_width=1, diff_angle=0, wavelength=100):
4851
"""
4952
Computes the intensity for a single slit diffraction pattern.
50-
53+
5154
Args:
5255
slit_width (float): The width of the slit in millimeters.
5356
diff_angle (float): The diffraction angle in radians.
5457
wavelength (float): The wavelength of light in nanometers.
55-
58+
5659
Returns:
5760
str: The intensity of the diffraction pattern.
5861
5962
>>> intensity_single_slit(1, 0.0005, 100)
6063
'0.9999999999177533 I0'
6164
"""
62-
beta = math.pi*slit_width*(math.sin(diff_angle)/wavelength)
63-
i_coeff = (math.sin(beta)/beta)**2
65+
beta = math.pi * slit_width * (math.sin(diff_angle) / wavelength)
66+
i_coeff = (math.sin(beta) / beta) ** 2
6467
return f"{i_coeff} I0"
6568

66-
def intensity_double_slit(path_diff=0,intensity_max="I0"):
69+
70+
def intensity_double_slit(path_diff=0, intensity_max="I0"):
6771
"""
6872
Computes the intensity for a double slit diffraction pattern.
69-
73+
7074
Args:
7175
path_diff (float): The path difference in the two waves.
7276
intensity_max (str or int): The maximum intensity.
@@ -81,10 +85,16 @@ def intensity_double_slit(path_diff=0,intensity_max="I0"):
8185
>>> intensity_double_slit(0)
8286
'4.0 I0'
8387
"""
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"
88+
r_val = (
89+
4 * intensity_max * (math.cos(path_diff / 2)) ** 2
90+
if (type(intensity_max) is int)
91+
else f"{4*(math.cos(path_diff/2)**2)} I0"
92+
)
8593
return r_val
8694

87-
if(__name__=="__main__"):
95+
96+
if __name__ == "__main__":
8897
import doctest
98+
8999
doctest.testmod()
90-
#pass
100+
# pass

0 commit comments

Comments
 (0)