Talk:Unit cell

From GISAXS
Jump to: navigation, search

Extra math expressions

A given real-space cubic lattice will have dimensions:

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \left(a,b,c\right)}

Such that the position of any particular cell within the infinite lattice is:

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mathbf{r}_{hkl} = \left\langle ah,bk,cl\right\rangle }

Where h, k, and l are indices. The corresponding inverse-space lattice would be:

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \mathbf{q}_{hkl} = 2\pi \left\langle \frac{h}{a} , \frac{k}{b} , \frac{l}{c} \right\rangle }
Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle q_{hkl} = 2\pi \sqrt{ \left( \frac{h}{a} \right)^2 + \left( \frac{k}{b} \right)^2 + \left( \frac{l}{c} \right)^2 } }

In the case where Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle a=b=c} :

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \begin{alignat}{2} q_{hkl} & = 2\pi \sqrt{ \left( \frac{h}{a} \right)^2 + \left( \frac{k}{a} \right)^2 + \left( \frac{l}{a} \right)^2 } \\ & = \frac{2\pi}{a} \sqrt{ h^2 + k^2 + l^2 } \end{alignat} }

Vectors

There are many equivalent ways to define/construct the Cartesian basis for the unit cell in real-space. The unit cell vectors can be written as:

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \begin{array}{l} \mathbf{a} = \begin{bmatrix} a \\ 0 \\ 0 \end{bmatrix} \\ \mathbf{b} = \begin{bmatrix} b \cos{\gamma} \\ b \sin{\gamma} \\ 0 \end{bmatrix} \\ \mathbf{c} = \begin{bmatrix} c \sin{\theta_c} \cos{\phi_c} \\ c \sin{\theta_c} \sin{\phi_c} \\ c \cos{\theta_c} \end{bmatrix} = \begin{bmatrix} c \cos{\beta} \\ c \frac{ \cos{\alpha} - \cos{\beta}\cos{\gamma} }{\sin{\gamma}} \\ c \sqrt{ 1 - \cos^2{\beta} - \left( \frac{\cos{\alpha} - \cos{\beta}\cos{\gamma}}{\sin{\gamma}} \right)^2 } \end{bmatrix} \end{array} }

According to this, the vectors can be written as:

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \begin{array}{l} \mathbf{a} = \begin{bmatrix} a \\ 0 \\ 0 \end{bmatrix} \\ \mathbf{b} = \begin{bmatrix} b \cos{\gamma} \\ b \sin{\gamma} \\ 0 \end{bmatrix} \\ \mathbf{c} = \begin{bmatrix} c \cos{\beta} \\ c_y \\ c_z \\ \end{bmatrix} = \begin{bmatrix} c \cos{\beta} \\ \frac{c}{\sin \gamma} \left( \cos \alpha - \cos \beta \cos \gamma \right) \\ \frac{c}{\sin \gamma} \sqrt{ 1 - \cos^2 \alpha - \cos^2 \beta - \cos^2 \gamma + 2 \cos \alpha \cos \beta \cos \gamma } \\ \end{bmatrix} \end{array} }

which is mathematically equivalent.

According to:

The vectors are written as:

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \begin{array}{l} \mathbf{a} = \begin{bmatrix} a \\ 0 \\ 0 \end{bmatrix} \\ \mathbf{b} = \begin{bmatrix} b \cos{\gamma} \\ b \sin{\gamma} \\ 0 \end{bmatrix} \\ \mathbf{c} = \begin{bmatrix} c \cos{\beta} \\ -c \sin \beta \cos \alpha^{*} \\ \frac{1}{c^{*}} \\ \end{bmatrix} = \begin{bmatrix} c \cos{\beta} \\ c \frac{\cos\alpha -\cos\beta \cos\gamma }{\sin\gamma} \\ \frac{c}{\sin\gamma} \sqrt{1 + 2 \cos\alpha\cos\beta\cos\gamma - \cos^2 \alpha - \cos^2\beta -\cos^2\gamma}\\ \end{bmatrix} \end{array} }

This is, again, an equivalent expression. The equivalence can be show by:

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \begin{alignat}{2} c_z &= 1/c^{*} \\ &= \frac{c}{\sin\gamma} \sqrt{1 + 2 \cos\alpha\cos\beta\cos\gamma - \cos^2 \alpha - \cos^2\beta -\cos^2\gamma}\\ &= c \sqrt{\frac{1 + 2 \cos\alpha\cos\beta\cos\gamma - \cos^2 \alpha - \cos^2\beta -\cos^2\gamma}{\sin^2\gamma} }\\ &= c \sqrt{\frac{1}{\sin^2\gamma} + \frac{2 \cos\alpha\cos\beta\cos\gamma}{\sin^2\gamma} - \frac{\cos^2 \alpha}{\sin^2\gamma} - \frac{\cos^2\beta}{\sin^2\gamma} - \frac{\cos^2\gamma}{\sin^2\gamma} }\\ &= c \sqrt{\frac{1-\cos^2\gamma}{\sin^2\gamma} + \frac{2 \cos\alpha\cos\beta\cos\gamma}{\sin^2\gamma} - \frac{\cos^2 \alpha}{\sin^2\gamma} - \frac{\cos^2\beta}{\sin^2\gamma} }\\ &= c \sqrt{\frac{\sin^2\gamma}{\sin^2\gamma} + \frac{2 \cos\alpha\cos\beta\cos\gamma}{\sin^2\gamma} - \frac{\cos^2 \alpha}{\sin^2\gamma} - \frac{\cos^2\beta(\sin^2\gamma+\cos^2\gamma)}{\sin^2\gamma} }\\ &= c \sqrt{1 + \frac{2 \cos\alpha\cos\beta\cos\gamma}{\sin^2\gamma} - \frac{\cos^2 \alpha}{\sin^2\gamma} - \frac{\cos^2\beta\sin^2\gamma}{\sin^2\gamma} -\frac{\cos^2\beta\cos^2\gamma}{\sin^2\gamma} }\\ &= c \sqrt{1 - \cos^2\beta \frac{\sin^2\gamma}{\sin^2\gamma} - \frac{\cos^2 \alpha}{\sin^2\gamma} + \frac{2 \cos\alpha\cos\beta\cos\gamma}{\sin^2\gamma} -\frac{\cos^2\beta\cos^2\gamma}{\sin^2\gamma} }\\ &= c \sqrt{1 - \cos^2\beta - \frac{1}{\sin^2\gamma}\left( \cos^2 \alpha - 2 \cos\alpha\cos\beta\cos\gamma + \cos^2\beta\cos^2\gamma \right)}\\ &= c \sqrt{1 - \cos^2\beta - \frac{1}{\sin^2\gamma}\left( \cos\alpha - \cos\beta\cos\gamma\right)\left( \cos\alpha - \cos\beta\cos\gamma\right)}\\ &= c \sqrt{1 - \cos^2\beta - \left(\frac{ \cos\alpha - \cos\beta\cos\gamma}{\sin\gamma}\right)^2 }\\ \end{alignat} }

TBD: Reciprocal vector components

Failed to parse (MathML with SVG or PNG fallback (recommended for modern browsers and accessibility tools): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle \begin{alignat}{2} \mathbf{u} & = ... \\ \mathbf{v} & = ... \\ \mathbf{w} & = \frac{\mathbf{a}\times\mathbf{b}}{\mathbf{a}\cdot (\mathbf{b}\times\mathbf{c}) } \\ & =\frac{1}{V} \mathbf{a}\times\mathbf{b} \\ & =\frac{1}{V} \begin{bmatrix} 0 \\ 0 \\ a b \sin{\gamma} \end{bmatrix} \\ \end{alignat} }

Calculate q_hkl generally

    def q_hkl(self, h, k, l):
        """Determines the position in reciprocal space for the given reflection."""
        
        # The 'unitcell' coordinate system assumes:
        #  a-axis lies along x-axis
        #  b-axis is in x-y plane
        #  c-axis is vertical (or at a tilt, depending on beta)
        
        # Convert from (unitcell) Cartesian to (unitcell) fractional coordinates
        reduced_volume = sqrt( 1 - (cos(self.alpha))**2 - (cos(self.beta))**2 - (cos(self.gamma))**2 + 2*cos(self.alpha)*cos(self.beta)*cos(self.gamma) )
        #volume = reduced_volume*self.lattice_spacing_a*self.lattice_spacing_b*self.lattice_spacing_c
        a = ( self.lattice_spacing_a , \
                0.0 , \
                0.0  )
        b = ( self.lattice_spacing_b*cos(self.gamma) , \
                self.lattice_spacing_b*sin(self.gamma) , \
                0.0 )
        c = ( self.lattice_spacing_c*cos(self.beta) , \
                self.lattice_spacing_c*( cos(self.alpha) - cos(self.beta)*cos(self.gamma) )/( sin(self.gamma) ) , \
                self.lattice_spacing_c*reduced_volume/( sin(self.gamma) ) )
        
        # Compute (unitcell) reciprocal-space lattice vectors
        volume = np.dot( a, np.cross(b,c) )
        u = np.cross( b, c ) / volume # Along qx
        v = np.cross( c, a ) / volume # Along qy
        w = np.cross( a, b ) / volume # Along qz
        
        qhkl_vector = 2*pi*( h*u + k*v + l*w )
        qhkl = sqrt( qhkl_vector[0]**2 + qhkl_vector[1]**2 + qhkl_vector[2]**2 )
        
        return (qhkl, qhkl_vector)

                
        
    def q_hkl_length(self, h, k, l):
        
        qhkl, qhkl_vector = self.q_hkl(h,k,l)
        #qhkl = sqrt( qhkl_vector[0]**2 + qhkl_vector[1]**2 + qhkl_vector[2]**2 )
        
        return qhkl