def METHOD_NAME(
    grid2, H, solver, depression_finder, phi, v_s, H_star, dt
):
    grid2.at_node["soil__depth"][:] = H
    assert grid2.status_at_node[1] == grid2.BC_NODE_IS_FIXED_VALUE
    z_init = grid2.at_node["topographic__elevation"].copy()
    if depression_finder is None:
        fa = FlowAccumulator(grid2)
    else:
        fa = FlowAccumulator(grid2, depression_finder=depression_finder, routing="D4")
    fa.run_one_step()
    ed = Space(grid2, solver=solver, phi=phi, v_s=v_s, H_star=H_star)
    ed.run_one_step(dt)
    # see above test for notes.
    dH = grid2.at_node["soil__depth"][:] - H
    dH *= 1 - phi
    dBr = grid2.at_node["bedrock__elevation"] - (z_init - H)
    mass_change = dH + dBr
    # assert that the mass loss over the surface is exported through the one
    # outlet.
    net_change = mass_change[grid2.core_nodes].sum() + (
        ed.sediment_influx[1] * dt / grid2.cell_area_at_node[11]
    )
    assert_array_almost_equal(net_change, 0.0, decimal=10)