예제 #1
0
    def __init__(self, parent):
        """Build GUI, allocate solver, etc."""
        self.master = parent

        self.row_frame = Frame(self.master, borderwidth=2, relief='groove')
        self.row_frame.pack()
        Button(self.row_frame,
               text='Physics',
               command=self.set_physics,
               width=12).pack(side='left')
        Button(self.row_frame,
               text='Numerics',
               command=self.set_numerics,
               width=12).pack(side='left')
        Button(self.row_frame,
               text='Simulate',
               command=self.simulate,
               width=12).pack(side='left')
        Button(self.row_frame, text='Stop', command=self.stop,
               width=12).pack(side='left')
        Button(self.row_frame,
               text='Continue',
               command=self.continue_,
               width=12).pack(side='left')
        Button(self.row_frame,
               text='Quit',
               command=self.master.destroy,
               width=12).pack(side='left')

        self.w = WaveSolverWithViz(WaveEq2(),
                                   plot=True,
                                   program='BLT',
                                   parent_frame=self.master,
                                   sleep=0)

        self._setup_shapes()

        self.nGUI = Parameters(interface='GUI')  # numerics part of GUI
        self.nGUI.add('stop time for simulation', 60.0, widget_type='entry')
        self.nGUI.add('safety factor for time step', 1.0, widget_type='entry')
        self.nGUI.add('no of grid cells',
                      100,
                      widget_type='slider',
                      values=(0, 1000))
        self.nGUI.add('movie speed', 1.0, widget_type='slider', values=(0, 1))

        self.scheme_coding = 'vectorized'
예제 #2
0
    def __init__(self, parent, layout='sort'):
        self.cwd = os.getcwd()
        self.p = Parameters(interface='GUI')
        self.master = parent
        self.initialize()

        self.GUI = AutoSimVizGUI()

        if layout == 'sort':
            # widgets sorted in columns:
            self.GUI.make_prmGUI(self.master,
                                 self.p,
                                 sort_widgets=1,
                                 height=300,
                                 pane=1)
        else:
            # only one column of input parameters:
            self.GUI.make_prmGUI(self.master,
                                 self.p,
                                 sort_widgets=0,
                                 height=300,
                                 pane=0)

        help = """\
Simulate: run oscillator code for solving the
differential equation for the spring system.

Visualize: run Gnuplot to make plots in PNG and PostScript
format and on the screen (optional). Plots are stored
in the subdirectory with name equal to 'case'.
"""
        self.GUI.make_buttonGUI(self.master,
                                buttons=[('Simulate', self.simulate),
                                         ('Visualize', self.visualize)],
                                logo=os.path.join(os.environ['scripting'],
                                                  'src', 'misc', 'figs',
                                                  'simviz2.xfig.t.gif'),
                                help=None)
예제 #3
0
 def __init__(self):
     self.cwd = os.getcwd()
     self.p = Parameters(interface='plain')
     self.initialize()