NandradSolver: der Rechenkern von VICUS Buildings
Wie löst eine dynamische Gebäudesimulation eigentlich? Von der Energiebilanz über ydot, Abhängigkeitsgraph und CVODE bis zu Newton-Iteration und linearem Gleichungssystem — interaktiv erklärt.
Das lernen Sie in diesem Artikel:
- Warum der Solver Energie bilanziert und nicht direkt Temperatur
- Wie aus einer Bilanzgleichung die Änderungsrate `ydot` wird — und wie ein ganzes Gebäude daraus entsteht
- Was die drei geschachtelten Schleifen (Zeit → Newton → LES) bedeuten
- Warum Gebäudesimulationen implizit rechnen (Steifigkeit) und was das kostet
Inhaltsverzeichnis
Jede dynamische Gebäudesimulation steht und fällt mit ihrem Rechenkern — dem Stück Software, das aus Geometrie, Bauteilen, Wetter und Nutzung einen physikalisch belastbaren Temperatur- und Lastverlauf macht. Bei VICUS Buildings ist dieser Kern NANDRAD, ein an der TU Dresden in über 20 Jahren Forschung gereifter Simulationslöser. Dieser Artikel öffnet die Motorhaube: Er zeigt Schritt für Schritt, was der NandradSolver rechnet und wie er es tut — von der physikalischen Bilanzgleichung über die Zeitintegration bis zum linearen Gleichungssystem im Inneren.
Sie müssen dafür keine Numerik studiert haben. Die zentrale Idee lässt sich in einem Satz sagen und mit den interaktiven Demos weiter unten selbst „durchkurbeln”.
Die Grundidee in einem Satz
Der Solver beschreibt das Gebäude (und gegebenenfalls ein Rohrnetz) als ein großes System gekoppelter gewöhnlicher Differentialgleichungen und integriert dieses System Zeitschritt für Zeitschritt durch die Zeit. Das Herzstück ist immer dieselbe Frage:
„Wie schnell ändert sich die gespeicherte Energie in jedem Raum und in jeder Wandschicht?”
Kennt man diese Änderungsrate, kann man einen kleinen Schritt in die Zukunft gehen, die neuen Temperaturen berechnen und das Spiel von vorne beginnen. In Vektorschreibweise — und genau so „sieht” es der Zeitintegrator — lautet das:
Dabei ist der Zustandsvektor (eine lange Liste aller Erhaltungsgrößen), deren zeitliche Änderung und die Zeit.
Das Schema und drei Live-Demos
Die folgende interaktive Visualisierung fasst den gesamten Ablauf zusammen — und macht ihn anfassbar. Oben das Funktionsschema mit den drei geschachtelten Schleifen (fahren Sie über die Boxen, um die zugehörigen Quelldateien zu sehen; schalten Sie zwischen implizit und explizit um). Darunter drei Live-Demos, in denen Sie selbst an Zeitschritt, Netzfeinheit und Wärmetauscher-Parametern drehen und die Stabilitätsgrenze finden können.
Wie der NandradSolver rechnet
So liest du diese Visualisierung — vom Überblick zu immer stärker gekoppelten Gleichungssystemen: So liest du diese Visualisierung — von einer einzelnen Gleichung zu vielen, die zusammenhängen:
📖 Begriffe in einem Satz (jederzeit nachschlagen)
Zustand → Temperatur
Energie y „auspacken“
- Räume
- Konstruktionen
- Netzwerke
Flüsse berechnen
Physik bei bekannter T
- Wärmeleitung, Solar
- Lüftung, int. Lasten
- HVAC, Netzwerk
Σ Flüsse → ẏ
Bilanz schließen
- Räume
- Konstruktionen
- Netzwerke
Schritt für Schritt: ein Raum kühlt aus
Das kleinste denkbare NANDRAD-Modell: eine Zone, eine Gleichung. Ein warmer Raum (22 °C) verliert Wärme an die kalte Außenluft (5 °C): $\dfrac{dT}{dt} = -\dfrac{T - T_\text{außen}}{\tau}$. Drücke Schritt und sieh zu, wie der Integrator sich durch die Zeit hangelt — und dreh an dt, um die Stabilitätsgrenze zu finden.
dt schießt die Lösung über T_außen hinaus und explodiert. Implizit bleibt stabil — kostet dafür Newton + LES. Bei diesem linearen Beispiel löst sich implizit sogar direkt (ohne Newton). Macht der Solver zu große Zeitschritte, „überschießt" das einfache Verfahren und rechnet Unsinn. Das stabile Verfahren bleibt ruhig — kostet aber mehr Aufwand pro Schritt. Tipp: dt über 6 h ziehen, dann zwischen Explizit/Implizit umschalten. Probier’s: Schieb dt über 6 h (= 2τ) und mach Schritte mit Explizit Euler — die Lösung beginnt zu oszillieren und explodiert, obwohl der Raum physikalisch nur sanft auskühlt. Schalte auf Implizit Euler: dieselbe große Schrittweite bleibt stabil. Genau deshalb rechnet NANDRAD steife Gebäudemodelle implizit (CVODE).
Zweites Beispiel: Wärmeleitung durch eine Wand
Jetzt eine partielle Differentialgleichung — die Wärmeleitungsgleichung $\dfrac{\partial T}{\partial t} = \alpha\,\dfrac{\partial^2 T}{\partial x^2}$. Eine Wand (innen warm, außen kalt) wird in N Zellen zerlegt; jede Zelle bilanziert nur mit ihren Nachbarn. So wird aus einer PDE ein System aus N gekoppelten ODEs — genau NANDRADs Finite-Volumen-Wand, jede Schicht ein Eintrag in y. Dreh an N und sieh, warum feine Netze das explizite Verfahren in die Knie zwingen.
$\dfrac{dT_i}{dt} = \dfrac{\alpha}{\Delta x^2}\,\bigl(T_{i-1} - 2T_i + T_{i+1}\bigr)$
// nur die direkten Nachbarn → tridiagonal
Der Steifigkeits-Effekt: Schieb N hoch (feineres Netz, genauer!) — bei Explizit wächst r = α·dt/Δx² quadratisch, sprengt schnell die Grenze ½, und das Profil zittert und explodiert. Um stabil zu bleiben, müsstest du dt drastisch verkleinern. Implizit löst jeden Schritt ein tridiagonales Gleichungssystem (das LES!) und bleibt für jedes N und dt stabil. Genau deshalb diskretisiert NANDRAD Wände in viele Zellen und rechnet implizit.
Drittes Beispiel: Gegenstrom-Wärmetauscher
Zwei Fluidströme tauschen Wärme über eine Wand — heiß und kalt fließen gegeneinander. Entlang der Länge in N Segmente zerlegt, hat jedes Segment eine heiße und eine kalte Fluidtemperatur → 2N gekoppelte ODEs (Strömung + Wärmeübergang). Genau so diskretisiert NANDRAD Rohre und Wärmetauscher in thermischen Netzwerken. Vergleich Gegenstrom ↔ Gleichstrom und sieh den Wirkungsgrad ε.
$M_h\dfrac{dT_{h,j}}{dt} = \dot C_h\,(T_{h,\text{zu}}-T_{h,j}) \;-\; UA_\text{seg}\,(T_{h,j}-T_{c,j})$
$M_c\dfrac{dT_{c,j}}{dt} = \dot C_c\,(T_{c,\text{zu}}-T_{c,j}) \;+\; UA_\text{seg}\,(T_{h,j}-T_{c,j})$
// kalt: Zustrom von der anderen Seite; $\dot C_h \ne \dot C_c$ erlaubt
Warum Gegenstrom? Beim Gleichstrom laufen beide Temperaturen aufeinander zu und enden bei einer gemeinsamen Mischtemperatur — ε ist gedeckelt. Beim Gegenstrom bleibt entlang der Länge ein nahezu konstanter Temperaturabstand, die Kaltauslauf-Temperatur kann sich der Heißeintritts-Temperatur nähern → mit großem NTU geht ε gegen 1.
Unterschiedliche Enthalpieströme: Der Strom mit dem kleineren $\dot C$ ändert seine Temperatur stärker (steilere Kurve) und bestimmt $\dot C_\text{min}$. Für $C_r\to 0$ liefern Gegen- und Gleichstrom dasselbe $\varepsilon = 1-e^{-\text{NTU}}$. Die simulierte Effektivität deckt sich mit der analytischen $\varepsilon$-NTU-Beziehung:$$\varepsilon_\text{Gegen} = \frac{1-e^{-\text{NTU}(1-C_r)}}{1-C_r\,e^{-\text{NTU}(1-C_r)}}, \qquad \varepsilon_\text{Gleich} = \frac{1-e^{-\text{NTU}(1+C_r)}}{1+C_r}.$$
Der Rest des Artikels erklärt die einzelnen Bausteine im Detail. Sie können jederzeit nach oben scrollen und das Gelernte direkt ausprobieren.
Energie statt Temperatur: die Erhaltungsgröße
Eine zentrale Designentscheidung in NANDRAD: Der Solver bilanziert Energie (genauer: die gespeicherte innere Energie), nicht direkt die Temperatur. Der Grund ist physikalisch sauber — Energie ist eine Erhaltungsgröße. Man kann alle Energieströme, die in einen Raum hinein- und hinausfließen, eindeutig aufsummieren. Die Temperatur ist dann eine abgeleitete Größe, die man aus der Energie und der Wärmekapazität zurückrechnet.
Die allgemeine Form jeder Bilanzgleichung lautet:
Was steckt im Zustandsvektor y?
y ist schlicht alles aneinandergehängt, was sich über die Zeit ändert und Energie speichert:
Anteil im y-Vektor | Bedeutung |
|---|---|
| Räume / Zonen | Innere Energie der Raumluft (+ ggf. Feuchte) |
| Konstruktionen (Wände) | Innere Energie in jedem einzelnen Finite-Volumen-Element einer Wand |
| Thermische Netzwerke | Energie (Masse × spez. Enthalpie) in Rohren und Komponenten |
Eine einzige Wand wird also intern in viele dünne Schichten zerlegt — jede Schicht ist ein eigener Eintrag in y. Bei einem größeren Gebäude kommen so schnell mehrere tausend Unbekannte zusammen. Genau diese Zerlegung „einer Wand in viele gekoppelte Gleichungen” können Sie in der zweiten Demo (Wärmeleitung durch eine Wand) am Schieberegler N selbst erzeugen.
Woher kommt ydot? Die Bilanz, nicht geraten
Eine berechtigte Frage: steht da — aber wie kommt man auf die rechte Seite? Antwort: ydot rät man nicht, man leitet es aus einem Erhaltungssatz her. Das Rezept ist immer dasselbe:
- Wähle die Erhaltungsgröße
y(Energie, Masse, …) — nicht die Temperatur. - Schreibe die Bilanz: d(Gespeichertes)/dt = Σ Zuflüsse − Σ Abflüsse.
- Drücke jeden Fluss durch den Zustand aus (physikalische Gesetze).
- Löse nach
dy/dtauf — das istydot.
Beispiel: ein Raum kühlt aus
Gespeichert wird die innere Energie mit der Wärmekapazität . Sie ändert sich nur durch den Wärmestrom über die Hülle, und dieser ist proportional zur Temperaturdifferenz:
Mit folgt durch Auflösen nach der Rate:
Das ydot ist damit hergeleitet, nicht erfunden — Energieerhaltung plus ein Flussgesetz. Genau diese eine Gleichung läuft in der ersten Demo („ein Raum kühlt aus”): Sie sehen, wie der Integrator sich an der Tangente entlang durch die Zeit hangelt und mit der analytischen Lösung verglichen wird.
Und bei einem echten Gebäude?
Die entscheidende Einsicht: In NANDRAD gibt es kein einziges geschlossenes ydot-Formelblatt. Bei tausenden Zuständen wäre eine Hand-Formel unmöglich. Stattdessen ist die Bilanz dieselbe für jeden Zustand, aber die Summe der Flüsse wird zur Laufzeit zusammengesetzt — jedes Teilmodell wirft seinen Beitrag in den Topf: Wärmeleitung zwischen Schichten, solare Einstrahlung durch Fenster, Lüftung und Infiltration, interne Lasten, Heiz- und Kühlleistung, Rohrströmung. ydot ist deshalb eine Funktion, die man nicht hinschreibt, sondern auswertet.
Die drei Auswertungsstufen: Head → Mitte → Tail
Der Integrator übergibt dem Modell ein y und fragt nach dem zugehörigen ydot. Intern läuft das in drei Stufen ab — genau das Bilanz-Rezept, in Code gegossen:
| Stufe | Rezept-Schritt | im Raum-Beispiel |
|---|---|---|
| Head | Zustand y → intensive Größe | T = U/C (Energie → Temperatur) |
| Mitte | Flüsse aus dem Zustand berechnen | Q = −(T − T_außen)/R |
| Tail | Bilanz schließen → ydot | ydot = Q/C |
Im Schema oben ist dieser Datenfluss als dreistufige Pipeline innerhalb der Newton-Schleife dargestellt.
Reihenfolge der Modelle: der Abhängigkeitsgraph
Es gibt viele kleine Teilmodelle, und sie hängen voneinander ab: Das Fenster-Modell braucht die Außentemperatur vom Klima-Modell, die Raumbilanz die Heizleistung vom HVAC-Modell. In welcher Reihenfolge muss man rechnen?
NANDRAD löst das mit einem Abhängigkeitsgraphen. Jedes Modell meldet an, welche Größen es als Eingabe braucht und welche es als Ergebnis liefert. Daraus wird automatisch eine korrekte Auswertungsreihenfolge berechnet (topologische Sortierung). Zwei Spezialfälle sind bemerkenswert:
- Parallelisierung: Modelle, die voneinander unabhängig sind, liegen in derselben „Ebene” des Graphen und werden parallel ausgewertet (z. B. viele Wände gleichzeitig).
- Zyklen: Hängen Modelle gegenseitig voneinander ab (etwa ein Regler, der auf eine Größe reagiert, die er selbst beeinflusst), werden sie zu einer Gruppe zusammengefasst und iterativ gemeinsam gelöst.
Zeitintegration: einen Schritt in die Zukunft gehen
Jetzt haben wir eine Funktion, die zu jedem y das ydot liefert. Die Aufgabe der Zeitintegration ist, daraus den zeitlichen Verlauf zu rekonstruieren — aus der Steigung den Weg. In einer äußeren Schleife geht der Solver Schritt für Schritt von t nach t+dt, schreibt jeden akzeptierten Schritt fort und schreibt fällige Ergebnisse heraus.
Wichtig: Die Schrittweite dt ist nicht konstant. Der Integrator wählt sie selbst — mal große Schritte (nachts, wenn sich wenig ändert), mal sehr kleine (wenn die Heizung anspringt). Die Ausgabe (etwa stündliche Werte) wird davon entkoppelt: Zwischen den tatsächlichen Rechenschritten wird sauber auf die gewünschten Ausgabezeitpunkte interpoliert.
Welcher Integrator? CVODE als Standard
NANDRAD bringt mehrere Integratoren mit; in der Praxis wird fast immer CVODE aus dem SUNDIALS-Paket benutzt — ein implizites, adaptives Verfahren auf Basis von BDF (Backward Differentiation Formulas) der Ordnung 1 bis 5. Explizite Verfahren (Explicit Euler, Runge-Kutta 45) sind als Referenz- und Debugging-Integratoren ebenfalls vorhanden.
CVODE schätzt nach jedem Versuch den lokalen Fehler ab und vergleicht ihn mit einer vorgegebenen relativen und absoluten Fehlertoleranz. Ist der Fehler zu groß, wird der Schritt verworfen und mit kleinerem dt (oder niedrigerer Ordnung) wiederholt; ist er bequem klein, dürfen Schrittweite und Ordnung wachsen. So findet der Solver automatisch den Kompromiss aus Genauigkeit und Geschwindigkeit.
Explizit vs. implizit — und warum Gebäude implizit gerechnet werden
Ob ein Zeitschritt eine Newton-Iteration und ein lineares Gleichungssystem braucht, hängt allein davon ab, wo das unbekannte y_{n+1} in der Formel auftaucht.
Explizit — nur alte, bekannte Werte rechts. Man setzt ein und rechnet aus, eine einzige ydot-Auswertung pro Schritt, nichts aufzulösen:
Implizit — das Unbekannte steht auch rechts und muss aufgelöst werden:
Wenn explizit pro Schritt billiger ist — warum dann implizit? Wegen Steifigkeit. Gebäudemodelle vereinen sehr schnelle (Luft, dünne Schichten) und sehr langsame (massive Wände, Estrich) Zeitkonstanten. Explizite Verfahren müssen dann aus Stabilitätsgründen winzige Schritte machen — die Schrittweite wird nicht von der gewünschten Genauigkeit bestimmt, sondern von der schnellsten Zeitkonstante. Tausende billige Mini-Schritte sind am Ende deutlich teurer als die wenigen großen, genauigkeitsgetriebenen Schritte eines impliziten Verfahrens.
| Explizit | Implizit (NANDRAD-Standard) | |
|---|---|---|
| Newton-Iteration nötig? | nein | ja |
LES J·Δy = −F nötig? | nein | ja (pro Newton-Iteration) |
| Kosten pro Schritt | sehr gering | hoch |
| Schrittweite begrenzt durch | Stabilität (sehr klein bei steifen Systemen) | Genauigkeit (groß möglich) |
| Geeignet für Gebäude? | nein (zu langsam) | ja |
Den Effekt sehen Sie unmittelbar in den ersten beiden Demos: Schieben Sie dt über die Stabilitätsgrenze, beginnt die explizite Lösung zu oszillieren und explodiert — die implizite bleibt ruhig. In der Wand-Demo macht ein feineres Netz (großes N) das Problem zusätzlich steifer, und die explizite Fourier-Zahl sprengt schnell die Grenze .
Drei geschachtelte Schleifen
Das ist die wichtigste mentale Landkarte. Der implizite Solver besteht aus drei Ebenen, die ineinanderstecken — genau die drei Schleifen aus dem interaktiven Schema oben:
- Außen — Zeitschleife (CVODE): wählt die Schrittweite
dtund geht vontnacht+dt. - Mitte — Newton-Iteration: löst die nichtlineare implizite Gleichung nach
y_{n+1}(meist 1–3 Iterationen). - Innen — Lineares Gleichungssystem (LES): in jeder Newton-Iteration wird einmal gelöst.
Die Newton-Iteration
Die implizite Gleichung schreibt man als „= 0”:
Newton verbessert eine Schätzung schrittweise, indem es lokal linearisiert:
Dabei ist die Jacobi-Matrix — die Ableitung von nach , also „wie reagiert jede Bilanz auf eine kleine Änderung jeder Zustandsgröße”. Diese Matrixgleichung ist genau das lineare Gleichungssystem — und ist dessen Koeffizientenmatrix (das in ), nicht etwa ein Hilfsmittel zur Fehlerschätzung. Die adaptive Schrittweitensteuerung schätzt den Zeitschritt-Fehler getrennt davon über die Toleranzen ab und benötigt dafür nicht. Bei Zuständen ist eine -Matrix, und sind Vektoren der Länge — ein quadratisches System aus Gleichungen.
Wo ydot einfließt. Beide Bestandteile dieses Systems werden aus ydot gebaut — ydot ist kein Nebenstrang. Die rechte Seite ist direkt das negative Residuum, , also eine ydot-Auswertung am aktuellen Rateversuch. Die Matrix ist
und die Empfindlichkeit entsteht ihrerseits aus ydot-Auswertungen: NANDRAD stört jede Zustandsgröße ein wenig, lässt die Head→Mitte→Tail-Pipeline mit dem gestörten Zustand erneut laufen und bildet den Differenzenquotienten — das ergibt eine Spalte von . Jede Newton-Iteration ruft ydot also mehrfach auf: einmal für die rechte Seite und zusätzlich für die Spalten der Jacobi-Matrix (beschleunigt durch Sparsity und Graph-Coloring, siehe unten).
Das lineare Gleichungssystem (LES)
In jeder Newton-Iteration muss gelöst werden. ist eine -Matrix; bei tausenden Unbekannten ist das der rechenintensivste Teil der ganzen Simulation.
Woher kommt die Jacobi-Matrix?
Meist wird numerisch über finite Differenzen gebildet: Man stört jede Zustandsgröße ein wenig, schaut, wie sich ändert, und erhält so spaltenweise die Matrix. Bei tausenden Spalten wäre das naiv sehr teuer — der Trick ist Sparsity (Dünnbesetztheit): Eine Wandschicht koppelt nur mit ihren direkten Nachbarn, ein Raum nur mit seinen angrenzenden Bauteilen. Die allermeisten Einträge von sind also Null. NANDRAD kennt das Besetzungsmuster vorab und stört per Graph-Coloring viele unabhängige Spalten gleichzeitig — statt tausender braucht es oft nur eine Handvoll Auswertungen.
Die tridiagonale Struktur einer eindimensionalen Wand-Diskretisierung ist der einfachste Fall dieser Dünnbesetztheit. In der Wand-Demo wird genau dieses tridiagonale System gezeigt und Zelle für Zelle aufgeschlüsselt — die dort dargestellte Matrix mit auf der Diagonale und daneben ist die Jacobi-Matrix, also die Koeffizientenmatrix des LES.
Direkte vs. iterative Löser
Es gibt zwei grundlegend verschiedene Arten, zu lösen:
- Direkte Löser berechnen die exakte Lösung über eine Faktorisierung (LU) — gut für kleine, volle ebenso wie für große, dünnbesetzte Systeme.
- Iterative Löser nähern die Lösung schrittweise an (Krylov-Verfahren); sie brauchen einen Präkonditionierer, der das System vorab „glättet”.
Lässt man diese Felder im Projekt leer, wählt NANDRAD sinnvolle Voreinstellungen (in der Regel einen direkten Sparse-Löser, bei großen Netzwerken einen iterativen Löser mit Präkonditionierer). Für die meisten Anwendungen ist das die richtige Wahl — an diesen Parametern dreht man nur, wenn eine Simulation zu langsam ist oder nicht konvergiert.
Vom Zustand zur Lösung in fünf Sätzen
- Der Solver bilanziert Energie pro Raum und pro Wandschicht; daraus ergibt sich ein großes System gewöhnlicher Differentialgleichungen .
- Die Funktion
ydotwird in drei Stufen ausgewertet (Energie → Temperatur, Flüsse, Summe →ydot); die Reihenfolge bestimmt ein automatischer Abhängigkeitsgraph. - Integriert wird mit CVODE (implizites BDF-Verfahren) und adaptiver Schrittweite plus Fehlerkontrolle — nötig, weil Gebäudemodelle steif sind.
- Jeder implizite Zeitschritt erfordert eine Newton-Iteration, und jede Newton-Iteration ein lineares Gleichungssystem (die drei geschachtelten Schleifen).
- Das LES wird je nach Größe und Dünnbesetztheit direkt (Dense/KLU) oder iterativ (GMRES/BiCGStab + ILU) gelöst; die Jacobi-Matrix entsteht numerisch und nutzt die Sparsity per Graph-Coloring aus.
Was das für die Praxis bedeutet
Für die tägliche Arbeit im Ingenieurbüro müssen Sie diese Maschinerie nicht im Detail bedienen — aber es hilft zu verstehen, warum eine validierte dynamische Simulation belastbare Ergebnisse liefert und an welchen Stellschrauben man im Zweifel dreht. Der NandradSolver ist der Rechenkern, auf dem VICUS Buildings aufsetzt; die zugrundeliegende Methodik ist quelloffen über das Forschungsprojekt SIM-VICUS dokumentiert und in über 20 Jahren an der TU Dresden entwickelt worden. Wer tiefer einsteigen will, findet weiterführende Grundlagen in unseren Artikeln zur dynamischen Gebäudesimulation, zum Unterschied stationär vs. dynamisch und zu den Validierungsstandards.
Häufig gestellte Fragen
Was berechnet der NandradSolver?
Warum rechnet die Gebäudesimulation implizit und nicht explizit?
Was ist ydot in der Gebäudesimulation?
Was ist die Newton-Iteration und das lineare Gleichungssystem (LES)?
Wie groß werden diese Gleichungssysteme?
Verwandte Artikel
Was ist dynamische Gebäudesimulation? Unterschied zur stationären Berechnung, Anwendungsbereiche und Vorteile für die Planung
Sommerlicher Wärmeschutz per Simulation: Sonneneintragskennwert vs. thermische Gebäudesimulation nach DIN 4108-2 – Verfahren, Übertemperaturgradstunden und Grenzwerte.
Vom BIM-Modell zur Simulation: Wie IFC-Dateien den Workflow zwischen CAD und Gebäudesimulation verbessern
Vergleich von stationärer Energiebedarfsberechnung und dynamischer Simulation: Methoden, Genauigkeit und Anwendungsbereiche
Hinweis: Die Inhalte dieser Seite dienen ausschließlich der allgemeinen Information und stellen keine Rechts-, Planungs- oder Ingenieurberatung dar. Alle Angaben ohne Gewähr. Trotz sorgfältiger Recherche übernimmt die VICUS Software GmbH keine Haftung für die Richtigkeit, Vollständigkeit und Aktualität der bereitgestellten Informationen. Produktnamen und Marken Dritter werden nur zu Informationszwecken genannt und sind Eigentum der jeweiligen Rechteinhaber.