From b2fa6d4af621e535ecfa8111221e7d4dc688aecd Mon Sep 17 00:00:00 2001 From: QuentinGPU Date: Fri, 29 Aug 2025 10:12:31 +0200 Subject: [PATCH] Update sources.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Car les champs E et B sont mis à jour à dt/2 d'intervalle, les champs E sont mis à jour tous les ndt, et les champs B tous les (n+1/2)dt. J'ai trouvé une erreur similaire que je n'avais pas corriger dasn l'implémentation GPU, ce qui peut expliquer la légère différence dans les résultats de mes fluxs --- gprMax/sources.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/gprMax/sources.py b/gprMax/sources.py index 3b9728353..3e26897c1 100644 --- a/gprMax/sources.py +++ b/gprMax/sources.py @@ -101,7 +101,7 @@ def update_electric(self, iteration, updatecoeffsE, ID, Ex, Ey, Ez, G): * self.waveformvalues_wholestep[iteration] * (1 / (self.resistance * G.dy * G.dz))) else: - Ex[i, j, k] = - self.waveformvalues_halfstep[iteration] / G.dx + Ex[i, j, k] = - self.waveformvalues_wholestep[iteration] / G.dx elif self.polarisation == 'y': if self.resistance != 0: @@ -109,7 +109,7 @@ def update_electric(self, iteration, updatecoeffsE, ID, Ex, Ey, Ez, G): * self.waveformvalues_wholestep[iteration] * (1 / (self.resistance * G.dx * G.dz))) else: - Ey[i, j, k] = - self.waveformvalues_halfstep[iteration] / G.dy + Ey[i, j, k] = - self.waveformvalues_wholestep[iteration] / G.dy elif self.polarisation == 'z': if self.resistance != 0: @@ -117,7 +117,7 @@ def update_electric(self, iteration, updatecoeffsE, ID, Ex, Ey, Ez, G): * self.waveformvalues_wholestep[iteration] * (1 / (self.resistance * G.dx * G.dy))) else: - Ez[i, j, k] = - self.waveformvalues_halfstep[iteration] / G.dz + Ez[i, j, k] = - self.waveformvalues_wholestep[iteration] / G.dz def create_material(self, G): """Create a new material at the voltage source location that adds the @@ -272,7 +272,7 @@ def gpu_initialise_src_arrays(sources, G): srcwaves[i, :] = src.waveformvalues_wholestep else: srcinfo2[i] = 0 - srcwaves[i, :] = src.waveformvalues_halfstep + srcwaves[i, :] = src.waveformvalues_wholestep elif src.__class__.__name__ == 'MagneticDipole': srcwaves[i, :] = src.waveformvalues_halfstep @@ -449,4 +449,4 @@ def update_magnetic(self, iteration, updatecoeffsH, ID, Hx, Hy, Hz, G): self.current[self.antpos] = Iy(i, j, k, G.Hx, G.Hy, G.Hz, G) elif self.polarisation == 'z': - self.current[self.antpos] = Iz(i, j, k, G.Hx, G.Hy, G.Hz, G) \ No newline at end of file + self.current[self.antpos] = Iz(i, j, k, G.Hx, G.Hy, G.Hz, G)