matlab 读取odb,求教用C++方式读取abaqus的odb数据中的问题!!!

谢谢来信,数据量不小,是提取各个单元的损伤值。600帧时内存就用到2G了。下面是耗内存的代码段。谢谢了!

odb_SequenceFrame& allFramesInStep = curstep .frames();

int numFrames = allFramesInStep.size();

for (int ifrm=0;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; 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; inum

{

fwrite(&data[pos], sizeof(float),1,m_pFileDmg);

pos++;

}

}  //end frame

【 在 IgotU 的大作中提到: 】

: odb_SequenceFrame& allFramesInStep = curstep .frames();

: for (int ifrm=0;ifrm

: {

: ...................

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值