点击注册
点击注册
.

棋牌问答 [Abaqus]能干什么之Xfem

发布日期:2022-02-28 11:28    点击次数:180
啥叫XFEM你可能会想到还有这个其实,还有这个那么,既然世界上有商业软件这个东西,作为纵横工业界与科研界的我们,还是比较喜欢不用编代码的东西。这是个复杂的问题,官方是这样说的:是一种解决断裂力学问题的新的有限元方法,其理论最早亍 1999 年,由美国西北大学的教授 Belyschko 和 Black 首次提出,主要是采用独立亍网格剖分的思想解决有限元中的裂纹扩展问题,在保留传统有限元所有优点的同时,并不需要对结构内部存在的裂纹等缺陷进行网格划分。等等这个重要吗?这个当然不重要!!作为工科生我们只关心两件事第一,这个玩意怎么搞,有个啥用第二,这个玩意怎么用但是,作为一名搞科研的人,还是要把原理大致阐述一下,就是ABAQUS在6.7版本引入XFEM这种算法可以很好地描述,断裂的特性,应力、裂纹扩展的情况,在机械、岩石有着广阔的应用,那么作为一个工科生,我可以负责人的讲,前方高能预警要是用还是要干这两档子事,第一,选择模型中可能出现裂纹的区域,将其单元设置为具有扩展有限元性质的富集单元。第二,选择合适的破坏准则,使得单元在达到条件时发生破坏,裂纹得以扩展。首先,在材料中添加Maxps Damage ,这个是传说中的损伤系数,用来说明破坏准则,Damage Evolution是损伤演化参数 主要用来损伤的发展情况 Damage Stabilization Cohesive 是损伤稳定性系数,改善收敛用的第二,档子事就是告诉电脑损伤区在哪?在哪,自己定义在相互作用(interaction) 模块,做一下剧透,我一直对这个Special很好奇,所以我就把所以的选项都试了试,这个Special是个神奇的东西,第一个质量特性,可以定义什么质量、重心和转动惯量啊啥的,第二个我一会讲,第三个,Spring/Dashpots是用来定义两点之间的弹簧、阻尼啥的,这个弹簧还可以是什么六个自由度的、非线性的很好用,第四个,就是一个链接单元,机械里经常用,我们很少涉猎。当然, ABAQUS 允许在裂缝发展区域中插入一个初始裂缝,这个初始裂缝可以在 Assembly里进行组装。当然这个凡是都有缺陷,所以虽然Abaqus很好很强大,但是这也是万能的,为啥呢。因为其实单元内部的位移函数(形函数)可以是任意形状的,但大多数的计算软件都采用了多项式戒者揑值多项式作为手段来描述单元内部的位移场,这是因为采用这种方法更加便亍在编程中进行处理。但是这种方法的缺点就是,由亍形函数的连续性,导致单元内部不可能存在间断。直到 Belytschko 提出采用水平集函数作为手段这种扩充形函数能够描述单元内位移场在裂缝两边的跳跃性,但是由于裂缝存在于单元内部,其扩展独立不其他单元,使得计算变得高效。但是这种方法也存在一些问题,XFEM 采用的形函数模式会导致其求解方程很容易接近线形相关,极大的增加了收敛难度,因此导致 XFEM 方法一直没有办法得到很好的推广。 其实 ABAQUS 在集成 XFEM 方法时做了大量的简化,目的都是减小求解的难度, ABAQUS 的帮助在介绍 XFEM 的时候其实说:The following limitations exist with an enriched feature: 几个限制:An enriched element cannot be intersected by more than one crack.不能模拟交叉裂缝A crack is not allowed to turn more than 90° in one increment during an analysis.裂缝扩展方向不能偏转超过90Only asymptotic crack-tip fields in an isotropic elastic material are considered for a stationary crack.对于制定裂缝的方法来讲,裂尖渐近位移场计算只能使用各项异性材料Adaptive remeshing is not supported.自适应网格也不能用Composite solid elements are not supported.复合材料单元也不能用此外,计算过程中很容易发现裂缝是丌能停留在单元内部的,这说明了ABAQUS 放弃了单元内部对裂尖的描述。同时,由亍 ABAQUS 在计算 XFEM 的损伤时采用的是基亍能量释放率的 paris 法则,虽然这是基亍弹塑性断裂力学的经典手段,但由亍承认了裂尖位置的塑性效应,使得在模拟损伤时也只能对低周疲劳能有比较好的近似。总之,尽管有如此之多的限制,但 XFEM 方法依然为有限元领域注入了一剂新鲜的空气,它所提供的是一种广义有限元的实现过程,为有限元理论的发展提供了一种新的思维方式。这是极官方的评价考虑大家基础比较薄弱,下面较大家如何添加裂缝:第一步,做一个Part第二部建一个裂缝第三步,加上位移荷载啥的第四步,编辑裂缝第五步,定义材料属性第六步,定义求解步,一般规定个时间啥的第七步,为了保证能够看清楚裂缝扩展的过程,要把求解增量步变小第七步,定义损伤稳定系数第八步,选取输出场变量第九步,画网格第十步,求解如果还是不明白咱也有法子,你把下边的代码丢到最下面的那个命令框里,就好了。计算结果:# === Modules === from part import * from material import * from section import * from assembly import * from step import * from regionToolset import * from interaction import * from load import * from mesh import * from job import * from sketch import * from visualization import * from connectorBehavior import * #--------------------------------------------------------------------------------- # === Parameters === modelName = 'modeII_2d_lefm' length = 3.0 # plate half-length height = 6.0 # plate height width = 1.0 # plate width crack_len = 1.5 # crack length crack_y = 0.05 # crack offset in y-direction YM = 2.10e+11 # Young's modulus NU = 0.3 # Poisson's ratio MAXPS = 8.44e7 # Damage initiation DTOL = 0.05 # Damage tolerance GI = 42200.0 # Fracture energy ETA = 1.0 # Power-law exponent #--------------------------------------------------------------------------------- # === Create model === Mdb() viewportName = session.Viewport(name=modelName) viewportName.makeCurrent() viewportName.maximize() plateModel = mdb.Model(name=modelName) del mdb.models['Model-1'] #--------------------------------------------------------------------------------- # === Create parts === plateSketch = plateModel.ConstrainedSketch(name='plateProfile',sheetSize=height) plateSketch.setPrimaryObject(option=STANDALONE) plateSketch.sketchOptions.setValues(decimalPlaces=3) plateSketch.Line(point1=(0.0, -height/2.0), point2=(0.0, height/2.0)) plateSketch.Line(point1=(0.0, height/2.0), point2=(length, height/2.0)) plateSketch.Line(point1=(length, height/2.0), point2=(length, -height/2.0)) plateSketch.Line(point1=(length, -height/2.0), point2=(0.0, -height/2.0)) platePart = plateModel.Part(dimensionality=TWO_D_PLANAR, name='plate', type=DEFORMABLE_BODY) platePart.BaseShell(sketch=plateModel.sketches['plateProfile']) plateSketch.unsetPrimaryObject() del plateSketch # Part for crack geometry crackSketch = plateModel.ConstrainedSketch(name='crackProfile',sheetSize=height) crackSketch.Line(point1=(0.0, crack_y), point2=(crack_len, crack_y)) crackPart = plateModel.Part(dimensionality=TWO_D_PLANAR, name='crack', type=DEFORMABLE_BODY) crackPart.BaseWire(sketch=plateModel.sketches['crackProfile']) crackSketch.unsetPrimaryObject() del crackSketch #--------------------------------------------------------------------------------- # === Create geometry sets === platePart.Set(faces=platePart.faces[:], name='All') e1 = platePart.edges.findAt(( (length/2.0, -height/2.0, 0.0), )) platePart.Set(edges=e1, name='bottom') e1 = platePart.edges.findAt(( (length/2.0, +height/2.0, 0.0), )) platePart.Set(edges=e1, name='top') #--------------------------------------------------------------------------------- # === Define material and section properties === plateMatl = plateModel.Material(name='elas') plateMatl.Elastic(table=((YM, NU), )) plateMatl.MaxpsDamageInitiation(table=((MAXPS, ), ), tolerance=DTOL) plateModel.HomogeneousSolidSection(material='elas', name='solid', thickness=width) #--------------------------------------------------------------------------------- # === Assign section and orientation === #platePart.MaterialOrientation(fieldName='', localCsys=None, orientationType=GLOBAL, region= # platePart.sets['All'], stackDirection=STACK_3) platePart.SectionAssignment(region=platePart.sets['All'], sectionName='solid') #--------------------------------------------------------------------------------- # === Assign mesh controls and mesh plate === # Element type platePart.setElementType(elemTypes=(ElemType(elemCode=CPE4, elemLibrary=STANDARD), ElemType(elemCode=CPE3, elemLibrary=STANDARD)), regions=platePart.sets['All']) # Mesh technique platePart.setMeshControls(elemShape=QUAD, regions=platePart.faces[:], technique=STRUCTURED) # Seed mesh ex = 30; ey = 60; e1 = platePart.edges.findAt(( (length/2.0, -height/2.0, 0.0), )) platePart.seedEdgeByNumber(edges=e1, number=ex) e1 = platePart.edges.findAt(( (length, 0.0, 0.0), )) platePart.seedEdgeByNumber(edges=e1, number=ey) platePart.generateMesh() # === End part === #--------------------------------------------------------------------------------- # === Assemble === plateModel.rootAssembly.DatumCsysByDefault(CARTESIAN) plateModel.rootAssembly.Instance(dependent=ON, name='plate_1', part=platePart) plateModel.rootAssembly.Instance(dependent=ON, name='crack_1', part=crackPart) # Reference points for displacement application rp_db = plateModel.rootAssembly.ReferencePoint(point=(length, -height/2.0, 0.0)) plateModel.rootAssembly.features.changeKey(fromName='RP-1', toName='db') #--------------------------------------------------------------------------------- # === Create assembly sets === v1 = (plateModel.rootAssembly.referencePoints[rp_db.id], ) plateModel.rootAssembly.Set(name='bdisp', referencePoints=v1) # === End assembly === #--------------------------------------------------------------------------------- # === Create constraint equation === plateModel.Equation(name='ce_bot', terms=((1.0, 'plate_1.bottom', 1), (-1.0, 'bdisp', 1))) #--------------------------------------------------------------------------------- # === Create step === plateModel.StaticStep(timePeriod=0.483,initialInc=0.01, maxInc=0.05, maxNumInc=10000, minInc=1e-012, name='Static', nlgeom=ON, previous='Initial') plateModel.steps['Static'].control.setValues( allowPropagation=OFF, resetDefaultValues=OFF, timeIncrementation=(4.0, 8.0, 9.0, 16.0, 10.0, 4.0, 12.0, 20.0, 6.0, 3.0, 50.0)) plateModel.fieldOutputRequests['F-Output-1'].setValues( variables=('S', 'LE', 'U', 'RF', 'PHILSM', 'STATUSXFEM')) plateModel.HistoryOutputRequest(createStepName='Static', name='H-Output-2', rebar=EXCLUDE, region= mdb.models[modelName].rootAssembly.sets['bdisp'], sectionPoints= DEFAULT, variables=('U1', 'RF1')) #--------------------------------------------------------------------------------- # === Apply boundary conditions === plateModel.TabularAmplitude(name='Amp-1', timeSpan=STEP, smooth=SOLVER_DEFAULT, data=((0.0, 0.0), (1, 1.0))) plateModel.DisplacementBC( createStepName= 'Static', distributionType=UNIFORM, fieldName='', fixed=OFF, localCsys=None , name='rp',amplitude='Amp-1', region=plateModel.rootAssembly.sets['bdisp'], u1=0.01, u2= UNSET, ur3=UNSET) plateModel.DisplacementBC(amplitude=UNSET, createStepName= 'Static', distributionType=UNIFORM, fieldName='', fixed=OFF, localCsys=None , name='bot', region=plateModel.rootAssembly.instances['plate_1'].sets['bottom'] , u1=UNSET, u2=0, ur3=UNSET) plateModel.DisplacementBC( createStepName= 'Static', distributionType=UNIFORM, fieldName='', fixed=OFF, localCsys=None , name='top',amplitude='Amp-1', region=plateModel.rootAssembly.instances['plate_1'].sets['top'] , u1=-0.01, u2=0, ur3=UNSET) #--------------------------------------------------------------------------------- # === Define enrichment and initial crack === edges = plateModel.rootAssembly.instances['crack_1'].edges e1 = edges.findAt(( (crack_len/2.0, crack_y, 0.0), )) crackLocation = Region(edges=e1) plateModel.ContactProperty('contact') plateModel.rootAssembly.engineeringFeatures.XFEMCrack( name='enr1', crackDomain=plateModel.rootAssembly.instances['plate_1'].sets['All'] , interactionProperty='contact', crackLocation=crackLocation) plateModel.interactionProperties['contact'].FractureCriterion( initTable=((GI, GI, GI, 1.0, 1.0, 1.0), ), mixedModeBehavior=POWER, tolerance=0.2, viscosity=5e-05) plateModel.rootAssembly.engineeringFeatures.cracks['enr1'].setValues(interactionProperty='contact') #--------------------------------------------------------------------------------- # === Create Job === mdb.Job(model=modelName, name='modeII_lefm_xfem_cpe4', description='Crack propagation in a plate under mixed-mode loading (XFEM)') #--------------------------------------------------------------------------------- 搞定。。。

我们都知道,在打麻将的时候,经常会遇到手气很好或者手气一直不好的情况。尤其是在手气不好的状态下,应该想出一些方式进行“转运;。比如,在麻将技巧中,当手气十分不顺的时候,可以冒险打出一些让对手能吃的牌。当然,必须要确定的是这张牌不能成为对手的关键牌。这样的做法就可以改变摸牌的顺序,将原本属于你的不顺当的牌运,转移到别人身上,而把别人抓好牌的运气转移到自己身上。

挫旺家运气的手段有三种棋牌问答,第一为过牌,过一二三张牌皆可;第二为换位置,也算是换风水的一种;第三为去上趟洗手间,有许多人认为出去转转可以转换运气。





Powered by 麻将机 @2013-2022 RSS地图 HTML地图

网站统计——

  • 谷歌搜索留痕推广
  • 谷歌搜索留痕排名技术
  • 谷歌快速排名
  • 留痕方法
  • 谷歌搜索快速方法
  • google搜索留痕程序
  • 谷歌快速排名
  • 澳门太阳城
  • 最大博彩公司
  • 谷歌搜索关键词排名
  • 搜索留痕程序
  • 谷歌排名出售
  • 谷歌蜘蛛池排名
  • 搜索留痕软件
  • 缅甸果敢赌场
  • 电子游艺规则
  • 谷歌留痕推广
  • google引流程序
  • 谷歌快速排名
  • google引流程序
  • 留痕推广
  • 大西洋城赌场
  • 买球地址
  • 搜索留痕
  • 搜索留痕程序出售
  • 谷歌蜘蛛池排名技术
  • 留痕程序
  • 如何提高google搜索排名
  • 数字币博彩
  • 洗钱方法
  • Google留痕收录
  • 最新谷歌搜索留痕排名
  • 搜索留痕
  • Google留痕收录
  • google搜索留痕
  • 数字币博彩网站
  • 足球投注平台
  • 博彩推广话术
  • 推广引流方法
  • 引流方法
  • 博彩推广话术
  • 网上博彩推广引流
  • 数字币赌场
  • 皇冠现金网
  • 蜘蛛池排名
  • 谷歌蜘蛛池
  • 留痕程序出售
  • google搜索留痕程序
  • 比特币网上赌场
  • 洗钱平台
  • 搜索留痕
  • 博彩推广方式
  • 网上博彩推广
  • 快速排名
  • 搜索留痕程序
  • bbin平台大全
  • 体育博彩公司排名
  • 留痕排名技术
  • 最新谷歌关键词排名
  • 推广渠道
  • 谷歌快速排名
  • 博彩推广
  • 世界杯赌球地址
  • 皇冠博彩公司
  • 谷歌排名出售
  • 博彩引流渠道
  • 搜索留痕程序
  • google搜索留痕
  • 引流渠道
  • 果敢网上赌场
  • 世界杯赌球
  • 搜索留痕方法
  • 博彩搜索留痕
  • 博彩引流
  • 博彩引流
  • 搜索留痕
  • 缅甸网上赌场
  • 欧洲杯赌球
  • 谷歌搜索排名
  • 留痕程序
  • 网上博彩推广引流
  • 留痕技术
  • 搜索留痕技术出售
  • 澳门威尼斯人网上赌场
  • 外围博彩
  • 博彩网站推广
  • 推广引流
  • 留痕程序出售
  • 谷歌推广引流技术
  • 推广引流方法
  • 美国在线赌场
  • 沙巴体育投注平台
  • 最新谷歌搜索留痕
  • 谷歌蜘蛛池排名技术
  • 网站推广方法
  • 留痕程序出售
  • 博彩推广方法
  • 菠菜论坛
  • 买球平台
  • 谷歌搜索留痕
  • 蜘蛛池排名
  • 博彩公司推广渠道
  • 谷歌搜索留痕
  • 博彩公司推广渠道
  • 真钱游戏
  • 网上赌球地址
  • 赌球平台推荐
  • 赌球网址
  • 博彩包网
  • 买球app
  • 澳门博彩公司
  • 威尼斯人赌场
  • 博彩平台推荐
  • 美国博彩网站
  • 缅甸实体赌场
  • 柬埔寨网上赌场
  • 柬埔寨在线赌场
  • 韩国博彩
  • 支持人民币的博彩公司
  • 世界五大比特币交易所
  • 欧易是哪个国家的
  • 中币跑路
  • 亚洲博彩公司
  • 合法网上赌场
  • 马尼拉赌场
  • 支持人民币的博彩公司
  • 大陆博彩平台
  • 澳门新葡京娱乐城
  • 老挝赌场
  • 世界赌场排名
  • 网上博彩公司排行
  • 菠菜论坛
  • 东南亚赌博网站
  • 虚拟币博彩
  • 澳门百家乐网址
  • 网上博彩导航
  • 区块链百家乐游戏
  • 马来西亚博彩公司
  • 越南赌场
  • 区块链百家乐
  • 香港娱乐场
  • 澳大利亚赌博网站
  • 足球赔率
  • 菲律宾网上赌场
  • 数字币博彩网站
  • 足球投注网站
  • 百家乐论坛
  • 皇冠体育博彩公司
  • 网上赌博网站
  • 网上博彩推广话术
  • 谷歌搜索快速方法
  • 网上博彩推广话术
  • 数字币赌场
  • 皇冠博彩公司
  • 世界杯博彩公司
  • 英国博彩公司
  • 网上博彩合法化
  • 新加坡赌场
  • 比特币网上赌场
  • 怎么洗钱
  • 加密货币博彩平台
  • 世界杯赌球网址
  • 网上赌球地址
  • 博彩推广方式
  • 印度尼西亚博彩公司
  • 国际包网
  • bbin平台直营
  • 亚洲体育博彩平台
  • 越南博彩公司
  • 百家乐路单
  • 澳门博彩官网
  • 博彩网推荐
  • 澳门太阳城网址
  • 百家乐网址
  • 世界杯赌球网址
  • 皇冠博彩网址
  • 洗钱方法
  • 买球网站
  • 欧洲杯赌球平台
  • 皇冠现金网
  • 外围赌球平台
  • 果敢赌场
  • 买球技巧
  • 全球最大博彩公司
  • 电子游艺
  • 真人电子游戏
  • 骰宝游戏规则
  • 亚洲体育博彩平台
  • 澳门在线赌场
  • 缅甸赌场地址
  • 赌球平台
  • 赌场如何赢钱
  • 世界杯买球网站
  • 真人牌九游戏
  • 世界杯买球官网
  • 时时彩平台
  • 六合彩预测
  • 威尼斯人网上赌场
  • 外围赌球网站
  • 赌博网址
  • 彩票群
  • 微信赌博群
  • 韩国首尔赌场
  • 赌钱游戏
  • 美国网上赌场
  • bbin官网
  • 沙巴体育官网
  • 博彩平台推荐
  • 数字币博彩网站
  • 比特币网上赌场
  • 世界赌场名单
  • 美国赌场攻略
  • 菠菜论坛排名
  • 菠菜论坛排名
  • 缅甸网上赌场
  • 支持人民币的博彩公司