Changeset 978


Ignore:
Timestamp:
Jul 2, 2013 11:00:46 AM (10 years ago)
Author:
vondreele
Message:

make MC/SA fortran stuff all REAL*8
add glFreeType.py - doesn't work correctly yet
implement glFreeType font in OpenGl? labels
add new menu items for RBs
MCSA anneal in a test mode no random start for fixed T0

Location:
trunk
Files:
1 added
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/GSASII.py

    r964 r978  
    20442044                self.GSASprojectfile = G2IO.FileDlgFixExt(dlg,self.GSASprojectfile)
    20452045                self.PatternTree.SetItemText(self.root,'Saving project as'+self.GSASprojectfile)
    2046                 self.SetTitle("GSAS-II data tree: "+
    2047                               os.path.split(self.GSASprojectfile)[1])
     2046                self.SetTitle("GSAS-II data tree: "+os.path.split(self.GSASprojectfile)[1])
    20482047                G2IO.ProjFileSave(self)
    20492048                os.chdir(dlg.GetDirectory())           # to get Mac/Linux to change directory!
  • trunk/GSASIIgrid.py

    r968 r978  
    124124[ wxID_RIGIDBODYADD,wxID_DRAWDEFINERB,wxID_RIGIDBODYIMPORT,wxID_RESIDUETORSSEQ,
    125125    wxID_AUTOFINDRESRB,wxID_GLOBALRESREFINE,wxID_RBREMOVEALL,wxID_COPYRBPARMS,
    126 ] = [wx.NewId() for item in range(8)]
     126    wxID_GLOBALTHERM,
     127] = [wx.NewId() for item in range(9)]
    127128
    128129[ wxID_SAVESEQSEL,
     
    19421943        self.RigidBodiesEdit.Append(id=wxID_COPYRBPARMS, kind=wx.ITEM_NORMAL,text='Copy rigid body parms',
    19431944            help='Copy rigid body location & TLS parameters')
     1945        self.RigidBodiesEdit.Append(id=wxID_GLOBALTHERM, kind=wx.ITEM_NORMAL,text='Global thermal motion',
     1946            help='Global setting of residue thermal motion models')
    19441947        self.RigidBodiesEdit.Append(id=wxID_GLOBALRESREFINE, kind=wx.ITEM_NORMAL,text='Global residue refine',
    19451948            help='Global setting of residue RB refinement flags')
  • trunk/GSASIImath.py

    r975 r978  
    23262326        x0 = schedule.getstart_temp(best_state)
    23272327    else:
    2328         x0 = random.uniform(size=len(x0))*(upper-lower) + lower
     2328#        x0 = random.uniform(size=len(x0))*(upper-lower) + lower
    23292329        best_state.x = None
    23302330        best_state.cost = numpy.Inf
  • trunk/GSASIIphsGUI.py

    r970 r978  
    34673467        if G2frame.dataFrame.PhaseUserSize is None:
    34683468            mainSizer.FitInside(G2frame.dataFrame)
    3469             Size = mainSizer.GetMinSize()
     3469            Size = mainSizer.Fit()
    34703470            Size[0] += 40
    34713471            Size[1] = max(Size[1],290) + 35
     
    39113911        FillRigidBodyGrid(True)
    39123912       
     3913    def OnGlobalResRBTherm(event):
     3914        RBObjs = data['RBModels']['Residue']
     3915        names = ['None','Uiso','T','TL','TLS']
     3916        dlg = wx.SingleChoiceDialog(G2frame,'Select','Residue thermal motion model',names)
     3917        if dlg.ShowModal() == wx.ID_OK:
     3918            sel = dlg.GetSelection()
     3919            parm = names[sel]
     3920        for rbObj in RBObjs:
     3921            rbObj['ThermalMotion'][0] = parm
     3922        dlg.Destroy()
     3923        FillRigidBodyGrid(True)
     3924
    39133925    def OnGlobalResRBRef(event):
    39143926        RBObjs = data['RBModels']['Residue']
     
    39183930            nTor = max(nTor,len(rbObj['Torsions']))
    39193931        names += ['Torsion '+str(i) for i in range(nTor)]
     3932        if np.any([rbObj['ThermalMotion'][0] == 'Uiso' for rbObj in RBObjs]):
     3933           names += ['Uiso',]
     3934        if np.any([rbObj['ThermalMotion'][0] == 'TLS' for rbObj in RBObjs]):
     3935           names += ['Tii','Tij','Lii','Lij','Sij']
     3936        elif np.any([rbObj['ThermalMotion'][0] == 'TL' for rbObj in RBObjs]):
     3937           names += ['Tii','Tij','Lii','Lij']
     3938        elif np.any([rbObj['ThermalMotion'][0] == 'T' for rbObj in RBObjs]):
     3939           names += ['Tii','Tij']
     3940
    39203941        dlg = wx.MultiChoiceDialog(G2frame,'Select','Refinement controls',names)
    39213942        if dlg.ShowModal() == wx.ID_OK:
     
    39413962                            rbObj['Torsions'][i][1] = True
    39423963                        else:
    3943                             rbObj['Torsions'][i][1] = False           
     3964                            rbObj['Torsions'][i][1] = False
     3965                    if rbObj['ThermalMotion'][0] == 'Uiso':
     3966                        if 'Uiso' in parms:
     3967                           rbObj['ThermalMotion'][2][0] = True
     3968                        else:
     3969                           rbObj['ThermalMotion'][2][0] = False
     3970                    elif 'T' in rbObj['ThermalMotion'][0]:
     3971                        if 'Tii' in parms:
     3972                            rbObj['ThermalMotion'][2][0:2] = [True,True,True]
     3973                        else:
     3974                            rbObj['ThermalMotion'][2][0:2] = [False,False,False]
     3975                        if 'Tij' in parms:
     3976                            rbObj['ThermalMotion'][2][3:6] = [True,True,True]
     3977                        else:
     3978                            rbObj['ThermalMotion'][2][3:6] = [False,False,False]
     3979                    elif 'L' in rbObj['ThermalMotion'][0]:
     3980                        if 'Lii' in parms:
     3981                            rbObj['ThermalMotion'][2][6:9] = [True,True,True]
     3982                        else:
     3983                            rbObj['ThermalMotion'][2][6:9] = [False,False,False]
     3984                        if 'Lij' in parms:
     3985                            rbObj['ThermalMotion'][2][9:12] = [True,True,True]
     3986                        else:
     3987                            rbObj['ThermalMotion'][2][9:12] = [False,False,False]
     3988                    elif 'S' in rbObj['ThermalMotion'][0]:
     3989                        if 'Sij' in parms:
     3990                            rbObj['ThermalMotion'][2][12:20] = [True,True,True,True,True,True,True,True]
     3991                        else:
     3992                            rbObj['ThermalMotion'][2][12:20] = [False,False,False,False,False,False,False,False]
    39443993            finally:
    39453994                wx.EndBusyCursor()
     
    50195068            G2frame.dataFrame.Bind(wx.EVT_MENU, OnAutoFindResRB, id=G2gd.wxID_AUTOFINDRESRB)
    50205069            G2frame.dataFrame.Bind(wx.EVT_MENU, OnRBAssign, id=G2gd.wxID_ASSIGNATMS2RB)
    5021             G2frame.dataFrame.Bind(wx.EVT_MENU, OnRBCopyParms, id=G2gd.wxID_COPYRBPARMS)           
     5070            G2frame.dataFrame.Bind(wx.EVT_MENU, OnRBCopyParms, id=G2gd.wxID_COPYRBPARMS)
     5071            G2frame.dataFrame.Bind(wx.EVT_MENU, OnGlobalResRBTherm, id=G2gd.wxID_GLOBALTHERM)
    50225072            G2frame.dataFrame.Bind(wx.EVT_MENU, OnGlobalResRBRef, id=G2gd.wxID_GLOBALRESREFINE)
    50235073            G2frame.dataFrame.Bind(wx.EVT_MENU, OnRBRemoveAll, id=G2gd.wxID_RBREMOVEALL)
  • trunk/GSASIIplot.py

    r961 r978  
    4040from  OpenGL.GL import *
    4141from OpenGL.GLU import *
    42 from OpenGL.GLUT import *
     42#from OpenGL.GLUT import *
    4343from OpenGL.GLE import *
     44import glFreeType
    4445from matplotlib.backends.backend_wx import _load_bitmap
    4546from matplotlib.backends.backend_wxagg import FigureCanvasWxAgg as Canvas
     
    215216                parent.keyPress(event)
    216217            dlg.Destroy()
     218           
     219def getFont(size=16):
     220    if 'win' in sys.platform:
     221        return glFreeType.font_data ("cour.ttf", size)
     222    elif 'linux' in sys.platform:
     223        return glFreeType.font_data ("cour.ttf", size)    #needs readily available linux font
     224    else:       #Mac?
     225        return glFreeType.font_data ("cour.ttf", size)    #needs readily available Mac font
    217226   
    218227################################################################################
     
    26872696    Bl = np.array([0,0,255])
    26882697    Or = np.array([255,128,0])
     2698    our_font = getFont()
    26892699    uBox = np.array([[0,0,0],[1,0,0],[1,1,0],[0,1,0],[0,0,1],[1,0,1],[1,1,1],[0,1,1]])
    26902700    uEdges = np.array([
     
    32983308        glColor3fv(color)
    32993309        glRasterPos3f(0,0,0)
    3300         for c in list(label):
    3301             glutBitmapCharacter(GLUT_BITMAP_8_BY_13,ord(c))
     3310        our_font.glPrint(300,300,label)
     3311#        for c in list(label):
     3312#            glutBitmapCharacter(GLUT_BITMAP_8_BY_13,ord(c))
    33023313        glEnable(GL_LIGHTING)
    33033314        glPopMatrix()
     
    36033614    uEdges = np.array([[uBox[0],uBox[1]],[uBox[0],uBox[2]],[uBox[0],uBox[3]]])
    36043615    uColors = [Rd,Gr,Bl]
     3616    our_font = getFont()
    36053617    if rbType == 'Vector':
    36063618        atNames = [str(i)+':'+Ty for i,Ty in enumerate(rbData['rbTypes'])]
     
    37773789        glColor3f(1.0,1.0,1.0)
    37783790        glRasterPos3f(0,0,0)
    3779         for c in list(label):
    3780             glutBitmapCharacter(GLUT_BITMAP_8_BY_13,ord(c))
     3791        our_font.glPrint(0,0,label)
     3792#        for c in list(label):
     3793#            glutBitmapCharacter(GLUT_BITMAP_8_BY_13,ord(c))
    37813794        glEnable(GL_LIGHTING)
    37823795        glPopMatrix()
  • trunk/fsource/mcsasubs/DOLLASE.FOR

    r971 r978  
    99!CALLING ARGUMENTS:
    1010
    11       REAL*4        CA                  !Cos(alpha)**2
    12       REAL*4        RAT                 !PO ellipsoid axis ratio
    13       REAL*4        CORR                !March-Dollase function
     11      REAL*8        CA                  !Cos(alpha)**2
     12      REAL*8        RAT                 !PO ellipsoid axis ratio
     13      REAL*8        CORR                !March-Dollase function
    1414
    1515!INCLUDE STATEMENTS:
     
    1717!LOCAL VARIABLES:
    1818
    19       REAL*4        SA                  !Sin(alpha)**2
    20       REAL*4        A                   !Intermediate value
     19      REAL*8        SA                  !Sin(alpha)**2
     20      REAL*8        A                   !Intermediate value
    2121
    2222!SUBROUTINES CALLED:
  • trunk/fsource/mcsasubs/mcsasfcalc.for

    r971 r978  
    44      LOGICAL*4 INV
    55      INTEGER*4 NTD,MUL,NFFS,NUNIQ,I,J,K,TDATA(0:NTD-1)
    6       REAL*4 XDATA(0:3*NTD-1),UNIQ(0:3*NUNIQ-1)
    7       REAL*4 MDATA(0:NTD-1),FFS(0:NFFS-1)
    8       REAL*4 ICALC,PHI(0:NUNIQ-1)
    9       REAL*4 PHASE,FF,FAS,FBS,TWOPI
     6      REAL*8 XDATA(0:3*NTD-1),UNIQ(0:3*NUNIQ-1)
     7      REAL*8 MDATA(0:NTD-1),FFS(0:NFFS-1)
     8      REAL*8 ICALC,PHI(0:NUNIQ-1)
     9      REAL*8 PHASE,FF,FAS,FBS,TWOPI
    1010
    1111      TWOPI = 8.0*ATAN(1.0)
  • trunk/fsource/mcsasubs/mdcalc.for

    r972 r978  
    22
    33      INTEGER*4 NUNIQ
    4       REAL*4 MDVAL,MDAXIS(0:2),UNIQ(0:3*NUNIQ-1),G(3,3),MDCORR
    5       REAL*4 SUMMD
     4      REAL*8 MDVAL,MDAXIS(0:2),UNIQ(0:3*NUNIQ-1),G(3,3),MDCORR
     5      REAL*8 SUMMD
    66
    77      SUMMD = FLOAT(NUNIQ)
  • trunk/fsource/mcsasubs/prodvmv.for

    r972 r978  
    55! ROUTINE TO COMPUTE THE DOT PRODUCT OF TWO 3 VECTORS
    66
    7       REAL          X(3),Y(3),A(3,3),PRODVMV
     7      REAL*8        X(3),Y(3),A(3,3),PRODVMV
    88
    99      T1 = 0.0
  • trunk/fsource/pypowder.for

    r972 r978  
    196196
    197197      INTEGER*4 NUNIQ
    198       REAL*4 MDVAL,MDAXIS(0:2),UNIQ(0:3*NUNIQ-1),G(3,3),MDCORR
     198      REAL*8 MDVAL,MDAXIS(0:2),UNIQ(0:3*NUNIQ-1),G(3,3),MDCORR
    199199
    200200      CALL MDCALC(MDVAL,MDAXIS,G,NUNIQ,UNIQ,MDCORR)
     
    225225      LOGICAL*4 INV
    226226      INTEGER*4 NTD,MUL,NFFS,NUNIQ,TDATA(0:NTD-1)
    227       REAL*4 XDATA(0:3*NTD-1),UNIQ(0:3*NUNIQ-1)
    228       REAL*4 MDATA(0:NTD-1),FFS(0:NFFS-1)
    229       REAL*4 ICALC,PHI(0:NUNIQ-1)
     227      REAL*8 XDATA(0:3*NTD-1),UNIQ(0:3*NUNIQ-1)
     228      REAL*8 MDATA(0:NTD-1),FFS(0:NFFS-1)
     229      REAL*8 ICALC,PHI(0:NUNIQ-1)
    230230
    231231      CALL MCSASFCALC(INV,NTD,TDATA,MDATA,XDATA,MUL,NFFS,FFS,
     
    260260      LOGICAL*4 INV
    261261      INTEGER*4 NTD,MUL,NFFS,NUNIQ,TDATA(0:NTD-1)
    262       REAL*4 XDATA(0:3*NTD-1),UNIQ(0:3*NUNIQ-1)
    263       REAL*4 MDATA(0:NTD-1),FFS(0:NFFS-1)
    264       REAL*4 ICALC,PHI(0:NUNIQ-1),MDVAL,MDAXIS(0:2),G(3,3)
    265       REAL*4 MDCORR
     262      REAL*8 XDATA(0:3*NTD-1),UNIQ(0:3*NUNIQ-1)
     263      REAL*8 MDATA(0:NTD-1),FFS(0:NFFS-1)
     264      REAL*8 ICALC,PHI(0:NUNIQ-1),MDVAL,MDAXIS(0:2),G(3,3)
     265      REAL*8 MDCORR
    266266
    267267      CALL MCSASFCALC(INV,NTD,TDATA,MDATA,XDATA,MUL,NFFS,FFS,
Note: See TracChangeset for help on using the changeset viewer.