你已经派生过 gprMax
镜像自地址
https://gitee.com/sunhf/gprMax.git
已同步 2025-08-07 23:14:03 +08:00
Reformated some 'if statements' to make them more simpler with less amount of code.
这个提交包含在:
@@ -54,18 +54,21 @@ class Waveform:
|
||||
waveforms.
|
||||
"""
|
||||
|
||||
if (self.type == 'gaussian' or self.type == 'gaussiandot' or
|
||||
self.type == 'gaussiandotnorm' or self.type == 'gaussianprime' or
|
||||
self.type == 'gaussiandoubleprime'):
|
||||
if self.type in [
|
||||
'gaussian',
|
||||
'gaussiandot',
|
||||
'gaussiandotnorm',
|
||||
'gaussianprime',
|
||||
'gaussiandoubleprime',
|
||||
]:
|
||||
self.chi = 1 / self.freq
|
||||
self.zeta = 2 * np.pi**2 * self.freq**2
|
||||
elif (self.type == 'gaussiandotdot' or
|
||||
self.type == 'gaussiandotdotnorm' or self.type == 'ricker'):
|
||||
elif self.type in ['gaussiandotdot', 'gaussiandotdotnorm', 'ricker']:
|
||||
self.chi = np.sqrt(2) / self.freq
|
||||
self.zeta = np.pi**2 * self.freq**2
|
||||
|
||||
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:
|
||||
time: float for absolute time.
|
||||
@@ -82,7 +85,7 @@ class Waveform:
|
||||
delay = time - self.chi
|
||||
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
|
||||
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))
|
||||
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
|
||||
ampvalue = (2 * self.zeta * (2 * self.zeta * delay**2 - 1) *
|
||||
np.exp(-self.zeta * delay**2))
|
||||
@@ -116,17 +119,12 @@ class Waveform:
|
||||
elif self.type == 'contsine':
|
||||
rampamp = 0.25
|
||||
ramp = rampamp * time * self.freq
|
||||
if ramp > 1:
|
||||
ramp = 1
|
||||
ramp = min(ramp, 1)
|
||||
ampvalue = ramp * np.sin(2 * np.pi * self.freq * time)
|
||||
|
||||
elif self.type == 'impulse':
|
||||
# time < dt condition required to do impulsive magnetic dipole
|
||||
if time == 0 or time < dt:
|
||||
ampvalue = 1
|
||||
elif time >= dt:
|
||||
ampvalue = 0
|
||||
|
||||
ampvalue = 1 if time == 0 or time < dt else 0
|
||||
elif self.type == 'user':
|
||||
ampvalue = self.userfunc(time)
|
||||
|
||||
|
在新工单中引用
屏蔽一个用户