UltraScan III
us_advanced_fem.cpp
Go to the documentation of this file.
1 
3 #include "us_advanced_fem.h"
4 #include "us_fematch.h"
5 #include "us_settings.h"
6 #include "us_gui_settings.h"
7 
8 // constructor: advanced analysis control widget
10  QMap< QString, QString >& adv_vals, QWidget* p ) :
11  US_WidgetsDialog( p, 0 ), parmap( adv_vals )
12 {
13  model = amodel;
14  parentw = p;
15 
16  setObjectName( "US_AdvancedFem" );
17  setPalette( US_GuiSettings::frameColor() );
19 
20  // lay out the GUI
21  setWindowTitle( tr( "FeMatch Advanced Controls" ) );
22 
23  mainLayout = new QGridLayout( this );
24 
25  mainLayout->setSpacing ( 2 );
26  mainLayout->setContentsMargins( 2, 2, 2, 2 );
27 
28  QLabel* lb_analysis = us_banner( tr( "Advanced Analysis" ) );
29  QLabel* lb_simpoints = us_label( tr( "Simulation Points:" ) );
30  QLabel* lb_bldvolume = us_label( tr( "Band-loading Volume:" ) );
31  QLabel* lb_parameter = us_label( tr( "Parameter:" ) );
32 
33  ct_simpoints = us_counter( 3, 0, 10000, 1 );
34  ct_bldvolume = us_counter( 3, 0, 1, 0.001 );
35  ct_parameter = us_counter( 2, 1, 50, 1 );
36 
37  cb_mesh = us_comboBox();
38  cb_mesh->addItem( "Adaptive Space Time Mesh (ASTFEM)" );
39  cb_mesh->addItem( "Claverie Mesh" );
40  cb_mesh->addItem( "Moving Hat Mesh" );
41  cb_mesh->addItem( "File: \"$ULTRASCAN/mesh.dat\"" );
42  cb_mesh->addItem( "AST Finite Volume Method (ASTFVM)" );
43 
44  cb_grid = us_comboBox();
45  cb_grid->addItem( "Moving Time Grid" );
46  cb_grid->addItem( "Constant Time Grid" );
47 
48  QPushButton* pb_help = us_pushbutton( tr( "Help" ) );
49  QPushButton* pb_cancel = us_pushbutton( tr( "Cancel" ) );
50  QPushButton* pb_accept = us_pushbutton( tr( "Accept" ) );
51 
52  int row = 0;
53  mainLayout->addWidget( lb_analysis, row++, 0, 1, 6 );
54  mainLayout->addWidget( lb_simpoints, row, 0, 1, 3 );
55  mainLayout->addWidget( ct_simpoints, row++, 3, 1, 3 );
56  mainLayout->addWidget( lb_bldvolume, row, 0, 1, 3 );
57  mainLayout->addWidget( ct_bldvolume, row++, 3, 1, 3 );
58  mainLayout->addWidget( lb_parameter, row, 0, 1, 3 );
59  mainLayout->addWidget( ct_parameter, row++, 3, 1, 3 );
60  mainLayout->addWidget( cb_mesh, row++, 0, 1, 6 );
61  mainLayout->addWidget( cb_grid, row++, 0, 1, 6 );
62  mainLayout->addWidget( pb_help, row, 0, 1, 2 );
63  mainLayout->addWidget( pb_cancel, row, 2, 1, 2 );
64  mainLayout->addWidget( pb_accept, row++, 4, 1, 2 );
65 
66  ct_simpoints->setValue( 200 );
67  ct_bldvolume->setValue( 0.015 );
68  ct_parameter->setValue( 0 );
69  ct_simpoints->setStep ( 5 );
70  ct_bldvolume->setStep ( 0.001 );
71  ct_parameter->setStep ( 1 );
72 
73  connect( pb_help, SIGNAL( clicked() ),
74  this, SLOT( help() ) );
75  connect( pb_cancel, SIGNAL( clicked() ),
76  this, SLOT( reject() ) );
77  connect( pb_accept, SIGNAL( clicked() ),
78  this, SLOT( done() ) );
79 
80 qDebug() << "AdvF:Pre-adjust size" << size();
81  adjustSize();
82 qDebug() << "AdvF:Post-adjust size" << size();
83  resize( 400, 150 );
84 qDebug() << "AdvF:Post-resize size" << size();
85  qApp->processEvents();
86 }
87 
88 // private slot to pass parameters then close with an accepted() signal
90 {
91  parmap[ "simpoints" ] = QString::number( ct_simpoints->value() );
92  parmap[ "bldvolume" ] = QString::number( ct_bldvolume->value() );
93  parmap[ "parameter" ] = QString::number( ct_parameter->value() );
94  parmap[ "meshtype" ] = cb_mesh->currentText();
95  parmap[ "gridtype" ] = cb_grid->currentText();
96 
97  accept();
98 }
99