【问题标题】:Edit an Abaqus input file and Run it from Matlab编辑 Abaqus 输入文件并从 Matlab 运行它
【发布时间】:2019-09-09 09:30:17
【问题描述】:

我需要执行 50 次 Abaqus 模拟,每次模拟都会分析某种材料属性,并且每次都通过更改一个参数而有所不同。所以想法是编写一个 Matlab 脚本:

  1. 打开 .inp 文件
  2. 编辑感兴趣的材料参数
  3. 将其打印到一个新文件中,该文件将成为新的 .inp 文件
  4. 运行它来执行模拟

这是我迄今为止在一个非常简化的版本中完成的:

f= fopen('PRD8_30s.inp'); 

c = textscan(f,'%s %s %s %s %s ','delimiter',','); 

fclose(f) ; 
S = [c{1}]; 
A = {'5e-08'} ;

S(12496) = A ; 

fid = fopen('file.inp','w') ;
fprintf(fid,'%s \n',S{:} );

fclose(fid) ; 

PRD_8_30s.inp

我手动找到了感兴趣参数的位置(A 在 12496,因此低于 *Viscoelastic 线)。该代码实际上更改了我需要的参数,但存在重大问题:它打印一个新文件,其中包含相对于原始 .inp (12552 与 8737)的附加行,并且它不打印整个 .inp,而只打印第一列。

如何编辑 .inp 更改参数并获得具有可用于运行新模拟的编辑参数的新 .inp?

提前感谢您的帮助!

【问题讨论】:

    标签: matlab parameters simulation abaqus calibration


    【解决方案1】:

    如果您的输入文件不是多个 Gb 大小,以下可能会有所帮助。

    1. 创建模板输入并将您要更改的参数标记为,例如para_xxxx

    2. 使用以下脚本:

        text=fileread('template.inp');
        newtext=replace(text,'para_xxxx',newParameter);
        fid=fopen('newcase.inp','w');
        fprintf(fid,newtext);
        fclose(fid);
    

    文件名“newcase.inp”应在每次循环中更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-10
      • 1970-01-01
      • 2016-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多