# Delphin (Software)

DELPHIN ist der Name einer Simulationssoftware für den gekoppelten Wärme-, Feuchte-, Luft- und Salztransport in porösen Materialien. Das Simulationsprogramm enthält die Implementierung eines komplexen, umfangreichen und insoweit einzigartigen Modells für die Beschreibung dieser Vorgänge.

## Bedeutung für Lehre, Forschung und Wirtschaft

Die numerische Simulation des gekoppelten Wärme- und Stofftransportes ist seit einigen Jahrzehnten ein wesentliches Werkzeug für die Grundlagenforschung und Ingenieurspraxis. Die Komplexität der Modelle und Bilanzgleichungen sind der Grund für einen allgemeinen Mangel an verfügbaren Simulationswerkzeugen in diesem Fachgebiet. Die DELPHIN-Software und das integrierte Modell zeichnet sich in folgenden Gesichtspunkten aus:
* komplexes, thermodynamisch fundiertes, physikalisches Modell mit leicht erweiterbarer mathematischer Formulierung,
* Programmstruktur erlaubt leichte Integration von neuen physikalischen Modellen und Komponenten,
* Verwendung eines sehr effizienten numerischen Lösungsverfahrens (Zeitintegration mit höherer Ordnung),
* implementiert eine akkurate Beschreibung des Salztransports gekoppelt mit Feuchtetransport,
* enthält eine benutzerfreundliche Oberfläche (Pre- und Post-Processing), welche Anpassung und Bewertung (fast) aller Modellparameter erlaubt.
Das Programm wird in der Lehre zur Vermittlung bauphysikalischer Grundlagen eingesetzt. In der Wirtschaft findet es bei Gutachten und in der Materialforschung Anwendung. Im Bauplanungsprozess wird es primär zur Analyse, Optimierung und Nachweis von Wärmebrücken bei nachträglich gedämmten Baukonstruktionen eingesetzt (Sanierung/energetische Aufwertung). Weiterhin wird es für die dynamische Auslegung von Erdkollektor- und Speichersystemen verwendet (Gebäude- und Quartiersmaßstab). In der Forschung wird es zur Grundlagenforschung in verschiedensten Anwendungsgebieten eingesetzt. Der Quelltext steht Doktoranden für die eigene Forschung zur Verfügung und beseitigt damit die Hürde, zunächst ein eigenes Simulationsprogramm für den Wärme- und Feuchtetransport zu schreiben.

## Anwendungsgebiete

* Feuchtenachweise für kritische Baukonstruktionen (im Vergleich zu vereinfachten Verfahren, wie z. B. das Glaser-Verfahren, oder COND)
* Beurteilung von baukonstruktiven Details (Wärmebrücken, lokale Taupunktunterschreitung)
* Optimierung von Konstruktionsdetails (Neubau/Sanierung)
* Denkmalschutz und Restaurierung (Salztransport und -kristallisation, z. B. Entsalzung)
* Optimierung von Bauwerkstoffen (z. B. Calciumsilikat-Platte)
* Feuchteausbreitung in Schutzkleidung
* Beurteilung luftdurchströmter Konstruktionen (Außenwände im Leichtbau, hinterlüftete Fassaden, Dächer)
* Schadstoffemission (VOC) von Baumaterialien, Freisetzung von Schadstoffen aus Baukonstruktionen
* Analyse aktiver Komponenten, beispielsweise Heizregister (Fußbodenheizungen, Erdwärmekollektoren, Betonkernaktivierung, thermische Analyse von PV-Paneelen …)
* Speichermodellierung, bspw. Analyse, Auslegung und Optimierung von Erd-Eisspeichern
In Verbindung mit dem integrierten FMI (Functional Mock-Up Interface) kann DELPHIN mit anderen Simulationsprogrammen gekoppelt werden. So lassen sich z. B. komplexere Regelungsmechanismen in Modelica umsetzen und so Quellen-/und Senkenmodelle in DELPHIN ansteuern.

## Geschichte

Die Geschichte des Programmes DELPHIN beginnt im Jahr 1987. Im Rahmen der Diplomarbeit des Autors John Grunewald wurde in den Jahren 1987–1991 an der Hochschule für Bauwesen Cottbus (ab 1991 Brandenburgische Technische Universität Cottbus) das Vorläufer-Programm DIM 1 entwickelt. Ziel der Programmentwicklung war es, die bauphysikalische Ausbildung der Studenten zu unterstützen, welches neben der Forschung bis heute Hauptaufgabe geblieben ist. Zu Beginn wurde zunächst ein analytisches Verfahren zur Lösung der Wärmeleitungsgleichung im halbunendlichen Raum in der Programmiersprache Turbo Pascal implementiert. Später kam zur Lösung der Differentialgleichung(en) ein in Standard C implementiertes numerisches Verfahren (Crank-Nicolson-Verfahren) hinzu, welches eine größere Flexibilität bezüglich der zu lösenden Problemstellungen ermöglichte. In weiteren Versionen des DIM 1.x war es bereits möglich, gekoppelte Wärme- und Feuchtetransportprozesse zu berechnen und das Modell wurde so erweitert, dass Simulationen unter realen Klimabedingungen möglich wurden.
Der Entwicklungsbeginn der zweiten Version dieser Software, genannt DIM 2, liegt in den Jahren 1991–1993. An der Bundesanstalt für Materialforschung- und -prüfung (BAM) Berlin und an der Materialforschungs- und Prüfanstalt (MFPA) Weimar konnten wesentliche Erweiterungen vorgenommen werden, wie z. B. der Schritt von 1D zu 2D Simulationen, die Verwendung des LSODI Solvers für eine effizientere numerische Lösung, und die Implementierung verschiedenster Randbedingungen, Feldbedingungen (Quellen- und Senkenmodelle) sowie Kontaktbedingungen an den Materialgrenzen. Durch Verwendung des neuen Solvers steigerte sich die Rechenleistung bis zum 40-fachen.
Die Weiterentwicklung von DIM 2.x erfolgte ab 1994 dann wieder an der Technischen Universität Dresden. Im Rahmen des Europäischen Verbundprojektes IEA-Annex 24 (HAMTIE) beteiligte sich das Institut für Bauklimatik an der Lösung von 'Common Exercises', was eine große Herausforderung aber auch die Motivation für die stetige Weiterentwicklung darstellte. In die Version DIM 2.4 wurde z. B. eine Luftbilanzgleichung integriert, um Luftströmung durch ein Dach berechnen zu können. Durch die Mitarbeit in internationalen Projekten entstanden viele Kontakte zu Kollegen des Fachgebietes. Die Version DIM 2.6 war die erste, international verwendete Programmversion, installiert an der INSA Toulouse in Frankreich und an der Helsinki University in Finnland. DIM 2.7 wurde dann an verschiedensten Forschungsanstalten für sehr unterschiedliche Aufgaben verwendet.
Erweiterungen des Programmes in den Jahren 1997–1998 resultierte in der Programmversion DIM 3, in welcher der CVODE Solver eingesetzt wurde (der Nachfolger des LSODI Solvers). Dieses resultierte in einer erneuten Steigerung der Rechengeschwindigkeit (bis zu 80-fach schneller). Die Programmierung in C erlaubte eine Kompilierung des Programmes für den PC (Windows) sowie das Apple-Macintosh-System 7-8. Basierend auf der Dissertation des Autors John Grunewald (1997) wurden die thermodynamischen Grundlagen des Programmes wesentlich erweitert und zum Beispiel das Kapillardruckmodell als Alternative zum Feuchtegradientenmodell implementiert. Das Konzept der Phasentrennfunktion (Aufteilung des Feuchtetransports und Dampfdiffusion und kapillare Leitung) wurde eingeführt. Zusätzliche Modelle wurden integriert, welche es erlaubten, spezifische Projekte zu bearbeiten, z. B. die Dimensionierung eines Leckmeldesystems in der Bodenplatte der SLUB (Sächsische Landes- und Universitätsbibliothek), welches auf der Temperatureinwirkung des Grundwassers beruht. Eine simulationsgerechte Bestimmung der Eingabeparameter, primär der Materialdaten, rückte in den Mittelpunkt des Interesses (verbunden mit dem Aufbau eines Baustofflabors unter Leitung von Rudolf Plagge, aus dem sich das heutige bauphysikalische Forschungs- und Prüflabor am Institut für Bauklimatik entwickelt hat). Ein erstes Pre-Processing-Werkzeug, genannt PreDim 1.0 wurde 1998 für die Windows-Plattform entwickelt, um die Erstellung der komplexen Eingabedaten zu erleichtern. Bis zum Jahr 2002 wurde das Programm DIM 3 um eine Benutzeroberfläche erweitert, um den Nutzerkreis zu vergrößern und den Forschern sowie den Studenten das Arbeiten mit der Software zu erleichtern.
Ab 2001 wurde an einer komplett unter der Windows-Nutzeroberfläche lauffähigen Version mit Pre- und Postprocessing gearbeitet. Heiko Fechner widmete sich dem Postprocessing, welches die Auswertung der vielfältigen Berechnungsdaten nach bauphysikalischen Kriterien erlaubt. Das Ergebnis war das Softwarepaket DELPHIN4, welches seitdem vielfach in der Grundlagenforschung und der Industrieforschung eingesetzt wird. Ein Beispiel dafür ist die Entwicklung eines robusten, feuchtetoleranten Innendämmsystems im Projekt INSUMAT, basierend auf der Calciumsilikat-Platte und finanziert aus den Mitteln des 5. Rahmenprogrammes der Europäischen Union (EU). Mittel der Deutschen Forschungsgemeinschaft (DFG) flossen ebenfalls in die Entwicklung von DELPHIN. Im Rahmen des Schwerpunktprogrammes SPP 1122 (2001–2007) der DFG standen in einem Teilprojekt der TU Dresden, der Universität Hamburg, der TU Hamburg-Harburg und der Bauhaus-Universität Weimar die Schädigung der Bausubstanz durch Salze im Fokus des Forschungsinteresses. In diesem Zusammenhang wurde den Jahren 2003–2007 von Andreas Nicolai basierend auf den Algorithmen und Konzepten des DELPHIN4 ein grundlegend neu entwickeltes Simulationsprogramm in C++ mit dem Namen DELPHIN 5 geschrieben. Durch Verwendung von objektorientierter Programmierung erhielt das Programm eine sehr modulare Struktur, welches die Erweiterung der Software um neue physikalische Modelle stark vereinfacht. Damit wird es anderen Forschern und Doktoranden ermöglicht, schneller neue Modelle basierend auf einem HAM-Transportmodell zu entwickeln und zu testen.
In der neuen Version ist wiederum der hocheffiziente Solver CVODE aus der SUNDIALS Bibliothek verwendet und das Berechnungsschema weiter optimiert worden. Dies führte zu einer erneuten Geschwindigkeitssteigerung (1D bis zu 4-mal, bei 2D bis 10-mal schneller als DELPHIN 4). Außerdem wurde ein sehr umfangreiches Salztransport- und Phasenumwandlungsmodell integriert. Die Bilanzgleichung für Schadstoffe (VOC) wurden ebenso hinzugefügt, sowie ein verbessertes und effizienteres Luftströmungsmodell.
Während die DELPHIN 5 noch weiter gepflegt und unterstützt wird, ist seit 2018 die Nachfolgeversion DELPHIN 6 verfügbar. Dieses stellt in mehrfacher Hinsicht einen wesentlichen Technologiewechsel und Fortschritt dar:
* durch Verwendung der Qt-Bibliothek werden nun die Plattformen Windows, MacOS und Linux/Unix nativ unterstützt.
* der Rechenkern ist ein komplett neu entwickeltes, modulares System verschiedener physikalischer Module für Bilanzgleichungen, Ströme, Quellen/Senken und entsprechende Teilmodelle
* die numerische Integration wird durch eine ebenso modulare Bibliothek (ebenso entwickelt am IBK/TU Dresden) übernommen, welche flexibel hinsichtlich folgender Komponenten konfiguriert werden kann:
** Integrator (CVODE, ImplicitEuler, Runge-Kutta, ADI, ExplictEuler)
** Linearer Gleichungssystemlöser (Direkt: KLU-Sparse, Band, Block-Tridiag, Dense: Iterativ: GMRES, BiCGStab)
** Vorkonditionierer für iterative Löser (ILU, Band, Block-Diagonal, ADI)
* vollständig parallelisierter Rechenkern (OpenMP-basiert), welcher vor allem in Verbindung mit iterativen Gleichungssystemlösern wesentliche Performancesteigerungen ermöglicht
* Unterstützung für 3D Geometrien
* komfortable Simulationsauswertung durch das kostenfreie PostProc 2 Analyseprogramm
Die Entwicklung des neuen, modularen Rechenkerns begann konzeptionell bereits 2011 mit einer Konzeptpräsentation auf der NSB Konferenz [3]. Die neue Version wurde in einem größeren Programmierteam unter Leitung von Andreas Nicolai grundlegend neu entwickelt. Bis 2015 war die Prototypenimplementierung des Rechenkerns und der zugrundeliegenden Integratorbibliothek beendet. Die neue Programmoberfläche wurde in den Jahren 2016–2018 entwickelt, nahezu vollständig unter Linux. 2019 wurden dann viele der oben genannten Erweiterungen integriert.
Aufgrund der großen Anwenderzahl wird der Vertrieb und die kommerzielle Unterstützung der Software seit 2019 durch eine externe Firma übernommen. Hinsichtlich der Weiterentwicklung der Software, Prüfung und Tests besteht weiterhin eine enge Zusammenarbeit mit dem Institut für Bauklimatik der TU Dresden.

## Physikalische Grundlagen

Im Simulationsprogramm ist ein umfangreiches Modell für den gekoppelten Wärme- und Stofftransport in kapillarporösen Baustoffen implementiert. Es basiert auf thermodynamischen Grundlagen und hat folgende grundlegenden Prinzipien und Eigenschaften:
* makroskopisches Modell von kapillarporösen Materialien,
* beschreibt Feuchtetransport durch Dampfdiffusion und kapillare Leitung,
** treibendes Potenzial für Dampfdiffusion ist der Dampfdruckgradient,
** treibendes Potenzial für kapillare Leitung ist der Gradient des Kapillardrucks,
* beschreibt Feuchtespeicherung durch Materialfunktionen: Feuchtespeicherfunktion und Sorptionsisotherme,
* beschreibt Wärmeleitung und Berücksichtigung des Enthalphietransports.

### Bilanzgleichungen

Die im Modell verwendeten Bilanzgleichungen können durch folgende Gleichung ausgedrückt werden:
    ${\frac {\partial \rho ^{<E>}}{\partial t}}=-{\frac {\partial }{\partial x_{k}}}\left(j_{k,conv}^{<E>}+j_{k,diff}^{<E>}\right)+\sigma ^{<E>}$
wobei $E$ der Vektor der Erhaltungsgrößen ist.
    $E=\left\{U,m_{w+v},m_{VOC},m_{s,i},m_{p,j}\right\}$.
Bilanziert werden die Dichten der primären Erhaltungsgrößen Energie $U$, Feuchtemasse $m_{w+v}$ sowie weiterer, bei Bedarf berücksichtigten Erhaltungsgrößen ($VOC$ – Schadstoffe, $m_{s,i}$ – gelöste Stoffe/Ionen, $m_{p,j}$ – kristalline Stoffe/Salze). Transportterme (konvektive und diffusive) werden durch $j$ und Quellen- und Senkenterme durch $\sigma$ berücksichtigt. Diese generelle Formulierung erlaubt es, das Bilanzgleichungssystem einfach auf weitere zu bilanzierende Größen zu erweitern.

### Modellierung des Feuchtetransports

Im Transportmodell wird zwischen Feuchtetransport in der Gasphase (Wasserdampfdiffusion) und in der Flüssigphase (kapillare Leitung) unterschieden.

#### Wasserdampfdiffusion

Das treibende Potential für Dampfdiffusion ist zunächst der Gradient des chemischen Potentials, welches unter üblichen Bedingungen durch den Gradienten der Dampfkonzentration ersetzt und schließlich mathematisch in den Gradienten des Wasserdampfpartialdrucks umgerechnet werden kann. Die Dampfdiffusion wird damit durch die folgende Gleichung beschrieben.
    $j_{k,diff}^{m_{v}}=-{\frac {D_{v}}{R_{v}T}}{\frac {\partial p_{v}}{\partial x_{k}}}$
In der hier verwendeten Notation wird die Einstein’sche Summationsregel verwendet, der Index $k$ steht hier für die Transportrichtungen (im kartesischen Koordinatensystem $k=x,y,z$). $j^{m}$ bezeichnet eine Massenstromdichte, und der Subskript $v$ bezeichnet die Komponente Wasserdampf. $p_{v}$ ist der Dampfdruck, $R_{v}=R/M_{w}$ ist die Gaskonstante für Wasserdampf und $T$ ist die Temperatur. Der Diffusionskoeffizient $D_{v}$ hängt vom Feuchtegehalt des Materials ab.
Die Verwendung des Wasserdampfpartialdruckes hat den Vorteil, dass Effekte, wie z. B. die Absenkung des Dampfdruckes über Salzlösungen nicht gesondert im Dampfdiffusionmodell berücksichtigt werden müssen.

#### Kapillarer Flüssigwassertransport

Der Feuchtetransport in der Flüssigphase kann durch verschiedene Modelle beschrieben werden, welche auch im Simulationsprogramm unterstützt werden:
* Feuchtegehaltsgradientenmodell oder auch Diffusivitätsmodell
* Kapillardruckmodell bzw. Darcy-Strömungsmodell

##### Feuchtegradientenmodell

Das einfachste Modell ist das mechanistische Modell, welches kapillaren Feuchtetransport in Abhängigkeit eines Feuchtegehaltsgradienten beschreibt: Feuchtigkeit bewegt sich von Bereichen hoher Feuchte in Bereiche mit geringerer Feuchte und führt dadurch zu einer Feuchteumverteilung. Dieser Ansatz ist sehr einfach und kann in sehr vielen Anwendungen verwendet werden. Es gibt jedoch eine Anzahl von Einschränkungen:
* Das Modell ist nur bei isobaren Bedingungen anwendbar, d. h. sobald der Luftdruck im Porenraum nennenswerte Größen erreicht (z. B. bei Druckplattenversuchen, oder Aufsaugversuchen mit versiegelten Oberflächen) liefert das Feuchtegehaltsgradient-Modell falsche Ergebnisse.
* Mit dem Modell kann kein Flüssigwassertransport infolge hydrostatischer Drücke im gesättigten Material beschrieben werden. Diese ist relevant bei Konstruktionen, welche drückendem Grundwasser ausgesetzt sind. Das Feuchtegehaltsgradient-Modell ist nur für den ungesättigten Bereich anwendbar.

##### Kapillardruckmodell

Alternativ kann man den Flüssigwassertransport durch ein Darcy-Strömungsmodell beschreiben. Hierbei stellt man sich das Porensystem als Netzwerk zylindrischer Poren vor, durch welche sich die Flüssigphase infolge eines Druckgradienten bewegt. In jeder zylindrischen Pore, kann das Gesetz von Hagen-Poiseuille angewendet werden, um den Massenstrom infolge Druckgradienten zu beschreiben. Die folgende Transportgleichung beschreibt den Flüssigwassertransport infolge eines Gradienten des Druckes in der Flüssigphase $p_{\ell }$.
    $j_{k}^{m_{\ell }}=-K_{\ell }{\frac {\partial p_{\ell }}{\partial x_{k}}}$
Der Transportkoeffizient $K_{\ell }$ ist abhängig vom Feuchtegehalt des Materials, welcher im Modell die Anzahl und Größe der wassergefüllten Poren definiert. Um ungesättigten Bereich ist der Flüssigwasserdruck ungefähr gleich dem Kapillardruck (der Unterschied besteht in zusätzlichen hydrostatischen Drücken sowie dem Druck der Gasphase), daher wird dieses Modell auch als Kapillardruckmodell bezeichnet.
Der Vorteil dieses Modells ist, dass man alle Prozesse, die mit dem Feuchtegehaltsgradient-Modell beschrieben werden können, ebenso abbilden kann. Jedoch auch die Effekte von hydrostatischen Drücken (Feuchtetransport im vollgesättigten Material) sowie Gasdrücken werden im Modell berücksichtigt. Auch lässt sich der Transport von Salzlösungen mit diesem Modell lediglich durch Anpassung des Transportkoeffizienten beschreiben, während das treibende Potenzial salzunabhängig bleibt.
Das Kapillardruckmodell ist daher das Standard-Modell im Simulationsprogramm Delphin.

## Numerisches Lösungsverfahren

Der Rechenkern von DELPHIN 6 beinhaltet eine Vielzahl numerischer Algorithmen, unter anderem:
* Zeitintegration des Gleichungssystems gewöhnlicher Differentialgleichungen; hier kommt der CVODE-Integrator (BDF-Verfahren) mit Zeitschrittadaption und Methodenordnunganpassung entsprechend einer Integrations-Fehlerkontrolle zum Einsatz
* Spezielle Form und Speicherstruktur der Schwach-besetzen Matrix
* Coloring-Algorithmus und automatisierte Jacobimatrix-Berechnung für diese Schwach-besetzen Matrizen
* GMRES/BiCGStab-Löser für lineare Gleichungssysteme (Löser aus der SUNDIALS-Suite), eigene Algorithmen für Matrix-Vektor-Multiplikationen und Vorkonditionierer-Anwendungen
* ILU(T) Vorkonditionierer (Implementierung aus SuiteSparse)
Für die eigentliche Auswertung der Systemfunktion (physikalischen Zustandsgleichungen, Ströme, Quell-/Senkenterme, Divergenzen) wird die Finite-Volumen-Methode verwendet, um das System von partiellen Differentialgleichungen in ein System gewöhnlicher Gleichungen zu wandeln.
Die Auswertung der Zustands-/Flussgleichungen ist in Berechnungsmodulen gekapselt, welche OpenMP-parallelisiert ausgewertet werden.

## Alternative Simulationsprogramme

* Simulationsprogramm WUFI des Fraunhofer-Institut für Bauphysik IBP in Holzkirchen für den gekoppelten Wärme- und Feuchtetransport
* Programm COND vom Institut für Bauklimatik der TU Dresden, speziell zur hygrothermischen Beurteilung und zum Feuchteschutznachweis für Innendämmsysteme mit Kondensatanfall

## Publikationen

* [1] Grunewald, J. (1997), Diffusiver und konvektiver Stoff- und Energietransport, Dissertation, Technische Universität Dresden
* [2] Nicolai, A. (2007), Modelling and Numerical Simulation of Salt Transport and Phase Transitions in Porous Building Materials, Dissertation, Syracuse University
* [3] Nicolai A. and Grunewald J., Towards a Semi-Generic Simulation Framework for Mass and Energy Transport in Porous Materials, Proceedings of the Nordic Symposium for Building Physics, 2011
Eine Liste weiterer Publikationen zum Thema sind auf der Webseite zu finden.