参考:

1.http://ivt-abaqusdoc.ivt.ntnu.no:2080/v6.14/books/sub/default.htm

2.ABAQUS 用户材料子程序开发及应用-杨曼娟

3.费康老师abaqus书

4.论坛:http://www.mechbbs.com/forum.php?mod=viewthread&tid=104&highlight=abaqus


1.首先看费康老师书第12章邓肯张模型开发。

刚度矩阵就是下面的矩阵。其实刚度矩阵类似于一维里面胡克定律的k(F=k*l 这个胡克定律)

看懂了上面的内容看书上代码就容易的多了。

还需要明白的是,step是分析步,比如加边界条件是第0分析步,开挖第一部分是第1分析步(step1),开挖第二部分是第二分析步(step2)。而umat中有两个时间,一个是Time(1),代表分析步内当前时间,是以当前分析步开始时间为零点参照。下一个分析步时又会从零开始。而Time(2)是当前总时间,是从step0开始计算的。abaqus在施加力时是一点一点的加上去的,比如某单元上表面施加100kPa压力,且这个步叫做step1,是加载荷步,比如这个分析步中有1000迭代步(increasement),那就是每个迭代步增加0.1kPa在单元上表面。


2.再看上面的硕士论文:

umat的一般形式:

 SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
RPL,DDSDDT,DRPLDE,DRPLDT,
STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER* CMNAME
DIMENSION STRESS(NTENS),STATEV(NSTATV),
DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
STRAN(NTENS),DSTRAN(NTENS),TIME(),PREDEF(),DPRED(),
PROPS(NPROPS),COORDS(),DROT(,),DFGRD0(,),DFGRD1(,),
JSTEP() user coding to define DDSDDE, STRESS, STATEV, SSE, SPD, SCD
and, if necessary, RPL, DDSDDT, DRPLDE, DRPLDT, PNEWDT RETURN
END

UMAT一般结构


怎样在一个文档里用两个模型呢:

 IF (CMNAME(:) .EQ. 'MAT1') THEN
CALL UMAT_MAT1(argument_list)
ELSE IF(CMNAME(:) .EQ. 'MAT2') THEN
CALL UMAT_MAT2(argument_list)
END IF

Using more than one user-defined mechanical material model


添加材料库:http://www.mechbbs.com/forum.php?mod=viewthread&tid=13

abaqus在线帮助文档:http://www.mechbbs.com/forum.php?mod=viewthread&tid=2


别人的总结:

 http://www.mechbbs.com/forum.php?mod=viewthread&tid=11
STEP
Nigeom 状态由物体的形变或位移大小而定。在静态问题中,一般为小位移形变,ABAQUS 的默认值为 OFF;在动态问题中,一般形变较大,默认值为 ON。其后的两个复选框均用于热传递,在此不作叙述。Incrementation 栏中,通过选择增量尺寸来确定所输出的祯(frame)的数量。增量的尺寸越小,所输出的祯的数量就越多;显然,祯的数量不能无限的多,可以通过 Maximum number of increments 选项来确定祯的最大值。ABAQUS/CAE 给
出了增量尺寸的最小值 1e-005,如果出现结果不收敛的情况,可以减少增量尺寸的最小值。另外,为了避免结果不收敛的情况,可以通过选择 Atomatic 选项让系统自动调节增量尺寸。有的时候,在确保所选的增量尺寸能够收敛的情况下,选择 Fixed,这样可以加快系统运算速度,减少内存,但此项一般不建议使用。 模拟计算的加载过程包含单个或多个步骤,所以要定义分析步。它一般包含分析过程选择,载荷选择,和输出要求选择。而且每个分析步都可以采用不同的载荷、边界条件、分析过程和输出要求。例如: 步骤一:将板材夹于刚性夹具上。 步骤二:加载使板材变形。 步骤三:确定变形板材的自然频率。 ·增量步是分析步的一部分。 在非线性分析中,一个分析步中施加的总载荷被分解为许多小的增量, 这样就可以按照非线性求解步骤来进行计算。当提出初始增量的大小后,ABAQUS 会自动选择后继的增量大小。每个增量步结束时,结构处于(近似)平衡状态,结果可以写入输出数据库文件、重启动文件、数据文件或结果文件中。选择某一增量步的计算结果写入输出数据库文件的数据称为帧(frames)。 ·迭代步是在一增量步中找到平衡解的一种尝试。如果模型在迭代结束时不是处于平衡状态,ABAQUS 将进行另一轮迭代。随着每一次迭代,ABAQUS 得到的解将更接近平衡状态;有时 ABAQUS 需要进行许多次迭代才能得到一平衡解。当平衡解得到以后一个增量步才完成,即结果只能在一个增量步的末尾才能获得。每个有限元计算都要分为一个或者多个分析步(定性而言),具体运算过程中每个分析步的载荷分为一些列增量步(可以相等,也可以不等)来运算。而迭代步实质是计算时用来求解微分方程的过程所实用的步长, 和以上二者的几乎没有关系。 INTERACTION
从面应该是网格划分更精细的表面如果网格密度相近,从面应该选取采用较软材料的表面.刚性表面:在接触相互作用中,解析刚体的面或者刚性单元构成的面总是主控制面.刚性表面必须足够大以保证从属节点不会滑出该表面和落到其背面.如果这种情况发生,解答通常是不能收敛的.为了与刚性表面的任何特征相互作用,变形体的网格要剖分得足够精细.在变形表面上采用足够细划的网格,以防止刚性表面对从面的侵彻.在 abaqus/standard 中的接触算法要求接触相互作用的主控表面是光滑的,刚性表面总是主控表面,所以必须总是光滑的.刚性表面的法向必须总是指向将与其发生相互作用的变形表面.为刚体定义接触面时需要选择刚体的外侧所对应的颜色。定义过盈接触时,clearance 只适用于小滑移。 LOAD
*CLOAD 表示集中载荷,*DLOAD 表示定义在单元上的分布载荷,*DSLOAD 表示定义在面上的分布载荷。Constrain:这里的 Constrain 与 Assembly 步中的 Constrain 有所不同,前者限制了模型分析的自由度, 而后者仅仅限定了模型中各个部分的相对位置,前者是对后者进一步的限制。
Concentrated force:代表集中力,其表示方法有 CF1,CF2,CF3,分别表示三个方向的力。
Moment:代表力矩,其表示方法有 CM1,CM2,CM3,分别表示三个方向的力矩值。
Pressure:有两种类型的压力, 可以在此后的 Distribution 选项中进行选择。选择项中 Uniform 代表等压力,Hydrostatic 代表静水压力。
Pipe Pressure:用于定义管状或肘状模型中的内外压强。在其中还可以定义管的类型(封闭管还是通管,也可以定义压强的类型(等压还是静水压力),在此不详述。
Body force:用于定义单位体积的受力。
Line load:用于定义单位长度的受力。
Gravity:用于定义一个固定方向的加速度。通过在 Gravity Load 中所键入的加速度值以及先前所定义的区域的材料密度,ABABQUS 可以计算出施加在这个区域中的荷载。用于动态。
Generalized plane strain load:定义一个轴向荷载,将其应用于具有平面应变区域内的参考点上。在其复选框内,需要选择力的大小,力关于 X 轴的转矩,力关于 Y 轴的转矩,并将其应用于参考点。
Rotational body force:此项定义了一个施加在整个模型上的旋转的体力。
Bolt load 荷载 : 正值表示使受力部件缩短,负值表示使受力部件伸长。
实体单元的节点只有平动自由度 U1、U2、U3,没有转动自由度 UR1、UR2、UR3,因此不能直接在实体单元的节点上施加弯矩载荷或定义转动边界条件。需要注意的是,弯矩载荷的作用是使实体发生整体的弯曲变形,这是各个节点的平动所形成的综合效果,而节点转动自由度的含义是以这个节点为中心做转动。
在弹塑性分析中,最好不要直接在一个点上施加几种载荷,以免局部应变太大,导致收敛困难。应该在受力点附近选择一个区域,将它和参考点耦合在一起来共同承载。
地应力是存在于地壳中的未受工程扰动的天然应力,也称岩体初始应力、绝对应力或原岩应力, 广义上也指地球体内的应力。它包括由地热﹑重力﹑地球自转速度变化及其他因素产生的应力。 地应力平衡时当用 geostatic 分析步且采用 fixed 进行计算时, 其结果与用static,general 分析步结果相等。当采用 automatic 计算时,结果与前两者不等。
接二楼:
接一楼:
MESH
一般来说,最好在那些将会构成从面的模型部分使用一阶单元。
1. 中间轴算法:当使用这种算法的自由剖分方法时,系统先将整个区域分割成规则的网格区域,然后再对更小的部分进行划分。对于虚拟 结构 (Virtual
Topology)和不精确部分(imprecise part),最好不要使用中间轴算法。但是,如果将中间轴算法与固定布种(fixed seed)结合起来时,系统会自动的选择最佳的布种数量和布种的最佳位置。需要注意的是,使用中间算法自由剖分的时候,四边形和三角形兼有的网格单元模式与完全四边形网格单元模式实质上是相同的。 但是, 前者在区域中插入了一些独立的三角形, 使之得以与种子更好的匹配,因此,前者比后者能够产生一个更快的网格划分。
2.进阶算法:当使用这种算法的自由网格剖分时,系统首先在区域的边界上产生了四边形的网格单元, 然后逐步的在区域内部产生四边形网格单元,使之真正的与网格种子相匹配。Advancing front 选项的优点在于它能够实现网格的过渡,这是我们所需要的。然而,在较窄区域内匹配每粒种子会影响网格划分的质量。相对于中间轴算法而言,进阶算法适用于那些具有不精确部分(对于一个被导入的模型部分, 如果必须使用一个更宽松的公差才能在 CAE 创建一个与这个模型部分相似的模型的话,那么这个被导入的模型部分就被认为是不精确的)和虚拟结构(忽略了小边,小面等不重要部分的结构,以后将在 TOOL SET 部分讲到)的模型。
说明: ;当使用中间轴算法进行自由剖分时,通过系统默认,ABASQUS 使得网格的过度最小化,网格过度的最小化可以更快的生成更好的网格。然而,这种方法生成的结点很容易偏离种子。
中间轴算法(medial axis algorithm)和进阶算法(advancing front algorithm)
不同:
我们注意到, 当使用四边形或主导四边形单元的自由剖分方法 MESH 一个面的时候,ABAQUS 会让你选择不同的算法。如果模型被分成了一个以上的区域,你也可以对不同的区域选择不同的算法。
中间轴算法:这种算法首先把将被网格划分的区域分解成一组更简单的区域。然后使用结构化划分方法(一种不同于自由划分方法的划分方式)将单元充填至这些简单区域中。对于完全四边形元素而言,这种算法被设置为系统的默认值。如果将被网格划分的区域相对的简单,并且包含了很大数目的单元,那么这种算法所用的时间要少 于进阶算法 。使用中 间轴 算法下属的 minimize the mesh transition 选项(即网格过渡最小化)可以提高网格质量,但这个选项只用于四边形单元网格划分。
进阶算法:这种算法实现的方法在前面已经介绍过。它首先在区域的外边界部分生成四边形单元, 然后四边形单元在随着由区域表面向区域内部的逐步移动中继续被生成。对于主导四边形网格而言,系统的默认值为进阶算法。而且,用进阶算法所产生的主导四边形网格都可以很好的与种子相匹配。对于其它的网格而言,用进阶算法生成的元素比用中间轴算法生成的元素能更好的与种子相匹配。进阶算法支持虚拟结构和不精确模型,而中间轴算法则不支持。
(1) Free meshing with triangular and tetrahedral elements:用三角或三棱锥网格单元进行网格划分它使用于任何平面或曲面, 模型可以是精确的也可以是不精确的。三角单元的自由划分可以处理变动很大的单元尺寸, 这在对已经划分完毕的模型中的某一部分进行细化时是非常有用的。系统用来计算三角自由划分的时间随着单元和结点数量的增加而线性增长。
对于形状较复杂的模型, 在应用三角单元自由剖分时,应该先用 Query 中的Geometry Diagnostics 检查部分或集合的几何状况,以确保固体内没有自由边,短边, 小平面以及没有具有小平面的顶角。实体的三角单元的网格自由划分由两个阶段组成: 首先是在固体区域的外表面生成三角形的边界网格,然后使用三角形生成三棱锥网格作为外部的三棱锥单元的面。 如果你的模型是复杂的,那么生成三棱锥网格是很耗时的。为了节约时间,我们可以在网格划分的第一阶段查看以下边界面上的三角形单元,如果看起来可以接受,我们可以继续对区域内部进行剖分;如果不行,则可以试着设定更细的种子。 系统会突出的显示网格划分失败的任何边界上的面。失败的原因经常是因为种子分布太疏或者是将种子赋给了微小的边和面。 如果微小的边或面使得系统不能产生一个令人满意的四面体网格,我们可以使用修理工具去除多余的边或点,也可以去除面或空隙处的缝。可以用 toolset 中的 Virtual Topology 命令来忽略微小的边或面。第三种方法是使用 partitions 分割又长又窄的面或晶胞以减少其面比率。
(2)Structured:结构化网格划分方法,它使用简单的,预先定义的网格结构来产生结构化网格。具有以下特征的二维区域才可以进行结构化网格划分:
① 区域内没有孔洞,孤立的边,或者是孤立的点。
②模型区域有三到五条逻辑边(我们可以把近乎直线的两条边看作是一条逻辑边)组成,每条边之间相互连接。
一般来讲, 在三种划分方法中,结构化划分方法能够最好的对 CAE 所产生的网格进行控制。 如果你想用完全四边形元素对一个四条边区域进行网格划分,那么网格单元的边在边界上必须分布均匀。对于三边形或五边形区域,限制条件将会更加复杂。当使用结构化划分时,系统会考虑种子分布(所谓的种子分布是指种子的空间排布,与种子的数量无关。比如说,种子分布关心的是种子到底是沿着一条边均匀的排列还是在这条边的末端更加集中一些).不过, 在两个区域过渡的地方网格必须协调, 比如说,两个相邻的区域分别用的是结构化和自由网格划分, 那么系统就可能调节网格区域的结点以使得过渡区域的网格划分协调,正因为如此,可能使得实际的元素结点不相互匹配。 当你用结构化主导四边形元素划分一个四边形区域时, 系统会插入一个单独的三角形,由此产生的网格很好的与种子相匹配。然而,当你用结构化主导四边形元素划分三边或五边形区域时,系统将不会插入任何三角形,由此产生的网格使用的是完全四边形元素; 而且网格也可能与种子不匹配。如果两条边所成的角度很小的话,系统会自动将这两条边看作成一条逻辑边.因此,对于一个五边形区域而言,将会应用一个四边形的网格划分模式。
三维结构化网格划分
如果要想成功的使用结构化网格划分方法划分一个三维区域, 必须具备下面的特征:
①区域内不能够有任何孔洞,孤立的面,孤立的边或者是孤立的顶点。对于孔洞问题, 你可以通过对孔洞进行分割来达到消除孔洞的目的。四次分割可以将一个具有孔洞的区域转变成了四个不包含孔洞的区域
②面和边上的弧度值应该小于 90 度,或者至少应该避免面和边上的凹面或凹度的出现。
③三维物体的所有的面必须要保证可以用二维结构化网格划分方法划分。例如,模型的两个半圆形末端在分割前各有两条边(注意:结构化网格划分方法只适用于具有三条或三条以上边的面) ,如果将这个模型分成两半,那么末端的两个半圆就被分解成了四个具有三条边的面。
④要保证区域的每个顶点有三条边汇合才可以使用结构化网格划分方法。例如,棱锥分割前顶点处有四条边交汇,如果将这个棱锥分割成两个四面体,那么每个四面体的顶点处仅仅就有三条边连接,就可以进行结构化划分了。
⑤三维区域必须有至少四个面(例如四面体区域).如果一个区域少于四个面,你就应该分割这个区域以产生更多的面。
⑥面之间所成的角要尽可能的接近 90 度;如果面之间的角大于 150 度,那么就应该对它进行分割。
⑦构成区域的面必须符合以下要求:(在英文中,side 指大面,face 指大面中包含的小面).
第一:如果三维区域不是立方体的话,side 只能对应于一个 face;也就是说,side 不能够包含多个 face。
第二:如果三维区域是一个立方体,side 就可以由多个相同几何形状的 face 所组成。然而,其中的每个 face 必须有四条边。除此以外,face 必须满足这样一种要求,即当立方体被网格划分的时候,要保证沿着 face 的立方体元素呈现出规则的网格形状。
关于应用三维扫描式网格划分的一些限制:
①连接起始面和目标面的的每一个 side(大面)只能包含一个 face(小面),且不能够有孤立的边或点。 例如下图就不可以用扫描式网格划分方法进行划分,因为连接面(side)上显然有两个小面(face).
②目标面必须仅仅包含一个小面(face),且没有孤立的边或点,然而对起始面没有这种要求。如下图,左边的区域能够使用扫描式网格划分,因为所有孤立的边都在起始面上;然而,右边的区域不能够使用扫描式网格划分,因为目标面包含有两个小(face).
③从起始面到目标面,被扫描区域的横截面要保持不变,且要是平面。如果起始面或目标面不是平面,你可能就要将其分割成可以用结构化划分方法划分的区域,
④如果扫描路径不是直的或者圆弧的,那么实体部分就不可以被扫描网格划分。
⑤对于一个旋转体区域而言, 如果其轮廓与旋转轴交于一个或者是更多的点,那么就不可被扫描划分。
⑥除了球面以外,系统不能够生成一个与旋转轴有两个交点的旋转面网格划分。类似的, 如果被划分区域的一条或者是更多的边位于旋转轴上,那么系统也不能够用六面体元素扫描划分这个区域。
我们将要介绍的是用于元素控制的四种基本类型:
①Full integration:完全积分:所谓完全积分是指当单元具有规则形状时,所用的高斯积分点可以对单元刚度矩阵中的多项式进行精确的积分。 线性单元如果要完全积分, 则在每个方向需要两个积分点。而二次单元如果要完全积分则在每一方向需要三个积分点。注意, 只有当能确切的认为在你的模型中载荷将产生小位移时,才可采用完全积分线性单元。而如果你怀疑载荷产生的位移类型,则应采用不同的单元类型。在复杂的应力状态下,完全积分二次单元也可能发生琐死。因此,如果在模型中有此单元,则应仔细的检查计算的结果。但是,对于模拟局部应力集中区域,完全积分线性单元将是非常有用的。
②Reduced integration:减缩积分:只有四边形和六面体单元才能采用减缩积分;而所有的锲形、四面体和三角形实体单元采用完全积分,尽管它们可以与减缩积分的六面体或四边形单元在相同的网格中。减缩积分单元比完全积分单元在每个方向上少用一个积分点。 减缩积分线性单元只在单元中心有一个积分点。注意: 线性减缩积分单元由于存在着所谓沙漏(hourglassing)数值问题而过于柔软。在 ABAQUS 中,对减缩积分单元引入少量的人工“沙漏刚度” (hourglass stiffness)以限制沙漏模式的扩展。当模型中应用更多的单元时,这种刚度在限制沙漏模式是更有效的,这意味着只要采用合理的细网格线性减缩积分单元就会给出可接受的结果。线性减缩积分单元对变形的要求不严格;因此可在变形较大的任何模拟中采用划分较细的此类单元。
二次减缩单元也有沙漏模式。 但是在正常的网格中这种模式几乎不可能扩展,并且在网格足够细时很少成为问题。C3D20R 的 1×6 网格确实表现出一些沙漏性,但更精确的网格则没有这种现象。即使受复杂应力状态,二次减缩积分单元也不易受影响而导致锁死。因此,一般来说,除了包含较大应变的大位移模拟和一些接触分析外,这些单元对最通用的应力/位移模拟是最好的选择。这里的沙漏是指缩减积分单元中可能出现积分点不足以描述单元的变形模式, 导致单元手里变形没有产生应变能,既所谓的零能量模式。在这种模式下,单元没有刚度,不能抵抗这种模式变形。
③Incompatible modes:非协调单元:非协调单元可以用来克服完全积分一阶单元的剪力自锁问题。 剪力自锁是由于单元的位移场不能模拟与弯曲相联系的运动学现象而引起的,那么可把能够增强单元位移梯度的附加自由度引入到一阶单元。在弯曲问题中, 用非协调单元可得到与二次单元相当的结果,且计算费用明显降低。剪切自锁这里指完全积分的线性单元常规变形模式在模拟纯弯曲时, 产生剪切变形,而不能产生所希望的弯曲变形,总体饶度过小,既单元刚度过大。非协调单元之所以有用,是因为它们如果应用得当,则在很低花费时仍可以得到较高的精度。 但必须注意保证单元扭曲是非常小的,然而当网格较复杂时这一点是很难保证的;因此,对于具有这种几何形状的模型,你应再一次考虑应用减缩积分二次单元,因为它们对网格扭曲不太敏感。
④Hybrid formulation:杂交单元:对于 ABAQUS 的每一个实体单元,如所有减缩积分单元和非协调单元,都可得到一个杂交单元形式。当材料是不可压缩的(泊松比=0.5)或非常接近于不可压缩(泊松比﹥0.495)时采用杂交单元。 橡胶是一种具有不可压缩性质的材料。不能用规则单元来模拟不可压缩材料的反应(除了平面应力情况) ,这是因为在单元中的压应力是不确定的。
建议:如何使用实体单元?
在模拟计算中, 如果要想以合理的费用达到精确的结果,则正确的选择单元是非常关键的。当使用 ABAQUS 经验更多时,你无疑会针对各种应用的特殊要求,自己建立选择单元的规则。但是当你开始使用 ABAQUS 时应参考下面的建议:
① 如果不需要模拟非常大的应变或进行一个复杂的,改变接触条件的问题,则 应采用二次减缩积分单元(CAX8R,CRE8R,CPS8R.C3D20R 等)。
② 如果存在应力集中,则应在局部采用二次完全积分单元 (CAX8,CPE8,CPS8,C3D20 等) 。它们可在较低费用下对应力梯度提供最好的 解决。
③ 对含有非常大的网格扭曲模拟(大应变分析) ,采用细网格划分的线性减缩积 分单元(CAX4R,CPE4R.CPS4R,C3D8R 等)。
④对接触问题采用线性减缩积分单元或非协调单元(CAX4I,CPE4I,CPS4II,C3D8I 等)的细网格划分。
⑤ 如果在模型中采用非协调单元应使网格扭曲减至最小。
⑥ 三维情况应尽可能采用块状单元(六面体)。它们在最小费用下给出了最好的结果。当几何形状复杂时,完全采用块状单元构造网格会很困难;因此可能 有必要采用楔形和四面体单元。这些单元的线性形式,如 C3D6 和 C3D4,众 所周知是较差的单元 (若需要时, 划分较细的网格以使结果达到合理的精度); 因此,只有在完成网格万不得已的情况下才会应用这些单元,即使那时,这 些单元也应远离需要精确求解的区域。
⑦ 一些前处理程序包括网格划分方法,它们可用四面体单元构造任意形状的网格。只要采用二次四面体单元(C3D10) ,其结果对小位移问题应该是合理的。但运行将比采用相应的块体单元网格花费更多的时间。你不应采用只包含线性四面体单元(C3D4)的网格,因为如果不用大量的单元其结果将是不准确的。
对于解析刚性表面模拟成型工具,无须对它们进行网格剖分,但是对于离散的刚性单元模拟就需要进行网格划分。对于接触模拟,应该尽可能地使用一阶单元,除了四面体单元,对于接触模拟,当应采用四面体单元时,必须应用修正的二阶四面体单元。 在承受弯曲荷载作用时,完全积分单元容易出现剪切闭锁现象,造成单元过于刚硬,导致即使划分很细的网格,计算精度仍然很差。在 abaqus 中只有四边形和六面体单元才允许使用减缩积分,所以的楔形体、四面体和三角形实体单元只能采用完全积分。使用减缩积分单元可以避免剪切闭锁问题。 不可压缩材料不能使用常规单元模拟,而必须使用杂交单元(平面应力问题除外)在使用四边形单元或六面体单元划分网格时,有两种可供选择的算法:中性轴算法和进阶算法。 只要网格种子布置得不是国语稀疏,使用进价算法往往更容易得到形状规则的网格。 几何部件上应尽量避免出现很尖的锐角、很短的便或很小的面,这些地方的单元形状可能会很差。
ERROR OR WARNING
节点编号或者单元编号应加上实体名称,在 part 数据块中定义的集合应加上实体名称,在 assembly 数据块中定义的集合不需要加上实体名称。出行 DOF 刚体位移 (Numerical Singularity 数值奇异/Negative Eigenvalue 负特征值)是因为约束条件不够。可以通过接触或者摩擦来消除刚体位移。模型中存在过多约束时,也可能出现 Numerical Singularity 警告信息。如果分析结果节点应力显示四个数据,则表明出现不连续现象,应在此处细化网
格,也可以通过在 result options 调整 Averging threshold 调到 100%即可得到较为安全的结果。对于某些 abaqus 不能自动找出较好的解决方法的过约束,可能出现以下几种结果:
1.分析过程无法达到收敛。
2. 虽 然 能 够 达 到 收 敛 , 但 出 现 远 远 超 过 正 常 数 量 级 的 刚 体 位 移 , 在visualization 模块中无法正常显示变形图和云文图。
3.能够达到收敛,位移结果页正确,但在历史变量输出中可以看到,某个连接单元反作用力或力矩远远大于应有的值。如 果 出 现 了 abaqus 无 法 自 动 解 决 的 过 约 束 , 在 MSG 文 件 中 会 显 示overconstraint check 和 zero pivot 等警告信息,还会列出过约束所涉及的实体、节点、连接单元、约束等信息,可以从中找出过约束的原因。 关键词*NODE PRINT 的作用是将节点上的分析结果输入到 DAT 文件,而应力是单元积分点上的结果,不能用*NODE PRINT 输出。在后处理是可以看到节点上的应力结果,是因为 abaqus/cae 对单元积分点上的应力结果作了插值平均。
非线性问题的类型:
几何非线性:如果模型在分析过程中出现大的位移或转动、突然翻转、初始应力或载荷硬化,位移的大小会影响模型的响应,就是几何非线性问题。
边界条件非线性:如果在分析过程中边界条件发生变化,就属于边界条件非线性问题。接触问题是最常见的边界条件非线性问题。
材料非线性:如果材料的应力-应变关系曲线是非线性的,或者模型中涉及材料失效或与应变率相关的材料属性,就属于材料非线性又称为物理非线性,常见的非线性材料包括超过屈服点的金属材料、超弹性材料、粘弹性材料和亚弹性材料等。
每个节点上都有位移、应力、和应变结果,但不是每个节点上都会有力的结果。场变量 CF 的含义是集中荷载,只有在 Load 功能模块中定义了集中荷载的节点,其 CF 才不为 0。场变量 RF 的含义是支座反力,即边界条件的约束所产生的反作用力,只有在 Load 功能模块中定义了边界条件的节点,其 RF 才不为 0。 在每个分析步中,如果在某个自由度上没有施加力荷载,就一定要有边界条件来约束这个自由度, 如果施加了力荷载,就一定要去掉这个自由度上的边界条件。
定义接触时,如果是有限滑移,应保证在整个分析过程中,从面各个部分始终处在主面的法线覆盖范围内。 无论是哪种类型的 abaqus/standard 分析,如果分析根本无法开始,一定要查看 DAT 文件中是否有错误信息 error;如果分析可以开始,但无法收敛,一定要查看 MSG 文件中的警告信息 warning。
当弹塑性分析无法收敛时,首先应该想到的就是去掉塑性材料参数,先做最简单的线弹性分析。 无论是弹塑性分析还是其他任何类型的分析,当出现收敛问题时,最重要的解决方法就是简化模型,去掉所有复杂的、自己不熟悉的模型参数。例如,如果定义了接触,就先去掉所有接触,添加适当的边界条件来固定各个部件实体。这一一直简化下去,知道模型能够收敛为止,然后再逐步把简化掉的模型参数恢复回来。 如果发现会恢复某种参数时模型变得无法收敛,就很可能是这个参数存在问题。 如果能够对模型指定位移值,就不要施加力荷载,这样可以大大降低收敛的难度。如果需要施加了荷载,或者需要依靠摩擦来约束刚体的平动和转动,应该首先利用位移边界条件让接触关系平稳地建立起来, 然后在下一个分析步中再施加力荷载。
如何荷载会造成很大的局部应变(使用点荷载时尤其容易出现此问题)就可能造成收敛问题。因此,尽量不要对塑性材料施加点荷载,而是根据实际情况使用面荷载或线荷载。 如果必须在某个点上施加点合资,可以使用耦合约束为载荷作用点附近的几个节点建立刚性连接,让这些节点共同承担点载荷。
弹塑性分析中在划分网格和选择单元类型时,应注意的问题:
1. 在变形前和变形后,单元的形状都要保持规则,不要发生严重扭曲。
2. 在大变形区域的网格密度要适当,过粗或过细的网格都可能导致收敛问题。
3. 在弹塑性分析中尽量不要使用二次六面体单元(C3D20 或 C3D20R),以避免出现体积自锁现象,建议使用非协调单元(C3D8I) 、一次减缩积分单元(C3D8R)和修正的二次四面体单元(C3D10M) 。
警告信息中描述的问题仅仅是 abaqus/standard 在尝试求解过程中的一个中 间状态,并不一定是模型本身存在错误。
生成不包含部件和装配件信息的 INP 文件:
1.修改环境变量文件 abaqus-v6.env。启动 abaqus/cae 之前看,在 abaqus安装目录的 site 文件夹下找到环境变量文件 abaqus-v6.env,添加下列语句:cae-no-parts-input-file=on 然后保存 abaqus-v6.env 文件即可。以后每次启动 abaqus/cae 时,上述修改都会自动生效。如果希望恢复原来的 INP 文件输出格式(包含部件和装配件信息),则需要重新修改 abaqus-v6.env 文件,将上述参数中的 ON 改为 OFF。
2.使用 abaqus 脚本命令。在 abaqus/cae 运行过程中,可以单击窗口左下角进入脚本命令输入界面,输入如下命令(字母大小写要正确: mdb.models[modelname].setValues(noPartsInputFile=ON) 其中的 modelname 是模型名称。这种设置方法只对当前的 abaqus/cae 进程生效。此时,abaqus/cae 会为整个模型的单元和节点重新编号,以避免出现重复的编号。下次启动 abaqus/cae 时,仍将会生成包含部件和装配件的 INP。
一下类型的分析,需要使用关键词*DENSITY 来定义密度
1.使用 abaqus/standard 进行特征频率分析、瞬态动力学分析、瞬态热传导 分析、绝热应力分析或声学分析。
2.在 abaqus/standard 中使用重力荷载、离心力载荷或旋转加速度载荷。
3.所有使用 abaqus/explicit 的分析(流体静力学问题除外) 。
接触压强 CPRESS 和接触状态 COPEN 都显示在从面上。 一对相互接触的面称为“接触对” ,一个接触对中最多只能有一个由节点构成的接触面。
如果过盈接触是通过节点坐标或*clearance 来定义的, 在分析的一开始全部过盈量就会被施加在模型上,而且无法再分析过程中改变过盈量的大小。如果此过盈量太大,abaqus 就可能无法达到收敛,而且即使减小时间增量不也无助于解决此问题。 如果使用*contact interference,并且采用从 0 上升到 1 的幅值曲线,当过 盈 量 很 大 时 可 以 通 过 减 小 时 间 增 量 步 来 达 到 收 敛 。 另 外 使 用 *contact interference 可以象施加载荷那样,在分析步中改变大小、被激活或被去除。 从面节点有开放 opening 和闭合 closure 两种接触状态。如果分析能够收敛,每次严重不连续迭代中 closure 和 opening 的数目会逐渐减小。当所有从面节点的接触状态都不再发生变化,就进入平衡迭代,最终达到收敛。
过盈量为负值表才表示过盈接触,正值表示两个面之间存在间隙。
对于某些过约束, abaqus 无法自动找出好的解决方法,就会在 MSG 文件中显示 以下 警 告 信 息 : OVERCONSTRAIANT CHECKS: An overconstraint was detected„„..
在创建轴对称部件时, abaqus/cae 要求旋转轴必须是竖直方向的辅助线, 而且轴对称部件的整个平面图都要位于旋转轴的右侧。
等效塑性应变 PEEQ 大于 0 表明材料发生了屈服。在工程结构中,等效塑性应变一般不应超过材料的破坏应变。
二维离散刚体部件只能是 wire 或 point, 而三维离散刚体部件可以是 solid、shell、wire、或 point,但注意只有对 shell 和 wire 才能将单元类型设置为刚体单元。
平面应变问题的界面属性类型是 solid,而不是 shell。
应力不连续现象和应力不变量的计算方法。 《实例详解》P193 使用“先不变量再平均”方法得到的节点 Mises 应力偏大,作为工程分析的结果会更安全。
在接触分析中,如果接触属性为默认的“硬”接触,则不能使用六面体二次单元(C3D20 和 C3D20R),以及四面体二次单元(C3D10) ,而应尽可能使用六面体一阶单元。
把定位约束转换为全局坐标系下的绝对位置,方法是在主菜单中选择Instance---convert----constraint,选中所有实体,然后再试图区中点击鼠标中键。
实体单元没有旋转自由度。
接触问题和塑性材料最好不要用二阶单元。
PEEQ 和 PE 的关系: PEEQ 类似于 mises 应力,PE 类似于各个应力分量。
组装完成后如果还需要进入 part 模块进行划分,则在划分之前在 assembly 模块中点击菜单 instance / convert constraints,这样在划分之后就不会混乱。

abaqus学习笔记-abaqus与umat调用基本原理的更多相关文章

  1. python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码

    python3.4学习笔记(二十三) Python调用淘宝IP库获取IP归属地返回省市运营商实例代码 淘宝IP地址库 http://ip.taobao.com/目前提供的服务包括:1. 根据用户提供的 ...

  2. <深入理解JavaScript>学习笔记(4)_立即调用的函数表达式

    前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行.(小菜理解:的确看到好多,之前都不知道这是自执行匿名函数) 在详细了解这个之前,我们来谈了解一下 ...

  3. 《Spring技术内幕》学习笔记17——Spring HTTP调用器实现远程调用

    1.Spring中,HTTPInvoker(HTTP调用器)是通过基于HTTP协议的分布式远程调用解决方案,和java RMI一样,HTTP调用器也需要使用java的对象序列化机制完成客户端和服务器端 ...

  4. SpringCloud学习笔记:声明式调用Feign(4)

    1. Feign简介 Feign采用声明式API接口的风格,将Java HTTP客户端绑定到它的内部. Feign的首要目标是简化Java HTTP客户端调用过程. 2.Feign客户端示例 Feig ...

  5. Disruptor学习笔记(一):基本原理和概念

    一.Disruptor基本原理 在多线程开发中,我们常常遇到这样一种场景:一些线程接受用户请求,另外一些线程处理这些请求.比如日志处理中的日志输入和告警.这种典型的生产者消费者场景十分常见,而生产者消 ...

  6. 【SQLSERVER学习笔记】分页存储过程+调用

    USE [数据库名] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROCEDURE [dbo].[存储过程名] @pageI ...

  7. Spring Cloud Alibaba学习笔记(23) - 调用链监控工具Spring Cloud Sleuth + Zipkin

    随着业务发展,系统拆分导致系统调用链路愈发复杂一个前端请求可能最终需要调用很多次后端服务才能完成,当整个请求陷入性能瓶颈或不可用时,我们是无法得知该请求是由某个或某些后端服务引起的,这时就需要解决如何 ...

  8. SIFT学习笔记之一 下载和调用

     下面给出了多个参考地址,挑个能用的吧: vs2010+Rob Hess SIFT: http://blog.csdn.net/lanbing510/article/details/8507341 R ...

  9. Django学习笔记3-静态文件调用

    1.settings.py 静态文件相关示例代码及说明: # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.c ...

随机推荐

  1. RTP格式解析

    一般为12字节,16字节头(转自https://www.cnblogs.com/qingquan/archive/2011/07/28/2120440.html) 概述: 实时传送协议(Real-ti ...

  2. [leetcode]300. Longest Increasing Subsequence最长递增子序列

    Given an unsorted array of integers, find the length of longest increasing subsequence. Example: Inp ...

  3. AngularJS——第6章 作用域

    第6章 作用域 在AngularJS中使用过滤器格式化展示数据,在"{{}}"中使用"|"来调用过滤器,使用":"传递参数. 6.1 内置过 ...

  4. linux操作系统重启后 解决nginx的pid消失问题

    重启了linux服务器之后,进程性的 nginx -s stop后再次启动nginx -s reload ,总是会报错误nginx: [error] open() "/alidata/ser ...

  5. css兼容性写法大全

    淘宝初始化代码 body, h1, h2, h3, h4, h5, h6, hr, p, blockquote, dl, dt, dd, ul, ol, li, pre, form, fieldset ...

  6. Comparing Code Playgrounds Codepen, JSFiddle, JS Bin, Dabblet, CSS Deck, and Liveweave

    What is a code playground? Codepen, JSFiddle, JS Bin, Dabblet, CSS Deck, and Liveweave are HTML, CSS ...

  7. [Z]Spring Data JPA 之 一对一,一对多,多对多 关系映射

    一.@OneToOne关系映射 JPA使用@OneToOne来标注一对一的关系. 实体 People :用户. 实体 Address:家庭住址. People 和 Address 是一对一的关系. 这 ...

  8. eclipse导入项目以后,内容没有错误,项目上却有个小红叉?

    对于上面的错误,应该如何解决?

  9. 学习knockoutjs轻量级的MVVM框架

    教程:knockoutjs介绍 http://www.w3cfuns.com/forum.php?mod=viewthread&tid=5598714 MVVM架构~knockoutjs实现简 ...

  10. 如何为linux系统设置全局的默认网络代理

    方法1:更改全局配置文件/etc/profile all_proxy="all_proxy=socks://proxy.xxx.com.cn:80/" ftp_proxy=&quo ...