一直在努力与以下内容:我想创建一个新的FieldOutput(可以说一些简单的张量的aritmetic操作)给定的el。组。不是整个模型,因为这太昂贵了,我仍然对这个特定区域/集合感兴趣。Abaqus:创建一个新的FieldOutput(格式?)
我打开与结果的ODB ....
from abaqus import *
from odbAccess import *
from abaqusConstants import *
import visualization
import fileinput
import os
# to make prettyPrint work!
from odbAccess import *
from textRepr import *
# open odb
odb_path="analysis45.odb"
my_odb=session.openOdb(name=odb_path,readOnly=FALSE)
是确保它始终打开步骤/实例不管他们叫什么名字有些换人......
# automate the proces of reading the step no matter what its name is
StepNames=(my_odb.steps.keys()) # it is a list of all step names
lastStep=(StepNames[-1])
# automation of an instance naming (in the same way)
NaseInstance = (my_odb.rootAssembly.instances.keys())
MojeInstance = (NaseInstance[-1])
CelaMojeInstance=my_odb.rootAssembly.instances[MojeInstance]
发现有人不知道计算新数据的方式,并将它们填入新标量中:https://gist.github.com/crmccreary/5015483虽然我没有成功理解到底发生了什么,因为这个脚本更加复杂,我根本不是程序员。
试图通过直接向该领域硬性规定某些值来简化任务(以后打算用函数代替它,最后以这种方式遍历整个elset)。我得到关于“内置操作的非法参数类型”形式的消息,我假设数据Im试图插入的格式不正确。试过没有成功的文档。我可以要求提示/帮助吗?谢谢!
NewField =my_odb.steps[lastStep].frames[0].FieldOutput(name='New_scalar_field',description='Our brand new scalar field', type=SCALAR)
NewField.addData(position=NODAL, instance=CelaMojeInstance, labels=[1657, 1658, 1683, 1684, 14193, 14194, 14195, 14196], data=[(6),(12),(6),(12),(6),(12),(6),(12)])
my_odb.save()
my_odb.close()
这家伙的解决方案似乎是不太一样的矿井:http://abaqus-users.1086179.n5.nabble.com/Writing-Results-to-Existing-ODB-file-td21750.html
据我所知,这个问题可能是太微不足道或者太傻的老人,我们对此深感抱歉。
相信我,abaqus脚本的任何人都不会对不清楚的文档有异议。你有没有尝试从'data'中取出括号? –
嗨!谢谢。之后我实际添加了括号,因为链接中的人使用它们。没有不同。 – Jewenile
你有没有取得浮动物清单?即[[12,6,..., 。 。 。]' –