def get_default_opts(cyclic=False):
    """Get the default advanced settings for DMRG.

    Returns
    -------
    default_sweep_sequence : str
        How to sweep. Will be repeated, e.g. "RRL" -> RRLRRLRRL..., default: R.
    bond_compress_method : {'svd', 'eig', ...}
        Method used to compress sites after update.
    bond_compress_cutoff_mode : {'sum2', 'abs', 'rel'}
        How to perform compression truncation.
    bond_expand_rand_strength : float
        In DMRG1, strength of randomness to expand bonds with. Needed to avoid
        singular matrices after expansion.
    local_eig_tol : float
        Relative tolerance to solve inner eigenproblem to, larger = quicker but
        more unstable, default: 1e-3. Note this can be much looser than the
        overall tolerance, the starting point for each local solve is the
        previous state, and the overall accuracy comes from multiple sweeps.
    local_eig_ncv : int
        Number of inner eigenproblem lanczos vectors. Smaller can mean quicker.
    local_eig_backend : {None, 'AUTO', 'SCIPY', 'SLEPC'}
        Which to backend to use for the inner eigenproblem. None or 'AUTO' to
        choose best. Generally ``'SLEPC'`` best if available for large
        problems, but it can't currently handle ``LinearOperator`` Neff as well
        as ``'lobpcg'``.
    local_eig_maxiter : int
        Maximum number of inner eigenproblem iterations.
    local_eig_ham_dense : bool
        Force dense representation of the effective hamiltonian.
    local_eig_EPSType : {'krylovschur', 'gd', 'jd', ...}
        Eigensovler tpye if ``local_eig_backend='slepc'``.
    local_eig_norm_dense : bool
        Force dense representation of the effective norm.
    periodic_segment_size : float or int
        How large (as a proportion if float) to make the 'segments' in periodic
        DMRG. During a sweep everything outside this (the 'long way round') is
        compressed so the effective energy and norm can be efficiently formed.
        Tradeoff: longer segments means having to compress less, but also
        having a shorter 'long way round', meaning that it needs a larger bond
        to represent it and can be 'pseudo-orthogonalized' less effectively.
        0.5 is the largest fraction that makes sense. Set to >= 1.0 to not
        use segmentation at all, which is better for small systems.
    periodic_compress_method : {'isvd', 'svds'}
        Which method to perform the transfer matrix compression with.
    periodic_compress_norm_eps : float
        Precision to compress the norm transfer matrix in periodic systems.
    periodic_compress_ham_eps : float
        Precision to compress the energy transfer matrix in periodic systems.
    periodic_compress_max_bond : int
        The maximum bond to use when compressing transfer matrices.
    periodic_nullspace_fudge_factor : float
        Factor to add to ``Heff`` and ``Neff`` to remove nullspace.
    periodic_canonize_inv_tol : float
        When psuedo-orthogonalizing, an inverse gauge is generated that can be
        very ill-conditioned. This factor controls cutting off the small
        singular values of the gauge to stop this.
    periodic_orthog_tol : float
        When psuedo-orthogonalizing, if the local norm is within this
        distance to 1 (pseudo-orthogonoalized), then the generalized eigen
        decomposition is *not* used, which is much more efficient. If set too
        large the total normalization can become unstable.
    """
    return {
        'default_sweep_sequence': 'R',
        'bond_compress_method': 'svd',
        'bond_compress_cutoff_mode': 'rel' if cyclic else 'sum2',
        'bond_expand_rand_strength': 1e-6,
        'local_eig_tol': 1e-3,
        'local_eig_ncv': 4,
        'local_eig_backend': None,
        'local_eig_maxiter': None,
        'local_eig_EPSType': None,
        'local_eig_ham_dense': None,
        'local_eig_norm_dense': None,
        'periodic_segment_size': 1 / 2,
        'periodic_compress_method': 'isvd',
        'periodic_compress_norm_eps': 1e-6,
        'periodic_compress_ham_eps': 1e-6,
        'periodic_compress_max_bond': -1,
        'periodic_nullspace_fudge_factor': 1e-12,
        'periodic_canonize_inv_tol': 1e-10,
        'periodic_orthog_tol': 1e-6,
        'is_hermitian': True,
    }