#%%
import numpy as np
import matplotlib.pyplot as plt

plt.rcParams['xtick.direction'] = 'in'
plt.rcParams['ytick.direction'] = 'in'
plt.rcParams['text.usetex'] = True
plt.rcParams['font.size'] = 12
plt.rcParams['axes.spines.right'] = False
plt.rcParams['axes.spines.top'] = False

def cm2inch(*tupl):
    inch = 2.54
    if isinstance(tupl[0], tuple):
        return tuple(i/inch for i in tupl[0])
    else:
        return tuple(i/inch for i in tupl)

exp = np.genfromtxt('./KFS-triax-dense.dat', skip_header=2)
sim = np.genfromtxt('./sim-print-out/EALL_element_1.dat', skip_header=1)


fig, (ax1,ax2) = plt.subplots(ncols=2, sharey=False, figsize=cm2inch(16,8))

ax1.plot(exp[::10,0], exp[::10,2], ls='', marker='o', markerfacecolor='None', label='Experiment')
ax1.plot(-sim[:,8]*100, -(sim[:,2]-sim[:,1]), label='Simulation')
ax1.set_ylabel('Deviatoric stress $q$ in kPa')
ax1.set_xlabel('Axial strain $\\varepsilon_{ax}$ in \%')
ax1.legend(loc='lower right', frameon=False)

ax2.plot(exp[::10,0], exp[::10,-1], ls='', marker='o', markerfacecolor='None', label='Experiment')
ax2.plot(-sim[:,8]*100, -(sim[:,7]+sim[:,8]+sim[:,9])*100., label='Simulation')
ax2.set_ylabel('Volumetric strain $\\varepsilon_{v}$ in \%')
ax2.set_xlabel('Axial strain $\\varepsilon_{ax}$ in \%')

fig.tight_layout()

plt.savefig('./triaxCD-exp-vs-sim.png', dpi=400)
plt.show()