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/2375

 

Yanfei Gao's picture

Amir:

I agree with you that there are many UMAT, UEL, and other user subroutines hanging around the research community. In the past several years, I have been advocating my subroutines and provide them free to the public, as can be found from http://web.utk.edu/~ygao7/publication.htm 

 It'll be worthwhile to compile a list of these for a broader public. And perhaps we can get ABAQUS to endorse us. As for your three questions:

(1) cohesive zone element: I have one in my webpage, which can be easily genearlized into other versions such as Camacho-Ortiz.

(2) Polycrystalline palsticity. This I don't know. I only know the famous code by Yonggang Huang (modified by Jeff Kysar) is available at Jeff Kysar's webpage (Columbia University).

(3) Gurson-type model: I don't know if someone provides this free. The infinestimal strain version is not difficult to implement.  

Mr. Gao

I am a new comer of imechanic,  I got your webpage though the search engine Google, but I could not enter it, I dont know why.

I knew you have a user subrotine about the cohesive zone and you are willing to share it with others, resently I am studing the CZM and what to simulate the surface problems with the FEM, but I am stumpt by the subrotine. I hope you can help me and send the subrotine to my email(baishalang2002@163.com). Thank you very much.

Excuse for my poor english, I am a university student from HEU,China. Expect your reply.

Hi Gao

I tried visiting your page however Ierror "404 not found". Can you please suggest how can I go to your page or suggest other sources I can use to get a user subroutine. I am looking for a subroutine which can perform 3D composite damage in tension or compression. Thank you

 

Regards

 

Maajid

Dear Yanfei 

 

the link you have redirected us , does not open , shall you please check and correct ? thanks a lot

I agree. Some 15 years ago, after I had written my first UEL, I was wondering if ABAQUS would be interested in establishing a clearinghouse or repository for various user-defined subroutines. This would be similar to accessible libraries - such as NIST - for mathematic/scientific application software such as equation solvers, eigenvalue extraction routines, etc. Over time I have written UMAT and UEL routines for progressive failure analysis, higher-order plate finite elements, specialized adhesive elements, and a score of decohesion finite element incorporating various coupled cohesive zone models to joint 1-D beam, and 2-D and 3-D continuum elements. 

 

These subroutines are just simply sitting in folders on my PC collecting electronic 'dust'. It would be nice to upload them to a site with a short README or document file for others to use.

 

Erik 

Zhigang Suo's picture

Dear Erik:  Would you be willing to post your subroutines on iMechanica?

Perhaps we could adopt an open-source approach.  I'm not sure exactly how these projects get organized, but there are plenty of great examples out there on the web.  That way, someone could choose to contribute what they already have made, and the community could improve on it, provide independent validation, etc.   Could iMechanica host space for such a repository? 

Arun Prakash's picture

This is a very nice suggestion. It would be nice to have a repository of user material routines in imechanica. An alternative could be sourceforge, which would not just be a repository, but also a development hub, where different people could help develop/customize the UMAT as required.

 

It seems that quite a few people are interested in sharing subroutines. It would be nice if people would post their UMATs which they would like to share (or perhaps provide a link for the same) .   

Hi

I realise this is an old post. 

I am in the process of developing my first user element in Abaqus, and finding it rather difficult. 

The application requires modelling muscle behaviour. Hence a spring model (linear at this stage) with 3 elements: 2 in series with each other, and these 2, parallel to the third was implemented.

My problem involves static condensation of the stiffness matrix. (similar to mixed-methods)

Any advice/assistance would be great. 

Regards 

 YK

 

 

attash3099's picture

hi

i need uel subrotine(dynamic beam code)

please send for me uel tutorial about UEL

my email:attash3099@yahoo.com

nice and good thought

Arun Prakash's picture

It seems that there are two different threads with the same topic and both have interesting comments. It would be nice if the moderators could merge these two.   http://www.imechanica.org/node/2375

Zhigang Suo's picture

We have not found a way to merge two threads.  However, a user can always write a comment to link the two threads, as you have just done.  More broadly, this method is probably more effective than merging threads, because the method can relate even loosely related threads.

thanks, interst. Spore

uubird's picture

Thanks

Hi,

can anyone upload ABAQUS umat for MTS model? I wrote one but I am afraid is not correct because it doesn't match the experiment result quite well.

Thanks.

Hello;

In my graduation project, the instructor wanted from me to work the UMAT Subroutines in ABAQUS. I am looking for someone who can help to me about this issue. I really got an urge for completin this project and really need of somebody's help.

From now am thanking to the ones who will help to me.

I am lettin my msn adress for the ones who want to contact with me...:

alper_tastan@hotmail.com

I can't agree more! Furthermore, this problem doesnot exist on ABAQUS uniquely. This same idea can be also helpful to ANSYS, Nastran and so on!

Sprunger's picture

Hello, Re: Sharing Abaqus UMAT and VUMAT subroutines.SIMULIA has an “Abaqus Process Automation Portal”  http://www.simulia.com/PAPortal/This portal provides a mechanism to the SIMULIA (Abaqus) community for collaboration through discussion forums for GUI customization and scripting techniques. Users can upload, download, and share solutions and process automation components.

The Abaqus Process Automation Portal is approaching its 5 year anniversary and many engineers found it to be a useful resource. Almost 3000 registered members currently exist and this number continues to increase steadily.

Regards, Rene 

 

llguang's picture

工欲善其事,必先利其器!

Hello,everyone, i just have a question, if i have the UEL,can i use it to simulate the dynamic problem?

I want to model a reinforced concrete cylindrical shell with abaqus using concrete damaged plasticity model. I want to model meridional and circumferential rebars in cylindrical shell in abaqus cae. I want to know which rebar geometry (angular or constant) I should use for modeling of both meridional and cirunferential rebars.Can I plot crack pattern for reinforced concrete shell in abaqus?please guide me 

Ahmad Rafsanjani's picture

You can find a good tutorial for UMAT in the following post

http://imechanica.org/node/7576

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

it seems that the input file (test.inp) is not in the same path with that that you are running ABAQUS in.

hi guys, im trying to make a UMAT code for Plasticaly Graded Materials, is there anyone have experience with the same topic?

 

hello

i am new in abaqus umat. before i worked in windows xp but i have a windows 7 and os 64 bit

i installed abaqus 6.10, intel visual fortran 11.1.60 and vs2010 but i can not configure them, can anyone help and give the [procedure to configure abaqus in fortran

thank`s a lot 

hello,all!

In my simulation with vumat, the temperature will be higher than its melting temperature on several integral points, how sholud i update the stress and strain in that situation? Give them zero value? I think pressure shold be exist, but how to calculate it?

anyone can help me with this problem?

thanks

Gurudutt Chandrashekar's picture

Hello everyone,

I am a student of Msc in Computational Engineering at Ruhr University Bochum in Germany. I am implementing a new piezoelectric element as a part of my Master Thesis. I am supposed to write a UEL subroutine and implement it in abaqus.I would like to know whether anyone has written subroutines in Fortran 90 or further versions and implemented them in abaqus. All the Help documents in Abaqus have subroutines written in F77.  If it  possible in F90, then it will be very helpful if someone could point out the necessary modifications that one has to make to the F90 file to  run it in Abaqus. I think many ppl have this question .I myself have been trying to figure out an answer from past 1 month but could not find a convincing solution anywhere.

I have never done this, but I don't think there should be a problem in general. Make sure you've configured Abaqus to use a Fortran 90-aware compiler and if you're lucky it will Just Work.

I have used Abaqus user subroutines written in C++. In that case I just provide Abaqus the object file instead of the source code and it links it without caring what generated it. When you provide user=something, Abaqus automatically checks to see if it's source code or precompiled.

Gurudutt Chandrashekar's picture

Hi Graham,

Thanks for ur suggestion. I have made all my subroutines in F90 . I got a doubt  when i read in one of the abaqus documents on "Writing User Subrotines in Abaqus"  that we have to specifically use F77 conventions. I should now figure out a way of configuring my Abaqus to use my F90 subroutines.

A hack might be to rename your F90 compiler to your F77 compiler.

 -Nachiket

I am an MSc student and my dissertation topic requires me to model a split hopkinson pressure bar.I am modelling a SHPB assembly together with the specimen, and I am having trouble with placing the loads,creating the boundary constrain between the incident, transmitter bar and the specimen. I created the interaction between the assembly with a suppressed TIE, and after loading and submitting the job I kept on getting errors. The load did not transmit to up to a quarter of the incident bar.
I neeed suggestions on how to apply the attachment between the separate components that make up the assembly, how to time step properly and the loading sequence.
I made use of ABAQUS Explicit

badrinath's picture

Badri Veluri

Hi Erik,

Can you please share your knowledge as I am working on building the UEL for a cohesive zone model under fatigue loading. So that if I refer your knowledge base it would help me in getting some good point.

E-mail: badrinath.veluri@hotmail.com

 Thanks in advance

Regards

Badri

Hi freinds,

I 'm preparing PHD Tthesis in mechanics feild, i arrived  to modelise densification of powders on Abaqus, but i can't modelise the thermal debinding behaviour (loss of polymer weight vs temperature). Anyone have an idea about this.

I have comsol and Abauqs

Thanks for your answers !

belman@hotmail.fr

Bel 

Hi dear friends
After much effort and time and confusion with VS, Intel Fortran Compiler and Abaqus (installaion,version,paths,...), I finally could run an analysis with UMAT subroutine successfully. This run and also some others were all extracted from Abaqus Documentation.
Now i wanna implement an analysis by my own. So i read the documentation and wrote a UMAT file by making my own changes in documentation file. From algorithm point of view, the file is correct. But i wanna know how i could link the Fortran file and Abaqus file. I mean how Abaqus realizes the Fortran file is the compatible subroutine for the model? Logically, a subroutine file shouldn't be compatible with another abaqus file. (I don't know if i could explain my problem !)

By the way, i've figured out that one of the links is about Property module. I should define a USER MATERIAL in "Edit material", and i also should define variables in there compatible with PROPS ( I'm mixed up right now!!!).

PLEASE guide me.

Hi friends,

I need umat subrotine(Lemaitre damage model)

please send for me if u have it.Thank u. 

My email: epeyman_hf@yahoo.com

Over time I have written UMAT and UEL routines for progressive failure analysis, higher-order plate finite elements, specialized adhesive elements, and a score of decohesion finite element incorporating various coupled cohesive zone models to joint 1-D beam, and 2-D and 3-D continuum elements. kidney stones

shahram's picture

hey 

I am doing approximately the  same thing and I have some problems, could you please send me an example of what you have done?

I have no idea where should I start actually to write a failure analysis code. :(

Thank you 

kawaminaii's picture

hi

I have compiled a fortran code and used it as a subroutine but I have resieved this errore:

Error in job Base_subro: Problem during linking - Abaqus/Standard User Subroutines.   This error may be due to a mismatch in the Abaqus user subroutine arguments.   These arguments sometimes change from release to release, so user subroutines   used with a previous release of Abaqus may need to be adjusted.

Wht should I do with it?

Thanks

    I have met this problem before.Maybe there is some error  in your Fortran file,you can check it out especially for the program grammar.

   Good luck!

Hi,Does any one worked with Vumat subrotine for anisotropic hardening ?If you have any sample code for anisotropic hardening just let me know.

Hi freinds

days ago i write a subroutine for contilever beam whit various young modulus.it is true for 2D beam but for 3D beam write error.

ERROR:Too many attempts made for this increment

Abaqus/Standard Analysis exited with an error - Please see the  message file for possible error messages if the file exists.

i change the load and step increment freuqently but its not true yet.i dont khnow where is Incorrec.

please help me.............

thanks.

mesbah.unm's picture

Hello,

I have recently purchased Intel Visual Fortran 11.1.072 and Visual Studio 2010. I am currently using ABAQUS 6.10ef2. After installing this according to the following sequence,

1. Microsoft Visual C++

2. Intel Fortran

3. ABAQUS 

my verification shows that the status of both visual studio and fortran is failed. Is there anybody who can help me in this regard?

Mesbah 

Mesba Bhai.....I am from 03 batch....BUET. I did my Msc and BSc thesis using ABAQUS. where are you now? you are also my FB friend!.

akjon BUETIAN dekhe valo laglo:-)

what are you doing using ABAQUS?

 

you can personally communicate me @sajib.civil@gmail.com

I will  be glad to have a response frome you.

 

Thanking You
B.K.M.Ashraful islam SAJIB

 

 

salam
I need model of femur abaqus and how static loading on cortical bone
What is the relationship between abaqus and umat
thank you
My email: salah_cao@yahoo.fr

Hi friends,

I need umat and Vmatsubrotine (GTN model)

please send to me if u have it. Thank u. 

My email: guojunhang@163.com

 fracture;plasticity

please i need how to configure abaqus with fortran and I install abaqus 6.11 and FORTRAN 10 and microsoft visual 10 program when run under abaqus there is a error: Problem falling on compilation - ifort.exe not found in PATH.
how will be please
thank you

hallo
I need to used the umat Abaqus for simulate the thermomechanical effect in composite plate
please help me for this

I need to used the umat Abaqus for simulate the thermomechanical effect in FGM blade
please tell me if you get any help or guide lines

Hi... 

if i have the equation as below

σ(n+1) = σ (n) +delta(σ)

 if i get the initial stress, σ (n) and the differential stress, delta(σ), ist i need the call the (KEY . EQ. 11) THEN ....

or i need to make the full stiffness matrix and then

do i = 1, ntens

stress (i) = .......

 

ur help highly appreciated.   

 

hy every one well iam working abou a project of active vibration control of fgm plate and iam using ansys but i have a probleme in how to do a 3d fgm plate in ansys

so i need a apdl code

my email: kouider84@live.com 

any help  thank's 

Hello...

I am starting an academic project and i aim to model cracking of an early age concrete with abaqus..

knowing that I am just starting and this is a classical problem, i need to know if the material behavior already exist in Abaqus ? if not, does any one knows how to create the corresponding UMAT ?

 

Thanks...Smile 

awanibhu's picture

Why nuclear grade graphite is used as a moderator better than other moderator and why it is economical than other.

Hello everyone. My name is Alex, I'm a doctoral student at the University of Salamanca. I am working with an axisymmetric model, steel material. I intend to obtain the residual stresses produced when hits on a major load model (Tera Pascals) for a very short time (picoseconds). The constitutive model is working: Elastic isotropic, platic johnson-cook, eos us-up. First work with Abaqus Explicit Abaqus and then Standart (I import tensions), but Abaqus CAE / Standart (version 6.13.2) does not allow plastic or Johnson-cook or EOS. To get "the spring back and therefore residual stress. 

Please could someone help?. 

Thank 

Regards.

Hi all,

I want to learn the steps of the simulation program on the subject of Abacus about (split Hopkinson pressure bar compression)with and without effect temperature .This device gives high strain rate impact where it two long bars between it put the specimen and then strike with short bar. Our data collection system consists of a pair of strain gages midway along each bar. Data is recorded and presented as the initial impulse wave passes the incident bar strain gages, a reflected pulse from when the wave hit the end of the bar and reflected back to the incident bar strain gage and finally a transmitted pulse which is what remains of the wave after it has passed through a sample. In all cases the voltage reading from the strain gages should return to zero once the wave has passed. However with the new bar the signal lingers after the wave has passed a gage.
my version 6.12
Please anyone can help me
regards

<p>HI&nbsp;</p>
<p>I am new to abaqus I am writing VUMAT for neo hookean material. earlier I done UMAT and it run successfully&nbsp;</p>
<p>but while running VUMAT it is giving error that "cannot open include file 'vaba_param.inc' ". I am giving command correctly&nbsp;</p>
<p>is there any other possibility. can input file error cause this kind of error?</p>

Add my 2 cents here:

http://imechanica.org/node/17545

Can somebody upload a UMAT for Schapery Material Model (1-D or 3-D)of non-linear viscoelastic materials?

ntuecd's picture

Hallo,

can anyone explain me how ABAQUS compute the PEEQ, PENER, and SENER for a elasto- plasticity problem. Second thing i want to know how does ABAQUS compute the equivalent strain for such problem.  It will be really helpful if someone help me out or give me some link.

 

Thanking you

Braj

Dear all,

Salaam,

 

I am going to use two different UMATs for my model. The first one defines super-elasticity and the second one defines bone remodeling proces on my model. My question is, how can I combine them and use them simouloltaniously? 

brunda's picture

In the input file you should have two different user materials with different names. The variable cmname, holds the material name.

In the fortran subroutine file,  your code should approximately look like:

subroutine umat ()

variable declarations

if  cmname .eq. 'matl1. then

---constitutive equation 1

if cmname  .eq. 'matl2 then

--constitutive equation 2

end

I do not remember, the exact syntax. Please read the abaqus manuals for the same.

Best of luck

Brunda

 

KOSURI BHANU's picture

Hi Everyone,

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.If you have the subroutine it would be great help if you please send the subroutine to my email Id:kosuribs99@gmail.com

Dear all
I wanna to change an existing material model so that some of it's parameters can be changed as a function of strain-rate. for example, i want to alternate flow stresses in simple plastic material model of abaqus. it should be noted that i have a function for strain rates that has abnormal relation with strain-rates.

Frank Richter's picture

That should be feasible using the option  PLASTIC, DEPENDENCIES

otherwise:

ABAQUS mailing list
https://groups.yahoo.com/group/ABAQUS

KOSURI BHANU's picture

Hi,

I has written a subroutine for the 'probabilistic damage model for the dynamic fragmentation in brittle materials,hild,advances in applied mechanics,2010'..The procedure I followed in UMAT subroutine is as follows:

 

1.I calculate the principal stresses.
2.Randomly generate a failure stress according to equation(84) in 2010 paper.
3.For each principal stress I calculate the modified defect growth density given in equation(83) in 2010 paper.
4. Corresponding to each principal stress a damage value is found according to the conditions given in equation(81) in 2010 paper(NOTE:Anisotropic damage model is used in three orthogonal directions D1,D2,D3 )
5.I update the damage tensor/compliance tensor using (33)(JPEG file is attached)as provided in multi-scale model paper(2002).
6.I update the stress and repeat the steps:1-6.

 

NOTE:1.The material is isotropic elastic needs only E,poisson's ratio,material parameters.The other material parameters like weibull parameters are also given. Refer the papers provided for clarification.

 

2.I am dealing with Impact problems so I need VUMAT

 

I have a doubt in VUMAT if I calculate compliance tensor(as show in attached file) at each step and inverse it to obtain the constitutive tensor and then multiply with strainInc to obtain stress increment.I will not update Jacobian.Can I do this in VUMAT to calculate stressNew?.Is my subroutine right?.Please check the VUMAT.txt file.Am I updating the stress correctly?

      subroutine vumat(

     1  nblock, ndir, nshr, nstatev, nfieldv, nprops, lanneal,

     2  stepTime, totalTime, dt, cmname, coordMp, charLength,

     3  props, density, strainInc, relSpinInc,

     4  tempOld, stretchOld, defgradOld, fieldOld,

     3  stressOld, stateOld, enerInternOld, enerInelasOld,

     6  tempNew, stretchNew, defgradNew, fieldNew,

     5  stressNew, stateNew, enerInternNew, enerInelasNew )

C

      INCLUDE 'VABA_PARAM.INC'

C

C

C All arrays dimensioned by (*) are not used in this algorithm

      dimension props(nprops), density(nblock),

     1  coordMp(nblock,*),

     2  charLength(*), strainInc(nblock,ndir+nshr),

     3  relSpinInc(*), tempOld(*),

     4  stretchOld(*), defgradOld(*),

     5  fieldOld(*), stressOld(nblock,ndir+nshr),

     6  stateOld(nblock,nstatev), enerInternOld(nblock),

     7  enerInelasOld(nblock), tempNew(*),

     8  stretchNew(*), defgradNew(*), fieldNew(*),

     9  stressNew(nblock,ndir+nshr), stateNew(nblock,nstatev),

     1  enerInternNew(nblock), enerInelasNew(nblock)

C

      character*80 cmname

C

C

***********************************************************************************

**  VUMAT,PROBABILISTIC DAMAGE MODEL FOR ABAQUS/STANDARD INCORPORATING            **

**  ELASTIC PROPERTIES AND  WEIBULL PARAMETERS                                   **

**                                                                               **

***********************************************************************************

***********************************************************************************

**

**

**

*USER SUBROUTINE

      PARAMETER (M=3,N=3,ZERO=0.D0,ONE=1.D0,TWO=2.D0,THREE=3.D0,

     +          SIX=6.D0, NINE=9.D0,XALPHA=0.31,S=4.18)

C

      DIMENSION XIDEN(M,N),XC(6,6),XS(6,6),

     +          STR(M,N),XDAM(nblock,M),AJAC(6,6),STRN(M,N),

     +          XPRIN(nblock,M),XDEF(nblock,M),XPRINN(nblock,M),

     +          XFAIL(nblock),XPRINR(nblock,M)

      dimension  eigVal(nblock,M), eigVec(nblock,M)

      real V,B,RKO,RKT,RKTH,RKF,RK

      integer seed

       seed=7654321

C

C     XDAM=DAMAGE VALUE CORRESPONDING TO EACH PRICIPAL DIRECTION,XPRIN=PRINCIPAL STRESS

C     XDEF=MODIFIED GROWTH DEFECT DENSITY CORRESPONDING TO EACH PRINCIPAL STRESS

C     XPRINN-PRINCIPALSTRESS NEW,XPRIN-PRICIPAL STRESS OLD

C     XPRINR-PRINCIPAL STRESS RATE

C

C--------------------------------------------------------------------

C

C     SPECIFY MATERIAL PROPERTIES

C     ALL DIMENSIONS ARE IN meter

C

       E=props(1)

       XNUE=props(2)

       XDENSITY=props(3)

       XPOROSITY=props(4)

       XM=props(5)

       XMEANFS=props(6)

       XEFFVOL=props(7)

       ALAMBDA=E*XNUE/(ONE+XNUE)/(ONE-TWO*XNUE)

       AMU=E/(ONE+XNUE)/2

       V=SQRT(E/XDENSITY)

       DO I=1,M

       DO J=1,N

        STR(I,J)=ZERO

       END DO

      END DO

      NTENS=ndir+nshr

       DO I=1,NTENS

        DO J=1,NTENS

            AJAC(I,J)=ZERO

        ENDDO

       ENDDO

C     STATE VARIABLES:1 TO 3 ARE DAMAGE VALUE VARYING FROM 0 TO 1

C     STATE VARIABLES:4-FAILURE STRESS

C     STATE VARIABLES:5,6,7-PRINCIPAL STRESSES

C     STATE VARIABLES:8,9,10-DEFECT DENSITY CORRESPONDING TO EACH PRINCIPAL STRESS

       if (stepTime.eq.zero) then

        do 101 i = 1,nblock   

        B=((XEFFVOL)*((XMEANFS)**XM))

        PK=ran(seed)    

      Q=ONE/(ONE-PK)

      XFAIL(i)=(XMEANFS)*((LOG(Q))**(ONE/XM))     

       AJAC(1,1)= (ALAMBDA+TWO*AMU)

       AJAC(2,2)= (ALAMBDA+TWO*AMU)

       AJAC(3,3)= (ALAMBDA+TWO*AMU)

       AJAC(4,4)= AMU

       AJAC(5,5)= AMU

       AJAC(6,6)= AMU

       AJAC(1,2)= ALAMBDA

       AJAC(1,3)= ALAMBDA

       AJAC(2,1)= ALAMBDA

       AJAC(2,3)= ALAMBDA

       AJAC(3,1)= ALAMBDA

       AJAC(3,2)= ALAMBDA      

      print*, 'Failure stress'

      print*, XFAIL(i) 

        DO j=1,NTENS

        stressNew(i,j)=stressOld(i,j)+

     2   (DOT_PRODUCT(AJAC(j,:), strainInc(i,:)))

       ENDDO      

      stateNew(i,4)=XFAIL(i)     

      seed=seed+1

101     continue

      

      endif

      do 100 i = 1,nblock

C

C     WRITE STRESSES IN MATRIX FORM

C

      DO j = 1,3

      STR(j,j) = stressOld(i,j)

      END DO

      STR(1,2) = stressOld(i,4)

      STR(2,1) = stressOld(i,4)

      STR(1,3) = stressOld(i,5)

      STR(3,1) = stressOld(i,5)

      STR(2,3) = stressOld(i,6)

      STR(3,2) = stressOld(i,6)

      

c     FIND THE EIGEN VALUES OF THE STRESSOLD MATRIX

 

      CALL VSPRINC( NBLOCK, STR, eigVal, ndir, nshr )

C     EVR IS THE PRICIPAL STRESSES

      DO j=1,3

        XPRIN(i,j)=eigVal(i,j)

      ENDDO

       print*, 'old principal stress'

      print*,  XPRIN(i,:) 

C

C     WRITE STRESSES IN MATRIX FORM

C

      DO j = 1,3

      STRN(j,j) = stressNew(i,j)

      END DO

      STRN(1,2) = stressNew(i,4)

      STRN(2,1) = stressNew(i,4)

      STRN(1,3) = stressNew(i,5)

      STRN(3,1) = stressNew(i,5)

      STRN(2,3) = stressNew(i,6)

      STRN(3,2) = stressNew(i,6)     

c     FIND THE EIGEN VALUES OF THE STRESSNEW MATRIX

 

      CALL VSPRINC( NBLOCK, STRN, eigVal, ndir, nshr )

C     EVR IS THE PRICIPAL STRESSES

      DO j=1,3

        XPRINN(i,j)=eigVal(i,j)

      ENDDO

      print*, 'new principal stress'

      print*,  XPRINN(i,:) 

C     FINDING THE PRINCIPAL STRESS RATE

      DO j=1,3

        XPRINR(i,j)=(XPRINN(i,j)-XPRIN(i,j))/dt

      ENDDO

      print*, 'principal stress rate'

      print*,  XPRINR(i,:) 

C     FINDING THE DEFECT DENSITY CORRESPONDING TO EACH PRICIPAL STRESS

C     FINDING THE DAMAGE VALUE CORRESPONDING TO EACH PRINCIPAL STRESS

C     REFER EQUATION 83

 

      DO j=1,3

       IF (XPRINR(i,j).LE.ZERO) THEN

          stateNew(i,j)=stateOld(i,j)

       ELSE

        IF ((XPRIN(i,j).GT.ZERO).AND.(XPRINR(i,j).GT.ZERO))THEN

         IF (XPRIN(i,j).LE.XFAIL(i)) THEN

                stateNew(i,j+7)=ZERO

                stateNew(i,j)=ZERO

            ELSE

             stateNew(i,j+7)=K*((XPRIN(i,j))**XM)

C     XBETA IS THE VALUE OF THE RIGHT HAND SIDE IN THE EQUATION 81

             XBETA=6*S*((0.33*V)**3)*stateNew(i,j+7)

             RKO=((1-XDAM(i,j))*(XBETA*(totalTime**2)))/2

             RKT=((1-(XDAM(i,j)+((dt*RKO)/2)))

     1         *(XBETA*((totalTime+dt/2)**2))/2)

             RKTH=(1-(XDAM(i,j)+(dt*RKT)/2))

     1         *(XBETA*((totalTime+dt/2)**2))/2

             RKF=(1-(XDAM(i,j)+(dt*RKTH)))

     1         *(XBETA*((totalTime+dt)**2))/2

             RK=RKO+2*RKT+2*RKTH+RKF

             stateNew(i,j)=stateOld(i,j)+((dt/6)*RK)

             ENDIF

            ELSE

                stateNew(i,j+7)=ZERO

                stateNew(i,j)=ZERO

           ENDIF

        ENDIF

      ENDDO

      print*, 'Damage values'

      print*,  stateNew(i,1)      

      print*,  stateNew(i,2)  

      print*,  stateNew(i,3)  

C     STATE VARIABLES:1 TO 3 ARE DAMAGE VALUE VARYING FROM 0 TO 1

C     STATE VARIABLES:4-FAILURE STRESS

        stateNew(i,4)=XFAIL(i)

        stateNew(i,5)=XPRIN(i,1)

        stateNew(i,6)=XPRIN(i,2)

        stateNew(i,7)=XPRIN(i,3)         

C     UPDATING THE STRESS MATRIX:TO DO THAT UPDATE THE COMPLIANCE TENSOR

C     MATRIX AND INVERSE THE COMPLIANCE TENSOR TO OBTAIN THE CONSTITUTIVE TENSOR

C     XC=COMPLIANCE TENSSOR,XS=INVERSE OF COMPLIANCE TENSOR

      XC(1,1)=ONE/E/(1-stateNew(i,1))

      XC(1,2)=(-XNUE)/E

      XC(1,3)=(-XNUE)/E

      XC(1,4)=0.0

      XC(1,5)=0.0

      XC(1,6)=0.0

      XC(2,1)=(-XNUE)/E

      XC(2,2)=ONE/E/(1-stateNew(i,2))

      XC(2,3)=(-XNUE)/E

      XC(2,4)=0.0

      XC(2,5)=0.0

      XC(2,6)=0.0

      XC(3,1)=(-XNUE)/E

      XC(3,2)=(-XNUE)/E

      XC(3,3)=ONE/E/(1-stateNew(i,3))

      XC(3,4)=0.0

      XC(3,5)=0.0

      XC(3,6)=0.0

      XC(4,1)=0.0

      XC(4,2)=0.0

      XC(4,3)=0.0

      XC(4,4)=(ONE+XNUE)/((ONE-stateNew(i,2))**(XALPHA))

     3 /((ONE-stateNew(i,3))**(XALPHA))/E

      XC(4,5)=0.0

      XC(4,6)=0.0

      XC(5,1)=0.0

      XC(5,2)=0.0

      XC(5,3)=0.0

      XC(5,4)=0.0

      XC(5,5)=(ONE+XNUE)/((ONE-stateNew(i,3))**(XALPHA))

     4 /((ONE-stateNew(i,1))**(XALPHA))/E

      XC(5,6)=0.0

      XC(6,1)=0.0

      XC(6,2)=0.0

      XC(6,3)=0.0

      XC(6,4)=0.0

      XC(6,5)=0.0

      XC(6,6)=(ONE+XNUE)/((ONE-stateNew(i,1))**XALPHA)

     5 /((ONE-stateNew(i,2))**XALPHA)/E      

C     FINDING XS=INVERSE OF COMPLIANCE TENSOR BY GUASS JORDAN METHOD

      CALL INVERSEA(XC,XS)

      print*, 'inverse of compliance tensor'

      print*, XS(:,:)

      DO j=1,NTENS

      stressNew(i,j)=stressOld(i,j)+DOT_PRODUCT(XS(j,:), strainInc(i,:))

       ENDDO

100     continue

        return

        end

 

********************END OF VUMAT SUBROUTINE******************************

*************************************************************************

C **   INVERSE OF A 6X6 MATRIX BY GAUSS JORDAN METHOD

*************************************************************************

C **   INVERSE OF A 6X6 MATRIX BY GAUSS JORDAN METHOD

      SUBROUTINE INVERSEA(A,C)

C

      INCLUDE 'VABA_PARAM.INC'

C

      PARAMETER (M=6,N=6)

      DIMENSION A(M,N),B(6,12),C(M,N)

      INTEGER I,J,N

C **  BUILDING AUGUMENTED MATRIX B

      DO 40 J=1,N

        DO 30 I=1,N

            B(I,J)=A(I,J)

30    CONTINUE

40    CONTINUE

      DO I=1,N

        DO J=N+1,2*N

            IF ((J-I).EQ.N) THEN

                B(I,J)=1.0

                ELSE

                    B(I,J)=0.0

            ENDIF

        ENDDO

      ENDDO

      DO 160 I=1,N

        B(I,:)=B(I,:)/B(I,I)

        DO 150 J=1,N

            IF (I.NE.J) THEN

                B(J,:)=B(J,:)-B(J,I)*B(I,:)

            ENDIF

150        CONTINUE

160        CONTINUE

       DO I=1,N

        DO J=N+1,2*N

            C(I,J-6)=B(I,J)

        ENDDO

       ENDDO

       PRINT*,'C MATRIX ROW 1'

       PRINT*, C(1,:)

       RETURN

       END

 

 

 

 

 

 

 

 

dawit2012's picture

can any one give me an idea how to simulate a sample specimen while subjected to tensile load and fracture or shear out at the middle of the specimen at 45 degree on Ababqus CAE. please if you have the procedure to simulate it send me throgh my email

bogale.sintayehu@gmail.com

Thank you so much!!

Frank Richter's picture

hi everyone!!

i m a new user in both abaqus and fortran. can anyone tell me if i can use USDFLD subroutine to vary frictional angle with respect to plastic strain according to Vermeer 1984

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

Recent comments

More comments

Syndicate

Subscribe to Syndicate