User login

You are here

Sharing ABAQUS UMAT and VUMAT subroutines

azadpoor's picture

I have noticed that a lot of people are using UMAT and VUMAT material model
subroutines for their researches. However, most of these subroutines do not
find their way to free code market and remain in the hands of the developers.
Therefore, a lot of wheel re-inventing has to be done by other people. Since
development and testing of a material subroutine takes a damn long time, I
think it is a good idea if each of us can share the subroutines she has
developed with the others. I know that a couple of subroutines are publicly
available and many other people also know that. Please comment about less-known
freely available subroutines.

To be more specific, I think it would be useful if people can comment about
following highly demanded UMAT subroutines:

1.Cohesive zone elements models

2.Polycrystalline plasticity

3.Gurson-type ductile fracture models

Note added by admin:  This topic has also been discussed in another thread:  node/2376

 

Comments

Huapei Wan's picture

To Azadpoor,

Good idea. I wish I had the first and the third ones when I was developing them.

 

Huapei

azadpoor's picture

 To Huapei,

Is it possible for you to share the subroutines you have developed? If yes, please let me know. 

Amir Abbas Zadpoor
Faculty of Aerospace Engineering,
Delft University of Technology (TU Delft)

aamirmub's picture

Hi,

Its a good idea to share the umat and vumat subroutines but we have to be mindful of the effort put in by the author. Successful implementation of complex material models is a result of, if not years, months of research work. Also sometimes the subroutines are written for particular class of problem and not applicable generally. Therefore, I think that sharing knowledge of development of such routines is more important. Experienced users can help others by sharing difficulties, hints, tips, entry level models or tutorials. iMechanica provides a good plateform for this.

Cohesive zone models are now available in most of the commercial FE packages along with different cohesive laws. Gurson model is also implemented with damage and failure simulation capabilities.

Regards

Aamir Mubashar

Wolfson School of Mechanical and Manufacturing Engineering
Loughborough University
Loughborough
United Kingdom

hi,

I have the f90 code for the constitutive relationship for some complex plasticity material, and need to shape it be a Abaqus/Umat subroutine. But I see that the Abaqus only recognize  umat.for  format, not umat.f90  format. The manual only gives example with fixed fortran format.

1) Does anyone ever try the free fortran format?

2) Can we compile the fortran umat subroutine with some tool before run it with Abaqus? By compiling, we can get  umat.obj, then run it with Abaqus,

Abaqus  job=job.inp, user=umat.obj

Is there any such tools, and how to compile it fisrt?

 Thanks a lot!

 

Jianhong Jiang

Arun Prakash's picture

Hi Jianhong,

 I recently tried programming a basic UMAT in f90. After a whole deal of struggling, i could get it to run. Here are some pointers.

 a) extend the compiler options in the environment file to include free format fortran - with the intel fortran compiler these options would be -FR or -free.

b) be careful on number off bytes used for floating point variables (double and single precision)

c) it always helps to first compile the UMAT and then run it using the object file. use the compiler command in the env file and compile your UMAT.f90 (u may have to copy the aba_param.inc file locally) to a UMAT1.o file. Now run your job as before but use UMAT1 as the subroutine file rather than UMAT.f90

e.g.


for run with fortran source

abaqus -j jobname user=UMAT

for run with fortran object code

abaqus -j jobname user=UMAT1


make sure that your source and object files have different names.

 

Arun 

Alankar
Ph.D. Student
School of Mechanical and Materials Engineering
Washington State University, Pullman

Dear friend

 

I am Babak, a Ph.D. candidate in geotechnical engineering, school of civil engineering in university of Tehran (UT), Iran. (www.ut.ac.ir). My research topic is about “Capturing shear band in slope and excavation in static and seismic conditions”. I look for a model which can handle shear banding and strain localization in geological materials specially soils. I really appreciate your favor whether help me in this regard. Any helpful comments about source code, open source software or even a hint which can help me to follow it are appreciated. I am completely ready to do joint research with someone else.

 

Truly yours,

 

Babak Ebrahimian

Ph.D. Candidate in Geotechnical Engineering

University College of Engineering

School of Civil Engineering

University of Tehran

Tehran, Iran

 Postal Code: 11155-4563, Enghelab St., Tehran, Iran.Mobile Phone:        (0098-912)5506553Phone Number:      (0098-311)4416302Fax:                        (0098-311)4343275

Email:                    bebrahimian@ut.ac.ir

kawaminaii's picture

Hi Arun Prakash

Thank you for your interesting Posts.

I have met a problem in linking abaqus and fortran90.

I don't know how to "extend the compiler options in the environment file to include free format fortran"

This is my environment file.If it is possible please extend it and resend it to my email:

Kaveh_mch@yahoo.com

Thank you.

#
#        System-Wide Abaqus Environment File
#       -------------------------------------
standard_parallel = ALL
mp_mode = MPI
mp_file_system = (DETECT,DETECT)
mp_environment_export = ('MPI_PROPAGATE_TSTP',
                         'ABA_CM_BUFFERING',
                         'ABA_CM_BUFFERING_LIMIT',
                         'ABA_ITERATIVE_SOLVER_VERBOSE',
                         'ABA_DMPSOLVER_BWDPARALLELOFF',
                         'ABA_ELP_SURFACE_SPLIT',
                         'ABA_ELP_SUSPEND',
                         'ABA_HOME',
                         'ABA_MEMORY_MODE',
                         'ABA_MPI_MESSAGE_TRACKING',
                         'ABA_MPI_VERBOSE_LEVEL',
                         'ABA_PATH',
                         'ABA_RESOURCE_MONITOR',
                         'ABA_RESOURCE_USEMALLINFO',
                         'ABAQUS_LANG',
                         'ABAQUSLM_LICENSE_FILE',
                         'ABQ_CRTMALLOC',
                         'ABQ_DATACHECK',
                         'ABQ_RECOVER',
                         'ABQ_RESTART',
                         'ABQ_SPLITFILE',
                         'ABQ_XPL_WINDOWDUMP',
                         'ABQ_XPL_PARTITIONSIZE',
                         'ABQLMHANGLIMIT',
                         'ABQLMQUEUE',
                         'ABQLMUSER',
             'CCI_RENDEZVOUS',
                         'DOMAIN',
                         'DOMAIN_CPUS',
                         'DOUBLE_PRECISION',
                         'FLEXLM_DIAGNOSTICS',
                         'FOR0006',
                         'FOR0064',
                         'LD_PRELOAD',
                         'MP_NUMBER_OF_THREADS',
                         'MPC_GANG',
                         'MPI_RDMA_NENVELOPE',
                         'MPI_SOCKBUFSIZE',
                         'MPI_WORKDIR',
                         'MPCCI_SERVER',
                         'MPCCI_INITIAL_EXCHANGE',
                         '_MPCCI_CCM_CODE_IDS',
                         '_MPCCI_CODE_IDSTRING',
                         'ABAQUS_CCI_DEBUG',
                         'NCPUS',
                         'OMP_DYNAMIC',
                         'OMP_NUM_THREADS',
             'OUTDIR',
                         'PAIDUP',
                         'PARALLEL_METHOD',
                         'RAIDEV_NDREG_LAZYMEM',
                         'ABA_SYMBOLIC_GENERALCOLLAPSE',
                         'ABA_SYMBOLIC_GENERAL_MAXCLIQUERANK',
                         'ABA_ADM_MINIMUMINCREASE',
                         'ABA_ADM_MINIMUMDECREASE',
                         'IPATH_NO_CPUAFFINITY',
                         'MALLOC_MMAP_THRESHOLD_',)

import driverUtils, os
memory='50%'

compile_cpp=['CL', '/c', '/nologo', '/W0', '/MD', '/DABQ_NTI_NET', '/DABQ_WIN86_32',
             '/TP', '/EHs', '/GS', '/DNDEBUG', '/DWIN32', '/DTP_IP', '/D_CONSOLE',
             '/DNTI', '/DFLT_LIC', '/DOL_DOC', '/D__LIB__', '/DHKS_NT',
             '/DFAR=', '/D_WINDOWS', '/O1', '/Gs', '/I%I']

compile_fortran=['F90COM','/C:\MSDEV\BIN', '/GM', '/recursive', '/nologo', '/heap-arrays:1', '/include:%I']

link_sl='cmd /c "LINK /nologo /INCREMENTAL:NO /subsystem:console /machine:X86 /NODEFAULTLIB:LIBC.LIB /NODEFAULTLIB:LIBCMT.LIB /DEFAULTLIB:OLDNAMES.LIB /DEFAULTLIB:LIBIFCOREMD.LIB /DEFAULTLIB:LIBIFPORTMD.LIB /DEFAULTLIB:LIBMMD.LIB /DEFAULTLIB:MSVCRT.LIB /DEFAULTLIB:kernel32.lib /DEFAULTLIB:user32.lib /DEFAULTLIB:advapi32.lib /FIXED:NO /dll /def:%E /out:%U %F %A %B &&mt /manifest %U.manifest /outputresource:%U;2 && del %U.manifest"'

link_exe='cmd /c "LINK /nologo /INCREMENTAL:NO /subsystem:console /machine:X86  /NODEFAULTLIB:LIBC.LIB /NODEFAULTLIB:LIBCMT.LIB /DEFAULTLIB:OLDNAMES.LIB /DEFAULTLIB:LIBIFCOREMD.LIB /DEFAULTLIB:LIBIFPORTMD.LIB /DEFAULTLIB:LIBMMD.LIB /DEFAULTLIB:SVML_DISPMT.LIB /DEFAULTLIB:MSVCRT.LIB /DEFAULTLIB:kernel32.lib /DEFAULTLIB:user32.lib /DEFAULTLIB:advapi32.lib /FIXED:NO /LARGEADDRESSAWARE /STACK:20000000 /out:%J %F %M %L %B %O && mt /manifest %J.manifest /outputresource:%J;1 && del %J.manifest"'

#
# If you are attempting to compile C++ programs using Abaqus make utility without a
# Fortran compiler installed on your machine, uncommenting the following
# link_exe command may help resolve any link errors.
#
#link_exe='cmd /c "LINK /nologo /INCREMENTAL:NO /subsystem:console /machine:X86 /STACK:20000000 /NODEFAULTLIB:LIBC.LIB /NODEFAULTLIB:LIBCMT.LIB /DEFAULTLIB:OLDNAMES.LIB /NODEFAULTLIB:LIBIFCOREMD.LIB /NODEFAULTLIB:LIBIFPORTMD.LIB /NODEFAULTLIB:LIBMMD.LIB /DEFAULTLIB:MSVCRT.LIB /DEFAULTLIB:kernel32.lib /DEFAULTLIB:user32.lib /DEFAULTLIB:advapi32.lib /FIXED:NO /LARGEADDRESSAWARE /out:%J %F %M %L %B %O && mt /manifest %J.manifest /outputresource:%J;1 && del %J.manifest"'

mp_mode = THREADS

mp_mpi_implementation = HP
mp_rsh_command = 'dummy %H -l %U -n %C'
mp_mpirun_path = {}

if os.environ.has_key('MPI_ROOT') and len(os.environ['MPI_ROOT']) > 0:
    if os.path.exists(os.path.join(os.environ['MPI_ROOT'], 'bin', 'mpirun.exe')):
        mp_mpirun_path[HP] = os.path.join(os.environ['MPI_ROOT'], 'bin', 'mpirun.exe')
else:
    mpiRoot  = 'C:\\Program Files\\Hewlett-Packard\\HP-MPI'
    if os.path.exists(os.path.join(mpiRoot, 'bin', 'mpirun.exe')):
        mp_mpirun_path[HP] = os.path.join(mpiRoot, 'bin', 'mpirun.exe')
    del mpiRoot

if os.environ.has_key('CCP_HOME'):
    from queueCCS import QueueCCS          
    queues['default'] = QueueCCS(queueName='share')
    queues['share'] = QueueCCS(queueName='share')
    queues['local'] = QueueCCS(queueName='local')
    queues['genxmlshare'] = QueueCCS(queueName='genxmlshare')
    queues['genxmllocal'] = QueueCCS(queueName='genxmllocal')
    del QueueCCS
    run_mode=BATCH

if mp_mpirun_path:
    mp_mode=MPI

graphicsEnv = driverUtils.locateFile(os.environ['ABA_PATH'],'site','graphicsConfig','env')
if graphicsEnv:
    execfile(graphicsEnv)
else:
    raise 'Cannot find the graphics configuration environment file (graphicsConfig.env)'

del driverUtils, os, graphicsEnv
abaquslm_license_file="@Foad-PC"

 

Arun Prakash's picture

Since you do not provide much info on the compiler you are using - I shall go ahead and assume the compaq fortran compiler (for windows). I think the compiler flag for free format fortran is -free. You need to recheck this with the manual of your compiler. To enable this flag while compiling, modify this line

 compile_fortran=['F90COM','/C:\MSDEV\BIN', '/GM', '/recursive', '/nologo', '/heap-arrays:1', '/include:%I']

to 

compile_fortran=['F90COM','/C:\MSDEV\BIN', '/GM', '/recursive', '/nologo','/free', '/heap-arrays:1', '/include:%I']

 This should in principle work. If it doesn't, I would suggest contacting the local Abaqus support and obtain information on modifying the environment file in windows.

 

Cheers

Arun   

Hamed-yaghoubi's picture

I am really exausted by this error "User subroutine file name must have a .for or .obj extension" in my Abaqus (6-13-1)

while I want to linking it with FORTRAN 90. I made also changes in my abaqus environment file (.env), specifically I added the '/free' to the compile_fortran line but I have still this problem. I was wondering if you give me more information. To more, I copy my both compile_fortran and link_sl from abaqus_v6.env. thanks in advance

# Add the flag '-free' to the compile_fortran command below to use free-
# format FORTRAN 90 syntax.
compile_fortran=['ifort',
                 '/c','/DABQ_WIN86_64', '/extend-source',
                 '/iface:cref', '/recursive','/QMKl:sequential', '/free', '/Qauto-scalar','QxW'
                 '/QxSSE3', '/QaxAVX', '/f90-c-free','F90COM','/c:\MSDEV\BIN','/GM'
                 '/heap-arrays:1', 'fortCmd'+'f90-c-free-extend_source-xK-axW-w90-w95-WB-I%I',
                 # '/Od', '/Ob0'   # <-- Optimization
                 # '/Zi',          # <-- Debugging
                 '/include:%I', '/free']

link_sl=['LINK',
         '/nologo', '/NOENTRY', '/INCREMENTAL:NO', '/subsystem:console', '/machine:AMD64',
         '/NODEFAULTLIB:LIBC.LIB', '/NODEFAULTLIB:LIBCMT.LIB', '/f90',
         '/DEFAULTLIB:OLDNAMES.LIB', '/DEFAULTLIB:LIBIFCOREMD.LIB', '/DEFAULTLIB:LIBIFPORTMD', '/DEFAULTLIB:LIBMMD.LIB',
         '/DEFAULTLIB:kernel32.lib', '/DEFAULTLIB:user32.lib', '/DEFAULTLIB:advapi32.lib',
         '/FIXED:NO', '/dll',
         '/def:%E', '/out:%U', '%F', '%A', '%L', '%B',
         'oldnames.lib', 'user32.lib', 'ws2_32.lib', 'netapi32.lib', 'advapi32.lib']

azadpoor's picture

Hi Aamir  Mubashar

Thanks for your thoughtful comment and a few remarks.

"Successful implementation of complex material models is a result of,
if not years, months of research work"

That is true if it is gonna be from scratch. But I think most of subroutines
can be developed simply by rearranging and converting the available codes to make
FORTRAN subroutines. For example, for crystal plasticity, a handful of models
are available in Tahoe along with the source codes and one just has to bring it
to the UMAT format. For Gurson-type and Cohesive zone elements, the source
codes can be found in WARP3D.

"Cohesive zone models are now available in most of the commercial FE
packages along with different cohesive laws. Gurson model is also implemented
with damage and failure simulation capabilities."

That is true but as you know the source code is not available and the flexibility
while dealing with these models is absolutely limited.

"Also sometimes the subroutines are written for particular class of
problem and not applicable generally."

This is also true but you know that modifying, updating, or improving is
much easier if a basis is already available. Therefore, I think sharing
subroutines would be useful in the sense that other people can build their own
codes on top of the already available subroutines.

"I think that sharing knowledge of development of such routines is more
important. Experienced users can help others by sharing difficulties, hints,
tips, entry level models or tutorials."

I agree. Tutorials, manuals, and examples are particularly useful.

Amir Abbas Zadpoor Faculty of Aerospace Engineering, Delft University
of Technology (TU Delft)

aamirmub's picture

Hi,

Thanks for your detailed remarks. I think my point is put forward when you acknowledge that development of material models take long time and effort unless changes are being made in available code. As you pointed out, some implementations of material models are available freely but I think implementation of models still takes more effort than just re-arranging a few lines of already available code. If this has been the case, there would be no requirement of sharing anything as the freely available code could be re-arranged easily.

As far as the commercial software is concerned, no one expects them to make the code available. But after being implemented in a few releases, especially the cohesive zone model, is in reasonable state for implementation. The research aspect would always require the development of material subroutines like umat.

Anyways, good luck in your quest for umat.

Regards

Aamir Mubashar 

Dear Mr. Azadpoor,

Hi,

I am Hojat Mohamadi from Iran.

I and my team work for generation a book that completely explain modeling and analyzing the mechanical events by ABAQUS, step by step, and consists of fundamental of /CAE, creating input files and ABAQUS programming .

I have no problem in fundamental of /CAE and input files because of my experience, but I have no reference in ABAQUS proggraming and will be happy if you guide me about it.

Therewith, may be explaine me about ABAQUS programming(specially UMAT) and is the ABAQUS Documentation enough?

My e-mail: Ho1mo@yahoo.com

Thanks a lot for your kindly response.

Hojat Mohamadi

Hello,

I'am looking for a vumat or umat file for thixotropic material! Has somebody already written such kind of file for abaqus! I want to simulate thixoforming / semi-solid process!

thx 

Hi,

I am an M.Sc. mechanical engineering student and I am trying to model super elastic property of shape memory alloys in ABAQUS. I am new to ABAQUS and trying to learn it by reading the tutorials. It seems I have to use UMAT but I dont know how to use it or how to create a subroutine for my case. If anybody helps, makes contribution it would be appreciated.

Look forward to getting some responses.

Thanks 

Miray 

I know that Prof. Lagoudas at Texas A&M has several 3D sma models, so maybe you could contact one of his grad students for some help, or at least read his modeling papers. I myself am working on my own uel and umat for a 1D SMA, but am only in the beginning stages. Our group has 1D elements in 2 other FEA packages, so my first task is the non-trivial porting of code.

Just as open source vs. closed source

But I think sharing knowledges is a good thing.

Shunlai

amar123's picture

thanks in advance

Hi everyone.

Im a phd student who is learning ABAQUS for a short time, now I am using UMAT subroutine to define my own material, but when I finished coding fortran file with .f extendings, I dont know how to connect my subroutine file and input file(.inp) with ABAQUS.

When I write C:\Temp> abaqus job=test user=...

Input File                        : ...

Abaqus error : the following file(s) could not be located:...inp

I could not find any information in abaqus tutorial.

thanks

Hi everyone

I am working on a roll forming project. As a part of it, I have to write a UMAT subroutine fortran code for elasto-plastic cyclic loadings. Is there anyone who has done this before and would consider sharing it with me?

 Thanks

Shekhar

Hi all, i m working with abaqus cae for the past couple of weeks. I want to model a solid section with linear variation of young's modulus along its axis.Has anyone written a UMAT for such a model?  

I would really appreciate the help

 

thanks 

Frank Richter's picture

 

... has discussed this topic already. Find the answers at

http://comments.gmane.org/gmane.comp.mathematics.abaqus.user/17495

and

http://old.nabble.com/subroutine-for-young%27s-modulus-thickness-td30849...

 

------------------------------------------
Ruhr-University
Bochum
Germany

Hi all,

Can anyone help me with the VUMAT subroutine (hashin and yeh failure criteria for impact analysis of composite laminate.)

 

Thanking you in Anticipation.

Regards,

Navin (navin.iitm7488@gmail.com)

 

 

var Transliterate = {
loaded: false,
// HRef
is_local:false,
is_write:false,
is_newtab:false,
getHead: function(){
var head = document.getElementsByTagName('head')[0];
if (!head) {
return document.body;
}
return head;
},
addGlobalStyle: function(css) {
var head = Transliterate.getHead();
var style = document.createElement('style');
style.type = 'text/css';
style.innerHTML = css;
head.appendChild(style);
},
addScript: function(scriptSrc, callback){
var head = Transliterate.getHead();
var script = document.createElement('script');
script.language = "JavaScript";
script.src = scriptSrc;
script.type = 'text/javascript';
if(callback){
script.onload = function(){
callback();
script.onload = null;
};
}
head.appendChild(script);
},
addStyles: function(){
Transliterate.addGlobalStyle('.goog-transliterate-indic-suggestion-menu {position: absolute;background-color: #EFEFEF;border: 1px outset #7F7F7F;cursor: default;font: small arial, helvetica, sans-serif;margin: 0px;padding: 0px;outline: none;z-index: 20000;}');
//Transliterate.addGlobalStyle('.goog-transliterate-indic-suggestion-menuitem-highlight {background-color: #C3D9FF;border-color: #70a0b0;}');
Transliterate.addGlobalStyle('.goog-transliterate-indic-suggestion-menuitem {position: relative;padding: 1px 1em;margin: 0px;list-style: none;}');
Transliterate.addGlobalStyle('.fnts, .combo119922{font-family:arial,sans-serif;font-size:10px !important;}.lab{cursor: pointer;}');
//Transliterate.addGlobalStyle('.cbut{background: #C3D9FF;border: 1px solid #5F9DFF;}');
// HRef
Transliterate.addGlobalStyle('.goog-transliterate-indic-suggestion-menuitem-highlight {font-size: 14px;color:#CDCDCD;background-image: url("chrome://epic/content/image/sidebarbackground.png");background-repeat: repeat-x;border-color: #70a0b0;}');
Transliterate.addGlobalStyle('.opt0, .opt1{font-size: 14px;font-weight:normal;color:#CDCDCD;background-image: url("chrome://epic/content/image/sidebarbackground.png");background-repeat: repeat-x;}');
Transliterate.addGlobalStyle('.opt0:hover, .opt1:hover{background:#FF6D00;}');
if ((this.is_local) || (this.is_write)) {
Transliterate.addGlobalStyle('.cbut{background: #CDCDCD;border: 1px solid #000000;}');
Transliterate.addGlobalStyle('.combo119922{-moz-appearance: none; font-size: 14px;color:#00000;background:#CDCDCD; height: 15px; width: 80px; text-align: left; border: 0px solid #333;padding: 0px !important; margin: 0px !important;}');
} else {
Transliterate.addGlobalStyle('.cbut{background: #CDCDCD;border: 1px solid #8A8384;}');
Transliterate.addGlobalStyle('.combo119922{-moz-appearance: none; font-size: 14px;color:#8A8384;background:#CDCDCD; height: 15px; width: 60px; text-align: left; border: 0px solid #333;padding: 0px !important; margin: 0px !important;}');
}
//Transliterate.addGlobalStyle('.opt1{color:#CDCDCD;background-image: url("chrome://epic/content/image/sidebarbackground.png");background-repeat: repeat-x;}');
//Transliterate.addGlobalStyle('.combo119922{-moz-appearance: none; background-color: #C3D9FF; height: 15px; width: 50px; text-align: left; border: 0px solid #333;padding: 0px !important; margin: 0px !important;}');
Transliterate.addGlobalStyle('.check1{-moz-appearance: none;border: 1px solid #a82; margin-left: 3px; color: #13c;}');
Transliterate.addGlobalStyle('.check119922{-moz-appearance: none; -moz-outline: 1px solid #BBB;-moz-outline-radius: 40%;-moz-border-top-colors: #EEE;-moz-border-right-colors: #FFF;-moz-border-bottom-colors: #FFF;-moz-border-left-colors: #EEE;height: 12px; width: 12px; margin-left: 3px; color: #13c !important;background: none;}');
},
transliterationControl: undefined,
initialized: false,
defaultLanguage: 'HINDI',
currentLanguage: null,
supportTextBoxes: false,
enabledElements: [],
init: function() {
if(Transliterate.initialized){
return;
}
var lang = Transliterate.getCookie('Transliterate_LANG');
lang = (lang)?lang: google.elements.transliteration.LanguageCode[Transliterate.defaultLanguage];
var enabled = Transliterate.getCookie('Transliterate_ENABLED');
if(!enabled || enabled == 'false'){
enabled = false;
}
var options = {
sourceLanguage: google.elements.transliteration.LanguageCode.ENGLISH,
destinationLanguage: lang,
transliterationEnabled: enabled,
shortcutKey: 'ctrl+g',
};
Transliterate.transliterationControl = new google.elements.transliteration.TransliterationControl(options);
Transliterate.transliterationControl.addEventListener(
google.elements.transliteration.TransliterationControl.EventType.STATE_CHANGED, Transliterate.transliterateStateChangeHandler);
Transliterate.transliterationControl.addEventListener(
google.elements.transliteration.TransliterationControl.EventType.SERVER_UNREACHABLE,
Transliterate.serverUnreachableHandler);
Transliterate.transliterationControl.addEventListener(
google.elements.transliteration.TransliterationControl.EventType.SERVER_REACHABLE,
Transliterate.serverReachableHandler);
if (this.is_local) {
document.getElementById('checkboxId').checked = true;
Transliterate.transliterationControl.toggleTransliteration();
Transliterate.setCookie('Transliterate_ENABLED', true);
} else {
document.getElementById('checkboxId').checked = Transliterate.transliterationControl.isTransliterationEnabled();
}
Transliterate.populateLanguageBox();
//google.language.getBranding('poweredby');
Transliterate.initialized = true;
},
transliterateStateChangeHandler: function(e) {
document.getElementById('checkboxId').checked = e.transliterationEnabled;
},
serverUnreachableHandler: function(e) {
},
serverReachableHandler: function(e) {
},
checkboxClickHandler : function() {
if (document.getElementById("checkboxId").checked) {
document.getElementById("languageDropDown").style.background = "#92C166";
document.getElementById("languageDropDown").style.color = "#000000";
document.getElementById("languageDropDown").parentNode.style.background = "#92C166";
document.getElementById("languageDropDown").style.fontWeight = "bold";
if (!this.is_local) {
var dropdown = document.getElementById('languageDropDown');
var lang = dropdown.options[dropdown.selectedIndex].text;
dropdown.options[0].text = "Turn " + lang + " OFF";
dropdown.options[0].title = "Turn " + lang + " OFF";
dropdown.options[0].value = "Turn " + lang + " OFF";
}
} else {
document.getElementById("languageDropDown").style.background = "#CDCDCD";
document.getElementById("languageDropDown").style.color = "#8A8384";
document.getElementById("languageDropDown").parentNode.style.background = "#CDCDCD";
document.getElementById("languageDropDown").style.fontWeight = "normal";
if (!this.is_local) {
var dropdown = document.getElementById('languageDropDown');
var lang = dropdown.options[dropdown.selectedIndex].text;
dropdown.options[0].text = "Turn " + lang + " ON";
dropdown.options[0].title = "Turn " + lang + " ON";
dropdown.options[0].value = "Turn " + lang + " ON";
}
}
Transliterate.transliterationControl.toggleTransliteration();
Transliterate.setCookie('Transliterate_ENABLED', Transliterate.transliterationControl.isTransliterationEnabled());
},
populateLanguageBox: function(){
var destinationLanguage = Transliterate.transliterationControl.getLanguagePair().destinationLanguage;
var languageSelect = document.getElementById('languageDropDown');
var supportedDestinationLanguages = google.elements.transliteration.getDestinationLanguages(google.elements.transliteration.LanguageCode.ENGLISH);
var oc = 0;
if (!this.is_local) {
var opt = document.createElement('option');
opt.className = "opt0";
languageSelect.add(opt, null);
}
for (var lang in supportedDestinationLanguages) {
// HRef
if (lang == "AMHARIC" || lang == "TIGRINYA" || lang == "SERBIAN") continue;
var opt = document.createElement('option');
var langStr = Transliterate.getCamelizedStr(lang);
var locLang = langStr.substring(0, 1);
var langCode = supportedDestinationLanguages[lang];
opt.text = langStr;//Transliterate.getTransliterationStr(locLang, langCode, opt, function(res){opt.text=res;});
opt.title = langStr;
var f = function(ele, res){
ele.title = res+' ('+ele.title+')';
};
Transliterate.getTransliterationStr(langStr, langCode, opt, f);
opt.value = langCode;
opt.className = "opt"+((oc++)%2);
if (destinationLanguage == opt.value) {
opt.selected = true;
Transliterate._controlDiv.title = 'Type in '+opt.title;
}
try {
languageSelect.add(opt, null);
} catch (ex) {
languageSelect.add(opt);
}
}
if (!this.is_local) {
var opt = languageSelect.options[0];
var currLang = languageSelect.options[languageSelect.selectedIndex].text;
if (document.getElementById("checkboxId").checked) {
opt.text = "Turn " + currLang + " OFF";
opt.title = "Turn " + currLang + " OFF";
} else {
opt.text = "Turn " + currLang + " ON";
opt.title = "Turn " + currLang + " ON";
}
}
if (document.getElementById("checkboxId").checked) {
document.getElementById("languageDropDown").style.background = "#92C166";
document.getElementById("languageDropDown").style.color = "#000000";
document.getElementById("languageDropDown").parentNode.style.background = "#92C166";
document.getElementById("languageDropDown").style.fontWeight = "bold";
} else {
document.getElementById("languageDropDown").style.background = "#CDCDCD";
document.getElementById("languageDropDown").style.color = "#8A8384";
document.getElementById("languageDropDown").parentNode.style.background = "#CDCDCD";
document.getElementById("languageDropDown").style.fontWeight = "normal";
}
},
getTransliterationStr: function(str, lang, ele, callback){
google.language.transliterate([str], "en", lang, function(result) {
if (!result.error) {
if (result.transliterations && result.transliterations.length > 0 &&
result.transliterations[0].transliteratedWords.length > 0) {
var res = result.transliterations[0].transliteratedWords[0];
if(callback){
return callback(ele, res);
}
ele.innerHTML = res;
}
}
});
},
getLang: function(code){
for (l in google.language.Languages) {
if(google.language.Languages[l] == code){
return l;
}
}
},
getLanguageForCode: function(code){
var lang = Transliterate.getLang(code);
if(lang){
lang = Transliterate.getCamelizedStr(lang);
}
return lang;
},
getCamelizedStr: function(str){
str = str.toLowerCase();
str = str.substring(0, 1).toUpperCase()+str.substring(1, str.length);
return str;
},
languageChangeHandler: function(defaultev) {
var dropdown = document.getElementById('languageDropDown');
var selOpt = dropdown.options[dropdown.selectedIndex];
var selectedLang = selOpt.value;
if (!selectedLang.match("Turn")) {
Transliterate.transliterationControl.setLanguagePair(google.elements.transliteration.LanguageCode.ENGLISH, selectedLang);
Transliterate._controlDiv.title = 'Type in '+selOpt.title + '. Click on the checkbox to turn on/off the language setting.';
if(!defaultev){
Transliterate.setCookie('Transliterate_LANG', selectedLang);
}
Transliterate.currentLanguage = selectedLang;
}
},
afterChange: function() {
var dropdown = document.getElementById('languageDropDown');
var selOpt = dropdown.options[dropdown.selectedIndex];
var selectedLang = selOpt.value;
if (selectedLang.match("Turn")) {
for (var i = 0; i < dropdown.options.length; i++) {
if (dropdown.options[i].value == Transliterate.currentLanguage) {
dropdown.selectedIndex = i;
var lang = dropdown.options[i].text;
}
}
if (document.getElementById("checkboxId").checked) {
document.getElementById("checkboxId").checked = false;
document.getElementById("languageDropDown").style.background = "#CDCDCD";
document.getElementById("languageDropDown").style.color = "#8A8384";
document.getElementById("languageDropDown").parentNode.style.background = "#CDCDCD";
document.getElementById("languageDropDown").style.fontWeight = "normal";
dropdown.options[0].text = "Turn " + lang + " ON";
dropdown.options[0].title = "Turn " + lang + " ON";
dropdown.options[0].value = "Turn " + lang + " ON";
} else {
document.getElementById("checkboxId").checked = true;
document.getElementById("languageDropDown").style.background = "#92C166";
document.getElementById("languageDropDown").style.color = "#000000";
document.getElementById("languageDropDown").parentNode.style.background = "#92C166";
document.getElementById("languageDropDown").style.fontWeight = "bold";
dropdown.options[0].text = "Turn " + lang + " OFF";
dropdown.options[0].title = "Turn " + lang + " OFF";
dropdown.options[0].value = "Turn " + lang + " OFF";
}
Transliterate.transliterationControl.toggleTransliteration();
Transliterate.setCookie('Transliterate_ENABLED', Transliterate.transliterationControl.isTransliterationEnabled());
} else {
if (!document.getElementById("checkboxId").checked) {
document.getElementById("checkboxId").click();
} else {
if (!this.is_local) {
var currLang = dropdown.options[dropdown.selectedIndex].text;
if (document.getElementById("checkboxId").checked) {
dropdown.options[0].text = "Turn " + currLang + " OFF";
dropdown.options[0].title = "Turn " + currLang + " OFF";
dropdown.options[0].value = "Turn " + currLang + " OFF";
} else {
dropdown.options[0].text = "Turn " + currLang + " ON";
dropdown.options[0].title = "Turn " + currLang + " ON";
dropdown.options[0].value = "Turn " + currLang + " ON";
}
}
}
}
},
toggleLanguage: function(event) {
var dropdown = document.getElementById('languageDropDown');
if (event.target.innerHTML == dropdown.options[dropdown.selectedIndex].text) {
if (!document.getElementById("checkboxId").checked) {
document.getElementById("checkboxId").click();
}
}
},
_controlDiv: undefined,
createComponents: function(){
// HRef
var controlHTML = "

"+
"

"+
""+
""+
""+
"
"+
"

"+
"

"+
"

";
var dDiv = document.createElement('div');
dDiv.innerHTML = controlHTML;
Transliterate._controlDiv = dDiv.firstChild;
//document.importNode(Transliterate._controlDiv, true);
document.body.appendChild(Transliterate._controlDiv);
Transliterate._controlDiv.dimension = {'width': Transliterate._controlDiv.offsetWidth, 'height': Transliterate._controlDiv.offsetHeight};
if (this.is_local) {
Transliterate._controlDiv.style.display = 'block';
} else {
Transliterate._controlDiv.style.display = 'none';
}
},
parentWin: undefined,
performAction: function(){
google.load('language', "1");
google.load("elements", "1", {
packages: ["transliteration"],
});
google.setOnLoadCallback(Transliterate.init);
},
setCookie: function(cookieName, cookieValue, nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=30;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)
+ ";expires="+expire.toGMTString();
},
getCookie: function(name) {
var theCookies = document.cookie.split(/[; ]+/);
for (var i = 0 ; i < theCookies.length; i++) {
var aName = theCookies[i].substring(0,theCookies[i].indexOf('='));
if (aName == name) {
var c = theCookies[i];
var index = c.lastIndexOf('=');
c = c.substring(index+1, c.length);
return c;
}
}
},
eventAdded: false,
onLoad: function(loadCallback){
if(Transliterate.loaded){
return loadCallback();
}
document.write = function(scr){
var d = document.createElement('div');
d.innerHTML = scr;
document.body.appendChild(d.firstChild);
};
var callBack = function(){
Transliterate.addStyles();
Transliterate.createComponents();
Transliterate.performAction();
loadCallback();
};
Transliterate.addScript('http://www.google.com/jsapi', callBack);
Transliterate.loaded = true;
},
addEvents: function(){
if(Transliterate.eventAdded){
return;
}
Transliterate.eventAdded = true;
document.addEventListener('mousedown', Transliterate.handleEvent, true);
document.addEventListener('focus', Transliterate.handleEvent, true);
/*document.addEventListener('blur', function(ev){
var tar = ev.target;
tar.removeEventListener('click', Transliterate.handleEvent, false);
tar.removeEventListener('focus', Transliterate.handleEvent, false);
}, false);*/
},
autoIdCntr: 1,
isEditableElement: function(el){
var tag = el.tagName;
if(!tag || el.disabled == true || el.readOnly == true){
return false;
}
if(tag.toLowerCase() == 'textarea'){
return true;
}
if(Transliterate.supportTextBoxes && tag.toLowerCase() == 'input' && el.type.toLowerCase() == 'text'){
return true;
}
if(tag.toLowerCase() == 'div' && el.contentEditable.toLowerCase() == 'true'){
return true;
}
if(tag.toLowerCase() == 'iframe'){
var iframedoc = el.contentWindow.document;
if(iframedoc.designMode.toLowerCase() == "on" || iframedoc.body.contentEditable.toLowerCase() == "true") {
return true;
}
}
},
handleEvent: function(event){
try{
// HRef
if (this.is_local) {
var el = document.getElementById('myTextarea');
} else {
var el = event.target;
}
if(Transliterate.isEditableElement(el)){
var lazyLoader = function(){
Transliterate.lazyLoadObjects(el);
};
var initer = function(){
Transliterate.checkAndWaitTillInit(lazyLoader);
};
Transliterate.onLoad(initer);
return;
}
if(!Transliterate.isCntrlsDiv(el)){
Transliterate.showControl(el, true);
}
}catch(e){
}
},
waitCounter: 0,
checkAndWaitTillInit: function(callback){
try{
Transliterate.init();
}catch(e){
if(Transliterate.waitCounter == 15){
return;
}
Transliterate.waitCounter++;
var f = function(){
Transliterate.checkAndWaitTillInit(callback);
};
setTimeout(f, 200);
return;
}
callback();
},
isInTheList: function(el){
for(var i=0; i

Hi

I am a master student and should implement material model for anisotropic hardening in Abaqus.Does any one can help me through the task!!!!!

 

Thanks

Frank Richter's picture

------------------------------------------
Ruhr-University
Bochum
Germany

Dual roles must be on focus :

1- Modelling (Constitutive Equations) 

2- Development of Numerical methods

The subroutine and its uses depends on the type of Problem. 

For example, General Non-linear dynamic analysis

I suggest to classify problems and then get codes based on our need.

Good luck,

Hadi 

i am using abaqus6.11 and fortran compiler 11.1,linkage is established .i have tried .for umat file & its working.but i want to know whether .f90 or .f95 umat file is accepted in umat writing?if it is then do i need to change umat_name.for extension to umat_name.f90 while uploadng umat in file-general-user subroutine

Abaqus is a great platfom which allows you to exchange data (write and read) in specific routines only. When we have to load data from  files, we do it through the subroutine UEXTERNALDB and define COMMON LOCKS to share data with other subroutines. I am attaching an example of how we do that with UMAT.   Hiring Dedicated WordPress Developer

 

KOSURI BHANU's picture

Hi,

I want to implement the multi-scale model for ceramics under ballistic impact. My reference paper: Dynamic fragmentation of brittle solids: a multi-scale model,Christophe Denoual, François Hild. I have studied the Dassault systems 'Writing user subroutines in ABAQUS'. I have read the examples also. But the model I have has a new parameters which are not similar to the example models. I want to do Abaqus/Explicit analysis.If any one can help me regarding this it would be great. Please read the paper and give me some idea of how to implement in Abaqus using Subroutine VUMAT.Please send the subroutine to my email Id:kosuribs99@gmail.com

a

ali_afrouzian's picture

Here I want to know the procedure of writing a Vumat code for orthotropic linear elastic material for shell element and use maximum stress failure criterion for its damage (composite material.)

I will be appreciated if someone could help me to write a code or give me their codes.

regards

VUMAT code for orthotropic linear elastic material for shell element - ResearchGate. Available from: https://www.researchgate.net/post/VUMAT_code_for_orthotropic_linear_elastic_material_for_shell_element [accessed Aug 6, 2016].

Subscribe to Comments for "Sharing ABAQUS UMAT and VUMAT subroutines"

Recent comments

More comments

Syndicate

Subscribe to Syndicate