Convolutional PML schlimmer als Split-Field PML ...

W

Winn

Guest
Hey Leute, es ist ein wenig seltsam für mich, dass die C-PML aus Gedney schlimmer als die alten und klassischen PML-Algorithmen wie Split-Field und einachsigen ist, ist auch der Zerfall seltsam. Ich denke, ich etwas falsch umgesetzt ... Bitte schauen Sie in die PML Comparison.pdf innerhalb der ZIP-Datei. Sie werden vier PML-Algorithmen wie MatLab Dateien im Zip-, Split-Field von Berenger, einachsigen und Convolutional PML aus Gedney und das vierte weiß ich nicht mehr von wem es war, die nahezu perfekte PML zu finden. Die Referenz und Reflexion Berechnung wird ebenfalls hinzugefügt. Ich hoffe jemand hat eine Ahnung, was ich falsch gemacht habe. Wenn etwas in der Quelldatei ist unklar, lass es mich wissen. Gruß Winn
 
Ich weiß nicht, MATLAB, damit ich den Code falsch verstanden haben könnte, aber es ist möglich, dass Ihr Gehalt an der Oberseite und der Unterseite des Arrays nicht korrekt ist. Wenn man sich die yee Zellen am oberen und am unteren Rand suchen, dann an der Spitze der hfield sollte höher als die Sigmas Efield, während am unteren Rand der Rückseite sollte wahr sein.
 
[Quote = iyami] Ich weiß nicht, MATLAB, damit ich den Code falsch verstanden haben könnte, aber es ist möglich, dass Ihr Gehalt an der Oberseite und der Unterseite des Arrays nicht korrekt ist. Wenn man sich die yee Zellen am oberen und am unteren Rand suchen, dann an der Spitze der hfield sollte höher als die Sigmas Efield haben, während an der Unterseite der umgekehrte wahr sein sollte. [/Quote] Zunächst einmal verwendet MATLAB die gleiche Array-Indizierung als Fortran oder klar gesagt, das erste Element-Zugang via [1]. Zweitens, für mein Verständnis, sollte die erste und letzte Leitfähigkeit an das elektrische Netz unendlich sein durch die PEC Grenze. Und das letzte Leitfähigkeit auf dem magnetischen Gitter unendlich sein sollte als auch wegen seiner Lage "hinter" dem PEC Wand. Beide Bedingungen werden durch die Vernachlässigung der Feldwerte in der for-Schleife-Bereich umgesetzt. Ich habe die Leitfähigkeit Einstufung als Plot hinzugefügt ... erfolgt die Einstufung wie Sie erwähnt haben?
 
Die Benotung richtig aussieht. Ich vermisste die -1 in der Zeile
Code:
 xhalpha (1, i-1) = alpha_max * (abs (xhlength (1, i)-xdim * delta) / (Dicke * Delta)) ^ exp_alpha;
Ihre Ergebnisse sehen in der Tat seltsam. Ich verwende hauptsächlich CPML es kann mehr oder weniger willkürliche Handhabung Materialien. Ich habe es nicht systematisch mit einem der anderen PML verglichen. Aber da Sie identische Ergebnisse für SPML und UPML sowie NPML und CPML bekommen es scheint, dass Ihre Implementierung korrekt sein sollte. Es kann sein, dass Sie auf ein Beispiel, wo PML passiert einfach besser zu sein schlagen. Ein Unterschied zwischen SPML und CPMLis, dass der frühere lineare Diskretisierung des Zerfalls verwendet, während CPML verwendet exponentielle Diskretisierung. Es kann nur sein, dass für die Einteilung der Sie die lineare Diskretisierung ist vorzuziehen, aber ich finde, dass schwer zu glauben. Wenn ich die Zeit finde werde ich die Tests in C neu zu schreiben und haben einen Blick an diesem Wochenende. Bitte lassen Sie mich wissen, wenn Sie herausfinden, den Grund für SPMLs Überlegenheit. Eine letzte Anregung. CPML die Performance verbessern soll (bezogen auf SPML), wenn Sie die Quelle näher an der Grenze zu platzieren. Wenn dies nicht geschieht, könnte ein Fehler sein. Wenn es dann tut dies würde die Annahme, dass Ihre Implementierung korrekt ist.
 

Welcome to EDABoard.com

Sponsor

Back
Top