def METHOD_NAME(fdemType, comp, SrcList, freq, useMu=False, verbose=False):
    cs = 10.0
    ncx, ncy, ncz = 0, 0, 0
    npad = 8
    hx = [(cs, npad, -1.3), (cs, ncx), (cs, npad, 1.3)]
    hy = [(cs, npad, -1.3), (cs, ncy), (cs, npad, 1.3)]
    hz = [(cs, npad, -1.3), (cs, ncz), (cs, npad, 1.3)]
    mesh = TensorMesh([hx, hy, hz], ["C", "C", "C"])
    if useMu is True:
        mapping = [("sigma", maps.ExpMap(mesh)), ("mu", maps.IdentityMap(mesh))]
    else:
        mapping = maps.ExpMap(mesh)
    x = (
        np.array(
            [np.linspace(-5.0 * cs, -2.0 * cs, 3), np.linspace(5.0 * cs, 2.0 * cs, 3)]
        )
        + cs / 4.0
    )  # don't sample right by the source, slightly off alignment from either staggered grid
    XYZ = utils.ndgrid(x, x, np.linspace(-2.0 * cs, 2.0 * cs, 5))
    Rx0 = getattr(fdem.Rx, "Point" + comp[0])
    if comp[-1] == "r":
        real_or_imag = "real"
    elif comp[-1] == "i":
        real_or_imag = "imag"
    rx0 = Rx0(XYZ, comp[1], real_or_imag)
    Src = []
    for SrcType in SrcList:
        if SrcType == "MagDipole":
            Src.append(
                fdem.Src.MagDipole([rx0], frequency=freq, location=np.r_[0.0, 0.0, 0.0])
            )
        elif SrcType == "MagDipole_Bfield":
            Src.append(
                fdem.Src.MagDipole_Bfield(
                    [rx0], frequency=freq, location=np.r_[0.0, 0.0, 0.0]
                )
            )
        elif SrcType == "CircularLoop":
            Src.append(
                fdem.Src.CircularLoop(
                    [rx0], frequency=freq, location=np.r_[0.0, 0.0, 0.0]
                )
            )
        elif SrcType == "LineCurrent":
            Src.append(
                fdem.Src.LineCurrent(
                    [rx0],
                    frequency=freq,
                    location=np.array([[0.0, 0.0, 0.0], [20.0, 0.0, 0.0]]),
                )
            )
        elif SrcType == "RawVec":
            if fdemType == "e" or fdemType == "b":
                S_m = np.zeros(mesh.nF)
                S_e = np.zeros(mesh.nE)
                S_m[
                    mesh.closest_points_index([0.0, 0.0, 0.0], "Fz")
                    + np.sum(mesh.vnF[:1])
                ] = 1e-3
                S_e[
                    mesh.closest_points_index([0.0, 0.0, 0.0], "Ez")
                    + np.sum(mesh.vnE[:1])
                ] = 1e-3
                Src.append(
                    fdem.Src.RawVec(
                        [rx0], freq, S_m, mesh.get_edge_inner_product() * S_e
                    )
                )
            elif fdemType == "h" or fdemType == "j":
                S_m = np.zeros(mesh.nE)
                S_e = np.zeros(mesh.nF)
                S_m[
                    mesh.closest_points_index([0.0, 0.0, 0.0], "Ez")
                    + np.sum(mesh.vnE[:1])
                ] = 1e-3
                S_e[
                    mesh.closest_points_index([0.0, 0.0, 0.0], "Fz")
                    + np.sum(mesh.vnF[:1])
                ] = 1e-3
                Src.append(
                    fdem.Src.RawVec(
                        [rx0], freq, mesh.get_edge_inner_product() * S_m, S_e
                    )
                )
    if verbose:
        print("  Fetching {0!s} problem".format((fdemType)))
    if fdemType == "e":
        survey = fdem.Survey(Src)
        prb = fdem.Simulation3DElectricField(mesh, survey=survey, sigmaMap=mapping)
    elif fdemType == "b":
        survey = fdem.Survey(Src)
        prb = fdem.Simulation3DMagneticFluxDensity(
            mesh, survey=survey, sigmaMap=mapping
        )
    elif fdemType == "j":
        survey = fdem.Survey(Src)
        prb = fdem.Simulation3DCurrentDensity(mesh, survey=survey, sigmaMap=mapping)
    elif fdemType == "h":
        survey = fdem.Survey(Src)
        prb = fdem.Simulation3DMagneticField(mesh, survey=survey, sigmaMap=mapping)
    else:
        raise NotImplementedError()
    try:
        from pymatsolver import Pardiso
        prb.solver = Pardiso
    except ImportError:
        prb.solver = SolverLU
    # prb.solver_opts = dict(check_accuracy=True)
    return prb