#include <RungeKuttaAdaptive.h>
Klassendiagramm für RungeKuttaAdaptive:
Definiert in Zeile 34 der Datei RungeKuttaAdaptive.h.
Öffentliche Methoden | |
virtual double | integrate (double time) |
virtual string | getName () |
virtual double | getTime () |
virtual void | save (ostream &FILE) |
virtual void | load (istream &FILE) |
virtual void | createAttributeWindow () |
virtual list< Collisionspair > * | getCollisionslist () |
RungeKuttaAdaptive () | |
virtual | ~RungeKuttaAdaptive () |
Geschützte Methoden | |
virtual void | saveAttributes () |
virtual void | loadAttributes () |
virtual void | deleteAdditionalInformation (void *additionalInformation) |
Private Methoden | |
double | distance (const int i, const int j, const double x[]) |
double | acceleration (const int i, const int komponente, const double x[]) |
void | derivs (double x, double y[], double dydx[]) |
void | rkck (double y[], double dydx[], int n, double x, double h, double yout[], double yerr[]) |
bool | rkqs (double y[], double dydx[], int n, double *x, double htry, double eps, double yscal[], double *hdid, double *hnext) |
double * | vec (long nl, long nh) |
void | free_vec (double *v, long nl, long nh) |
Private Attribute | |
double * | m |
double * | radius |
double | t |
int | n |
double | eps |
double | nextsteplength |
double | actualsteplength |
int | objnumber |
list< Collisionspair > | collisions |
|
Konstruktor, initialisiert Variablen und setzt empfohlene Genauigkeit Definiert in Zeile 110 der Datei RungeKuttaAdaptive.cpp. Benutzt eps. |
|
Definiert in Zeile 126 der Datei RungeKuttaAdaptive.h. |
|
Definiert in Zeile 235 der Datei RungeKuttaAdaptive.cpp. Benutzt Integrator::cubic(), distance() und GAMMA. Wird benutzt von derivs(). |
|
Erzeuge AttributeWindow, um Eigenschaften des Integrators festzulegen Implementiert Integrator. Definiert in Zeile 61 der Datei RungeKuttaAdaptive.cpp. Benutzt Integrator::createBasisAttributeWindow() und loadAttributes(). |
|
loesche Zeiger additionalInformation
Implementiert Integrator. Definiert in Zeile 103 der Datei RungeKuttaAdaptive.cpp. |
|
berechnet die Ableitungen der Funktionen in b und speichert diese in dbda
Definiert in Zeile 256 der Datei RungeKuttaAdaptive.cpp. Benutzt acceleration(). Wird benutzt von integrate() und rkck(). |
|
Definiert in Zeile 218 der Datei RungeKuttaAdaptive.cpp. Benutzt Integrator::sqr(). Wird benutzt von acceleration(). |
|
Numerical Recipes Funktion um Speicher eines Vektors freizugeben
Definiert in Zeile 399 der Datei RungeKuttaAdaptive.cpp. |
|
Implementiert Integrator. Definiert in Zeile 208 der Datei RungeKuttaAdaptive.cpp. |
|
Implementiert Integrator. Definiert in Zeile 108 der Datei RungeKuttaAdaptive.h. |
|
Implementiert Integrator. Definiert in Zeile 115 der Datei RungeKuttaAdaptive.h. |
|
Funktion, die Integration vorbereitet und den eigentlichen Integrator rkqs aufruft.
Implementiert Integrator. Definiert in Zeile 125 der Datei RungeKuttaAdaptive.cpp. Benutzt actualsteplength, derivs(), eps, Object::mass, nextsteplength, Object::pos, Object::radius, rkqs(), Object::v, Vector::x, Vector::y und Vector::z. |
|
laedt die Einstellungen des Integators
Implementiert Integrator. Definiert in Zeile 27 der Datei RungeKuttaAdaptive.cpp. Benutzt eps. |
|
setze eps in AttributeWindow-Verwaltungsklasse Implementiert Integrator. Definiert in Zeile 88 der Datei RungeKuttaAdaptive.cpp. Benutzt eps. Wird benutzt von createAttributeWindow(). |
|
Integrator-Hilfsfunktion, wird von rkqs aufgerufen. Quelle: Numerical Recipes Definiert in Zeile 272 der Datei RungeKuttaAdaptive.cpp. Benutzt derivs(), free_vec() und vec(). Wird benutzt von rkqs(). |
|
adaptiver Runge-Kutta-Integrator Quelle: Numerical Recipes Erweiterungen: Kollisionscheck, Abbruchkriterium bei stepsize underflow
Definiert in Zeile 327 der Datei RungeKuttaAdaptive.cpp. Benutzt Integrator::abs(), ERRCON, free_vec(), PGROW, PSHRNK, rkck(), SAFETY und vec(). Wird benutzt von integrate(). |
|
speichert die Einstellungen des Integators
Implementiert Integrator. Definiert in Zeile 17 der Datei RungeKuttaAdaptive.cpp. Benutzt eps. |
|
hole eps aus AttributeWindow-Verwaltungsklasse Implementiert Integrator. Definiert in Zeile 95 der Datei RungeKuttaAdaptive.cpp. Benutzt eps. |
|
Numerical Recipes Funktion um Speicher fuer einen Vektors zu allokieren
Definiert in Zeile 408 der Datei RungeKuttaAdaptive.cpp. Benutzt NR_END. |
|
zu letzt durchgefuehrte Schrittlaenge Definiert in Zeile 70 der Datei RungeKuttaAdaptive.h. Wird benutzt von integrate(). |
|
Liste, die die Kollisionspaare speichert, falls Kollisionen stattgefunden haben Definiert in Zeile 81 der Datei RungeKuttaAdaptive.h. |
|
Genauigkeit mit der integriert wird Definiert in Zeile 60 der Datei RungeKuttaAdaptive.h. Wird benutzt von integrate(), load(), loadAttributes(), RungeKuttaAdaptive(), save() und saveAttributes(). |
|
Massen der Objekte Definiert in Zeile 40 der Datei RungeKuttaAdaptive.h. |
|
Anzahl der DGLn Definiert in Zeile 55 der Datei RungeKuttaAdaptive.h. |
|
Vorhersage des Integrators zur naechsten Schrittlaenge Definiert in Zeile 65 der Datei RungeKuttaAdaptive.h. Wird benutzt von integrate(). |
|
Objektanzahl Definiert in Zeile 75 der Datei RungeKuttaAdaptive.h. |
|
Radien der Objekte Definiert in Zeile 45 der Datei RungeKuttaAdaptive.h. |
|
Zeitdauer, fuer die bisher integriert wurde Definiert in Zeile 50 der Datei RungeKuttaAdaptive.h. |