Good morning, I'm a student from Milan. Me and a colleague have created some .inp files to simulate a random porosity soil. When running it by Abaqus2Matlab tool it works properly up to the simulation end ("simulation finished" is displayed on the workspace, and "obtaining desired output.." as well), but soon after an error occurs at line 96 in the exploreFieldOdb function, saying
"undefined funtion of variable varargin".
The only editing I did was updating the line where the following instruction is
system(['abq2018 job=' Inp_file]);
by changing the abaqus version to run, but I don't think it influences the script execution.
Could you help me fixing it? Thanks a lot. Have a nice day.
Mansi Dario
Dear George,
thank you very much.
Anna
Dear Anna,
Assuming that your odb file is named "1.odb", you can run the following Python code, in order to extract the time values of the frames contained in the odb file and write them in the file "Time.dat" automatically:
import os from odbAccess import * from abaqusConstants import * TimeFile=open('Time.dat','w') odb1 = openOdb(path='1.odb', readOnly=True) outSteps=odb1.steps.values() for step in outSteps: # Loop over frames: for frame in step.frames: Time1=frame.frameValue TimeFile.write(str(Time1)+'\n') odb1.close() TimeFile.close()
You can also extract SDV variables at element integration points by using one of the Abaqus2Matlab functions:
readElementFieldOdb.m
or
readHistoryOdb.m
if the SDV variable is written in the odb file as field or history data respectively.
Best regards.
Hello, I am interested in extracting time history data (total time at the end of every time step). How is this possible? Secondly, how we can also extract SDV variables (state dependent variables) for a UMAT? thank you, Anna
Dear George, I have a question about the size of the output variables I got. I failed in attaching the files I wanted, so if you provide me an e-mail adress I will send them and tell you what is the doubt I have. Thank you once again.
Dario
Dear Dario,
I am very glad that your code finally worked. You are kindly requested to cite the relevant paper of Abaqus2Matlab, in case that you use it for industrial or research purposes.
Thank you very much and do not hesitate to contact me again for any problems that you may have.
Best,
George
Dear George, finally I succeeded in running the code properly, also giving it multiple .inp files to postprocess. The issue was about the water specific weight declared in Abaqus Cae. Don't know why, but the software didn't read 9.81 as specific weight and left this field empty. Anyway, thank you for your kindness and support and congrats for all the work behind this tool.
Best regards,
Dario
Try to execute the following commands:
outputVar='POR';
[odbOut_POR,odbDat_POR,rpyOut_POR]=readNodeFieldOdb(odb_name,stepName,instanceName,nsetName,outputVar,indOut);
save POR1.txt odbOut_POR -ascii
Also, check that in the Abaqus input file, POR output is requested as a result for the nsetName that is given in the above function.
Check, finally, that the type of analysis that you are performing in Abaqus allows for POR output in the odb file. You can find related warnings in the *.dat or *.msg files of the Abaqus analysis.
Let me know what do you take when running the above commands.
Best,
George
Sorry, I'm not sure I got the point out of your question: in the abaqus input file I specified
CF,COORD,POR,RF,U as node output and FLVEL,FV,LE,MFR,S,SAT,SDV,UVARM,VOIDR as element output. Up to now, in the A2M function I let everything as you had wrote, except adding these lines according to what already was in the code:
outputVar='FLVEL';
[odbOut_FLVEL,odbDat_FLVEL,rpyOut_FLVEL]=readNodeFieldOdb(odb_name,stepName,instanceName,nsetName,outputVar,indOut);
save FLVEL1.txt odbOut_FLVEL -ascii
outputVar='VOIDR';
[odbOut_VOIDR,odbDat_VOIDR,rpyOut_VOIDR]=readNodeFieldOdb(odb_name,stepName,instanceName,nsetName,outputVar,indOut);
save VOIDR1.txt odbOut_VOIDR -ascii
Let me know if this wasn't what you wanted
Could you tell me which output variable identifier do you specify in the Abaqus input file and as the input argument in the Abaqus2Matlab function which gives odbOut_ POR as output?
Dear George, I'm setting the script but I found an unexpected problem when running: the variables whose names are odbOut_ POR like are empty. I supposed it was due to some editing but it occured again after unistalling and installing A2M. Then I tested some previously generated A2M.m codes with no editing and it occured as well. Do you think this is due to some wrong editing when checking the line "system([abaqus job etc " in the other files? The warning the code gives are like "no options related to result files .fill" and "directory already exists" (I think because I stored files in different folders"
Thank you once again,, best regards.
Dario
Dear Dario,
Of course it is possible to write a Matlab script that will process a number of Abaqus analyses. In each iteration of the for loop the Abaqus input file will be written, then executed, and finally the results files will be postprocessed to obtain the results.
Currently Abaqus2Matlab cannot generate such scripts, but you can use it to generate a postprocessing script and then modify the script appropriately. In most cases this is easy; in case that you find any difficulties to set up the for loop, please let me know so that I can help you.
Best regards,
George
Dear George, thank you for the quick reply, the problem was the one you supposed, and excuse me for the not so quick answer. I would like to ask you about another issue: can I use a single A2M post processing script, by adding a proper "for" loop, to process more than a single inp. file at a time? I mean avoid the routine (load inp file,write to input, generate post processing script), which might become time-expensive in case of hundreds of inp files to be handled. Thank you again, best regards.
Dario
Dear Mansi,
You should check the input argument that is passed inside the function exploreFieldOdb.m. Are you sure that you have not modified this function? Line 96 of this function contains a comment, not Matlab code.
Best regards,
George