谢谢来信,数据量不小,是提取各个单元的损伤值。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
: {
: ...................