[Dune] Re: Eine Frage zu den Operatoren
Robert Kloefkorn
robertk at mathematik.uni-freiburg.de
Mon May 24 20:13:52 CEST 2004
Hi Oli,
Oliver Sander wrote:
> Hallo Robert!
> Ich hätte mal eine Frage zu Deinem Operatorenkonzept. Du gehst
> ja von der starken Formulieren einer pdG aus und siehst dann
> das Lösen einer Gleichung als Operatorinversion an.
>
> Was passiert aber, wenn das Problem nur in Form einer
> Funktionalminimierung gegeben ist? Passt das noch in Dein
> Konzept, oder müßte man was ganz neues anfangen?
Diese local combinierten Operatoren sind so gedacht:
Ich möchte verschiedene Sachen in einem (vom user definierten)
Gitterdurchlauf kombinieren und dafür nicht extra eine methode stricken.
Deshalb habe ich jetzt eine Methode geschaffen, mit der man __inline__
bar Aktionen auf einer Entity unter einem Gitterdurchlauf zusammenfügen
kann, sagen wir so Action A,B,C, die nicht notwendigerweise von einander
abhängen müssen sollen verknüpft werden, da alle drei den selben
Gitterdurchlauf verwenden und man aus Effizienzgründen nur einmal übers
Gitter laufen möchte. Hier bietet das Konzept die Möglichkeit einen
kombinierten Operator(allgemein, als z.B. Adaptionsopertor) zu erzeugen,
etwas so:
Op = A + B + C;
Ein Gitterdurchlauf ruft jetzt im wesentlichen
Op.applyLocal(entity) auf jeder Entity auf, wobei sich diese applyLocal
aus den applyLocals von A,B und C zusammensetzt.
Ok, soviel dazu. Im übrigen gehe ich nicht prinzipiell von einer starken
Forumierlung aus, ich habe dieses Konzept mit beiden schon verwendet.
Die Operatorinversion jannst Du Dir in
duneapps/examples/heatequation/image
duneapps/examples/heatequation/heat.cc
anschauen, (Vorsicht: code nicht unbedingt leicht verständlich)
Dort wird mit diesem Konzept eine Wärmeleitungsgleichung gelöst.
Also, das Konzept pass immer dort, wo man irgendwie über Gitter läuft
und was machen möchte. Durch die jetzt eingeführte (noch nicht
definierte)fiktive Parameter class sind die Parameter vom user abhängig,
also von seinen Bedürfnissen.
> Insbesondere werde ich bei Gelegenheit einen speziellen
> nichtlinearen Gauss-Seidel-Löser bauen, der eine Schleife
> über alle Knoten macht und den Wert an jedem Knoten so
> einstellt, daß die Lösung auf den angrenzenden Dreiecken
> minimale Gradientennorm haben. Inwieweit können mir
> Deine Räume und Operatoren dabei helfen?
Sollten wir viellicht noch genauer diskutieren. Bisher gibt es in
dune/fem/feoperator.hh einen FiniteElementeOperator der
Steifigkeitsmatrizen und MasseMatrizen aufstellt, ergänzt von
duneapps/examples/heatequation/fem.cc.
Desweiteren findest Du in /dune/fem/inverseoperator.hh ein CG Verfahren,
welches auf DiscreteFunctions arbeitet und sehr allgemein gehalten ist.
An Basisfunktionen sind von meiner Seite aus Lagrange Elemente 1 Ordnung
für 2 und 3d implementiert. Christian wollte gerade DG Elemente
implementieren, ich bin über den neusten Stand allerdings nicht informiert.
Diese Basisfunktions Sachen findest Du in dune/fem/lagrangebase.hh,
allerdiungs ist der Code eher beta Status.
Das Konzept ist allerdings gut, denke ich. Da sollte man darauf
aufbauen. Ich werde in nächster Zeit dort weiter arbeiten, vor allem
DofManager usw.
Ich hoffe das hilft Dir ein bisschen weiter, ansonsten mailen wir
einfach weiter.
Grüsse an alle
R
--
Robert Klöfkorn <robertk at mathematik.uni-freiburg.de>
Mathematisches Institut Tel: +49 (0) 761 203 5642
Abt. für Angewandte Mathematik Fax: +49 (0) 761 203 5632
Universität Freiburg
Hermann-Herder-Str. 10
79104 Freiburg
http://www.mathematik.uni-freiburg.de/IAM/homepages/robertk
More information about the Dune
mailing list