文档库 最新最全的文档下载
当前位置:文档库 › 应力与变形的数值模型方法_数值模拟软件FLAC介绍_龚纪文

应力与变形的数值模型方法_数值模拟软件FLAC介绍_龚纪文

应力与变形的数值模型方法_数值模拟软件FLAC介绍_龚纪文
应力与变形的数值模型方法_数值模拟软件FLAC介绍_龚纪文

FLAC3D学习笔记(自己总结版)

一、建立模型笔记 1键盘上的键的功能:X,Y,Z分别控制所建立的模型围绕X,Y,Z三个轴做逆时针旋转.如果打开大小写锁定键,分边按XYZ时建立的模型会做顺时针旋转.+号的功能是加大模型旋转的角度,-号的功能是减小模型旋转的角度。 2键盘上的上下左右四个键可以实现图形的向上向下,向左和向右的移动. 3当在一个区域建立多个模型的时候,有时候为了镜像单个模块儿,需要预先编组,编组的方法如下: gen zon tunint p0 0 0 0 p1 0 10 0 p2 5 5 0 p3 0 0 -5 p4 5 10 0 & p5 5 5 -5 p6 0 10 -5 p7 5 10 -5 dim sq2 sq2 1 sq2 1 1 1 group(编组) z1(组名为:z1) & fill group tunnel 4镜像整个模型的方法:首先判断即将镜像的模型在原模型的哪个方向(即三个轴的方向),然后在轴所在的方向上去两个点.其中一个是原点(origin(xyz)). 5镜像部分模型的方法: gen zone reflect normal (x,y,z) origin (x,y,z) range group z1就可以了. 6特别要注意的一点:交叉巷道的巷道充填和巷道的网格是两个组,所以在镜像的时候不要忘了给充填部分镜像. 7 group radcyl range group cylint not(编组的时候不包括cylint) 7 快捷键总结 Ctrl+Z 局部缩放的功能。Ctrl+R的功能是恢复到初始状态。 8模型建立的方法: 方法1:利用默认值生成网格, 各个默认值:(1)p0的默认值是(0,0,0),网格的每边的单元格数size默认值是10,网格每边的长度默认值为size的值. 方法2:利用4个点的坐标来生成矩形网格.p0~p3 size 方法3:利用edge来确定边长生成矩形网格. 方法4:利用参数ratio来确定单元体几何边画边生成矩形网格. 方法5:利用参数add(相对坐标)来生成矩形网格. 方法6:利用八个点的左边来生成矩形网格. 9、用户自定义模型的方法 我来贡献一点自己的成果: FLAC3D的二次开发环境提供了开放的用户接口,在软件安装文件中包含了软件自带所有本构模型的源代码,且给出了Mohr-Coulomb模型和应变软化模型的编译示例,因此可以方便地进行本构模型的修改与开发。为了方便起见,下面的说明以建立UserModel模型为例。 (1) 在模型头文件(usermodel.h)中进行新的本构模型派生类的声明,修改模型的ID(为避免与已有模型冲突,一般要求大于100)、名称和版本,修改派生类的私有成员,主要包括模型的基本参数及程序执行过程中主要的中间变量。( ? p6 u' J5 Q3 y( a (2) 在程序C++文件(usermodel.cpp)中修改模型结构(UserModel::UserModel(bool bRegister): Constit -utive Model)的定义,这是一个空函数,主要功能是给(1)中定义的所有私有成员赋初值,一般均赋值为0.0。(3) 修改const char **UserModel: roperties()函数,该函数包含了给定模型的参数名称字符串,在FLAC3D的计算命令中需要用到这些字符串进行模型参数赋值。 (4) const char **UserModel::States()函数是单元在计算过程中的状态指示器,可以按照需要进行修改指示器的内容。 (5) 按照派生类中定义的模型参数变量修改double UserModel::GetProperty()和void UserModel:: SetProperty()函数,这两个函数共同完成模型参数的赋值功能。' U; e G' W" Q# R4 q/ @9 G" h (6) const char * UserModel::Initialize()函数在执行CYCLE命令或大应变模式下对于每个模型单元(zone)调用一次,主要执行参数和状态指示器的初始化,并对派生类声明中定义的私有变量进行赋值。值得注意的是,Initialize()函数调用时没有定义应变分量,但可以调用应力分量,但不能对应力进行修改。9 n# e8 |' c- B/ q, B B5 m

软件测试过程模型

软件测试过程模型 发布时间: 2010-7-27 11:02 作者: 未知来源: 51Testing软件测试网采编 字体: 小中大| 上一篇下一篇| 打印| 我要投稿| 每周一问,答贴有奖 目前主流的开发模型主要有:瀑布模型、原型模型、螺旋模型、增量模型、渐进模型、快速软件开发(RAD)以及Rational统一过程(RUP)等,这些模型对于软件开发过程具有很好的指导作用,但是,非常遗憾的是,在这些过程方法中,并没有充分强调测试的价值,也没有给测试以足够的重视,利用这些模型无法更好地指导测试实践。软件测试是与软件开发紧密相关的一系列有计划的系统性的活动,显然软件测试也需要测试模型去指导实践。下面对主要的模型做一些简单的介绍。 V模型 V模型是最具有代表意义的测试模型。在传统的开发模型中,比如瀑布模型,人们通常把测试过程作为在需求分析、概要设计、详细设计和编码全部完成后的一个阶段,尽管有时测试工作会占用整个项目周期的一半的时间,但是有人仍然认为测试只是一个收尾工作,而不是主要过程。V模型的推出就是对此种认识的改进。V模型是软件开发瀑布模型的变种,它反映了测试活动与分析与分析和设计的关系,从左到右,描述了基本的开发过程和测试行为,非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系,如模型图中所示,图中的箭头代表了时间方向,左边下降的是开发过程各阶段,与此相对应的是右边上升的部分,即各测试过程的各个阶段。 V模型的软件测试策略既包括低层测试又包括了高层测试,低层测试是为了源代码的正确性,高层测试是为了使整个系统满足用户的需求。 V模型指出,单元和集成测试是验证程序设计,开发人员和测试组应检测程序的执行是否满足软件设计的要求;系统测试应当验证系统设计,检测系统功能、性能的质量特性是否达到系统设计的指标;由测试人员和用户进行软件的确认测试和验收测试,追溯软件需求说明书进行测试,以确定软件的实现是否满

自定义本构模型

4 自定义新的本构模型 介绍 FLAC3D自定义本构模型跟FLAC手册中讲到的用FISH来自定义本构模型一样。然而在FLAC3D中不支撑FISH语言来自定义本构模型,自定义本构模型开发必须用C++语言,且编译成DLL文件(动态链接库),动态链接库文件能在需要的时候随时加载上去。本构模型的主函数主要是返回新的应力,给出应变增量。然而自定义本构模型也必须给出一些其他的信息:比如模型名称和读入、写出保存文件等操作。 C++语言是一种面向对象的程序设计语言,使用类(classes)来代表对象(objects)。对象的数据被对象封装起来,在对象的外面数据是不可见的。通过成员函数来访问对象,而成员函数可以对封装的数据进行操作。另外C++语言强烈支持对象的等级结构,新的对象性质可以从一个基本对象产生,基本对象的成员函数可以被派生出来的对象的成员函数替代。这些特点使程序更加模块化。举个例子:主程序需要在程序代码的不同地方建立与派生类的不同变量之间的接口关系,但是这些仅仅只关系到基类,与派生类无关。运行时间系统自动的调用适当的派生类的成员函数。对C++比较好的介绍来自Stevens (1994);它假象读者有一定得编程语言知识,特别是对C语言的了解。 在部分将介绍怎么用C++语言开发自定义本构模型。这节主要包括基类、成员函数、本构模型编号、自定义本构模型与FLAC3D之间的传递信息,本构模型状态指示器。在节中将介绍怎样生成DLL本构模型。这一节主要包括自定义本构模型的支持函数,实例本构的源代码,FISH支持的用户自定义本构,和怎样生成和加载一个DLL文件。在这一节中所有的参考文件被包含在“\ITASCA\Models\UDM”文件夹下面的“”这个压缩包文件里面。 注意:FLAC3D 版本是用Microsoft Visual C++(VC++)版本编译的。用户自定义的DLL文件最好采用与其相当的编译器来编译,以使用户自定义的DLL文件能与FLAC3D兼容。 自定义本构的方法 自定义本构的基类 以上介绍的方法是FLAC3D自定义本构支持的方法。基类为从基类派生出来的实际的本构模型提供框架。这个基类叫ConstitutiveModel类,被称为“绝对”的类,因为他声明了许多完全虚有的成员函数(通过=0语法附加到函数原型)。这意味着这个基类不能产生任何对象,以及从这个基类派生出来的任何对象都必须提供真实的成员函数,以替代ConstitutiveModel类中的虚有成员函数。例子,提供了ConstitutiveModel(包含在文件“”中)这个类的部分代码,ConstitutiveModel类中的一些成员函数,像公共函数在例子中省略掉了。公有函数的使用(像YoungPoissonFromBulkShear)是不用证明的,有关他们使用的例子可以在提供的本构模型源程序中找到,FLAC3D使用其它的函数来操作和访问本构模型,用户可以毫无理由的使用和重新定义这些。 class ConstitutiveModel { public: EXPORT ConstitutiveModel(unsigned uTypeIn,bool bRegister=false); EXPORT virtual ?ConstitutiveModel(void); double ConfinedModulus(void)这个对象返回一个值,这个值可以更好的估计最大的受压模量。它应用在FLAC3D计算稳定时间步中,对于一个线性的弹性模型来说,这个受压模量是K + 4G/3。 double ShearModulus(void)这个对象返回一值,这个值可以更好的估计当前的正切剪切模量。这个使用在FLAC3D动力本构模型中粘滞静态边界系数。 double BulkModulus(void) FLAC3D目前还没有使用这个对象,但是这个对象可以很好的返

软件过程模型的优缺点和适用范围

软件过程模型 1、4种模型的对比 瀑布模型: 优点:文档驱动 缺点:阶段划分固定,大量文档;开发成果最后出增加风险;不适应用户的变化适用范围:需求准确无重大变化的软件项目开发 快速原型模型: 优点:关注了客户的需求,降低了开发风险 缺点:可能导致系统设计差,难维护;不宜用原型产生最终产品,最终产品还是要考虑质 量和可维护性 适用范围:需求复杂,难以确定、动态变化的系统 增量模型: 优点:分批提交产品;减少新软件对用户的冲击;可维护性增加,需求变更只需要更改构 件 缺点:构件逐渐加入,不能破坏已经构造的系统,要求软件具备开放式结构;需 求变化时,适应性大于瀑布和快速原型,但容易退化为边做边盖,失去整体控制性;有无法集成的风险; 适用范围:风险较大用户需求较稳得大型软件系统 螺旋模型: 优点:1)设计上的灵活性,可以在项目的各个阶段进行变更。 2)以小的分段来构建大型系统,使成本计算变得简单容易。 3)客户始终参与每个阶段的开发,保证了项目不偏离正确方向以及项目的可控性。 4)随着项目推进,客户始终掌握项目的最新信息,从而他或她能够和管理层有效地交互。 5)客户认可这种公司内部的开发方式带来的良好的沟通和高质量的产品。 缺点:建设周期长,和当前技术水平差距大,无法满足需求; 适用范围:庞大复杂并具有高风险的系统,特别适合内部开发的大规模软件项目 2、喷泉模型 特点:无明显边界、阶段内迭代 优点:各阶段无明显界限,开发人员同步进行,提高项目开发效率缺点: 重叠的项目不利于项目管理,审核难度加大 适用:面向对象的软件过程 3、重用构件模型 4、RUP 通用的过程框架 4个阶段 9个核心工作流 前6个为核心过程,后3个是核心支撑

FLAC3D学习笔记(自己总结版)

FLAC3D学习笔记(自己总结版) 一、建立模型笔记1键盘上的键的功能:X,Y,Z分别控制所建立的模型围绕X,Y,Z三个轴做逆时针旋转、如果打开大小写锁定键,分边按XYZ时建立的模型会做顺时针旋转、+号的功能是加大模型旋转的角度,-号的功能是减小模型旋转的角度。2键盘上的上下左右四个键可以实现图形的向上向下,向左和向右的移动、3当在一个区域建立多个模型的时候,有时候为了镜像单个模块儿,需要预先编组,编组的方法如下:gen zon tunint p0 0 0 0 p1 010 0 p255 0 p3 0 05 p6 0105 dim sq2 sq21 sq2111 group(编组) z1(组名为:z1) &fill group tunnel4镜像整个模型的方法:首先判断即将镜像的模型在原模型的哪个方向(即三个轴的方向),然后在轴所在的方向上去两个点、其中一个是原点(origin(xyz))、5镜像部分模型的方法: gen zone reflect normal (x,y,z) origin (x,y,z) range group z1就可以了、6特别要注意的一点:交叉巷道的巷道充填和巷道的网格是两个组,所以在镜像的时候不要忘了给充填部分镜像、7 group radcyl range group cylint not (编组的时候不包括cylint)7 快捷键总结Ctrl+Z 局部缩放的功能。 Ctrl+R的功能是恢复到初始状态。8模型建立的方法:方法1:利用

默认值生成网格,各个默认值:(1)p0的默认值是(0,0,0),网格的每边的单元格数size默认值是10,网格每边的长度默认值为size的值、方法2:利用4个点的坐标来生成矩形网格、p0~p3 size方法3:利用edge来确定边长生成矩形网格、方法4:利用参数ratio来确定单元体几何边画边生成矩形网格、方法5:利用参数add(相对坐标)来生成矩形网格、方法6:利用八个点的左边来生成矩形网格、9、用户自定义模型的方法我来贡献一点自己的成果:; U" j/ ?7 L+ a0 uFLAC3D的二次开发环境提供了开放的用户接口,在软件安装文件中包含了软件自带所有本构模型的源代码,且给出了Mohr-Coulomb模型和应变软化模型的编译示例,因此可以方便地进行本构模型的修改与开发。为了方便起见,下面的说明以建立UserModel模型为例。c % b1 h、 \ K6 Q: l(1) 在模型头文件(usermodel、h)中进行新的本构模型派生类的声明,修改模型的ID(为避免与已有模型冲突,一般要求大于100)、名称和版本,修改派生类的私有成员,主要包括模型的基本参数及程序执行过程中主要的中间变量。( ? p6 u J5 Q3 y( a(2) 在程序C++文件(usermodel、cpp)中修改模型结构(UserModel::UserModel(bool bRegister): Constit L, t% V、D(4)

FLAC3D基础知识介绍解析

FLAC 3D基础知识介绍 一、概述 FLAC(Fast Lagrangian Analysis of Continua)由美国Itasca公司开发的。目前,FLAC有二维和三维计算程序两个版本,二维计算程序V3.0以前的为DOS版本,V2.5版本仅仅能够使用计算机的基本内存64K),所以,程序求解的最大结点数仅限于2000个以内。1995年,FLAC2D已升级为V3.3的版本,其程序能够使用护展内存。因此,大大发护展了计算规模。FLAC3D是一个三维有限差分程序,目前已发展到V3.0版本。 FLAC3D的输入和一般的数值分析程序不同,它可以用交互的方式,从键盘输入各种命令,也可以写成命令(集)文件,类似于批处理,由文件来驱动。因此,采用FLAC程序进行计算,必须了解各种命令关键词的功能,然后,按照计算顺序,将命令按先后,依次排列,形成可以完成一定计算任务的命令文件。 FLAC3D是二维的有限差分程序FLAC2D的护展,能够进行土质、岩石和其它材料的三维结构受力特性模拟和塑性流动分析。调整三维网格中的多面体单元来拟合实际的结构。单元材料可采用线性或非线性本构模型,在外力作用下,当材料发生屈服流动后,网格能够相应发生变形和移动(大变形模式)。FLAC3D采用的显式拉格朗日算法和混合-离散分区技术,能够非常准确的模拟材料的塑性破坏和流动。由于无须形成刚度矩阵,因此,基于较小内存空间就能够求解大范围

的三维问题。 三维快速拉格朗日法是一种基于三维显式有限差分法的数值分析方法,它可以模拟岩土或其他材料的三维力学行为。三维快速拉格朗日分析将计算区域划分为若干四面体单元,每个单元在给定的边界条件下遵循指定的线性或非线性本构关系,如果单元应力使得材料屈服或产生塑性流动,则单元网格可以随着材料的变形而变形,这就是所谓的拉格朗日算法,这种算法非常适合于模拟大变形问题。三维快速拉格朗日分析采用了显式有限差分格式来求解场的控制微分方程,并应用了混合单元离散模型,可以准确地模拟材料的屈服、塑性流动、软化直至大变形,尤其在材料的弹塑性分析、大变形分析以及模拟施工过程等领域有其独到的优点。 FLAC-3D(Three Dimensional Fast Lagrangian Analysis of Continua)是美国Itasca Consulting Goup lnc开发的三维快速拉格朗日分析程序,该程序能较好地模拟地质材料在达到强度极限或屈服极限时发生的破坏或塑性流动的力学行为,特别适用于分析渐进破坏和失稳以及模拟大变形。它包含10种弹塑性材料本构模型,有静力、动力、蠕变、渗流、温度五种计算模式,各种模式间可以互相藕合,可以模拟多种结构形式,如岩体、土体或其他材料实体,梁、锚元、桩、壳以及人工结构如支护、衬砌、锚索、岩栓、土工织物、摩擦桩、板桩、界面单元等,可以模拟复杂的岩土工程或力学问题。 FLAC3D采用ANSI C++语言编写的。 二、FLAC3D的优点与不足

软件过程模型的优缺点对比

软件过程模型的比较 瀑布模型 瀑布模型(经典生命周期)提出了软件开发的系统化的、顺序的方法。其流程从用户需求规格说明开始,通过策划、建模、构建和部署的过程,最终提供一个完整的软件并提供持续的技术支持。 优点: 1. 强调开发的阶段性,各阶段具有顺序性和依赖性 2. 强调早期调研和需求分析,推迟编码实现的观点 3. 提供了一个摸板,这个摸板使得分析、设计、编码、测试和支持的方法可以在该摸板下有一个共同的指导 缺点: 1. 文档驱动,用户无法及时了解产品的情况 2. 依赖早期调研和需求分析,很难适应在许多项目开始阶段必然存在的不确定性。 3. 流程单一,必须要完成前一阶段的任务,才能进行下一阶段,开发过程中的成功经验无 法用于本产品。 4. 测试在后期引入,对于系统存在的重大缺陷,如果在可执行程序评审之前没有被发现, 将可能造成重大损失。 5. 组织庞大,人员闲置。 适用范围:需求确定,工作能够采用线性的方式完成的软件。 增量过程模型 增量过程模型包括增量模型、RAD模型。 (一)增量模型增量过程模型以迭代的方式运用瀑布模型,把软件产品作为一系列的增量构 件来设计、编码、集成和测试。每个构件由多个相互作用的模块构成,并且能够 完成特定的功能。使用增量模型时,第一个增量往往是核心功能。 优点: 1. 能在较短的时间内向用户提交可完成部分工作的产品。 2. 逐步增加产品功能可以使用户有充裕的时间学习和适应新产品,从而减少一个全新的软件可能给客户组织带来的冲击。 3. 规避技术风险 4. 可并行开发构件,加快开发的进度 缺点:

1. 没有考虑软件的整体质量和长期的可维护性。 2. 大部分情况是不合适的操作算法被采用目的为了演示功能,不合适的开发工具被采用 仅仅为了它的方便,还有不合适的操作系统被选择等等。 3. 由于达不到质量要求产品可能被抛弃,而采用新的模型重新设计 适用范围:项目在既定的商业要求期限之前不可能找到足够的开发人员; (二)R AD模型 RAD模型是一种侧重于短暂的开发周期的增量软件过程模型,它是瀑布模型的“高速”变体,通过基于构建的构建方法实现快速开发。开发团队能够在非常短的时间内创造出“全功能系统” 优点: 1 ?开发速度快,质量有保证。 2 ?对信息系统特别有效。 缺点: 1. 对于大型的可伸缩的项目,RAD需要大量的人力资源来创建多个相对的独立 的RAD团队 2. 如果开发者和用户没有为短时间内急速完成整个系统做好准备,RAD项目将 会失败。 3. 如果一个系统不能合理的模块化,RAD构件建立会有很多问题。 4. 如果系统需求是高性能,并且需要通过调整构件接口的方式来提高性能,不能采用 RAD模型 5. 技术风险很高的情况下 适用范围:1、不适合技术风险很高的开发,不适合系统需求是高性能,并且需要通过调整构件接口的方式来提高性能的产品开发。 2、适用于工期紧张,又可细分功能,还要有合适的构件 演化过程模型 演化过程模型包括原型开发,螺旋模型,协同开发模型。 (一)原型开发从需求收集开始,开发者和客户在一起定义软件的总体目标,标识已知的需 求并且规划出需要进一步定义的区域。然后是快速设计”,它集中于软件中那些对客户可见的部分的表示,这将导致原型的创建,并由客户评估并进一步精化待开发软件的需求。逐步调整原型使其满足客户的需求,这个过程是迭代的。其流程从听取客户意见开始、随后是建造/修改原型、客户测试运行原型、然后回头往复循环直到客户对原型满意为止。由于这种模型可以让客户快速的感受到实际的系统(虽然这个系统不带有任何质量的保证),所以客户和开发者都比较喜欢这种过程模型(对于那些仅仅用来演示软件功能的公司而言或从来不考虑软件质

几种常见软件过程模型

软件开发一个复杂的活动,它包含了需求调研,系统设计,开发,部署,维护等活动.而且现有规范和流程目的并不是让你去完成文档,而是通过这些文档,让软件的质量更能得到保证。组成软件开发和系统演化的活动有着各种模型(软件生存周期,软件开发模型,软件过程),但是典型地都包含了以下的过程或活动:分析、设计、实现、确认(测试验收)、产品化、维护。 软件开发方法的一般要求:当提出一种软件开发方法时,应该考虑许多因素,包括: ①覆盖开发全过程,并且便于在各阶段间的过渡; ②便于在开发各阶段中有关人员之间的通信; ③支持有效的解决问题的技术 ④支持系统设计和开发的各种不同途径 ⑤在开发过程中支持软件正确性的校验和验证; ⑥便于在系统需求中列入设计、实际和性能的约束; ⑦支持设计师和其他技术人员的智力劳动; ⑧在系统的整个生存周期都支持它的演化; ⑨受自动化工具的支持。 一个项目的成功与否跟人员、技术、资源、测试、架构、需求、领导、组织等因素有关系。把以上内容我们划分为生命周期、人员、方法、工件、组织。而我们的软件过程就针对这些方面讨论解决方案,目前的有Rup、AP、MP、HP、CMMI、Psp、Tsp等。这里将介绍一些方法的思想与指导原则。 一、软件过程模型 分类: 1.惯例过程模型。 2.瀑布模型(又叫作生命周期模型)。 3.增量过程模型:包括增量模型、RAD模型。 4.演化过程模型:包括原型开发模型、螺旋模型、协同开发模型。 5.专用过程模型:包括基于构件的开发模型、形式化方法模型、面向方面的软件开发模型。 过程模型图:

二、常见软件过程开发方法(Rup、AP、MP、HP) 1、RUP RUP(Rational Unified Process,统一软件开发过程,统一软件过程)是一个面向对象且基于网络的程序开发方法论。以用例驱动、架构为中心、迭代增量开发方法。 主要内容: 1)六大经验:迭代式开发、管理需求、基于组件的体系结构、可视化建模、验证软件质量、控制软件变更。 2)统一软件开发过程RUP的二维开发模型

相关文档