本篇文章给大家谈谈Abaqus怎么读取odb,以及abaqus怎么用对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
怎么用python提取ABAQUS的odb文件数据时能更快一些
两种方法:
1.可以用C++ 提取ODB数据,abaqus支持C++程序。
2.把你的odb数据变小,两种途经:一是降低output输出频率,不要每个增量步都输出;二是只output你需要的数据,比如你只需要位移,那就不要输出应力等等。
ABAQUS怎么打开ODB文件
具体操作步骤如下:
1、首先,打开ABAQUS后,显示变形图,如下图所示,然后进入下一步。
2、其次,使用鼠标中键滚动以将图像调整到合适的位置,如下图所示,然后进入下一步。
3、接着,单击打印图标,如下图所示,然后进入下一步。
4、然后,在弹出窗口中,根据下图选择并输入特定名称,如下图所示,然后进入下一步。
5、随后,单击格式设置,将弹出一个格式设置窗口,如下图所示,然后进入下一步。
6、然后,单击下面的使用设置,最大值为4096,如下图所示,然后进入下一步。
7、最后,完成操作,如下图所示。这样,问题就解决了。
怎么打开abaqus的odb文件
只要在visualization中看到分析完的作业,就说明已经有odb文件了,因为odb文件就是结果文件,visualization是只能显示结果文件的。abaqus默认是在temp文件夹或者cae所在文件夹里存放结果文件的。你到temp文件夹里看有没有该odb文件,找不到的话你打开该cae文件,然后在file-set
workdirectory里面看下默认的结果是放到哪个文件夹了。然后你到job模块的job
manager里面看下该结果文件的名字叫什么,然后该文件夹里找该文件名的odb文件就行。
求教用C++方式读取abaqus的odb数据中的问题
数据量不小,是提取各个单元的损伤值。600帧时内存就用到2G了。下面是耗内存的代码段。
odb_SequenceFrame allFramesInStep = curstep .frames();
int numFrames = allFramesInStep.size();
for (int ifrm=0;ifrmnumFrames;ifrm++)
{
odb_Frame FrameNow = allFramesInStep[ifrm]; //这句内存变化最大,后面代码内存无大变化!
odb_FieldOutput Damage = FrameNow.fieldOutputs()["DAMAGET"];
const odb_SequenceFieldBulkData seqBulkData = amage.bulkDataBlocks();
int numBlocks = seqBulkData .size();
for (int iblock=0; iblocknumBlocks; iblock++)
{
const odb_FieldBulkData bulkData = seqBulkData [iblock];
int numEle = bulkData.length(); //节点个数
int numComp = bulkData.width();
float* data = bulkData.data();
for (int inum=0,pos=0; inumnumEle; inum++)
{
fwrite(data[pos], sizeof(float),1,m_pFileDmg);
pos++;
}
} //end frame
关于Abaqus怎么读取odb和abaqus怎么用的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。