得到结果
S,U,RF,LE这四个value的成员名称竟然完全一模一样,里面竟然都有mises(应该只有应力才有mises应力的说法)。这实在是说不通,唯一说得通的可能是,这些value的成员都是应力。但经过实验发现他们各自不相等,不可能都代表应力。
但根据官网这个说法,那么实际上确实都是应力,只不过有的不合理
进行个数统计的结果:
得到
3200
1681
3200
1681
就个人感觉,官方文档似乎也没有很详细的把abaqus script每个涉及到的内置的结构体讲的很清楚。
这里还有一本书
是讲解这方面知识的。
那么,提取位移,应变等正确的办法是什么呢?
v.data。就可以提取出想要的3个自由度的位移了
应变出了一点问题:
field Output request里面明明有E,但是最后
# E_output = o1.steps['Step-1'].frames[-1].fieldOutputs['E'] # 报错——根本没有E,即使在fieldoutput中增加E request,最后字段里也没有,但是好消息是,有EE。我大概明白这个逻辑了,就是在abaqus里面E选上之后,最后就会同时有PE,EE.但似乎也不太对。。。
原来在这里
http://130.149.89.49:2080/v2016/books/ker/default.htm?startat=book01.html#ker
有详尽的介绍
FieldValue object
http://130.149.89.49:2080/v2016/books/ker/default.htm?startat=book01.html#ker
根据这个说法,那么实际上确实都是应力。
abaqus里面的 conjugate data 是指
the imaginary portion of a complex result
最终答案:
通过查文档以及
https://www.cnpython.com/qa/171659
得到
S11_output = o1.steps['Step-1'].frames[-1].fieldOutputs['S'].getScalarField(componentLabel='S11') # 这一行仍然报错。
经过这三行的实验,成功确定了 elementfieldvalues.data
第一个元素(共四个元素)是S11,
第四个元素是S12,
第二个元素是S22,
第三个元素是S33。
S13,S23两个直接就不存在
print S_output.getSubset(region=ElementSet[i]).values # 这一行返回2个 <type 'FieldValue'> array
我推测为什么fieldValueArray有2个元素,是因为一个是全局的,一个是局部的。经过实验确认第一个是全局的。
通过自己搭模型也可以确认很多事情——例如values[0]是全局的,values[1]不知道是什么东西,等等.
现在明确了 values的成员是不同积分点的输出。
另外,abaqus很特殊的一点是:其位移输出是全局坐标系下的量,但是对复合材料,**它的应力和应变输出都是主方向坐标轴的量。**对于普通材料,师兄给我演示的例子显示似乎输出的是全局坐标系的量
哈哈,这个不是和式分解吗?(abaqus theory guide)
S4R单元在我本次实验3方向的应力和应变似乎都被强制设置为0.
在撤去BC-3(z=0),以及增加横向载荷(magnitude=10)后,静力分析的结果不再收敛。调整magnitude=1后,结果收敛,而且
ε
z
\varepsilon_z
εz即
ε
33
\varepsilon_{33}
ε33仍然为0.如下图
通过下图这段话,结合上面的应力、应变均为0的实验结果,可以做这样一个判断:abaqus认为我们使用的S4R单元是thin-only shell elements.
http://130.149.89.49:2080/v2016/books/usb/default.htm?startat=pt06ch29s06alm19.html#usb-elm-eusingshellsection
这是这个页面有用的地方——如何定义泊松比:
OdbFile可以用来生成模型
odb的显示问题
原来odb的信息还可以直接在窗口查看(如下,查看了所有的fieldoutput,果然没有E)
控制台的输出:
hahaha
({'baseElementTypes': ('S4R',), 'bulkDataBlocks': ' object', 'componentLabels': (), 'description': 'Active yield flag', 'isComplex': OFF, 'locations': 'FieldLocationArray object', 'name': 'AC YIELD', 'type': SCALAR, 'validInvariants': (), 'values': 'FieldValueArray object'})
({'baseElementTypes': (), 'bulkDataBlocks': ' object', 'componentLabels': ('CF1', 'CF2', 'CF3'), 'description': 'Point loads', 'isComplex': OFF, 'locations': 'FieldLocationArray object', 'name': 'CF', 'type': VECTOR, 'validInvariants': (MAGNITUDE,), 'values': 'FieldValueArray object'})
({'baseElementTypes': (), 'bulkDataBlocks': ' object', 'componentLabels': ('CM1', 'CM2', 'CM3'), 'description': 'Point moments', 'isComplex': OFF, 'locations': 'FieldLocationArray object', 'name': 'CM', 'type': VECTOR, 'validInvariants': (MAGNITUDE,), 'values': 'FieldValueArray object'})
({'baseElementTypes': ('S4R',), 'bulkDataBlocks': ' object', 'componentLabels': ('LE11', 'LE22', 'LE33', 'LE12'), 'description': 'Logarithmic strain components', 'isComplex': OFF, 'locations': 'FieldLocationArray object', 'name': 'LE', 'type': TENSOR_3D_PLANAR, 'validInvariants': (MAX_INPLANE_PRINCIPAL, MIN_INPLANE_PRINCIPAL, OUTOFPLANE_PRINCIPAL, MAX_PRINCIPAL, MID_PRINCIPAL, MIN_PRINCIPAL), 'values': 'FieldValueArray object'})
({'baseElementTypes': ('S4R',), 'bulkDataBlocks': ' object', 'componentLabels': ('PE11', 'PE22', 'PE33', 'PE12'), 'description': 'Plastic strain components', 'isComplex': OFF, 'locations': 'FieldLocationArray object', 'name': 'PE', 'type': TENSOR_3D_PLANAR, 'validInvariants': (MAX_INPLANE_PRINCIPAL, MIN_INPLANE_PRINCIPAL, OUTOFPLANE_PRINCIPAL, MAX_PRINCIPAL, MID_PRINCIPAL, MIN_PRINCIPAL), 'values': 'FieldValueArray object'})
({'baseElementTypes': ('S4R',), 'bulkDataBlocks': ' object', 'componentLabels': (), 'description': 'Equivalent plastic strain', 'isComplex': OFF, 'locations': 'FieldLocationArray object', 'name': 'PEEQ', 'type': SCALAR, 'validInvariants': (), 'values': 'FieldValueArray object'})
({'baseElementTypes': ('S4R',), 'bulkDataBlocks': ' object', 'componentLabels': (), 'description': 'Magnitude of plastic strain', 'isComplex': OFF, 'locations': 'FieldLocationArray object', 'name': 'PEMAG', 'type': SCALAR, 'validInvariants': (), 'values': 'FieldValueArray object'})
({'baseElementTypes': (), 'bulkDataBlocks': ' object', 'componentLabels': ('RF1', 'RF2', 'RF3'), 'description': 'Reaction force', 'isComplex': OFF, 'locations': 'FieldLocationArray object', 'name': 'RF', 'type': VECTOR, 'validInvariants': (MAGNITUDE,), 'values': 'FieldValueArray object'})
({'baseElementTypes': (), 'bulkDataBlocks': ' object', 'componentLabels': ('RM1', 'RM2', 'RM3'), 'description': 'Reaction moment', 'isComplex': OFF, 'locations': 'FieldLocationArray object', 'name': 'RM', 'type': VECTOR, 'validInvariants': (MAGNITUDE,), 'values': 'FieldValueArray object'})
({'baseElementTypes': ('S4R',), 'bulkDataBlocks': ' object', 'componentLabels': ('S11', 'S22', 'S33', 'S12'), 'description': 'Stress components', 'isComplex': OFF, 'locations': 'FieldLocationArray object', 'name': 'S', 'type': TENSOR_3D_PLANAR, 'validInvariants': (MISES, MAX_INPLANE_PRINCIPAL, MIN_INPLANE_PRINCIPAL, OUTOFPLANE_PRINCIPAL, MAX_PRINCIPAL, MID_PRINCIPAL, MIN_PRINCIPAL, TRESCA, PRESS, INV3), 'values': 'FieldValueArray object'})
({'baseElementTypes': (), 'bulkDataBlocks': ' object', 'componentLabels': ('U1', 'U2', 'U3'), 'description': 'Spatial displacement', 'isComplex': OFF, 'locations': 'FieldLocationArray object', 'name': 'U', 'type': VECTOR, 'validInvariants': (MAGNITUDE,), 'values': 'FieldValueArray object'})
({'baseElementTypes': (), 'bulkDataBlocks': ' object', 'componentLabels': ('UR1', 'UR2', 'UR3'), 'description': 'Rotational displacement', 'isComplex': OFF, 'locations': 'FieldLocationArray object', 'name': 'UR', 'type': VECTOR, 'validInvariants': (MAGNITUDE,), 'values': 'FieldValueArray object'})
['baseElementTypes', 'bulkDataBlocks', 'componentLabels', 'description', 'isComplex', 'locations', 'name', 'type', 'validInvariants', 'values']
<type 'FieldValue'>
['baseElementType', 'conjugateData', 'conjugateDataDouble', 'data', 'dataDouble', 'elementLabel', 'face', 'instance', 'integrationPoint', 'inv3', 'localCoordSystem', 'localCoordSystemDouble', 'magnitude', 'maxInPlanePrincipal', 'maxPrincipal', 'midPrincipal', 'minInPlanePrincipal', 'minPrincipal', 'mises', 'nodeLabel', 'outOfPlanePrincipal', 'position', 'precision', 'press', 'sectionPoint', 'tresca', 'type']
['baseElementType', 'conjugateData', 'conjugateDataDouble', 'data', 'dataDouble', 'elementLabel', 'face', 'instance', 'integrationPoint', 'inv3', 'localCoordSystem', 'localCoordSystemDouble', 'magnitude', 'maxInPlanePrincipal', 'maxPrincipal', 'midPrincipal', 'minInPlanePrincipal', 'minPrincipal', 'mises', 'nodeLabel', 'outOfPlanePrincipal', 'position', 'precision', 'press', 'sectionPoint', 'tresca', 'type']
['baseElementType', 'conjugateData', 'conjugateDataDouble', 'data', 'dataDouble', 'elementLabel', 'face', 'instance', 'integrationPoint', 'inv3', 'localCoordSystem', 'localCoordSystemDouble', 'magnitude', 'maxInPlanePrincipal', 'maxPrincipal', 'midPrincipal', 'minInPlanePrincipal', 'minPrincipal', 'mises', 'nodeLabel', 'outOfPlanePrincipal', 'position', 'precision', 'press', 'sectionPoint', 'tresca', 'type']
['baseElementType', 'conjugateData', 'conjugateDataDouble', 'data', 'dataDouble', 'elementLabel', 'face', 'instance', 'integrationPoint', 'inv3', 'localCoordSystem', 'localCoordSystemDouble', 'magnitude', 'maxInPlanePrincipal', 'maxPrincipal', 'midPrincipal', 'minInPlanePrincipal', 'minPrincipal', 'mises', 'nodeLabel', 'outOfPlanePrincipal', 'position', 'precision', 'press', 'sectionPoint', 'tresca', 'type']
3200
1681
3200
1681
0
({'coordinates': array([254.0, 247.649993896484, 0.0], 'f'), 'instanceName': 'MENGPI_REAL-1', 'label': 1640})
这个图是shell element里面的thickness change,在membrane单元里也有类似的thickness change
20220219:终于被我找到藏在这里——
For plane stress, membrane, and shell elements, only the in-plane tensor components (11, 22, and
12 components) are stored by Abaqus/Standard. The out-of-plane direct component for stress (S33) is
reported as zero to the output database as expected, and the out-of-plane component of strain (E33) is
reported as zero even though it is not. This is because the thickness direction is computed based on
section properties rather than at the material level. The out-of-plane components can be requested for
field-type output and cannot be requested for history-type output. The out-of-plane stress components
are not reported to the data (.dat) file or to the results (.fil) file.
此外,Script User Guide 里搜索S11,或component或试试其他分量名称可以找到一张完整分量的表格。
addData方法:
向odb中增加数据。这个方法是在创建odb时使用的,像我只是读取job默认生成的odb文件(只是读取odb),用不到addData方法。