有限单元法在岩土工程问题中应用非常广泛,很多商业软件如Plaxis/Abaqus/Comsol等都采用有限单元解法。尽管各类商业软件使用方便,但其使用对用户来说往往是一个“黑箱子”。相比而言,开源的有限元程序计算方法透明、计算过程可控,用户可根据自己的需求进行必要的修改,这一点对于科研人员特别重要。然而,长期以来由于有限元开源程序的欠缺、教学方法以介绍理论为主、手把手基于Tutorial的实操欠缺、学员编程基础相对薄弱等原因,开源有限元的使用在国内相对较少。然而,科研领域的很多新的东西很难实现在商业软件中(除非通过复杂的二次开发,而二次开发往往需要具备一些子程序编写的能力,如Abaqus的Umat子程序、Plaxis的UDSM等),如果掌握一些开源有限元的基本流程及相应子程序的编写方法,对基于自己开发程序或者商业软件开发接口的科研等工作将大有益处。
本次主要针对岩土工程中的材料非线性问题(应力变形分析中的各种弹塑性本构模型、渗流分析中的非线性渗透系数等),用两个周末的时间,手把手教大家如何一步一步地搭建自己的模型,包括前处理输入文件的准备、计算可执行文件的编译生成、后处理输出文件的可视化等,其中的编程模块尽可能做到让学员零基础开始,通过提供标准程序库使用搭积木、摆乐高的形式模块化进行,加强学员的易上手、可操作性。学员只需了解简单的编程语句结构即可,甚至都不需要懂某种编程语言的具体语法。
通过本次的学习达到以下目标:学完以后发现不经意间已经学会了某种编程语言(尽管没有进行单独的语言学习),发挥通过实例学习的益处。同时本课程将介绍Paraview等后处理软件的使用及其Fortran/Python等接口程序。实例包括非线性有限元方法在挡土墙、地基稳定、边坡稳定等三大稳定性问题中的应用等。同时现场讲解源程序的修改与重新编译,方便各个领域可以更好地交叉融合、扩展应用。本次培训我们精选模型应用案例,全程干货,让参训学员全面熟悉渗流模型,提高学员模型应用能力、数据分析和图表制作技能。如果你是资深模型爱好者,可以进一步熟悉各个模块的相关算法;如果你是个模入门者,将让你体验一键模拟的乐趣。
详情链接 :
非线性有限元:基本理论与算法及基于Python、Fortran程序实现与案例分析实践技术
内容详情:
第一天有限元编程基础知识
- 有限单元法基础简介(离散化、存储策略及方程解法、边界条件的处理)
- 编程语言Fortran及编译工具Intel Visual Fortran(IVF)简介、Python开发环境Spyder简介
- Fortran/Matlab/Julia/Python等开源代码及程序库(geomlib/femlib)简介
- 非线性有限元模型相关模块及计算流程
- 岩土工程材料非线性问题介绍
第二天非线性有限元常刚度法实现模块
有限元分析数值基础与常刚度法
- 天际线法等整体系数矩阵存储与方程直接求解方法
- 整体系数矩阵免组装(预条件)共轭梯度法方程求解方法
- 牛顿(-拉夫森)迭代求解基本原理与数值实现
- 应力不变量、屈服函数、塑性势函数、几种典型的破坏准则及未定义的奇异点处理
- 初应变常刚度法的实现方法(虚拟粘塑性算法)、初应力常刚度法的实现方法
图1 大型稀疏系数矩阵、方程线性化方法
图2 几种破坏准则(米塞斯、屈雷斯卡、摩尔库伦)
图3 常刚度法(左)、变刚度法(右)示意图
第三天非线性有限元切线刚度法实现模块
- 弹塑性应力应变关系的本构积分(前向欧拉法、后向欧拉法)
- 塑性流动准则、切线刚度法中的非一致和一致切线模量
- 应力积分算法之最近点投影法CPPM (Closest Point Projection Method) 实现
- 应力积分算法之切平面法CPA (Cutting Plane Algorithm) 实现
- 应力积分算法之径向返回法RR (Radial Return)与各算法的收敛准则
图4 应力应变本构积分
图5 CPPM和CPA算法示意
第四天地基稳定性、挡土墙稳定性、边坡稳定性实例应用模块
应用实例
- 地基承载力问题(位移控制、力控制)
- 挡土墙稳定性问题(初应力法改进)
- 边坡稳定性问题(强度折减法及安全系数自动搜索)
- 输入文件准备、输出文件IrfanView、Paraview可视化(手把手操作与讲解)
- Pyhton/Fortran90源代码按需修改与重新编译(应用于随空间变异的岩土体参数)
图7 方形基础承载力(三维及其部分剖面)
图8地基土内应变不变量(破坏面)
图9 挡土墙稳定性分析(主动土压力)
图 10 边坡稳定性 (破坏面)