SMILE
v2.5
Schwarzschild Modelling Interactive expLoratory Environment
|
The main GUI window class. More...
#include <gui.h>
Public Slots | |
void | info (const QString &message) |
show message in the information area | |
void | error (const QString &message) |
pop up an error message box | |
Signals | |
void | stopOrbitLibrary () |
raised if user pressed stop during orbit library integration | |
void | stopExportNbody () |
raised if user pressed stop during exporting to Nbody | |
Public Member Functions | |
CSmileGUI (QWidget *parent=0, Qt::WFlags flags=0) | |
create the CSmileCore object and various GUI elements, connect signals, load default settings | |
~CSmileGUI () | |
save settings on exit if the corresponding checkbox is turned on | |
Private Slots | |
void | on_ButtonStart_clicked () |
start an orbit with the current initial conditions | |
void | on_ButtonRandom_clicked () |
start an orbit with the current value of energy and random initial conditions | |
void | timerEventCore () |
refresh the progress bar during orbit library integration | |
void | redrawPotential () |
replot the potential/density figure on the "Potential" tab | |
void | redrawPotentialB (bool) |
replot the potential/density figure if the parameter is true | |
void | redrawOrbit (bool) |
redraw the current figure on the "Orbit" tab (trajectory or pericenter distribution) | |
void | redrawFreqMap (bool) |
redraw the frequency map | |
void | redrawSchwModel (bool) |
redraw the current plot on the "Schwarzschild model" tab | |
void | refreshOrbitAndSpectrum () |
compute spectrum for a given sub-interval of the orbit and update data on the spectrum and trajectory plots | |
void | on_pushButton_refresh3dmesh_clicked () |
redraw 3d rendering of the orbit as a solid body | |
void | on_checkBox_usePS_stateChanged (int) |
toggle the usage of Poincare surface of section for integration of subsequent orbits | |
void | on_ButtonClearPS_clicked () |
clear Poincare plot | |
void | on_ButtonFindPeriodic_clicked () |
locate the periodic orbit closest to the current one, using the Poincare surface of section | |
void | on_checkBox_freqLines_stateChanged (int) |
toggle the display of spectral lines on the spectrum plot | |
void | on_radioButton_2d_toggled (bool) |
switch between 2d and 3d potentials | |
void | on_comboBox_Lyapunov_currentIndexChanged (int) |
toggle the computation of Lyapunov exponent | |
void | intTime_changed () |
update integration time or steps per period | |
void | PScoordChanged () |
modify Poincare section coordinates | |
void | fmparams_changed () |
update frequency map parameters on user input | |
void | smparams_changed () |
update Schwarzschild model parameters on user input | |
void | ccparams_changed () |
update criteria for labelling orbits as regular or chaotic, after user input | |
void | potentialChanged () |
re-initialize potential when user changes potential parameters (if potential type is not BSE/Spline/Nbody) | |
void | potentialIndexChanged () |
index of potential component in the parameters panel has changed | |
void | refreshPotentialComponentList () |
fill the list of components on the potential plot tab and the potential parameters panel | |
void | showHidePotentialParams () |
depending on the current potential and density model, show only the relevant parameters in the right panel | |
void | on_buttonInitPotential_clicked () |
initialize potential for a computationally-intensive types (BSE/Spline/Nbody) when user presses "init potential" button | |
void | integratorChanged () |
update ODE integrator parameters | |
void | ICchanged () |
update initial conditions on user input | |
void | chooseNbodyFile () |
display the dialog window to open a file with Nbody snapshot or potential coefficients | |
void | typeinNbodyFile () |
called when user presses Enter in the input line for the Nbody snapshot file; if the file doesn't exist, pop up dialog for choosing the file, otherwise use the name that was typed in | |
void | assignNbodyFile (QString fileName) |
initialize potential from an Nbody snapshot or coefficients file | |
void | on_checkBox_fmExistingSS_stateChanged (int) |
toggle the usage of an existing orbit library for the start space in the Frequency Map | |
void | on_checkBox_fmConfigSpace_stateChanged (int) |
in the Frequency map, toggle the display of orbits with nonzero weights only | |
void | on_selectEnergyLevel_fm_valueChanged (int) |
display orbits from a given energy shell only in the frequency map | |
void | on_selectEnergyLevel_sm_valueChanged (int) |
display orbits from a given energy shell only in the plot of Schwarzschild model coefficients | |
void | on_spinBox_intervalCount_valueChanged (int) |
change the number of segments that a single orbit is divided into | |
void | on_spinBox_IntervalNum_valueChanged (int) |
change the index of orbit segment | |
void | on_radioButton_ICe_toggled (bool) |
switch between using energy or coordinates/velocities for the initial conditions of a single orbit | |
void | PSclicked (const QwtDoublePoint &pos) |
assign the initial conditions by right-clicking Poincare plot | |
void | FMclicked (const QwtDoublePoint &pos) |
select the nearest orbit in the frequency map plot | |
void | SMclicked (const QwtDoublePoint &pos) |
display information about nearest coefficient of the Schwarzschild model | |
void | SMHistoClicked (const QwtDoublePoint &pos) |
select the nearest orbit from the plot displaying orbit weights in the Schwarzschild model | |
void | on_ButtonFreqMap_clicked () |
create the orbit library for the Frequency Map | |
void | on_ButtonSchwOrbitLib_clicked () |
create the orbit library for the Schwarzschild model | |
void | on_ButtonSchwLP_clicked () |
run linear optimization solver for the Schwarzschild model | |
void | on_ButtonSchwQP_clicked () |
run quadratic optimization solver | |
void | on_ButtonSchwNbody_clicked () |
run the export of Schwarzschild model to an Nbody snapshot | |
void | on_ButtonExportModelStats_clicked () |
export statistics of Schwarzschild model coefficients | |
void | on_ButtonExportPS_clicked () |
export the Poincare surface of section to a text file | |
void | on_ButtonImportSM_clicked () |
import Schwarzschild model (orbit library plus binary data) | |
void | on_ButtonExportSM_clicked () |
export Schwarzschild model | |
void | on_ButtonImportFM_clicked () |
import orbit library for the Frequency map | |
void | on_ButtonExportFM_clicked () |
export orbit library | |
void | on_ButtonImportOrbit_clicked () |
import a trajectory from a text file | |
void | on_ButtonExportOrbit_clicked () |
export orbit trajectory to a text file | |
void | on_ButtonExportPotential_clicked () |
export potential/density profile to a text file | |
void | on_ButtonPrint_clicked () |
export the currently visible plot to a PS or PDF file | |
void | CalcFinished () |
called after the integration of a single orbit is done | |
void | OrbitLibraryFinished () |
called after the orbit library integration is done | |
void | SchwOptimizationFinished (const QString &message) |
called when Schwarzschild optimization is finished with the given result message | |
void | NbodyReintegrationFinished () |
called when reintegration of high-weight orbits during the export to Nbody is finished | |
void | NbodyExportFinished (const QString &message) |
called when the export of Schwarzschild model to an Nbody snapshot is finished | |
Private Member Functions | |
bool | eventFilter (QObject *target, QEvent *Event) |
track 'Enter' keydown events and start single orbit integration in response | |
bool | loadApplySettings (QString fileName="") |
load ini file (at start or along with orbit library) and modify the content of GUI controls | |
void | updatePotentialSettings () |
fill the potential parameters tab when the component index of a composite potential is changed | |
void | drawFreqMapResonances () |
draw several most important resonance lines on the frequency map plot | |
void | addPoincareCurve (const CPoincareInformation *tps) |
add a new orbit to the Poincare surface of section | |
QString | getOrbitPopulation (int numShell, bool useWeights) const |
calls corresponding function from orbit library, if it exists | |
void | enableOrbitLibControls (bool enable) |
switch on or off some GUI controls for the duration of orbit library integration, optimization, or export to Nbody | |
virtual void | timerEvent (QTimerEvent *) |
update orbit trajectory plot if orbit integration is taking too long | |
Static Private Member Functions | |
static void | XYZtoXY (const double X, const double Y, const double Z, double *x, double *y) |
project start-space onto 2d plane | |
Private Attributes | |
Ui::CSmileGUIClass | ui |
window interface elements | |
QwtPlot * | PlotOrbit |
figure that displays single trajectory in 2d | |
QwtPlotCurve * | CurveOrbit |
orbit trajectory | |
QwtPlotCurve * | CurveEquipotential |
equipotential surface on the trajectory plot | |
QwtPlotZoomer * | ZoomerOrbit |
pan/zoom the trajectory plot | |
QwtPlot * | PlotOrbitParam |
figure that displays the distribution of pericenter radii for a single orbit | |
QwtPlotCurve * | CurveOrbitParam |
curve displaying the pericenter distribution | |
QwtPlotZoomer * | ZoomerOrbitParam |
pan/zoom the pericenter plot | |
QwtPlot * | PlotPotential |
figure that displays potential, density or circular velocity as a function of radius | |
QwtPlotCurve * | CurvePotential |
curve displaying the potential, density, circular velocity or one of frequencies | |
QwtPlotCurve * | CurvePotential1 |
additional curve displaying another frequency | |
QwtPlotCurve * | CurvePotential2 |
additional curve displaying third frequency | |
QwtPlotZoomer * | ZoomerPotential |
pan/zoom the potential plot | |
QwtPlot * | PlotPoincare |
figure that displays Poincare surface of section | |
QwtPlotZoomer * | ZoomerPoincare |
pan/zoom the Poincare plot | |
QVector< QwtPlotCurve * > | CurvesPoincare |
array of curves on the Poincare plot, one for each orbit previously displayed | |
QwtPlot * | PlotFreq |
figure that displays the frequency spectrum of an orbit and the lines | |
QwtPlotCurve * | CurveFreqX |
spectrum of oscillations in X direction | |
QwtPlotCurve * | CurveFreqY |
spectrum of oscillations in Y direction | |
QwtPlotCurve * | CurveFreqZ |
spectrum of oscillations in Z direction | |
QwtPlotCurve * | CurveFreqPeaksP |
spectral lines detected with Hunter's precise method | |
QwtPlotCurve * | CurveFreqPeaks |
spectral lines detected with more approximate method of Carpintero&Aguilar | |
QwtPlotZoomer * | ZoomerFreq |
pan/zoom the spectrum plot | |
QwtPlot * | PlotLyapunov |
figure that displays the estimate of the Lyapunov exponent of an orbit as a function of time | |
QwtPlotCurve * | CurveDeviation |
magnitude of the deviation vector divided by time | |
QwtPlotCurve * | CurveLyapunov |
finite-time estimate of Lyapunov exponent | |
QwtPlot * | PlotFreqMap |
figure that displays the frequency map for the orbit library | |
QwtPlotCurve * | CurveFreqMapR |
regular orbits on the frequency map | |
QwtPlotCurve * | CurveFreqMapC |
chaotic orbits on the frequency map | |
QwtPlotZoomer * | ZoomerFreqMap |
pan/zoom the frequency map | |
QwtPlot * | PlotFreqMapHisto |
figure that displays cumulative distribution of orbits as a function of frequency or Lyapunov exponent | |
QwtPlotCurve * | CurveFreqMapHisto |
cumulative distrubution of orbits | |
QwtPlot * | PlotFreqMapSS |
figure that shows the start space (a regular set of orbits with the same energy) | |
QwtPlotCurve * | CurveFreqMapSSR |
regular orbits on the start space plot | |
QwtPlotCurve * | CurveFreqMapSSC |
chaotic orbits on the start space plot | |
QwtPlot * | PlotSchw |
figure that shows coefficients of the Schwarzschild model | |
QwtPlotCurve * | CurveSchwCellF |
feasible coefficients in the model | |
QwtPlotCurve * | CurveSchwCellI |
infeasible coefficients in the model | |
QwtPlot * | PlotSchwHisto |
figure that displays orbit weights in the Schwarzschild model or their cumulative distribution | |
QwtPlotCurve * | CurveSchwHistoR |
weights of regular orbits | |
QwtPlotCurve * | CurveSchwHistoC |
weights of chaotic orbits | |
Qwt3D::SurfacePlot * | Plot3d |
3d plot of orbit trajectory | |
Qwt3D::TripleField | trjpos |
3d trajectory, points | |
Qwt3D::CellField | trjcells |
3d trajectory defined as a set of polygons (with only one cell) | |
CTriangThread * | TriangThr |
the worker object to perform triangulation | |
CSmileCore * | core |
the instance of core object holding all non-gui data | |
double | maxdist |
max distance between adjacent points of trajectory (used in triangulation thread) | |
bool | InternalRecalc |
indicate that modification of GUI controls is done not by user but internally, so do not react on this | |
double | Eprev |
double | Lz2prev |
previous value of orbit energy and z-axis angular momentum (if difference is > Eeps, clear the Poincare section) | |
QString | SchwModelResult |
text message returned by Schwarzschild modelling routine | |
int | myTimerOrbit |
timer for single orbit integration | |
QTime | timeOI |
measure time for orbit integration | |
double | timeOIelapsed |
keep track of time used for orbit integration (not including analysis) | |
QTime | timeFM |
measure time for frequency map calculation | |
size_t | currentComponentIndex |
index of selected potential component in the potential parameters panel | |
The main GUI window class.