Esempio n. 1
0
def get_reduced_bases(lattice, method='niggli', tolerance=1e-5):
    """Search kinds of shortest basis vectors

    Parameters
    ----------
    lattice : ndarray or list of list
        Basis vectors by row vectors, [a, b, c]^T
        shape=(3, 3)
    method : str
        delaunay: Delaunay reduction
        niggli: Niggli reduction
    tolerance : float
        Tolerance to find shortest basis vecotrs

    Returns
    --------
    Reduced basis as row vectors, [a_red, b_red, c_red]^T
        dtype='double'
        shape=(3, 3)
        order='C'
    
    References
    ---------
    [1] https://nvlpubs.nist.gov/nistpubs/sp958-lide/188-190.pdf
    
    """

    if method == 'niggli':
        return spg.niggli_reduce(lattice, eps=tolerance)
    else:
        return spg.delaunay_reduce(lattice, eps=tolerance)
Esempio n. 2
0
def get_reduced_bases(lattice,
                      method='delaunay',
                      tolerance=1e-5):
    """Search kinds of shortest basis vectors

    Parameters
    ----------
    lattice : ndarray or list of list
        Basis vectors by row vectors, [a, b, c]^T
        shape=(3, 3)
    method : str
        delaunay: Delaunay reduction
        niggli: Niggli reduction
    tolerance : float
        Tolerance to find shortest basis vecotrs

    Returns
    --------
    Reduced basis as row vectors, [a_red, b_red, c_red]^T
        dtype='double'
        shape=(3, 3)
        order='C'

    """

    if method == 'niggli':
        return spg.niggli_reduce(lattice, eps=tolerance)
    else:
        return spg.delaunay_reduce(lattice, eps=tolerance)
Esempio n. 3
0
def get_reduced_bases(lattice,
                      method='delaunay',
                      tolerance=1e-5):
    """Search kinds of shortest basis vectors

    Parameters
    ----------
    lattice: ndarray or list of list
        Basis vectors by row vectors, [a, b, c]^T
        shape=(3,3)
    method: str
        delaunay: Delaunay reduction
        niggli: Niggli reduction
    tolerance: float
        Tolerance to find shortest basis vecotrs

    Returns
    --------
    Reduced basis as row vectors, [a_red, b_red, c_red]^T

    """

    if method == 'niggli':
        return spg.niggli_reduce(lattice, eps=tolerance)
    else:
        return spg.delaunay_reduce(lattice, eps=tolerance)
Esempio n. 4
0
def get_reduced_bases(lattice, method='delaunay', tolerance=1e-5):
    """Apply reduction to basis vectors

    args:
        basis as row vectors, [a, b, c]^T
    return:
         reduced basin as row vectors, [a_red, b_red, c_red]^T
    """

    if method == 'niggli':
        return spg.niggli_reduce(lattice, eps=tolerance)
    else:
        return spg.delaunay_reduce(lattice, eps=tolerance)
Esempio n. 5
0
def get_reduced_bases(lattice,
                      method='delaunay',
                      tolerance=1e-5):
    """Apply reduction to basis vectors

    args:
        basis as row vectors, [a, b, c]^T
    return:
         reduced basin as row vectors, [a_red, b_red, c_red]^T
    """

    if method == 'niggli':
        return spg.niggli_reduce(lattice, eps=tolerance)
    else:
        return spg.delaunay_reduce(lattice, eps=tolerance)