INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Helmholtz Gleichung numerisch lösen und darstellen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

01.02.2012, 12:19
Beitrag #1

horscht(i) Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Feb 2012

2011
2010
EN



Helmholtz Gleichung numerisch lösen und darstellen
Hallo LabView-Gemeinde,

ich möchte gerne die optischen Moden von einfachen 1D und 2D Schichtwellenleitern ausrechnen. Ich habe bereits einen mehr oder weniger arbeitenden Mathematica-Code für die 1D-Variante.
In LabView wäre das aber alles angenehmer, da dies hier standardmäßig eingesetzt wird und für jeden verfüg- und anwendbar ist.

Insgesamt muss man eigentlich "nur" die 1D und 2D Helmholtz-Gleichung für die Verteilung des elektrischen Feldes lösen und hierfür bietet LabView ja bereits eine ganze Palette an PDE-Tools, die einem unschöne Dinge wie Randbedingungen und Diskretisierung abnehmen. Mit denen komme ich aber gerade gar nicht klar.

Kennt jemand ein paar Code-Beispiele oder Tutorials, die den Umgang mit den PDE-Tools verdeutlichen und erklären?
Damit wäre mir schonmal geholfen.

Am Ende sollte dann ein kleines Programm stehen, in dem man - grafisch oder per eingelesener Textdatei - ein Brechungsindexprofil vorgibt und das dann daraus die Modenverteilung berechnet und grafisch darstellt.

Schonmal vielen Dank für eure Hilfe!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2012, 12:37 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2012 12:40 von Hook1986.)
Beitrag #2

Hook1986 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 149
Registriert seit: Jan 2012

2010
2011
DE_EN


Deutschland
RE: Helmholtz Gleichung numerisch lösen und darstellen
Hallo horscht,

Beispiel zum Umgang mit den PDE-Tools gibt es in der ausführlichen Hilfe. Da findest du am unteren Ende einige Beispiele, die dir wahrscheinlich beim Umgang damit helfen werden.

MfG Carsten

Edit:
labview\examples\math\PDE.llb

In dem einen Beispiel steht auch etwas von 2D Helmholtz drin. Eventuell ist es ja genau dein Problem ;-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2012, 14:16 (Dieser Beitrag wurde zuletzt bearbeitet: 21.02.2012 12:56 von jg.)
Beitrag #3

horscht(i) Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Feb 2012

2011
2010
EN



RE: Helmholtz Gleichung numerisch lösen und darstellen
(01.02.2012 12:37 )Hook1986 schrieb:  Hallo horscht,

Beispiel zum Umgang mit den PDE-Tools gibt es in der ausführlichen Hilfe. Da findest du am unteren Ende einige Beispiele, die dir wahrscheinlich beim Umgang damit helfen werden.

MfG Carsten

Edit:
labview\examples\math\PDE.llb

In dem einen Beispiel steht auch etwas von 2D Helmholtz drin. Eventuell ist es ja genau dein Problem ;-)

Hier mal die Helmholtz-Gleichung, wie sie in "Define Equation" hinterlegt ist:
   
In meinem Fall gilt: F(x,y)=0, k^2=1 und a=(w*n(x,y)/c)^2-b^2
n(x,y) ist das Brechungsindexprofil, was ich in jedem Punkt des numerischen Gitters definieren muss. Allerdings muss der Koeffizient a konstant sein, was er bei mir definitiv nicht ist. Keines der Beispiele arbeitet mit einem nicht-konstanten Koeffizienten, soweit ich das überblicke. Daher helfen dir mir leider nicht weiter.
Kann ich die PDE Palette so überhaupt einsetzen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.02.2012, 11:21 (Dieser Beitrag wurde zuletzt bearbeitet: 21.02.2012 12:56 von jg.)
Beitrag #4

horscht(i) Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Feb 2012

2011
2010
EN



RE: Helmholtz Gleichung numerisch lösen und darstellen
Hi Gemeinde,

ich recycle den Thread mal in der Hoffnung, dass ihn nochmal jemand anklickt. Ich hole mal ein wenig allgemeiner aus, um die Problemstellung klar zu machen.
Mittlerweile habe ich eine lauffähige Version mit Mathematica geschrieben, die ich nun gerne möglichst einfach in LabView übersetzen möchte. Es gibt einfach viel bessere Möglichkeiten eine komfortable GUI zusammenzubauen, was Mathematica einfach nicht hergibt.

Konkret geht es um Lichtwellenleiter und die geführten Moden innerhalb des Wellenleiters. Dazu muss man, wie oben schon beschrieben, die Helmholzt-DGL lösen. Die gesuchte Funktion ist dabei die Komponente des elektrischen Feldes E entlang der Wellenleiterachse.
   
E(x,y) als wie gesagt die gesuchte Funktion. n(x,y) ist das Brechungsindexprofil des Wellenleiters.
Hier mal ein Beispiel:
   
Das ist ein Querschnitt senkrecht zur Wellenleiterachse, die senkrecht auf der Bildebene steht
Die eingebauten Labview-Solver können diese Gleichung nicht lösen, da sie mit nicht-konstanten Koeffizienten nicht umgehen können. n(x,y) ist aber so ein nicht-konstanter Koeffizient.
Zur Lösung entwickelt man die gesuchte Funktion E(x,y) in ein orthonormiertes System von Basisfunktionen und überführt somit die Gleichung in ein Eigenwertproblem.
   

Man bekommt dann eine ganze Reihe von Eigenwerten, die möglichen Lösungen für beta entsprechen. Die Komponenten der zugehörigen Eigenvektoren entsprechen dann den Entwicklungskoeffizienten c_n in der obigen Summe. So kann man sich also für jede Mode (jeden Eigenwert) die zugehörige Eigenfunktion (die c_n) zusammensetzen und plotten. Labview hat für die Eigenwert/Eigenvektor Lösung eingebaute Solver, die wohl auch recht schnell arbeiten.
Hier mal ein Beispiel für die erste Eigenlösung mit dem obigen Profil:
   
Das ist die Intensitätsverteilung des Lichts im Wellenleiter.

Ich möchte nun aber möglichst unkompliziert die Matrix zusammensetzen.
Die Matrixeinträge sehen in etwa so aus:
   
Ist nicht ganz korrekt, aber der Einfachheit halber...
Ich möchte jetzt aus einer Textdatei die Werte von n(x,y) einlesen. Ich hätte die sogar schon als tab-separierte Datei vorliegen.
Dann die entsprechenden Matrixeinträge berechnen und so meine Matrix zusammensetzen. Ob ich die Integrale dann numerisch oder analytisch oder wie auch immer auswerte, ist erstmal egal. Später wäre natürlich ein grafisches Interface wünschenswert, mit dem man das Brechungsindexprofil "zeichnen" kann und dann daraus die Matrix baut.
Tjo, dann ist es eben nur noch Eigenwerte/Eigenvektoren berechnen lassen, die Lösungen daraus zusammenbauen und plotten.

Soweit so gut. Nun lese ich die Textdatei über ein Spreadsheet ein und hier gibt es schon Probleme.
die Werte sind nämlich komplex und in der Form "3,14+0,000253*I" abgespeichert. Das große "I" steht für die imaginäre Einheit. LabView ließt konsequent einfach 3,000 ein fertig...
Das wäre so die erste Hürde. Jemand eine Idee?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.02.2012, 12:50
Beitrag #5

Ome Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 109
Registriert seit: Nov 2009

2011
2009
DE

12XXX
Deutschland
RE: Helmholtz Gleichung numerisch lösen und darstellen
Hallo,

das Problem mit den Komplexenzahlen lässt sich lösen in dem du die Werte als String einließt und dann den String umwandelst. Ist wahrscheinlich nicht die eleganteste Lösung, aber es es ist erst mal eine.

Gruß Ome


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
21.02.2012, 17:09
Beitrag #6

horscht(i) Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Feb 2012

2011
2010
EN



RE: Helmholtz Gleichung numerisch lösen und darstellen
Ok, das passt so. Die Datei lese ich über ein String-Spreadsheet ein, zerlege die Elemente in Real- und Imaginärteil und fülle die Matrix damit auf. Vielen Dank schonmal soweit!

Wäre natürlich schöner, wenn man direkt beim Einlesen das richtige Format vorliegen hätte. Soweit ich das überblicke, wird das aber mit einem Spreadsheet nicht gehen. Ich teste mal hübsch weiter.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Konflikt bzgl. Pfad lässt sich nicht lösen Nominas 2 5.211 14.07.2014 11:13
Letzter Beitrag: Nominas
  Numerisch Double vs. Double Kiesch 7 5.623 27.02.2013 22:24
Letzter Beitrag: macmarvin
  Integral von -Inf bis +Inf lösen Wator 3 4.185 19.09.2012 09:47
Letzter Beitrag: Lucki
  Unbekannte in Gleichungen lösen bluejay 4 5.495 18.05.2012 15:26
Letzter Beitrag: BNT
  Gleichung (Polynom) lösen ColdducK 5 7.255 25.11.2011 16:49
Letzter Beitrag: Lucki
  Solve Befehl-Implizite Gleichung Lösen Hummingbird 22 20.437 13.10.2011 14:48
Letzter Beitrag: Hummingbird

Gehe zu: