摘要:
土力学课程具有理论与实践并重的特点。然而由于教学条件的限制,目前无法实践土力学教学中诸如平板载荷试验等重要内容,因此难以达到理想的教学效果。文章基于有限元方法开发了适用于本科土力学教学的虚拟仿真软件,学生利用其能够进行平板载荷试验以及不同排水条件下的三轴剪切试验等。教学实践表明,该软件可以补充本科土力学实践教学的资源,达到了工程专业教育中以虚补实的目的。
关键词:土力学;有限元仿真;实践教学
中图分类号:TU43-4 文献标志码:A 文章编号:
10052909(2014)02013604
土力学是本科土木工程的专业基础课,也是水利水电工程、工程地质等专业的必修课程,理论与实践并重是其显著特点。该课程中绝大部分概念、理论或经验公式均源于室内试验、现场试验或工程实践[1],同时这些理论也是分析解决工程实际问题不可或缺的工具,因此,掌握理论与实践之间的联系及区别对学生系统掌握土力学知识,培养正确分析解决问题的创新能力尤为重要。鉴于该课程的上述特点和教学培养目标,几乎所有本科土力学教学大纲中均设置了实践教学环节。
目前土力学课程教学中实践环节主要体现为室内土工试验[2],其主要包括土样含水量测试、液塑限测试、一维压缩试验及直接剪切试验。其他一些重要的室内试验与现场试验由于受实际教学条件的限制(学时压缩、试验条件不足等)而无法开设。室内试验中的三轴剪切试验是土力学学科领域内应用十分广泛的试验手段,现场试验中的平板载荷试验是地基承载力确定的重要方法。但由于三轴剪切试验从制样到完成试验需要较长时间,目前学时条件难以满足,一般仅通过观摩讲解或者课堂图解进行教学。平板载荷试验由于场地条件的限制,往往也只能通过课堂讲解进行教学。尽管课堂教学可以使学生对无法实践的试验内容有一定的感性认识,然而由于无法深入,其结果是学生对这些内容认识仅停留在文字表面,难以真正激发学习兴趣,不利于学生主动将试验内容与理论知识相联系。
数值仿真[3-5]则提供了一条既能深入了解土力学实验内容,又能将其与土力学理论知识紧密联系的有效途径。文献4开发出可用于固结试验和三轴试验的仿真系统。文献5发展了可用于三轴试验的仿真系统。两者均侧重于演示性质的多媒体技术应用,其后台计算限于解析推导[5],因此无法模拟平板载荷试验这样具有相对复杂的边值问题。
文章基于有限元方法,开发了一套能够模拟平板载荷试验和三轴试验的教学仿真程序,并将其作为辅助教学资源,初步用于中国矿业大学土木工程土力学本科教学中,达到了以“虚”(虚拟仿真)补“实”(试验和工程实践)的目的。该程序提供的人机交互界面,可供学生根据所学知识进行模型参数选择,研究所选参数对计算结果的影响。
一、土力学教学有限元仿真软件的实现
(一)有限元代码的编制
目前可用于土力学相关问题模拟的商用有限元软件较多,大型软件如ABAQUS等,中型软件如PLAXIS等。但一方面由于版权问题,另一方面这些软件系统对硬件要求较高,应用操作复杂,难以应用于本科教学。与此同时,国内外学者开发了许多精炼的开源有限元代码,其中不乏与土力学相关的经典之作。美国Smith和Griffiths教授所著的《有限元方法编程》就提供了这样的Fortran90版本代码[6]。笔者在其基础上,进行了系列的修改和扩展,使其满足三轴剪切试验和平板载荷试验模拟的土力学教学要求。
《有限元方法编程》中原有源代码p60可用以计算条形基础承载能力[6]。它使用了平面应变型8节点四边形单元,土体本构关系采用完全弹塑性的米塞斯模型,平衡方程求解采用的是粘塑性法。文章对其进行了三方面的修改。
(1)米塞斯屈服准则与体应力无关,仅适用于金属材料或者粘土的不排水力学分析。目前土力学教材介绍的是摩尔-库伦破坏准则,因此,文章将原有屈服准则修改为摩尔-库伦准则。
(2)原始代码没有考虑基础埋深的影响,且基础尺寸固定,然而这两个因素对条形基础承载力的影响至关重要,这在土力学教材中介绍的极限承载力理论中有所体现。因此,文章对源代码进行了相应修改,使其能够考虑上述因素。
(3)源代码中只有一种计算网格的划分方法。为使学生了解网格对计算结果的影响,对其进行了扩充,提供粗、中、细三种计算网格。
(二)可视化及界面设计
上述原始代码p60不具备前后处理的功能,为满足人机互动及可视化的教学要求,笔者设计了相应的交互界面及前后处理程序。
Fortran语言自1954年问世以来,始终是数值计算领域所使用的主要语言,同时也积累了大量的经过实践检验的Fortran语言程序。上述原始代码就是在Fortran77版本的基础上升级为Fortran90版本。但Fortran语言面向对象、图形可视化能力较弱,妨碍了其进一步发展。目前有两种方法可以实现Fortran程序的可视化和界面设计,一是将Fortran与 VB或VC++进行混合编程,其思路是利用VB或VC++设计用户界面及主程序,然后将计算所用的Fortran程序通过Fortran 编译器编译成DLL文件,由VB或VC++调用;第二种方法是利用Visual Fortran的集成编译环境[7],该环境实现了 Fortran语言和 Windows的有机结合,利用该环境提供的图形库DFLIB、窗口模块DFWIN、对话框模块DFLOGM等,可实现窗口、菜单、鼠标事件、多种控件等功能。文章利用第二种方法即Visual Fortran实现程序的界面设计和可视化。
1.界面设计
程序主界面中的菜单选项包括计算模块、工具和系统说明等三个部分。在计算模块中可以选择载荷试验或三轴试验进行仿真模拟。以前者为例,进入“载荷试验”模块后,弹出包括“参数”、“计算”和“输出”三个子项的对话框。学生可以在“参数”对话框中输入地基土的基本物理参数和力学参数:粘聚力c、内摩擦角φ、弹性模量E、泊松比μ、天然重度γ、膨胀角ω,也可输入几何参数:条形基础的宽度b、基础埋深d。在“计算”对话框中,学生可以控制计算误差和最大迭代次数,还可以选择不同的网格精度进行计算。在“输出”对话框中,学生可以选择绘制荷载位移曲线、初始计算网格、变形网格等作为输出项。图1给出上述“参数”和“计算”子项对话框的图示。