[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