33 const int profile_points_count = 1000;
105 if (submit_simulation)
134 Qt::QueuedConnection);
T * topItem() const
Returns top item of the given type.
virtual void setViewportToContent(double left, double top, double right, double bottom)
Sets range of x,y window to show all data.
Main class to holds all models of GUI session.
SampleModel * sampleModel()
MaterialModel * materialModel()
InstrumentModel * instrumentModel()
Model to store specular instruments settings.
Handles all thread activity for running job simulation in the background.
SimulationResult simulationResult()
Returns vector representing results of a simulation.
void simulationCompleted()
void requestSimulation(const multislice_t &multislice, const std::vector< double > &qvalues, double intensity)
Performs simulation request.
void onInterruptRequest()
Processes interrupt request by setting corresponding flag.
void progressChanged(int value)
The model to store results of (possibly) multiple reflectometry simulation, and all viewports,...
void updateSpecularData(const SimulationResult &data)
Updates specular data in JobItem from simulation results.
void updateSLDProfile(const SLDProfile &data)
Updates SLD profile data.
ModelView::GraphViewportItem * sldViewport() const
Multi layer capable of holding layers and other multi-layers.
std::unique_ptr< ModelView::ModelHasChangedController > m_sampleChangedController
void onRealTimeRequest(bool status)
JobManager * m_jobManager
void update_sld_profile(const multislice_t &multilayer)
Calculates sld profile from slice and immediately update data items.
void onRunSimulationRequest()
Processes multilayer on request. Doesn't work in real time mode.
void process_multilayer(bool submit_simulation=false)
Constructs multislice, calculates profile and submits specular simulation.
JobModel * jobModel() const
InstrumentModel * instrumentModel() const
std::unique_ptr< ModelView::ModelHasChangedController > m_instrumentChangedController
void onMultiLayerChange()
Processes multilayer on any model change. Works only in realtime mode.
ApplicationModels * m_models
std::unique_ptr< ModelView::ModelHasChangedController > m_materialChangedController
Run simulation on every parameter change.
void submit_specular_simulation(const multislice_t &multislice)
Submit data to JobManager for consequent specular simulation in a separate thread.
QuickSimController(QObject *parent=nullptr)
void setup_jobmanager_connections()
Connect signals going from JobManager.
void onSimulationCompleted()
Takes simulation results from JobManager and write into the model.
void onInterruptRequest()
Requests interruption of running simulaitons.
void setModels(ApplicationModels *models)
void progressChanged(int value)
Represents specular instrument.
SpecularBeamItem * beamItem() const
static SLDProfile sld_profile(const multislice_t &multislice, int n_points)
const bool live_simulation_default_on
Initial state of some widgets.
DAREFLCORE_EXPORT multislice_t CreateMultiSlice(const MultiLayerItem &multilayer)
Creates multi-slice presentation of internal multilayer structure.
Based on Qt example "codeeditor" Copyright (C) 2016 The Qt Company Ltd.
std::vector< SliceData > multislice_t