1 引言
今天中午在<FLAC3D 7.0 新特性简介(P4)---软件集成>的留言区内看到有位同学问FLAC3D的本构模型能不能使用Pyhton编写, 由于使用手机操作, 不小心把这条留言删除但不能恢复, 因此把这个问题拿出来与大家分享一下. 近期家中的突发事件导致有将近10天没有接触任何工作上的事情, 不过今天头脑较为清醒, 因此就这个问题说一下, 因为没有参考任何资料, 全凭印象作答, 有不对的地方请指出来大家共同探讨.
2 使用自定义本构模型
现代先进的岩土数值模拟软件都允许使用用户自定义本构模型, 比如Itasca软件系列, Abaqus, Plaxis, Sigma/W等, 用户自定义本构模型的调用都使用了DLL(动态链接库), DLL可以使用Fortran, C, C++等编译型的语言编译器生成. 这些商业性的数值模拟软件都为用户提供了标准的自定义本构模型界面, 因此很容易生成自己的本构模型DLL.
FLAC3D已经内置了33个本构模型
3 Python 生成DLL
如果要在FLAC3D中使用Python编写自定义的本构模型, 除了需要满足程序的接口要求外, 一个附加的任务是需要把Python语言编写的本构模型代码转换为DLL. 由于Python是解释性语言, 因此不能使用编译型的编译器产生DLL. 有一种方法是使用clr模块把Python转化为DLL文件.
<