(lvl, name, format, blocksize=None)
return getattr(lvl, desired_matrix)
Set a matrix to a specific format.

    This routine looks for the matrix "name" in the specified format as a
    member of the level instance, lvl.  For example, if name='A', format='bsr'
    and blocksize=(4,4), and if lvl.Absr44 exists with the correct blocksize,
    then lvl.Absr is returned.  If the matrix doesn't already exist, lvl.name
    is converted to the desired format, and made a member of lvl.

    Only create such persistent copies of a matrix for routines such as
    presmoothing and postsmoothing, where the matrix conversion is done every
    cycle.

    Calling this function can _dramatically_ increase your memory costs.
    Be careful with it's usage.
Set a matrix to a specific format.
Set a matrix to a specific format .
def matrix_asformat(lvl, name, format, blocksize=None):
    """Set a matrix to a specific format.

    This routine looks for the matrix "name" in the specified format as a
    member of the level instance, lvl.  For example, if name='A', format='bsr'
    and blocksize=(4,4), and if lvl.Absr44 exists with the correct blocksize,
    then lvl.Absr is returned.  If the matrix doesn't already exist, lvl.name
    is converted to the desired format, and made a member of lvl.

    Only create such persistent copies of a matrix for routines such as
    presmoothing and postsmoothing, where the matrix conversion is done every
    cycle.

    Calling this function can _dramatically_ increase your memory costs.
    Be careful with it's usage.

    """
    desired_matrix = name + format
    M = getattr(lvl, name)

    if format == 'bsr':
        desired_matrix += str(blocksize[0])+str(blocksize[1])

    if hasattr(lvl, desired_matrix):
        # if lvl already contains lvl.name+format
        pass
    elif M.format == format and format != 'bsr':
        # is base_matrix already in the correct format?
        setattr(lvl, desired_matrix, M)
    elif M.format == format and format == 'bsr':
        # convert to bsr with the right blocksize
        # tobsr() will not do anything extra if this is uneeded
        setattr(lvl, desired_matrix, M.tobsr(blocksize=blocksize))
    else:
        # convert
        newM = getattr(M, 'to' + format)()
        setattr(lvl, desired_matrix, newM)

    return getattr(lvl, desired_matrix)
def matrix_asformat ( lvl , name , format , blocksize = None ) : desired_matrix = name + format M = getattr ( lvl , name ) if format == 'bsr' : desired_matrix += str ( blocksize [ 0 ] ) + str ( blocksize [ 1 ] ) if hasattr ( lvl , desired_matrix ) : # if lvl already contains lvl.name+format pass elif M . format == format and format != 'bsr' : # is base_matrix already in the correct format? setattr ( lvl , desired_matrix , M ) elif M . format == format and format == 'bsr' : # convert to bsr with the right blocksize # tobsr() will not do anything extra if this is uneeded setattr ( lvl , desired_matrix , M . tobsr ( blocksize = blocksize ) ) else : # convert newM = getattr ( M , 'to' + format ) ( ) setattr ( lvl , desired_matrix , newM ) return getattr ( lvl , desired_matrix )