# Граничные условия ABC второй степени (слева) Ez[0] = (k1Left * (k2Left * (Ez[2] + oldEzLeft2[0]) + k3Left * (oldEzLeft1[0] + oldEzLeft1[2] - Ez[1] - oldEzLeft2[1]) - k4Left * oldEzLeft1[1]) - oldEzLeft2[2]) oldEzLeft2[:] = oldEzLeft1[:] oldEzLeft1[:] = Ez[0:3] # Граничные условия ABC второй степени (справа) Ez[-1] = ( k1Right * (k2Right * (Ez[-3] + oldEzRight2[-1]) + k3Right * (oldEzRight1[-1] + oldEzRight1[-3] - Ez[-2] - oldEzRight2[-2]) - k4Right * oldEzRight1[-2]) - oldEzRight2[-3]) oldEzRight2[:] = oldEzRight1[:] oldEzRight1[:] = Ez[-3:] # Регистрация поля в датчиках for probe in probes: probe.addData(Ez, Hy) if q % 2 == 0: display.updateData(display_field, q) display.stop() # Отображение сигнала, сохраненного в датчиках tools.showProbeSignals(probes, -1.1, 1.1)
# Total Field / Scattered Field Ez[sourcePos] += Sc * source.getE(-0.5, q + 0.5) # Граничные условия ABC второй степени (слева) Ez[0] = (k1Left * (k2Left * (Ez[2] + oldEzLeft2[0]) + k3Left * (oldEzLeft1[0] + oldEzLeft1[2] - Ez[1] - oldEzLeft2[1]) - k4Left * oldEzLeft1[1]) - oldEzLeft2[2]) oldEzLeft2[:] = oldEzLeft1[:] oldEzLeft1[:] = Ez[0: 3] # Граничные условия ABC второй степени (справа) Ez[-1] = (k1Right * (k2Right * (Ez[-3] + oldEzRight2[-1]) + k3Right * (oldEzRight1[-1] + oldEzRight1[-3] - Ez[-2] - oldEzRight2[-2]) - k4Right * oldEzRight1[-2]) - oldEzRight2[-3]) oldEzRight2[:] = oldEzRight1[:] oldEzRight1[:] = Ez[-3:] # Регистрация поля в датчиках for probe in probes: probe.addData(Ez, Hy) if q % 2 == 0: display.updateData(display_field, q) display.stop() # Отображение сигнала, сохраненного в датчиках tools.showProbeSignals(probes, -2.1, 2.1)
Ez[:-1] = Ez[:-1] + (Hy[:-1] - Hy_shift) * Sc * W0 / eps[:-1] # Источник возбуждения с использованием метода # Total Field / Scattered Field Ez[sourcePos - 1] += (Sc / (numpy.sqrt(eps[sourcePos - 1] * mu[sourcePos - 1])) * source.getField(-0.5, q + 0.5)) # Граничные условия ABC второй степени (справа) Ez[-1] = (k1Right * (k2Right * (Ez[-3] + oldEzRight2[-1]) + k3Right * (oldEzRight1[-1] + oldEzRight1[-3] - Ez[-2] - oldEzRight2[-2]) - k4Right * oldEzRight1[-2]) - oldEzRight2[-3]) oldEzRight2[:] = oldEzRight1[:] oldEzRight1[:] = Ez[-3:] # Регистрация поля в датчиках for probe in probes: probe.addData(Ez, Hy) if q % 5 == 0: display.updateData(display_field, q) display.stop() # Отображение сигнала, сохраненного в датчиках tools.showProbeSignals(probes, -2.0, 2.0, dt) # Отображение спектра сигнала Spectr(dt, probe.E)