⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 abaqusto.htm

📁 ABAQUS is a general purpose finite element analysis program which is widely used to analyses mechani
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"><HTML VERSION="2.0"><HEAD><!-- WEBMAGIC VERSION NUMBER="2.0.1" --><!-- WEBMAGIC TRANSLATION NAME="ServerRoot" SRC="/var/www/htdocs/" DST="/" --><!-- WEBMAGIC TRANSLATION NAME="ProjectRoot" SRC="./" DST="" --><TITLE>Main Abaqus to Matlab program</TITLE></HEAD><BODY><PRE><B><FONT SIZE="5">function []= ABAQUStoMatlab(infil);</FONT></B>%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                                 %%   Copyright (c) 1993-1994 <A HREF="http://www.mech.gla.ac.uk/~annette">Annette D. Karstensen </A>                %%                          / University of Glasgow, SCOTLAND      %%                                                                 %% This post proccesing reads the fil-files from an ABAQUS-run,     %% and returns  numbers readable for matlab and                    %% can be used for  further post processing.                       %    %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CHANGES :% 12/2 95 &lt;ADK&gt; Reading in displacement from nodes% 29/3 95 &lt;ADK&gt; Changes for the newest version of ABAQUS 5.4-1%              as the new version writes node set and element set%              numbers to the fil file as a model% 8/6-95  &lt;ADK&gt; Jem Taylor kindly helped  with some changes for the newest%              version of ABAQUS (5.4-1) (Thank you)% 5/1-96  &lt;ADK&gt; Some comments about requirements for the input file is added.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % The program should work with any input file from ABAQUS, however there% is a few caviats I would like to add. Useing the program we often found% that when writing the input file is was important to keep the same% frequency for all the variables, because if foreksample J is written% to the fil-file in a different frequency than s11, then it could be% difficult to use the vectors and matrises for calculation. Also% in the postprocessing program constraint, to use that it is requiret% that some of the names of the node set is defined correct. This will% be explaned later in the program.%%%%     INPUT :%         infil        =  the fil-file  eq 'ccp0113.fil'%                         This is a centre cracked panel, a/W =0.1%                         and hardening rate 13, the file_reader routine%                         will automatic recognise that.%%     OUTPUT :%   for variables output : in matlab do &gt; help variables%**************************************************************************%               1       stress11        : First stress component%               2       stress22        : Second stress component%               3       stress33        : Third stress component%               4       stress12        : Shear stress component%               5       miss            : Mises stress%               6       tres            : Tresca stress%               7       hydr            : Hydrostatic pressure%               8       princ1          : First principal stress%               9       princ2          : Second principal stress%               10      princ3          : Third Principal stress%               11      inv3            : Third invariant%               12      strain11        : First total strain component%               13      strain22        : Second total strain component%               14      strain33        : Third total strain component%               15      strain12        : Fourth total strain component%               16      pstrain11       : First plastic strain component%               17      pstrain22       : Second plastic strain component%               18      pstrain33       : Third plastic strain component%               19      pstrain12       : Fourth plastic strain component%               20      pequst          : Equvalent plastic strain%               21      reac_set1       : First component of reaction force%               22      reac_set2       : Second component fo reaction force%               23      Tese            : Total elastic strain energy%               24      Tew             : Total external work%               25      Tpd             : Total plastic dissipation%      %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%        %       Opens the fil-file into matlab system%    fid=fopen(infil);%%      Read the first record so as to establish 'label' and 'items'%    [items,label,status]=read_header(fid);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    Read of identification for the file%    [cp_num,hard,a,cp]=<A HREF="mainfun.html#file_reader">file_reader</A>(infil);     %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%status=0;node_cnt=0;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% This subfunction has been changed to fit the new version v.5.4% because then all the node sest and element set numbers are written% to the fil file as a part of the model, in 1931/32 and 1933/34 records.%% label 1931 is the node set numbers and label 1933 is the element set% numbers written, those is only written once in the program%% 1931/2/3/4 records will be before the 2000 record which introduces the% data read in the next phases further below ....%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    while (label~=2000)       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                       % read has the value 0 or -1         % 0  :  skip to end of record and read new label       % -1 :  new label allready read       %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%       read=0;       if (label==1921)%%      get the version information from the 1921 VERSION record%      version,date,date/cont,time,elements,nodes,etc...%           [vers,status]=<A HREF="mainfun.html#read_text">read_text</A>(fid);           [date_1,status]=read_text(fid);           [date_2,status]=read_text(fid);           dato=date_1;           dato(9)=date_2(1);       elseif (label==1901)           node_cnt=node_cnt+1;           [node_no_tmp,status]=read_integer(fid);           if status==0               MODEL(node_cnt)=node_no_tmp;                       [coord_tmp,status]=<A HREF="mainfun.html#read_float">read_float</A>(fid);           end           if status==0              coord(1,node_no_tmp)=coord_tmp(1);              coord(2,node_no_tmp)=coord_tmp(2);           end       elseif (label==1931)           %           % read the 1931 and any 1932 continuation records ...           %           node_numbers=0;           [nodeset_name,status]=read_text(fid);           items=items-3;           for item=1:items,               node_numbers(item)=<A HREF="mainfun.html#read_integer">read_integer</A>(fid);           end           items_so_far=items;           [status]=<A HREF="mainfun.html#skip_to_end">skip_to_end</A>(fid);           [items,label,status]=<A HREF="mainfun.html#read_header">read_header</A>(fid);           %           % read has the value 0 or -1             % 0  :  skip to end of record and read new label           % -1 :  new label allready read           %           if (label~=1932)                read=-1;            end           while (label==1932)               %               % 1932 continuation records if present ...               %               items=items-2;               for item=1:items                   node_numbers(items_so_far+item)=read_integer(fid);               end               items_so_far=items_so_far+items;               [status]=skip_to_end(fid);               [items,label,status]=read_header(fid);               read=-1;            end           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%           % save the nodes under nodeset_name ...           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%           eval([ nodeset_name '= node_numbers;'])       elseif (label==1933)           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%           % read the 1933 and any 1934 continuation records ...           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%           element_numbers=0;           [elementset_name,status]=read_text(fid)           items=items-3;           for item=1:items,               element_numbers(item)=read_integer(fid);           end           items_so_far=items;           [status]=skip_to_end(fid);           [items,label,status]=read_header(fid);           if (label~=1934)                read=-1;            end           while (label==1934)               %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%               % 1934 continuation records if present ...               %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%               items=items-2;               for item=1:items                   element_numbers(items_so_far+item)=read_integer(fid);               end               items_so_far=items_so_far+items;               [status]=skip_to_end(fid);               [items,label,status]=read_header(fid);               read=-1           end           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%           % save the elements under elementset_name ...           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%           eval([ elementset_name '= element_numbers;']);           %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%       end       if read==0          [status]=skip_to_end(fid);          [items,label,status]=read_header(fid);       end    end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%      Skip other unwanted info until we reach the 2000 INCREMENT START%      which preceeds the increment data we actually want to read.%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    cur_inc=0;    out_label=0;%%      Read increment data%    while status~=-1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 1 is the key number for node/element header record this record% alway come before a% stress% record to identified which node number the stress correspond to,% this record is only written to once as it is  repeated for each increment%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                                               %      if ((label==1911) &amp; (cur_inc==1))  &amp; vers~='5.4-1 '%                      if (exist('tmp_node')==1) &amp; status==0%                           if (exist(string)==0)%                              eval([ string '= tmp_node;']);%                              tmp_node=0;%                           end%                      end%%                      [flag,status]=read_integer(fid);%                      [string,status]=read_text(fid); %                                                              %                      tmp_nn=0;%                      tmp_node=0;     %               if (label==1) &amp; (cur_inc==1)                     node_number=read_integer(fid);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                 %  11 is the  key number for stresses%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%                                    elseif (label==11)               if out_label~=label tmp_nn=0; end                       out_label=label;                               ns_node=ns_node+1;                       tmp_nn=tmp_nn+1;                       if (cur_inc==1)                               tmp_node(tmp_nn)=node_number;                               stress_node(ns_node)=node_number;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -