GPU-Fähige Gitterdatenstruktur
Rechnen aber vorerst noch auf der CPU, solange andere komponenten noch nicht GPU-fähig sind.
In der ersten Iteration sollte die Struktur folgendes bereitstellen:
- Vertexkoordinaten
- Konnektivität (wie komme ich von einem Element andan die Vertices an den Ecken des Elements)
Im lokalen Operator (nonlinearpoissonfem.hh
) kann zum testen dieser Struktur die jacobian_apply_volume()
-Funktion angepasst werden (eventuell bei Bedarf eine zweite Variante dieser Funktion anlegen). Angepasst werden sollte die Argumentliste, so das statt des Dune-Elements eure Element-Information da rein kommt. (Mögliche Element-Information wären pointer auf die eure Gitter-Information(en) sowie der Index des Elements, oder alternativ ein Container mit den Kantenkoordinaten. Das genaue Interface ist in diesem Schritt erstmal noch nicht so wichtig...)
In gridoperator.hh
in der Funktion nonlinear_jacobian_apply()
muß dann die native Dune-Gitterdaten in eure eigene Datenstruktur kopiert werden, dann müßt Ihr über die Elemente eurer Gitterdatenstruktur iterieren und den Aufruf von jacobian_apply_volume()
auf euer geändertes Interface anpassen.
Blockiert von: