import numpy as np import matplotlib.pyplot as plt rdir = "./data/" clabels = [r"$K_{perm}$", r"$K_{diss}$", r"$K_{average}$", r"$K_{1/3}$"] cases = [ r"$Lognormal \ \sigma^{2}_{\log(k)} = 0.1$", r"$Lognormal \ \sigma^{2}_{\log(k)} = 7$", r"$Binary p = 0.2; k+/k- = 10^4$", ] scales = np.array([4, 8, 16, 32, 64, 128, 256, 512]) lcs = [16, 16, 8] for i in range(3): kpost = np.zeros((len(scales), 4)) for scale in range(len(scales)): kpost[scale, 0] = np.exp( np.nanmean( np.log(np.load(rdir + str(i) + "/kperm/" + str(scales[scale]) + ".npy")) ) ) kpost[scale, 1] = np.exp( np.nanmean( np.log( np.load( rdir + str(i) + "/KpostProcess/Kd" + str(scales[scale]) + ".npy" ) ) ) ) kpost[scale, 2] = np.exp( np.nanmean( np.log( np.load( rdir + str(i) + "/KpostProcess/Kv" + str(scales[scale]) + ".npy" ) ) ) ) kpost[scale, 3] = np.exp( np.nanmean( np.log( np.load( rdir + str(i) + "/KpostProcess/Kpo" + str(scales[scale]) + ".npy" ) ) ) ) plt.semilogx(scales / 512.0, kpost[:, 0], label=clabels[0], marker="x") plt.semilogx(scales / 512.0, kpost[:, 1], label=clabels[1], marker="s") plt.semilogx(scales / 512.0, kpost[:, 2], label=clabels[2], marker="^") plt.semilogx(scales / 512.0, kpost[:, 3], label=clabels[3], marker="o") plt.vlines( lcs[i] / 512.0, kpost[:, 0].min(), kpost[:, 0].max(), label=r"$lc = $" + str(lcs[i]), ) plt.xlabel(r"$\lambda / L$") plt.ylabel(r"$_G$") plt.legend() plt.grid() plt.title(cases[i]) plt.tight_layout() plt.savefig(rdir + str(i) + "/Kpost_mean.png") plt.close()