LS-DYNA中的接触问题(四)(接触输出,接触参数)

LS-DYNA中的接触问题(四)(接触输出,接触参数),第1张

本文翻译自官方文档,原文链接:

https://www.dynasupport.com/tutorial/ls-dyna-users-guide/contact-modeling-in-ls-dyna

       LS-DYNA可以输出大量有关接触的文件,LS-POST可以读取这些数据并绘制相关图表。

       与接触有关的最常用的输出文件RCFORC由K文件中的*DATABASE_RCFORC关键字控制输出。RCFORC是一个ASCII文件,里面存储了接触面两侧(主面和从面)的合接触力,该数据是在全局坐标系下输出的。注意,RCFORC文件中没有单面接触的接触力,这是因为单面接触中所有的接触力都来自从面,所以其净接触力(net contact forces)是0。如果想要在RCFORC 文件中输出使用单面接触时的接触力,那么应该使用关键字*CONTACT_FORCE_TRANSDUCER_PENALTY来作为“力传感器”。由于力传感器并不产生任何接触力,因此对仿真模拟的结果没有影响;仅仅用来测量由模型定义的接触面产生的接触力。用户应将模型中参与单面接触的部件设置成一个集合,并将其定义为一个从面,以便力传感器测量接触力,无需设置主面。这样RCFORC文件将会输出该部件集合产生的合接触力。

       ASCII文件NCFORC可以输出每一个节点上的接触力,这个文件可以通过K文件中的*DATABASE_NCFORC关键字来控制输出。另外,用户应在该关键字中设置一个或两个输出声明(see SPR and MPR on Card 1 of *CONTACT_),程序会将输出声明设为1的面所对应的节点接触力写入到NCFORC文件中。

       通过设置K文件中的关键字*DATABASE_SLEOUT,我们可以将接触界面能输出到SLEOUT这一ASCII文件中。当模型中有两个或多个接触对时,若计算结果中全局数据文件GLSTAT里的能量数据出现问题,例如较大的负值,那么就可以利用 SLEOUT文件来定位可能出现问题的那个接触面。有关接触能的信息见用户手册Section 23.8.4。

       在某些情况下,接触面以及接触面法向和切向应力云图的可视化是非常有用的。要输出这样一个二进制文件需要做到:

       1.在K文件中设置*DATABASE_BINARY_INTFOR关键字。

       2.设置一个或两个如上述的输出声明。

       3.在K文件中手动编辑,增加s=filename这一行,其中filename就是要输出的文件名。获得的这一文件可以在LS-POST中进行后处理。

       LS-DYNA中有一些可以修改或改进模型接触行为的相关参数。一般用户使用这些参数时,默认值即可满足要求,但是有时根据接触行为的不同,非默认值反而更合适。下面几节介绍常用的参数并给出相关使用建议。

       接触参数的设置可以通过关键字*CONTROL_CONTACT,*CONTACT_和PART_CONTACT完成。这些参数有可能需要不止一个命令来实现,所以关键字之间应该有优先级的区分。关键字*CONTROL_CONTACT中的参数重定义了模型中所有接触的初始设置;关键字*CONTACT_中的参数会重写个别接触中的设置;*PART_CONTACT则会进一步重写*CONTACT_中有关特定part的接触参数。

       参数选项为:SLTHK(card 1, *CONTROL_CONTACT and Optional Card A in *CONTACT_option)和AUTOMATIC (*CONTACT_option)

       在耐撞性分析中,金属薄片由壳单元代替,节点位于中面上。每一个壳单元都有一个等于金属薄片厚度的单元厚度。当这些部件与其他部件接触时,壳的中面通过厚度偏置被投影,创建出一个参与接触运算的面。不同的接触类型决定了是否考虑这一厚度偏置的过程。

       在 LS-DYNA中,非自动的接触类型

       *CONTACT_SURFACE_TO_SURFACE

       *CONTACT_NODES_TO_SURFACE

       *CONTACT_ONE_WAY_SURFACE_TO_SURFACE

       根据SHLTHK选项的设置不同采用两种不同的计算方法。这个参数既可以通过*CONTROL_CONTACT设置到全局,也可以通过*CONTACT中的设置卡B设置给指定的接触中。如果SHLTHK = 0,程序将采用增量搜寻技术来寻找距离最近的主面,而不考虑厚度偏置;如果SHLTHK = 1,程序将考虑变形体节点上的厚度偏置,而不考虑刚性体节点上的厚度偏置;如果SHLTHK = 2,那么程序将同时考虑变形体和刚体上的厚度偏置。SHLTHK为1或2时,程序利用全局Bucket search来确定接触对;接触建立后,程序再利用增量搜寻技术来追踪主面上的从节点。全局Bucket search的优点是主面和从面可以是不连续的,程序无法使用增量搜寻技术(来确定接触对)是因为它要求接触面是完全连接的(fully connected)。在这些接触类型中,程序计算之前,很重要的一点是要通过右手定则来确定接触面段的方向指向接触面。这种接触叫做定向接触(oriented contact)。利用关键字*CONTROL_CONTACT中的ORIEN选项可以设置自动定向,但是要使用一功能,需要在两个相对的壳单元中面之间留下一定的间隙。

       如图所示,自动接触和单面接触总是会考虑壳单元的厚度偏置,他们同时利用全局Bucket search和局部增量搜寻来确定接触对。由于自动接触没有面的方向的要求,因此一般比相应的非自动接触更为稳健,也就是说此时相邻面段并不符合右手定则。这对撞击问题很重要,因为金属材料可能会在撞击中出现折叠从而改变面的方向。接触算法会在壳单元中面的两侧检测穿透的出现。

       在冲击和撞击问题中,我们建议使用考虑厚度偏置的自动接触选项。如果用户想要忽略刚体部件的厚度偏置,那么应在*CONTROL_CONTACT或*CONTACT的设置卡B中将SHLTHK设为1。另外,接触对中的两侧壳单元中面距离至少应为(ts+tm)/2;用户在划分有限元网格时要保证两侧面的网格在曲率急速变化的位置密度相似。如果未满足这一条件,那么程序将抛出检测到穿透的警告信息,并移动穿透节点。这时可以通过修正几何模型来解决这一问题。在LS-DYNA的960版本中,有一个选项可以用来在检测到初始穿透后不移动节点,而是以这一初始穿透为起点,在计算中检测进一步的穿透。通过设置关键字*CONTROL_CONTACT的设置卡4或者关键字*CONTACT的设置卡C中的IGNORE选项,可以实现这一初始穿透的检测方法。大部分情况下我们建议使用这一选项。

       有关厚度偏置的详细信息见用户手册6.4和6.5节,在这两节中接触厚度就是指壳单元的厚度偏置。

       参数选项为:FS 和 FD (card 2, *CONTACT option)

       LS-DYNA中的接触滑动摩擦基于库伦摩擦,并等效于一个d塑性d簧(此句存疑)。在关键字*CONTACT 或 *PART_CONTACT中分别设置FS 和 FD作为静摩擦和动摩擦系数可以实现滑动摩擦。更多信息详见理论手册23.8.6节。

       用户可以在材料手册中查询摩擦系数。为了区分静摩擦和动摩擦,FD的值应该小于FS,同时还应设置一个非零的衰减系数DC。若数值计算中会出现很多噪音,例如碰撞问题,那么为了避免产生更多干扰信息,一般将FD和FS设置为相等的值。衰减系数决定了瞬时净摩擦系数(net friction coefficient)由FS转变为FD的方式。参数VC可以基于材料强度限制接触摩擦应力的值,推荐设置VC为SIGY/sqrt(3),其中SIGY 为接触对中最小的材料屈服应力。在960版本中,关键字*CONTROL_CONTACT的设置卡4中的FRCENG选项可以输出接触摩擦能(*DATABASE_BINARY_INTFOR)。

       在全模型车辆模型中,通常会使用包含有大量不同材料的自动单面接触。这种情况下,使用统一的FS和FD是不合适的,因此我们建议在关键字*PART_CONTACT中对每个part单独设置摩擦系数。

       通过进行两次分别应用摩擦系数上限和下限的数值模拟,可以深入理解当前接触对于摩擦的敏感性。

(未完待续)

LS - DYNA中的接触控制参数

接触输出在LSDYNA中最常用的接触输出文件是RCFORC它包含主、从面每一个节点接触力GlobalCartesianCoordinateSystem的ASCII文件。为输出RCFORC必须在k...

豆丁网LS - DYNA中的接触控制参数

接触输出在LSDYNA中最常用的接触输出文件是RCFORC它包含主、从面每一个节点接触力GlobalCartesianCoordinateSystem的ASCII文件。为输出RCFORC必须在k...

豆丁网

一、ORC文件格式

        ORC文件也是以二进制方式存储的,所以是不可以直接读取,ORC文件也是自解析的,它包含许多的元数据,这些元数据都是同构ProtoBuffer进行序列化的。ORC的文件结构如下图

          在ORC文件中保存了三个层级的统计信息,分别为 文件级别、stripe级别和row group 级别的,他们都可以用来根据Search ARGuments( 谓词下推条件 )判断是否可以跳过某些数据,在统计信息中都包含成员数和是否有null值,并且对于不同类型的数据设置一些特定的统计信息。

(1)file level

在ORC文件的末尾会记录文件级别的统计信息,会记录整个文件中columns的统计信息。这些信息主要用于查询的优化,也可以为一些简单的聚合查询比如max, min, sum输出结果。

(2)stripe level

ORC文件会保存每个字段stripe级别的统计信息,ORC reader使用这些统计信息来确定对于一个查询语句来说,需要读入哪些stripe中的记录。比如说某个stripe的字段max(a)=10,min(a)=3,那么当where条件为a >10或者a <3时,那么这个stripe中的所有记录在查询语句执行时不会被读入。

(3)row level

为了进一步的避免读入不必要的数据,在逻辑上将一个 column的index以一个给定的值(默认为10000,可由参数配置)分割为多个index组(也就是对每一列的分组数据建立索引,这样能近一步减少不必要的查询) 。以10000条记录为一个组,对数据进行统计(比如min,max等)。Hive查询引擎会将where条件中的约束传递给ORC reader,这些reader根据组级别的统计信息,过滤掉不必要的数据。如果该值设置的太小,就会保存更多的统计信息,用户需要根据自己数据的特点权衡一个合理的值

详细参考:https://www.cnblogs.com/ittangtang/p/7677912.html


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12067192.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存