• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Python constants.value函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Python中scipy.constants.value函数的典型用法代码示例。如果您正苦于以下问题:Python value函数的具体用法?Python value怎么用?Python value使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了value函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。

示例1: e2pz

def e2pz(w1,w2,th):
	"""
	Calculates the momentum scale and the relativistic Compton cross section 
	correction according to P. Holm, PRA 37, 3706 (1988).
	from KH 29.05.96
	input:
	w1 = incident energy  [keV]
	w2 = scattered energy [keV]
	th = scattering angle [deg]
	returns:
	pz = momentum scale   [a.u.]
	cf = cross section correction factor such that:
	J(pz) = cf * d^2(sigma)/d(w2)*d(Omega) [barn/atom/keV/srad]
	"""
	w1  = np.array(w1)    # make sure arrays are used
	w2  = np.array(w2)           
	m   = constants.value('electron mass energy equivalent in MeV')*1e3 #511.003      # Mass in natural units
	th  = math.radians(th) # th/180.0*np.pi  # Angle to radians
	alp = constants.value('fine-structure constant') #1.0/137.036  # Fine structure constant
	r0  = constants.value('classical electron radius') #2.8179e-15   # Electron radius
	q   = np.sqrt(w1**2 + w2**2-2*w1*w2*np.cos(th))                        # Momentum transfer    
	pz  = q/2.0 - (w1-w2) * np.sqrt(1/4.0 + m**2/(2*w1*w2*(1-np.cos(th)))) # In natural units
	E   = np.sqrt(m**2+pz**2)
	A   = ((w1-w2)*E-w1*w2*(1-np.cos(th)))/q
	D   = (w1-w2*np.cos(th))*A/q
	R   = w1*(E-D)
	R2  = R-w1*w2*(1-np.cos(th))
	chi = R/R2 + R2/R + 2.0*m**2 * (1/R-1/R2) + m**4 * (1/R-1/R2)**2
	cf  = 2.0*w1*q*E/(m**2*r0**2*w2*chi)
	cf  = cf*(1e-28*(m*alp))			                             # Cross section now in barns/atom/keV/srad
	pz  = pz/(m*alp)                                                 # pz to atomic units (a.u.)
	return pz, cf
开发者ID:christophsahle,项目名称:XRStools,代码行数:32,代码来源:xrs_utilities.py


示例2: electrostatic_units

def electrostatic_units(energy):
    """ coefficient to convert to appropriate electrostatic units """
    area = (1 / ((2 * sqrt(2)) ** 2)) * 2 * sqrt(3)
    factor = (1j * ((2 *
              constants.value("Rydberg constant times hc in eV")) ** 5) *
              1e-5 * 2.08e-15 *
            ((constants.value("lattice parameter of silicon") / 1e-10) ** 3))\
              / (area * ((energy) ** 3))
    return factor
开发者ID:almadelia,项目名称:nrc,代码行数:9,代码来源:nrc.py


示例3: loadCIF

    def loadCIF(self,event):
    
        wildcards = 'XRD cifile (*.cif)|*.cif|All files (*.*)|*.*'
        dlg = wx.FileDialog(self, message='Choose CIF',
                           defaultDir=os.getcwd(),
                           wildcard=wildcards, style=wx.FD_OPEN)

        path, read = None, False
        if dlg.ShowModal() == wx.ID_OK:
            read = True
            path = dlg.GetPath().replace('\\', '/')
        dlg.Destroy()
        
        if read:
            cifile = os.path.split(path)[-1]

            try:
                cif = xu.materials.Crystal.fromCIF(path)
            except:
                print('incorrect file format: %s' % os.path.split(path)[-1])
                return

            ## generate hkl list
            hkllist = []
            maxhkl = 8
            for i in range(-maxhkl,maxhkl+1):
                for j in range(-maxhkl,maxhkl+1):
                    for k in range(-maxhkl,maxhkl+1):
                        if i+j+k > 0: # as long as h,k,l all positive, eliminates 0,0,0
                            hkllist.append([i,j,k])
            
            hc = constants.value(u'Planck constant in eV s') * \
                       constants.value(u'speed of light in vacuum') * 1e-3 ## units: keV-m

            if self.wavelength is not None:
                qlist = cif.Q(hkllist)
                Flist = cif.StructureFactorForQ(qlist,(hc/(self.wavelength*(1e-10))*1e3))
            
                Fall = []
                qall = []
                hklall = []
                for i,hkl in enumerate(hkllist):
                    if np.abs(Flist[i]) > 0.01:
                        Fadd = np.abs(Flist[i])
                        qadd = np.linalg.norm(qlist[i])
                        if qadd not in qall and qadd < 6:
                            Fall.extend((0,Fadd,0))
                            qall.extend((qadd,qadd,qadd))
                if np.shape(Fall)[0] > 0:
                    Fall = np.array(Fall)
                    qall = np.array(qall)
                    self.add1Ddata(qall,Fall,name=os.path.split(path)[-1],cif=True)
                else:
                    print('Could not calculate real structure factors.')
            else:
                print('Wavelength/energy must be specified for structure factor calculations.')
开发者ID:bruceravel,项目名称:xraylarch,代码行数:56,代码来源:XRD1Dviewer.py


示例4: __init__

 def __init__(self, frep_MHz = None, n = None):
     if frep_MHz is not None:
         self._frep_MHz = frep_MHz
         if frep_MHz > 1.0e6:
             warnings.warn("frep should be specified in MHz; large value given.")
     if n is not None:
         self.set_NPTS(n)            
     # Constants, moved here so that module runs through Sphynx autodoc when
     # scipy is Mocked out.
     self._c_nmps = constants.value('speed of light in vacuum')*1e9/1e12 # c in nm/ps
     self._c_mks  = constants.value('speed of light in vacuum') # m/s        
开发者ID:DanHickstein,项目名称:PyNLO,代码行数:11,代码来源:PulseBase.py


示例5: __init__

    def __init__(self):
    
        ## Constructor
        dialog = wx.Dialog.__init__(self, None, title='Define wavelength/energy')#,size=(500, 440))
        ## remember: size=(width,height)
        
        panel = wx.Panel(self)
        
        main = wx.BoxSizer(wx.VERTICAL)
        hmain1 = wx.BoxSizer(wx.HORIZONTAL)
        
        #####
        ## Energy or Wavelength
        hmain1 = wx.BoxSizer(wx.HORIZONTAL)
        self.ch_EorL = wx.Choice(panel,choices=['Energy (keV)','Wavelength (A)'])
        self.entr_EorL = wx.TextCtrl(panel)#, size=(110, -1))
 
        self.ch_EorL.Bind(wx.EVT_CHOICE, self.onEorLSel)
 
        hmain1.Add(self.ch_EorL,   flag=wx.RIGHT,  border=8)
        hmain1.Add(self.entr_EorL, flag=wx.RIGHT,  border=8)
        
        #####
        ## OKAY!
        hmain2 = wx.BoxSizer(wx.HORIZONTAL)
        #hlpBtn = wx.Button(panel, wx.ID_HELP    )
        okBtn  = wx.Button(panel, wx.ID_OK      )
        canBtn = wx.Button(panel, wx.ID_CANCEL  )

        #hmain2.Add(hlpBtn,flag=wx.RIGHT,  border=8)
        hmain2.Add(canBtn, flag=wx.RIGHT, border=8) 
        hmain2.Add(okBtn,  flag=wx.RIGHT,  border=8)

        main.Add(hmain1, flag=wx.ALL, border=10) 
        main.Add(hmain2, flag=wx.ALL|wx.ALIGN_RIGHT, border=10) 

        panel.SetSizer(main)

        self.Show()
        ix,iy = panel.GetBestSize()
        self.SetSize((ix+20, iy+20))
        
        ## set default
        self.hc = constants.value(u'Planck constant in eV s') * \
                       constants.value(u'speed of light in vacuum') * 1e-3 ## units: keV-m
        self.energy = 19.0        
        self.wavelength = self.hc/(self.energy)*1e10 ## units: A
        self.ch_EorL.SetSelection(0)
        self.entr_EorL.SetValue(str(self.energy))
开发者ID:bruceravel,项目名称:xraylarch,代码行数:49,代码来源:XRD1Dviewer.py


示例6: convert

def convert():
    """ converts xyz file from angstroms to bohrs """
    conversion_factor = constants.angstrom / constants.value("Bohr radius")
    xx_coord, yy_coord, zz_coord = genfromtxt(XYZ_CONVERT, unpack="True")
    xyz = column_stack((xx_coord, yy_coord, zz_coord))
    new_xyz = xyz * 1/conversion_factor
    savetxt(XYZ_CONVERT_OUT, new_xyz, fmt=('%3.15f'), delimiter=' ')
开发者ID:almadelia,项目名称:nrc,代码行数:7,代码来源:disorder.py


示例7: __init__

 def __init__(self,Ts,qE0T,phis,lamb,length=22.e-3):
     self.Ts       = Ts
     self.Tsf      = Ts     # final kin. energy
     self.qE0T     = qE0T
     self.phis     = phis   # rad
     self.lamb     = lamb
     self.length   = length
     self.nbslices = 10     # nbof slices
     dl            = length/self.nbslices
     m0c2          = C.value('proton mass energy equivalent in MeV')  # MeV
     g             = 1.+Ts/m0c2   # Lorentz gamma
     bg            = sqrt(g**2-1.)
     beta          = bg/g         # Lorentz beta
     # phases,energies & maps of slices
     phases    = []
     dtks      = []
     self.maps = []
     for i in range(self.nbslices+1):
         phase = self.phis+2*pi/(beta*lamb)*(i*dl-self.length/2.)
         phases.append(phase)
         dtk = qE0T*dl*cos(phase)
         dtks.append(dtk)
     for i in range(self.nbslices):
         dgdp,f,pot,ham = Hamiltonian(self.Tsf,qE0T,phases[i],lamb)
         self.maps.append(Order3Map(+dl,dgdp,f))
         self.Tsf += dtks[i]
     self.Tsf -= dtks[i]     # one too much
开发者ID:wdklotz,项目名称:simulinac,代码行数:27,代码来源:long_dyn_hokey.py


示例8: Hamiltonian

def Hamiltonian(Ts,qE0T,phis,lamb):       
    """ 
        kanonische Koordinaten: p (aka w), x (aka phi)
        unabhaegige Variable: t (aka s)
        Hamiltonian H(p,x,t) = g(p) + V(x,t)
        g = A*p**2/2
        V = B*(sin(x)-x*cos(phis))
        f = -dV/dx = -B*(cos(x)-cos(phis))
        dgdp = dH/dp = A*p
    """
    # closure
    m0c2 = C.value('proton mass energy equivalent in MeV')  # MeV
    g    = 1+Ts/m0c2
    bgs  = sqrt(g**2-1.)
    A    = 2.*pi/bgs**3/lamb
    B    = qE0T/m0c2
    # potential
    def V(x,B=B,phis=phis):
        return B*(sin(x)-x*cos(phis))
    # hamiltonian
    def H(p,x,B=B,phis=phis):
        return A*p**2+V(x)
    # dH/dp
    def dgdp(p,A=A):
        return A*p
    # -dV/dx
    def f(x,t,B=B,phis=phis):
        return -B*(cos(x)-cos(phis))

    return dgdp,f,V,H
开发者ID:wdklotz,项目名称:simulinac,代码行数:30,代码来源:long_dyn_hokey.py


示例9: freq_units

def freq_units(units):
    """
    Returns conversion factor from THz to the requred units and the label in the form of a namedtuple
    Accepted values: thz, ev, mev, ha, cm-1, cm^-1
    """

    d = {"thz": FreqUnits(1, "THz"),
         "ev": FreqUnits(const.value("hertz-electron volt relationship") * const.tera, "eV"),
         "mev": FreqUnits(const.value("hertz-electron volt relationship") * const.tera / const.milli, "meV"),
         "ha": FreqUnits(const.value("hertz-hartree relationship") * const.tera, "Ha"),
         "cm-1": FreqUnits(const.value("hertz-inverse meter relationship") * const.tera * const.centi, "cm^{-1}"),
         'cm^-1': FreqUnits(const.value("hertz-inverse meter relationship") * const.tera * const.centi, "cm^{-1}")
         }
    try:
        return d[units.lower().strip()]
    except KeyError:
        raise KeyError('Value for units `{}` unknown\nPossible values are:\n {}'.format(units, list(d.keys())))
开发者ID:albalu,项目名称:pymatgen,代码行数:17,代码来源:plotter.py


示例10: rotational_constants

 def rotational_constants(self, units='ghz'):
     """Compute the rotational constants in 1/cm or GHz."""
     choices = ('invcm', 'ghz')
     units = units.lower()
     if units not in choices:
         raise ValueError("Invalid units, pick one of {}".format(choices))
     principal_moments = self.principal_moments_of_inertia()[0]
     _check_scipy(_found_scipy)
     bohr2ang = spc.value('atomic unit of length') / spc.angstrom
     xfamu = 1 / spc.value('electron mass in u')
     xthz = spc.value('hartree-hertz relationship')
     rotghz = xthz * (bohr2ang ** 2) / (2 * xfamu * spc.giga)
     if units == 'ghz':
         conv = rotghz
     if units == 'invcm':
         ghz2invcm = spc.giga * spc.centi / spc.c
         conv = rotghz * ghz2invcm
     return conv / principal_moments
开发者ID:cclib,项目名称:cclib,代码行数:18,代码来源:nuclear.py


示例11: water_term_pol

def water_term_pol(B0, T):
    gamma = constants.value('proton gyromag. ratio')
    hbar = constants.hbar
    k = constants.k

    larmor_w = gamma * B0
    pol = hbar * larmor_w
    pol /= (2 * k * T)
    return pol
开发者ID:serjinio,项目名称:python_tutors,代码行数:9,代码来源:buildups.py


示例12: _read_funcfl_file

    def _read_funcfl_file(self):
        rphi = np.sqrt(27.2*0.529)
        eV2J = spc.value('electron volt')

        print('Reading EAM potential in single-element (funcfl) format')
        f = open(self.filename, 'r')

        line = f.readline()  # comment line
        self.atomic_number = int(f.readline().split()[0])

        line = f.readline().split()
        self.nrho    =   int(line[0]) 
        self.drho    = float(line[1])
        self.nr      =   int(line[2])
        self.dr      = float(line[3])
        self.cutoff  = float(line[4])

        self.fembed  = np.zeros((self.nrho,2))
        self.effchg  = np.zeros((self.nr,2))
        self.fdens   = np.zeros((self.nr,2))

        # read embedding functional
        line    = f.readline().split()
        n_col   = len(line)
        n_lines = int(self.nrho/self.ncol)-1

        i_rows = 0
        while i_rows < self.nrho:
            for val in line:
                self.fembed[i_rows,0] = i_rows*self.drho
                self.fembed[i_rows,1] = float(val)
                i_rows += 1
                if i_rows >= self.nrho: 
                    break
            line=f.readline().split()
        
        # read charge function
        i_rows = 0
        while i_rows < self.nr:
            for val in line:
                self.effchg[i_rows,0]=i_rows*self.dr
                self.effchg[i_rows,1]=float(val)*rphi/(1.e-30+self.effchg[self.i_rows,0])
                i_rows += 1
                if i_rows >= self.nr: 
                    break
            line=f.readline().split()

        # read density function
        i_rows = 0
        while i_rows < self.nr:
            for val in line:
                self.fdens[i_rows,0]=i_rows*self.dr
                self.fdens[i_rows,1]=float(val)
                i_rows += 1
                if i_rows >= self.nr:
                    break
            line=f.readline().split()
开发者ID:eragasa,项目名称:pyflamestk,代码行数:57,代码来源:eam_tools.py


示例13: __init__

    def __init__(self, N=DEFAULT_N):
        """
        Parameters
        ----------
        N : int
            the number of grid points, it should be a power of 2

        Examples
        --------
        >>> from generic_potential import GenericPotential
        >>> device = GenericPotential(1024)
        """

        # default grid size
        self.N = N
        self.hN = int(self.N/2) # half grid
        self.points_before = int(self.N/2)
        self.points_after = int(self.N/2)

        # useful atomic unities
        self.au_l    = cte.value('atomic unit of length')
        self.au_t    = cte.value('atomic unit of time')
        self.au_e    = cte.value('atomic unit of energy')
        self.au_v    = cte.value('atomic unit of electric potential')
        self.hbar_au = 1.0
        self.me_au   = 1.0

        # other useful constants
        self.ev = cte.value('electron volt')
        self.c  = cte.value('speed of light in vacuum') # m/s
        self.me = cte.value('electron mass')
        self.q  = cte.value('elementary charge')

        # relations of interest
        self.au2ev  = self.au_e / self.ev
        self.au2ang = self.au_l / 1e-10

        # specific for default quantum harmonic oscillator
        self.l     = 0.0000081 # m
        self.f     = self.c / self.l # Hz
        self.w     = 2.0 * np.pi * self.f
        self.z_m   = np.linspace(-5e-9,5e-9, self.N)
        self.v_j   = 0.5 * self.me * self.z_m**2 * self.w**2
        self.z_nm  = self.z_m / 1e-9
        self.v_ev  = self.v_j / self.ev
        self.m_eff = np.ones(self.z_nm.size)

        # set default time increment
        self._set_dt()

        # adjust grid
        self.normalize_device()
开发者ID:thiagolcmelo,项目名称:msc,代码行数:52,代码来源:generic_potential.py


示例14: onLoadCIF

    def onLoadCIF(self, event=None):

        wildcards = 'CIF file (*.cif)|*.cif|All files (*.*)|*.*'
        dlg = wx.FileDialog(self, message='Choose CIF file',
                           defaultDir=os.getcwd(),
                           wildcard=wildcards, style=wx.FD_OPEN)

        path, read = None, False
        if dlg.ShowModal() == wx.ID_OK:
            read = True
            path = dlg.GetPath().replace('\\', '/')
        dlg.Destroy()

        if read:
            cry_strc = struc_from_cif(path)

            if cry_strc:
                hc = constants.value(u'Planck constant in eV s') * \
                         constants.value(u'speed of light in vacuum') * 1e-3 ## units: keV-m
                energy = hc/(self.xrd.wavelength) ## units: keV
                q,F = calc_all_F(cry_strc,energy,maxhkl=10,qmax=5)

                #self.plot1Dxrd(xrddata, show_xrd2=True)
                print('Values are calculated; plotting not yet implemented.')
开发者ID:bruceravel,项目名称:xraylarch,代码行数:24,代码来源:xrddisplay.py


示例15: principal_moments_of_inertia

 def principal_moments_of_inertia(self, units='amu_bohr_2'):
     """Return the principal moments of inertia in 3 kinds of units:
     1. [amu][bohr]^2
     2. [amu][angstrom]^2
     3. [g][cm]^2
     and the principal axes.
     """
     choices = ('amu_bohr_2', 'amu_angstrom_2', 'g_cm_2')
     units = units.lower()
     if units not in choices:
         raise ValueError("Invalid units, pick one of {}".format(choices))
     moi_tensor = self.moment_of_inertia_tensor()
     principal_moments, principal_axes = np.linalg.eigh(moi_tensor)
     if units == 'amu_bohr_2':
         conv = 1
     if units == 'amu_angstrom_2':
         _check_scipy(_found_scipy)
         bohr2ang = spc.value('atomic unit of length') / spc.angstrom
         conv = bohr2ang ** 2
     if units == 'g_cm_2':
         _check_scipy(_found_scipy)
         amu2g = spc.value('unified atomic mass unit') * spc.kilo
         conv = amu2g * (spc.value('atomic unit of length') * spc.centi) ** 2
     return conv * principal_moments, principal_axes
开发者ID:cclib,项目名称:cclib,代码行数:24,代码来源:nuclear.py


示例16: test1

def test1(Ts,qE0T,phis,lamb):
    print("----------------------Test 1--------------")
    # prep plot
    m0c2   = C.value('proton mass energy equivalent in MeV')  # MeV
    phimin = radians(-60.)
    phimax = -phimin
    # dphi = (phimax-phimin)/20.
    wmin = -0.05/m0c2
    wmax = +0.05/m0c2
    # dw = (wmax-wmin)/20.
    pou    = []
    pin    = []
    nbprtcls  = 5000
    nbgaps    = 40
    # loop particles
    for j in range(nbprtcls):
        # x0 = phi0 = rn.uniform(phimin,phimax)
        # p0 = w0   = rn.uniform(wmin,wmax)
        x0 = phi0 = rn.gauss(phis,2*phis)
        p0 = w0   = rn.gauss(0,2*wmax)
        t0 = 0
        v = (p0,x0,t0)
        pin.append(v)
        gap  = Gap(Ts,qE0T,phis,lamb)
        # loop gaps
        for i in range(nbgaps):
            v = gap.map(v)
            # increase particle impulse for next gap
            gap(gap.Tsf)
        pou.append(v)
    print("Ts {}".format(gap.Tsf))
 
    # plot results
    win   = [x[0]*m0c2     for x in pin]
    phin  = [degrees(x[1]) for x in pin]
    wf    = [x[0]*m0c2     for x in pou]
    phif  = [degrees(x[1]) for x in pou]
 
    ax1   = plt.subplot(121)
    plt.xlim([-100,200])
    plt.ylim([-0.4,1.2])
    ax1.autoscale(enable=False)
    ax1.scatter(phin,win,s=1,c='r')

    ax2   = plt.subplot(122,sharex=ax1,sharey=ax1)
    ax2.autoscale(enable=False)
    ax2.scatter(phif,wf,s=1,c='r')
    plt.show()
开发者ID:wdklotz,项目名称:simulinac,代码行数:48,代码来源:long_dyn_hokey.py


示例17: axis_conversion

    def axis_conversion(self, data, unit, name):
        # Converts the x-axis units to a format Mantid accepts,
        # frequency to wavenumber, time to time of flight

        logger.debug('Axis for conversion: name={0}, unit={1}'.format(name, unit))
        if name == 'frequency' and unit == 'THz':
            logger.information('Axis {0} will be converted to wave number in cm^-1'.format(name))
            unit = 'Energy_inWavenumber'
            data *= sc.tera
            data *= sc.value('Planck constant in eV s')
            data *= 8065.54
        elif name == 'time' and unit == 'ps':
            logger.information('Axis {0} will be converted to time in microsecond'.format(name))
            unit = 'TOF'
            data *= sc.micro
        else:
            unit = 'Empty'
        return (data, unit, name)
开发者ID:mantidproject,项目名称:mantid,代码行数:18,代码来源:LoadNMoldyn4Ascii1D.py


示例18: test0

def test0(Ts,qE0T,phis,lamb):
    print("----------------------Test 0--------------")
    m0c2 = C.value('proton mass energy equivalent in MeV')  # MeV
    dgdp,dfdx,pot,ham  = Hamiltonian(Ts,qE0T,phis,lamb)
    dt = 1.e-2
    map3p = Order3Map(+dt,dgdp,dfdx)
    map3m = Order3Map(-dt,dgdp,dfdx)

    ax = plt.subplot()
    phimin = 1.5*phis
    phimax = -phis
    dphi = (phimax-phimin)/20.
    phi0 = phimin

    wmin = -0.05/m0c2
    wmax = +0.05/m0c2
    dw = (wmax-wmin)/20.
    w0 = wmin
    # while phi0 <= phimax:
    for i in range(50):
        # phi0 = rn.gauss(degrees(phis),1.*degrees(abs(phis)))
        phi0 = rn.uniform(phimin,phimax)
        w0   = rn.uniform(wmin,wmax)

        t0 = 0.
        p0 = w0
        x0 = phi0
        vp = (p0,x0,t0)
        vm = (p0,x0,t0)
        pou = [vp]
        for step in range(300):
            vp = map3p.map(vp)
            vm = map3m.map(vm)
            pou.append(vp)
            pou.append(vm)
        # phi0 += dphi
        w   = [x[0]*m0c2     for x in pou]
        phi = [degrees(x[1]) for x in pou]
        plt.xlim([-60,60])
        plt.ylim([-0.1,0.1])
        plt.autoscale(enable=False,axis='both')
        ax.scatter(phi,w,s=1,c='r')
    plt.show()
开发者ID:wdklotz,项目名称:simulinac,代码行数:43,代码来源:long_dyn_hokey.py


示例19: _axis_conversion

    def _axis_conversion(self, data, unit, name):
        """
        Converts an axis to a Mantid axis type (possibly performing a unit
        conversion).

        @param data The axis data as Numpy array
        @param unit The axis unit as read from the file
        @param name The axis name as read from the file
        @return Tuple containing updated axis details
        """
        logger.debug('Axis for conversion: name={0}, unit={1}'.format(name, unit))

        # Q (nm**-1) to Q (Angstrom**-1)
        if name.lower() == 'q' and unit.lower() == 'inv_nm':
            logger.information('Axis {0} will be converted to Q in Angstrom**-1'.format(name))
            unit = 'MomentumTransfer'
            data /= sc.nano # nm to m
            data *= sc.angstrom # m to Angstrom

        # Frequency (THz) to Energy (meV)
        elif name.lower() == 'frequency' and unit.lower() == 'thz':
            logger.information('Axis {0} will be converted to energy in meV'.format(name))
            unit = 'Energy'
            data *= sc.tera # THz to Hz
            data *= sc.value('Planck constant in eV s') # Hz to eV
            data /= sc.milli # eV to meV

        # Time (ps) to TOF (s)
        elif name.lower() == 'time' and unit.lower() == 'ps':
            logger.information('Axis {0} will be converted to time in microsecond'.format(name))
            unit = 'TOF'
            data *= sc.micro # ps to us

        # No conversion
        else:
            unit = 'Empty'

        return (data, unit, name)
开发者ID:mducle,项目名称:mantid,代码行数:38,代码来源:LoadNMoldyn4Ascii.py


示例20: disorder

def disorder():
    """ extracts selected rows from input, converts to matrix,
    disorders, and returns matrix which is written to file """
    count = 1
    chosen = [x - 1 for x in ATOMS_DISORDERED]
    blbohr = BOND_LENGTH * constants.angstrom / constants.value("Bohr radius")
    xyz = loadtxt(XYZ_DISORDER)
    data = xyz[chosen]
    new_xyz = xyz.copy()
    final = zip(data, DISORDER_AMOUNT)
    while count <= REPEAT:
        for atom in range(0, len(final)):
            polar = random() * constants.pi
            azimuthal = 2 * polar
            new_xyz[chosen[atom], 0] = final[atom][0][0] + (final[atom][1] *
                    (blbohr / 2) * sin(polar) * cos(azimuthal))
            new_xyz[chosen[atom], 1] = final[atom][0][1] + (final[atom][1] *
                    (blbohr / 2) * sin(polar) * sin(azimuthal))
            new_xyz[chosen[atom], 2] = final[atom][0][2] + (final[atom][1] *
                    (blbohr / 2) * cos(polar))
            out = "data/disorder/si_h_14_" + str(count).zfill(3) + ".xyz"
            savetxt(out, new_xyz, fmt=('%5.14e'), delimiter='\t')
        count += 1
开发者ID:almadelia,项目名称:nrc,代码行数:23,代码来源:disorder.py



注:本文中的scipy.constants.value函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Python fftpack.dct函数代码示例发布时间:2022-05-27
下一篇:
Python vq.whiten函数代码示例发布时间:2022-05-27
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap