Reformated some 'if statements' to make them more simpler with less amount of code.

这个提交包含在:
Sai Suraj
2023-04-15 10:33:05 +05:30
父节点 1dd4f17850
当前提交 f05cb68bc2

查看文件

@@ -54,18 +54,21 @@ class Waveform:
waveforms. waveforms.
""" """
if (self.type == 'gaussian' or self.type == 'gaussiandot' or if self.type in [
self.type == 'gaussiandotnorm' or self.type == 'gaussianprime' or 'gaussian',
self.type == 'gaussiandoubleprime'): 'gaussiandot',
'gaussiandotnorm',
'gaussianprime',
'gaussiandoubleprime',
]:
self.chi = 1 / self.freq self.chi = 1 / self.freq
self.zeta = 2 * np.pi**2 * self.freq**2 self.zeta = 2 * np.pi**2 * self.freq**2
elif (self.type == 'gaussiandotdot' or elif self.type in ['gaussiandotdot', 'gaussiandotdotnorm', 'ricker']:
self.type == 'gaussiandotdotnorm' or self.type == 'ricker'):
self.chi = np.sqrt(2) / self.freq self.chi = np.sqrt(2) / self.freq
self.zeta = np.pi**2 * self.freq**2 self.zeta = np.pi**2 * self.freq**2
def calculate_value(self, time, dt): def calculate_value(self, time, dt):
"""Calculates value of the waveform at a specific time. """Calculates the value of the waveform at a specific time.
Args: Args:
time: float for absolute time. time: float for absolute time.
@@ -82,7 +85,7 @@ class Waveform:
delay = time - self.chi delay = time - self.chi
ampvalue = np.exp(-self.zeta * delay**2) ampvalue = np.exp(-self.zeta * delay**2)
elif self.type == 'gaussiandot' or self.type == 'gaussianprime': elif self.type in ['gaussiandot', 'gaussianprime']:
delay = time - self.chi delay = time - self.chi
ampvalue = -2 * self.zeta * delay * np.exp(-self.zeta * delay**2) ampvalue = -2 * self.zeta * delay * np.exp(-self.zeta * delay**2)
@@ -91,7 +94,7 @@ class Waveform:
normalise = np.sqrt(np.exp(1) / (2 * self.zeta)) normalise = np.sqrt(np.exp(1) / (2 * self.zeta))
ampvalue = -2 * self.zeta * delay * np.exp(-self.zeta * delay**2) * normalise ampvalue = -2 * self.zeta * delay * np.exp(-self.zeta * delay**2) * normalise
elif self.type == 'gaussiandotdot' or self.type == 'gaussiandoubleprime': elif self.type in ['gaussiandotdot', 'gaussiandoubleprime']:
delay = time - self.chi delay = time - self.chi
ampvalue = (2 * self.zeta * (2 * self.zeta * delay**2 - 1) * ampvalue = (2 * self.zeta * (2 * self.zeta * delay**2 - 1) *
np.exp(-self.zeta * delay**2)) np.exp(-self.zeta * delay**2))
@@ -116,17 +119,12 @@ class Waveform:
elif self.type == 'contsine': elif self.type == 'contsine':
rampamp = 0.25 rampamp = 0.25
ramp = rampamp * time * self.freq ramp = rampamp * time * self.freq
if ramp > 1: ramp = min(ramp, 1)
ramp = 1
ampvalue = ramp * np.sin(2 * np.pi * self.freq * time) ampvalue = ramp * np.sin(2 * np.pi * self.freq * time)
elif self.type == 'impulse': elif self.type == 'impulse':
# time < dt condition required to do impulsive magnetic dipole # time < dt condition required to do impulsive magnetic dipole
if time == 0 or time < dt: ampvalue = 1 if time == 0 or time < dt else 0
ampvalue = 1
elif time >= dt:
ampvalue = 0
elif self.type == 'user': elif self.type == 'user':
ampvalue = self.userfunc(time) ampvalue = self.userfunc(time)