картина

1. Введение

Одним из наиболее распространенных применений численного анализа с помощью Python являются параметрические исследования, такие как [ HYRCAN использует Python для параметрического анализа устойчивости откосов ]. В ПО Itasca исследование параметризации может осуществляться более гибко за счет передачи функции FISH.Преимущество этого в том, что код Python можно максимально отделить от команды Itasca, что удобно для модификации и расширения функции кода. Пример из руководства «Прочность на одноосное сжатие образца соединенного материала » обсуждается ниже. В этом примере используется модель вездесущего соединения для расчета прочности на одноосное сжатие образца с соединениями в зависимости от материала горной породы и свойств соединений, как показано на рисунке ниже. Все процедуры моделирования процессов здесь опущены, основное внимание уделяется параметрическим исследованиям.

картина


2 Параметрическое исследование

В коде Python используйте диапазон для изменения бета угла соединения и передайте бета в код расчета UCS ucs_test, таким образом получая 19 наборов данных.

betas = range(0,91,5)for beta in betas:    it.command(f"""    model new    [global beta = {beta}]    program call 'ucs_test'    """)

Основные используемые функции Python:

(1) gp.force_unbal_y

(2) it.gridpoint.list

(3) gp.in_group

ucs = []for beta in betas:    filesav = f"./ucs_{beta}.sav"    if os.path.exists(filesav):        it.command(f"model restore '{filesav}'")        sigmavs = [-gp.force_unbal_y() for gp in it.gridpoint.list() if gp.in_group("bottom")]        ucs.append(sum(sigmavs)/3.06*1e-3)

3 Рисунок

Используйте matplotlib для рисования результатов расчета, полученных в результате параметрического исследования [ интеграция FLAC3D и Python (2) --- обмен данными с Numpy ].

import matplotlib.pyplot as plt

картина

Для контроля формы кривой были протестированы следующие четыре типа, которые можно использовать:

plt.plot(betas,ucs,"r*--")plt.plot(betas,ucs,"bD-.")plt.plot(betas,ucs,"go--")plt.plot(betas,ucs,"b*-")
plt.xlabel("Weak-plane angle [°]")plt.ylabel("Axial strength [kPa]")plt.xlim(0,90)plt.ylim(3,10)plt.grid()plt.title("UCS test using ubiquitous-joint model")plt.show()