You are here
Sharing ABAQUS UMAT and VUMAT subroutines
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
- azadpoor's blog
- Log in or register to post comments
- 135284 reads
Comments
To Azadpoor, Good idea. I
To Azadpoor,
Good idea. I wish I had the first and the third ones when I was developing them.
Huapei
Could you share them?
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)
Sharing ABAQUS UMAT and VUMAT subroutines
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
A question for UMAT
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
re: running free format fortran
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
Compiling UMAT as free f90
Alankar
Ph.D. Student
School of Mechanical and Materials Engineering
Washington State University, Pullman
Request for UEL or UMAT in ABAQUS or LS-DYNA or a source code
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
Linking Abaqus and fortran
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"
compiler options for free format fortran
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
I am really exausted by this
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']
Avoiding changes in the environment file
Some comments:
a) In order to avoid to change the environment file, you can set compile options also within the source code by means of compiler directives. For the Intel Fortran compiler, you just need to add
!DEC$ FREEFORM
at the beginning of the source code. The file can retain the suffic .f ( or .for in windows) and you just run it with
abaqus -j jobname user=UMAT
b) If you want to use explicit type declaration without defining the types by hand or making copies of the file ABA_PARAM.INC, you can readout the latter from Abaqus within a module which you define before your UMAT (or any other user subroutine):
MODULE ABQTYPE
INCLUDE 'ABA_PARAM.INC'
INTEGER,PARAMETER,PUBLIC::AbqRK=KIND(r),AbqIK=KIND(i)
END MODULE
Now you can read the use the parameters AbqRK and AbqIK within your subroutine
USE ABQTYPE
IMPLICIT NONE
REAL(KIND=AbqRK)::variable1
INTEGER(KIND=AbqIK)::variable2
to define all variables explicitely with the correct kind. This procedure does not require any changes in the environment file either.
Geralf
Hi Aamir
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)
Sharing ABAQUS UMAT and VUMAT subroutines
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.
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
searching Umat Vumat
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
UMAT for Shape Memory Alloys
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
ABAQUS SMA models
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.
It's an old topic.
Just as open source vs. closed source
But I think sharing knowledges is a good thing.
Shunlai
Need UMAT for Mazars damage model for concrete
thanks in advance
UMAT ABAQUS HELP
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
UMAT subroutine in ABAQUS for elasto-plastic cyclic loadings
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
UMAT for modulus variation
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
ABAQUS@yahoogroups.com
... 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
VUMAT subroutine (hashin and yeh failure criteria)
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
Impelemtation of material model for anisotropic hardening
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
anisotropic plasticity
------------------------------------------
Ruhr-University
Bochum
Germany
ABAQUS
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
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
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
Problem in implementing a new multi-scale model for ceramics
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
VUMAT code for orthotropic linear elastic material for shell ele
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].
Sharing UMATs via Mendeley Data
Elsevier Journals offer the opportunity to share things like UMATs as supplementary material to the respective journal articles. It can be published under a Creative Commons license and you can update the source code at any time. We published the UMAT of our current article (a gradient-enriched damage model) at
https://data.mendeley.com/datasets/p6bgny6ff3/1
Geralf
3D Hashin failure criteria with exponential damage evolution
If you are looking to use the Hashin 3D criterion with exponential damage evolution, the following VUMAT subroutine is applicable in Abaqus software. You can get it for a small fee.
http://en.banumusagr.com/shop/3dhashin-vumat-abaqus/