Skip to content

Note

Click here to download the full example code

Gu et al. (2017)

Anisotropic elasticity of Toyoura sand 1.

import pandas as pd

from micromechanical.cli.plot import PlotCLI, PlotConfig

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

Out:

/home/runner/work/musica/musica/micromechanical/cli/plot.py:56: UserWarning: Calibration file /home/runner/work/musica/musica/calibrations/Calibrations/Gu2024-CT-Dense-Static.json not found, skipping.
  warnings.warn(f"Calibration file {path.as_posix()} not found, skipping.")
/home/runner/work/musica/musica/micromechanical/cli/plot.py:56: UserWarning: Calibration file /home/runner/work/musica/musica/calibrations/Calibrations/Gu2024-CT-Dense-Kinematic.json not found, skipping.
  warnings.warn(f"Calibration file {path.as_posix()} not found, skipping.")
/home/runner/work/musica/musica/micromechanical/cli/plot.py:56: UserWarning: Calibration file /home/runner/work/musica/musica/calibrations/Calibrations/Gu2024-CT-Medium-Dense-Static.json not found, skipping.
  warnings.warn(f"Calibration file {path.as_posix()} not found, skipping.")
/home/runner/work/musica/musica/micromechanical/cli/plot.py:56: UserWarning: Calibration file /home/runner/work/musica/musica/calibrations/Calibrations/Gu2024-CT-Medium-Dense-Kinematic.json not found, skipping.
  warnings.warn(f"Calibration file {path.as_posix()} not found, skipping.")

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
Gg cr krr F n npv nr nug radius
Gu2017 4.779100e+10 5.94365 1.203 1.352191 0.351 2.000000e+11 0.425 0.2 0.000108

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
Gg cr krr F n npv nr nug radius
Gu2017 4.779100e+10 2.871943 0.993 1.299366 0.351 2.000000e+11 0.396 0.2 0.000108

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)
    (a), (b)(a), (b)(a), (b)plot gu2017(a), (b)(a), (b)

Out:

/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option CN0 is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option F1 is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option F12 is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option F13 is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option F2 is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option F23 is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option Gg is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option car is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option car_anisotropy_major_axes is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option car_anisotropy_type is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option cc is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option check_convergence is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option cr is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option force_dependent_stiffness is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option force_numerical is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option kn is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option major_axes is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option max_iterations is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option micromechanical.calibrationkey:MaterialFabricCoefficientKey(car,F) is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option n is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option ncc is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option nr is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option nug is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option sig1 is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option sig2 is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option sig3 is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option tolerance is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option unit is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option voigt_notation is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option weight_kinematic is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option weight_normalize is not supported
  warnings.warn(f"Calculation option {key} is not supported")
/home/runner/work/musica/musica/micromechanical/cli/_calculationoptions.py:42: UserWarning: Calculation option weight_static is not supported
  warnings.warn(f"Calculation option {key} is not supported")

Total running time of the script: ( 0 minutes 25.102 seconds)

Download Python source code: plot_gu2017.py

Download Jupyter notebook: plot_gu2017.ipynb

Gallery generated by mkdocs-gallery


  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 ↩