BornAgain  1.19.0
Simulate and fit neutron and x-ray scattering at grazing incidence
GUIObjectBuilder Namespace Reference

Contains set of methods to populate GUI models with content from domain. More...

Functions

SessionItempopulateDocumentModel (DocumentModel *p_documentModel, const ISimulation &simulation)
 
SessionItempopulateInstrumentModel (InstrumentModel *p_instrument_model, const ISimulation &simulation, const QString &instrument_name="")
 
SessionItempopulateSampleModel (SampleModel *sampleModel, MaterialModel *materialModel, const MultiLayer &sample, const QString &sample_name="")
 
SessionItempopulateSampleModelFromSim (SampleModel *sampleModel, MaterialModel *materialModel, const ISimulation &simulation)
 

Detailed Description

Contains set of methods to populate GUI models with content from domain.

Function Documentation

◆ populateDocumentModel()

SessionItem * GUIObjectBuilder::populateDocumentModel ( DocumentModel p_documentModel,
const ISimulation simulation 
)

Definition at line 85 of file GUIObjectBuilder.cpp.

87 {
88  auto p_options_item = p_document_model->insertItem<SimulationOptionsItem>();
89  if (simulation.getOptions().isIntegrate()) {
90  p_options_item->setComputationMethod("Monte-Carlo Integration");
91  p_options_item->setNumberOfMonteCarloPoints(
92  static_cast<int>(simulation.getOptions().getMcPoints()));
93  }
94  if (simulation.getOptions().useAvgMaterials()) {
95  p_options_item->setFresnelMaterialMethod("Average Layer Material");
96  }
97  if (simulation.getOptions().includeSpecular()) {
98  p_options_item->setIncludeSpecularPeak("Yes");
99  }
100  return p_options_item;
101 }
const SimulationOptions & getOptions() const
Definition: ISimulation.h:91
The SimulationOptionsItem class holds simulation status (run policy, number of threads,...
void setComputationMethod(const QString &name)
size_t getMcPoints() const
bool includeSpecular() const
bool isIntegrate() const
bool useAvgMaterials() const

References SimulationOptions::getMcPoints(), ISimulation::getOptions(), SimulationOptions::includeSpecular(), SessionModel::insertItem(), SimulationOptions::isIntegrate(), SimulationOptionsItem::setComputationMethod(), and SimulationOptions::useAvgMaterials().

Here is the call graph for this function:

◆ populateInstrumentModel()

SessionItem * GUIObjectBuilder::populateInstrumentModel ( InstrumentModel p_instrument_model,
const ISimulation simulation,
const QString &  instrument_name = "" 
)

Definition at line 63 of file GUIObjectBuilder.cpp.

66 {
67  ASSERT(p_instrument_model);
68 
69  QString name = instrument_name.isEmpty()
70  ? QString::fromStdString(simulation.instrument().getName())
71  : instrument_name;
72 
73  if (auto gisasSimulation = dynamic_cast<const GISASSimulation*>(&simulation)) {
74  return createGISASInstrumentItem(p_instrument_model, *gisasSimulation, name);
75  } else if (auto offSpecSimulation = dynamic_cast<const OffSpecularSimulation*>(&simulation)) {
76  return createOffSpecularInstrumentItem(p_instrument_model, *offSpecSimulation, name);
77  } else if (auto spec_simulation = dynamic_cast<const SpecularSimulation*>(&simulation)) {
78  return createSpecularInstrumentItem(p_instrument_model, *spec_simulation, name);
79  }
80 
81  throw GUIHelpers::Error("GUIObjectBuilder::populateInstrumentModel() -> Error. ISimulation is "
82  "not yet supported");
83 }
#define ASSERT(condition)
Definition: Assert.h:31
Main class to run a Grazing-Incidence Small-Angle Scattering simulation.
const std::string & getName() const
const Instrument & instrument() const
Definition: ISimulation.h:55
Main class to run an off-specular simulation.
Main class to run a specular simulation.
QString const & name(EShape k)
Definition: particles.cpp:21

References ASSERT, IParametricComponent::getName(), ISimulation::instrument(), and RealSpace::Particles::name().

Here is the call graph for this function:

◆ populateSampleModel()

SessionItem * GUIObjectBuilder::populateSampleModel ( SampleModel sampleModel,
MaterialModel materialModel,
const MultiLayer sample,
const QString &  sample_name = "" 
)

Definition at line 54 of file GUIObjectBuilder.cpp.

58 {
59  GUIDomainSampleVisitor visitor;
60  return visitor.populateSampleModel(sampleModel, materialModel, sample, sample_name);
61 }
Visits domain sample tree to build GUI presentation.
SessionItem * populateSampleModel(SampleModel *sampleModel, MaterialModel *materialModel, const MultiLayer &sample, const QString &sample_name="")

References GUIDomainSampleVisitor::populateSampleModel().

Referenced by GUIExamplesFactory::createSampleItems(), TestComponentView::init_source(), PyImportAssistant::populateModels(), and populateSampleModelFromSim().

Here is the call graph for this function:

◆ populateSampleModelFromSim()

SessionItem * GUIObjectBuilder::populateSampleModelFromSim ( SampleModel sampleModel,
MaterialModel materialModel,
const ISimulation simulation 
)

Definition at line 44 of file GUIObjectBuilder.cpp.

47 {
48  std::unique_ptr<ISimulation> sim(simulation.clone());
49  sim->prepareSimulation();
50  SessionItem* item = populateSampleModel(sampleModel, materialModel, *sim->sample());
51  return item;
52 }
virtual ISimulation * clone() const =0
SessionItem * populateSampleModel(SampleModel *sampleModel, MaterialModel *materialModel, const MultiLayer &sample, const QString &sample_name="")

References ISimulation::clone(), and populateSampleModel().

Here is the call graph for this function: