"""
Gu et al. (2017)
================

Anisotropic elasticity of Toyoura sand [^1].

[^1]: Gu, X., Hu, J., & Huang, M. (2017). Anisotropy of elasticity and fabric of granular soils. Granular Matter, 19(2),
      33. https://doi.org/10.1007/s10035-017-0717-6
"""

import pandas as pd

from micromechanical.cli.plot import PlotCLI, PlotConfig

config: PlotConfig = PlotCLI.loadConfig("../../calibrations/micromechanical-plots.yaml")

# %%
# Kinematic Hypothesis
# --------------------

plot_name = "Gu2017-Isotropic-Kinematic"
plot_config = config.plots[plot_name]
pd.DataFrame(
    {
        key.replace("micromechanical.calibrationkey:MaterialFabricCoefficientKey(car,F)", "F"): value
        for key, value in plot_config.calibration.read(config.root).parameters.items()
        if key in ["Gg", "cr", "krr", "F", "n", "npv", "nr", "nug", "radius"] or key.startswith("micromechanical")
    },
    index=["Gu2017"],
)  # fmt: skip

# %%
# Static Hypothesis
# -----------------

plot_name = "Gu2017-Isotropic-Static"
plot_config = config.plots[plot_name]
pd.DataFrame(
    {
        key.replace("micromechanical.calibrationkey:MaterialFabricCoefficientKey(car,F)", "F"): value
        for key, value in plot_config.calibration.read(config.root).parameters.items()
        if key in ["Gg", "cr", "krr", "F", "n", "npv", "nr", "nug", "radius"] or key.startswith("micromechanical")
    },
    index=["Gu2017"],
)  # fmt: skip

# %%
# Figures
# -------

for plot_name, plot_config in config.plots.items():
    if not plot_name.startswith("Gu2017"):
        continue

    plot_config.plot(plot_name, grids=config.grids, save=False, overwrite=False)
