一直在努力與以下內容:我想創建一個新的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,..., 。 。 。]' –