

def stress_util2d(ml, nlay, nrow, ncol):
    dis = flopy.modflow.ModflowDis(ml, nlay=nlay, nrow=nrow, ncol=ncol)
    hk = np.ones((nlay, nrow, ncol))
    vk = (np.ones((nlay, nrow, ncol)) + 1.0)
    fnames = []
    for (i, h) in enumerate(hk):
        fname = os.path.join(out_dir, 'test_{0}.ref'.format(i))
        fnames.append(fname)
        np.savetxt(fname, h, fmt='%15.6e', delimiter='')
        vk[i] = (i + 1.0)
    lpf = flopy.modflow.ModflowLpf(ml, hk=fnames, vka=vk)
    ml.lpf.vka[0].format.binary = True
    ml.lpf.vka.cnstnt = 2.0
    ml.write_input()
    vka_1 = ml.lpf.vka[0]
    a = vka_1.array
    vka_1_2 = (vka_1 * 2.0)
    assert np.array_equal((a * 2.0), vka_1_2.array)
    if (ml.external_path is not None):
        files = os.listdir(os.path.join(ml.model_ws, ml.external_path))
    else:
        files = os.listdir(ml.model_ws)
    print((('\n\nexternal files: ' + ','.join(files)) + '\n\n'))
    ml1 = flopy.modflow.Modflow.load(ml.namefile, model_ws=ml.model_ws, verbose=True, forgive=False)
    print('testing load')
    assert (ml1.load_fail == False)
    assert np.array_equal(ml1.lpf.vka.array, (vk * 2.0))
    assert np.array_equal(ml1.lpf.vka.array, ml.lpf.vka.array)
    assert np.array_equal(ml1.lpf.hk.array, hk)
    assert np.array_equal(ml1.lpf.hk.array, ml.lpf.hk.array)
    print('change model_ws')
    ml.model_ws = out_dir
    ml.write_input()
    if (ml.external_path is not None):
        files = os.listdir(os.path.join(ml.model_ws, ml.external_path))
    else:
        files = os.listdir(ml.model_ws)
    print((('\n\nexternal files: ' + ','.join(files)) + '\n\n'))
    ml1 = flopy.modflow.Modflow.load(ml.namefile, model_ws=ml.model_ws, verbose=True, forgive=False)
    print('testing load')
    assert (ml1.load_fail == False)
    assert np.array_equal(ml1.lpf.vka.array, (vk * 2.0))
    assert np.array_equal(ml1.lpf.hk.array, hk)
    ml.lpf.vka[0]._array[(0, 0)] *= 3.0
    ml.write_input()
    ml1 = flopy.modflow.Modflow.load(ml.namefile, model_ws=ml.model_ws, verbose=True, forgive=False)
    assert np.array_equal(ml.lpf.vka.array, ml1.lpf.vka.array)
    assert np.array_equal(ml.lpf.hk.array, ml1.lpf.hk.array)

dataset/ETHPy150Open modflowpy/flopy/autotest/t004_test.py stress_util2d/original