Thank you for sharing 1. How to output the weight of the structure? 2. How to read the maximum stress or strain? 3. Can I read ODB file directly using MATLAB?
Form CAE: 1. tools-->query-->mass properties. 2. Contour options--> "limit" tab -->tick "Show location" box for max and min. 3. Difficult to give a short answer, you have to write and then edit the matlab code for output you need. Not directly from ODB though! Can check "abaqus2matlab" application for a jumpstart.
Hello, Thanks for thez tutorials, I have a question : I want to recover the stifness and the mass associated with this surface. I would like to display them on Matlab. Can you guide me ??
Great video!!! Thank you. I can't open the link provided for the Abaqus input file and Matlab scripts used in the video. Please how to get access to the link?
Thanks a lot for this video. I just have two questions:1- if I want to extract the output at special time points how can I define it in the input file? 2- can I get data at every time point and use it for a step-by-step calculation or do I have to wait to complete the analysis and then use all of the output data, in other words before the analysis is completed are the outputs are accessible?
Thanks Sir For sharing, I would like to ask you one question. I would like to extract the results on one additional RP. I modified the input file by writing at the end two additional lines: *NODE PRINT, nset=RP, frequency=1 U2,RF2 *NODE PRINT, nset=RP2, frequency=1 U1 *End Step The code does not work.. It seems that I have to modify the function Read_ODB_outputs_node . Could you please advise me? Best,
Hi Khadija, please use the following code instead for "Read_ODB_outputs_node": function [D_sim,F_sim]=Read_ODB_outputs() clear all close all debug = 0; if (debug) debug_file = fopen('debug.dat', 'wt'); end while exist('Dogbone.dat','file')==0 pause(0.1) end file = 'Dogbone.dat'; fidd = fopen(file); i = 0; pause(0.5) numSteps = 0; j=0; while ( ~feof(fidd) ) tline = fgetl(fidd); i = i+1; if (regexpi(tline, 'N O D E O U T P U T')>0) %For elements, replace 'N O D E O U T P U T' by 'E L E M E N T O U T P U T' numSteps = numSteps + 1; tline = fgetl(fidd); i = i+1; while(isempty(str2num(tline))) tline = fgetl(fidd); i = i+1; end while(~isempty(str2num(tline))) j=j+1; data_f = sscanf(tline, '%d %e %e', [1,3]); if (debug) fprintf(debug_file, '%d\t%e ', data_f(1), data_f(2), data_f(3)); end node_number=data_f(1); tline = fgetl(fidd); i = i+1; D_sim(j)=data_f(2); F_sim(j)=data_f(3); end if (debug) fprintf(debug_file, ' '); end end end ii=1; file = 'Dogbone.dat'; fidd = fopen(file); i = 0; pause(0.5) numSteps = 0; j=0; while ( ~feof(fidd) ) tline = fgetl(fidd); if (contains(tline, 'THE FOLLOWING TABLE IS PRINTED FOR NODES BELONGING TO NODE SET ASSEMBLY_RP2')>0) %For elements, replace 'N O D E O U T P U T' by 'E L E M E N T O U T P U T' numSteps = numSteps + 1; tline = fgetl(fidd); i = i+1; while(isempty(str2num(tline))) tline = fgetl(fidd); i = i+1; end while(~isempty(str2num(tline))) j=j+1; data_f11 = sscanf(tline, '%d %e', [1,2]); % if (debug) % fprintf(debug_file, '%d\t%e ', data_f(1), data_f(2), data_f(3)); % end node_number=data_f11(1); tline = fgetl(fidd); i = i+1; D_sim11(j)=data_f11(2); %F_sim11(j)=data_f11(3); end if (debug) fprintf(debug_file, ' '); end end end fclose(fidd); fclose all
Thank you for the video!! Just a question pls: how can I tell abaqus to wait for completion of the previous job when going through an array of jobs?? Thanks again in advance
Thanks again for this video. I have a question. In my FE model, when I define a set with one element in the .inp file, the number of the same element is changed in my .dat file to another number. Do you have any idea what can be the origin of this problem? To be more clear, I will write an example. Input file: *Elset, elset=my_element, instance=Part-1-1 10000, .dat file: element sets: MY_ELEMENT: instance name: PART-1-1 number of elements: 1 elements: 1772 The number 10000 has been changed to 1772 automatically.
I found that the reason is the difference between the number of local element number and global element number, now I am trying to make these numbers consistent with each other
Thanks for this video I'm doing creep simulations with abaqus and I would like to extract with Matlab a node displacement and the step time for each increment With your Matlab code I can extract the displacement, but how can I extract the step time ? Thanks
A simple way is to convert your displacement into time. For example, if the simulation step time is 1s and you pull an end by total of 10 mm, then, at 2.5 mm displacement, you know the step time is 0.25s.
@@10Minuters Thank you for your answer. I think this could work for a static analysis, but as I'm doing a visco analysis, I don't have the displacement or the force that depends directly on the step time
@@martheloiseau3015 Adopting this code for reading node output might help, it works for the example in this video: function [D_sim,F_sim]=Read_ODB_outputs() clear all close all debug = 0; if (debug) debug_file = fopen('debug.dat', 'wt'); end while exist('Dogbone.dat','file')==0 pause(0.1) end file = 'Dogbone.dat'; fidd = fopen(file); i = 0; pause(0.5) numSteps = 0; j=0; while ( ~feof(fidd) )
tline = fgetl(fidd);
i = i+1; if (regexpi(tline, 'N O D E O U T P U T')>0) %For elements, replace 'N O D E O U T P U T' by 'E L E M E N T O U T P U T' numSteps = numSteps + 1; tline = fgetl(fidd); i = i+1;
while(isempty(str2num(tline))) tline = fgetl(fidd); i = i+1; end while(~isempty(str2num(tline))) j=j+1; data_f = sscanf(tline, '%d %e %e', [1,3]); if (debug) fprintf(debug_file, '%d\t%e ', data_f(1), data_f(2), data_f(3)); end node_number=data_f(1); tline = fgetl(fidd); i = i+1; D_sim(j)=data_f(2); F_sim(j)=data_f(3); end if (debug) fprintf(debug_file, ' '); end end
end ii=1; file = 'Dogbone.dat'; fidd = fopen(file); i = 0; pause(0.5) numSteps = 0; j=0; while ( ~feof(fidd) )
tline = fgetl(fidd);
if (regexpi(tline, 'TIME INCREMENT COMPLETED')>0) %For elements, replace 'N O D E O U T P U T' by 'E L E M E N T O U T P U T' numSteps = numSteps + 1; tline = fgetl(fidd); i = i+1; j=j+1; data_f11 = sscanf(tline, '%s %s %s %e', [1,18]); node_number=data_f11(1); tline = fgetl(fidd); Time_inc(j)=data_f11(18);
@@10Minuters Thanks for the video, it helps a lot. I am not sure how could I get the displacements with respect to time for each increment. Any suggestions/help is highly appreciated. Thanks again!
Can I type the same command in the command line before I produced the input file? So that I need not open the input file and modify it. Just a wild guess. :)
Thanks for the instruction video, it's very helpful!!! How can I run and read results from multipul jobs (job1, job2, job 3...) instead of doing a separate run?
This is one of the greatest ABAQUS tutorials I've ever seen.
i really like the content of this video. Thank you
I thought it must it exist and so it does. I liked the video
Thanks for this informative video and thank you for your nice and clear explanation
very detailed demonstration! ! ! many thanks to this video!
Thank you for sharing
1. How to output the weight of the structure?
2. How to read the maximum stress or strain?
3. Can I read ODB file directly using MATLAB?
Form CAE:
1. tools-->query-->mass properties.
2. Contour options--> "limit" tab -->tick "Show location" box for max and min.
3. Difficult to give a short answer, you have to write and then edit the matlab code for output you need. Not directly from ODB though! Can check "abaqus2matlab" application for a jumpstart.
Great! Thank you!
Nice Work.
Thank you for the video. It was really helpfull
Nice video 🔥
Hello, Thanks for thez tutorials, I have a question : I want to recover the stifness and the mass associated with this surface. I would like to display them on Matlab. Can you guide me ??
Great video!!! Thank you. I can't open the link provided for the Abaqus input file and Matlab scripts used in the video. Please how to get access to the link?
Thank you. Please find the files here: github.com/10minuters/Read-Abaqus-output-from-Matlab
@@10Minuters Thank you for your prompt feedback
Thanks a lot for this video. I just have two questions:1- if I want to extract the output at special time points how can I define it in the input file? 2- can I get data at every time point and use it for a step-by-step calculation or do I have to wait to complete the analysis and then use all of the output data, in other words before the analysis is completed are the outputs are accessible?
Thanks Sir For sharing,
I would like to ask you one question.
I would like to extract the results on one additional RP.
I modified the input file by writing at the end two additional lines:
*NODE PRINT, nset=RP, frequency=1
U2,RF2
*NODE PRINT, nset=RP2, frequency=1
U1
*End Step
The code does not work.. It seems that I have to modify the function Read_ODB_outputs_node .
Could you please advise me?
Best,
Hi Khadija, please use the following code instead for "Read_ODB_outputs_node":
function [D_sim,F_sim]=Read_ODB_outputs()
clear all
close all
debug = 0;
if (debug)
debug_file = fopen('debug.dat', 'wt');
end
while exist('Dogbone.dat','file')==0
pause(0.1)
end
file = 'Dogbone.dat';
fidd = fopen(file);
i = 0;
pause(0.5)
numSteps = 0;
j=0;
while ( ~feof(fidd) )
tline = fgetl(fidd);
i = i+1;
if (regexpi(tline, 'N O D E O U T P U T')>0) %For elements, replace 'N O D E O U T P U T' by 'E L E M E N T O U T P U T'
numSteps = numSteps + 1;
tline = fgetl(fidd);
i = i+1;
while(isempty(str2num(tline)))
tline = fgetl(fidd);
i = i+1;
end
while(~isempty(str2num(tline)))
j=j+1;
data_f = sscanf(tline, '%d %e %e', [1,3]);
if (debug)
fprintf(debug_file, '%d\t%e
', data_f(1), data_f(2), data_f(3));
end
node_number=data_f(1);
tline = fgetl(fidd);
i = i+1;
D_sim(j)=data_f(2);
F_sim(j)=data_f(3);
end
if (debug)
fprintf(debug_file, '
');
end
end
end
ii=1;
file = 'Dogbone.dat';
fidd = fopen(file);
i = 0;
pause(0.5)
numSteps = 0;
j=0;
while ( ~feof(fidd) )
tline = fgetl(fidd);
if (contains(tline, 'THE FOLLOWING TABLE IS PRINTED FOR NODES BELONGING TO NODE SET ASSEMBLY_RP2')>0) %For elements, replace 'N O D E O U T P U T' by 'E L E M E N T O U T P U T'
numSteps = numSteps + 1;
tline = fgetl(fidd);
i = i+1;
while(isempty(str2num(tline)))
tline = fgetl(fidd);
i = i+1;
end
while(~isempty(str2num(tline)))
j=j+1;
data_f11 = sscanf(tline, '%d %e', [1,2]);
% if (debug)
% fprintf(debug_file, '%d\t%e
', data_f(1), data_f(2), data_f(3));
% end
node_number=data_f11(1);
tline = fgetl(fidd);
i = i+1;
D_sim11(j)=data_f11(2);
%F_sim11(j)=data_f11(3);
end
if (debug)
fprintf(debug_file, '
');
end
end
end
fclose(fidd);
fclose all
@@10Minuters Thank you sir
It works perfectly!
Thank you for the video!! Just a question pls: how can I tell abaqus to wait for completion of the previous job when going through an array of jobs?? Thanks again in advance
Hi!
Is there a way to find the mass properties through a script?
Thanks again for this video. I have a question.
In my FE model, when I define a set with one element in the .inp file, the number of the same element is changed in my .dat file to another number. Do you have any idea what can be the origin of this problem? To be more clear, I will write an example.
Input file:
*Elset, elset=my_element, instance=Part-1-1
10000,
.dat file:
element sets:
MY_ELEMENT:
instance name: PART-1-1
number of elements: 1
elements:
1772
The number 10000 has been changed to 1772 automatically.
I found that the reason is the difference between the number of local element number and global element number, now I am trying to make these numbers consistent with each other
Great! Please let us know if you succeed.
Thanks for this video
I'm doing creep simulations with abaqus and I would like to extract with Matlab a node displacement and the step time for each increment
With your Matlab code I can extract the displacement, but how can I extract the step time ? Thanks
A simple way is to convert your displacement into time. For example, if the simulation step time is 1s and you pull an end by total of 10 mm, then, at 2.5 mm displacement, you know the step time is 0.25s.
@@10Minuters Thank you for your answer. I think this could work for a static analysis, but as I'm doing a visco analysis, I don't have the displacement or the force that depends directly on the step time
@@martheloiseau3015 Adopting this code for reading node output might help, it works for the example in this video:
function [D_sim,F_sim]=Read_ODB_outputs()
clear all
close all
debug = 0;
if (debug)
debug_file = fopen('debug.dat', 'wt');
end
while exist('Dogbone.dat','file')==0
pause(0.1)
end
file = 'Dogbone.dat';
fidd = fopen(file);
i = 0;
pause(0.5)
numSteps = 0;
j=0;
while ( ~feof(fidd) )
tline = fgetl(fidd);
i = i+1;
if (regexpi(tline, 'N O D E O U T P U T')>0) %For elements, replace 'N O D E O U T P U T' by 'E L E M E N T O U T P U T'
numSteps = numSteps + 1;
tline = fgetl(fidd);
i = i+1;
while(isempty(str2num(tline)))
tline = fgetl(fidd);
i = i+1;
end
while(~isempty(str2num(tline)))
j=j+1;
data_f = sscanf(tline, '%d %e %e', [1,3]);
if (debug)
fprintf(debug_file, '%d\t%e
', data_f(1), data_f(2), data_f(3));
end
node_number=data_f(1);
tline = fgetl(fidd);
i = i+1;
D_sim(j)=data_f(2);
F_sim(j)=data_f(3);
end
if (debug)
fprintf(debug_file, '
');
end
end
end
ii=1;
file = 'Dogbone.dat';
fidd = fopen(file);
i = 0;
pause(0.5)
numSteps = 0;
j=0;
while ( ~feof(fidd) )
tline = fgetl(fidd);
if (regexpi(tline, 'TIME INCREMENT COMPLETED')>0) %For elements, replace 'N O D E O U T P U T' by 'E L E M E N T O U T P U T'
numSteps = numSteps + 1;
tline = fgetl(fidd);
i = i+1;
j=j+1;
data_f11 = sscanf(tline, '%s %s %s %e', [1,18]);
node_number=data_f11(1);
tline = fgetl(fidd);
Time_inc(j)=data_f11(18);
if (debug)
fprintf(debug_file, '
');
end
end
end
fclose(fidd);
fclose all
@@10Minuters Thanks for the video, it helps a lot. I am not sure how could I get the displacements with respect to time for each increment. Any suggestions/help is highly appreciated. Thanks again!
Can I type the same command in the command line before I produced the input file? So that I need not open the input file and modify it. Just a wild guess. :)
how do i plot contour plot in matlab from abaqus ? like temperature contour in r,theta plane ? Actually i want it similar like ansys to techplot
thanks, iwould like to ask wich file should i save model in matlab to run it abaqus
I need to calculate the strain energy for a beam model. Could you let me know changes I need to do in the code
Very nice sir i want to change the value of E (young's modulus) by matlab automatically and seen lot of graphics of simulation how can i do this ?
Helllo sir, thank you very much for this, but do you know how to request PHILSM from abaqus?
Thanks for the instruction video, it's very helpful!!!
How can I run and read results from multipul jobs (job1, job2, job 3...) instead of doing a separate run?
Sorry for late reply. If you want to run multiple jobs and read outputs, the matlab scripts have to be heavily modified.
@@10Minuters hi, there can you share some material or source where we can find this code?
it could not use in dynamic explicit step analysis in abaqus
so do I, have you find any solutions?
can i use this command file for interfacing ansys and matlab
Unfortunately, you can not use the code directly.
Can you share your mail I'd.
Hi Bharat, you can reach me here: 10minuterschannel@gmail.com