def new_linsolver(name,prop):
    """
    Creates a linear solver.

    Parameters
    ----------
    name : string
    prop : string
    
    Returns
    -------
    solver : :class:`LinSolver <optalg.lin_solver.LinSolver>`
    """
    
    if name == 'mumps':
        return LinSolverMUMPS(prop)
    elif name == 'superlu':
        return LinSolverSUPERLU(prop)
    elif name == 'umfpack':
        return LinSolverUMFPACK(prop)
    elif name == 'default':
        try:
            return new_linsolver('mumps',prop)
        except ImportError:
            return new_linsolver('superlu',prop)            
    else:
        raise ValueError('invalid linear solver name')
Creates a linear solver.

    Parameters
    ----------
    name : string
    prop : string
    
    Returns
    -------
    solver : :class:`LinSolver <optalg.lin_solver.LinSolver>`