11import 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