+
+ #=================================
+ # - Minimization frame
+ self.gr1.mi = Frame(self.gr1.interior())
+ #self.gr1.mi.grid(row=4, column=0, columnspan=5,sticky=W+E)
+
+ self.gr1.mi.e1 = Pmw.EntryField(self.gr1.mi,
+ labelpos='w',
+ label_text="MAXMIN",
+ validate = {'validator' : 'integer', 'min': 0 , 'max' : 1000000 },
+ value = "2000" )
+ self.balloon.bind(self.gr1.mi.e1,'Maximum number of iterations of the SUMSL minimizer.')
+ self.gr1.mi.e1.component('entry').config(width=8)
+ self.gr1.mi.e1.pack(side=LEFT)
+
+ self.gr1.mi.e2 = Pmw.EntryField(self.gr1.mi,
+ labelpos='w',
+ label_text="MAXFUN",
+ validate = {'validator' : 'integer', 'min': 0 , 'max' : 1000000 },
+ value = "5000" )
+ self.balloon.bind(self.gr1.mi.e2,'Maximum number of function evaluations in a single minimization.')
+ self.gr1.mi.e2.component('entry').config(width=8)
+ self.gr1.mi.e2.pack(side=LEFT)
+
+ self.gr1.mi.c1 = Checkbutton(self.gr1.mi,
+ text = "CART",
+ variable = self.CART )
+ self.balloon.bind(self.gr1.mi.c1,'Minimize in virtual-bond vectors instead of angles.')
+ self.gr1.mi.c1.pack(side=LEFT)
+
+ self.gr1.mi.c2 = Checkbutton(self.gr1.mi,
+ text = "OVERLAP",
+ variable = self.OVERLAP )
+ self.balloon.bind(self.gr1.mi.c2,'Fix overlaping sidechains.')
+ self.gr1.mi.c2.pack(side=LEFT)
+
+ self.gr1.mi.c3 = Checkbutton(self.gr1.mi,
+ text = "NOSEARCHSC",
+ variable = self.NOSEARCHSC )
+ #self.balloon.bind(self.gr1.mi.c3,'Minimize in virtual-bond vectors instead of angles.')
+ self.gr1.mi.c3.pack(side=LEFT)
+
+
+ #=================================
+ # - REMD frame
+ self.gr1.re = Frame(self.gr1.interior())
+ #self.gr1.re.grid(row=5, column=0, columnspan=5,sticky=W+E)
+
+ self.gr1.re.e1 = Pmw.EntryField(self.gr1.re,
+ labelpos = 'w',
+ label_text = "NREP",
+ validate = {'validator' : 'integer', 'min': 1 , 'max' : 32 },
+ command = self.set_replica_widgets,
+ value = "16" )
+ self.balloon.bind(self.gr1.re.e1,'Number of replicas in a REMD/MREMD run.')
+ self.gr1.re.e1.component('entry').config(width=8)
+ self.gr1.re.e1.grid(row=0, column=0, sticky=W)
+
+ self.gr1.re.e2 = Pmw.EntryField(self.gr1.re,
+ labelpos = 'w',
+ label_text = "NSTEX",
+ validate = {'validator' : 'integer', 'min': 0 , 'max' : 1000000 },
+ value = "1000" )
+ self.balloon.bind(self.gr1.re.e2,'Number of steps after which exchange is performed in REMD/MREMD runs.')
+ self.gr1.re.e2.component('entry').config(width=8)
+ self.gr1.re.e2.grid(row=0, column=1, sticky=W)
+
+ # -- radio select
+ self.gr1.re.rs = Pmw.RadioSelect(self.gr1.re,
+ labelpos = 'w',
+ label_text = 'Replica temperatures',
+ command = self.sel_replica_mode,
+ buttontype = 'radiobutton'
+ #frame_borderwidth = 2,
+ #frame_relief = 'ridge'
+ )
+ self.gr1.re.rs.grid(row=1, column=0, columnspan=4,sticky=W)
+
+ for text in ('Manual', 'Range'):
+ self.gr1.re.rs.add(text)
+
+ # --- range
+ self.gr1.re.tf1 = Frame(self.gr1.re, bg="blue")
+ self.gr1.re.tf1.grid(row=2,column=0, columnspan=4, sticky=W)
+
+ self.gr1.re.tf1.e1 = Pmw.EntryField(self.gr1.re.tf1,
+ labelpos = 'w',
+ label_text = "RETMIN",
+ validate = {'validator' : 'real', 'min': 0 , 'max' : 1000000 },
+ value = "10" )
+ self.balloon.bind(self.gr1.re.tf1.e1,'Minimum temperature in a REMD/MREMD run.')
+ self.gr1.re.tf1.e1.component('entry').config(width=8)
+ self.gr1.re.tf1.e1.grid(row=0, column=0, sticky=W)
+
+ self.gr1.re.tf1.e2 = Pmw.EntryField(self.gr1.re.tf1,
+ labelpos = 'w',
+ label_text = "RETMAX",
+ validate = {'validator' : 'real', 'min': 0 , 'max' : 1000000 },
+ value = "1000" )
+ self.balloon.bind(self.gr1.re.tf1.e2,'Maxmum temperature in a REMD/MREMD run.')
+ self.gr1.re.tf1.e2.component('entry').config(width=8)
+ self.gr1.re.tf1.e2.grid(row=0, column=1, sticky=W)
+
+ # --- manual
+ self.gr1.re.tf2 = Frame(self.gr1.re)
+ self.gr1.re.tf2.grid(row=3,column=0, columnspan=4, sticky=W)
+
+ self.gr1.re.tf2.te = []
+ for i in range(0,32): #int(self.gr1.re.e1.get())):
+ self.gr1.re.tf2.te.append(Pmw.EntryField(self.gr1.re.tf2,
+ labelpos='n',
+ label_text='T%02d' % (i+1),
+ validate = {'validator' : 'real','min' : 0, 'max' : 1000, 'minstrict' : 0},
+ value = '%d' % (200+i*10)))
+ self.gr1.re.tf2.te[i].component('entry').config(width=3)
+ self.gr1.re.tf2.te[i].grid(row=1+(i//16), column=0+(i % 16))
+
+ self.gr1.re.tf2.nre = Pmw.EntryField(self.gr1.re.tf2,
+ labelpos ='n',
+ label_text='Rep. in Temp.',
+ validate = {'validator' : 'integer','min' : 1, 'max' : 100 },
+ value = '2')
+ self.gr1.re.tf2.nre.component('entry').config(width=3)
+ self.gr1.re.tf2.nre.grid(row=1, column=17)
+
+ # display manual replica options
+ self.gr1.re.e1.invoke()
+ self.gr1.re.rs.invoke('Manual')