CalculiX  2.13
A Free Software Three-Dimensional Structural Finite Element Program
umat_main.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine umat_main (amat, iel, iint, kode, elconloc, emec, emec0, beta, xikl, vij, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab, pnewdt, istep, iinc, ipkon, nmethod, iperturb, depvisc)
 

Function/Subroutine Documentation

◆ umat_main()

subroutine umat_main ( character*80  amat,
integer  iel,
integer  iint,
integer  kode,
real*8, dimension(21)  elconloc,
real*8, dimension(6)  emec,
real*8, dimension(6)  emec0,
real*8, dimension(6)  beta,
real*8, dimension(3,3)  xikl,
real*8  vij,
real*8, dimension(3,3)  xkl,
real*8  vj,
integer  ithermal,
real*8  t1l,
real*8  dtime,
real*8  time,
real*8  ttime,
integer  icmd,
integer  ielas,
integer, dimension(*)  mi,
integer  nstate_,
real*8, dimension(nstate_,mi(1),*)  xstateini,
real*8, dimension(nstate_,mi(1),*)  xstate,
real*8, dimension(6)  stre,
real*8, dimension(21)  stiff,
integer  iorien,
real*8, dimension(3)  pgauss,
real*8, dimension(7,*)  orab,
real*8  pnewdt,
integer  istep,
integer  iinc,
integer, dimension(*)  ipkon,
integer  nmethod,
integer, dimension(*)  iperturb,
real*8  depvisc 
)
24 !
25 ! calculates stiffness and stresses for a user defined material
26 ! law
27 !
28  implicit none
29 !
30  character*80 amat,amatloc
31 !
32  integer ithermal,icmd,kode,ielas,iel,iint,nstate_,mi(*),iorien,
33  & istep,iinc,ipkon(*),nmethod,iperturb(*)
34 !
35  real*8 elconloc(21),stiff(21),emec(6),emec0(6),beta(6),stre(6),
36  & vj,t1l,dtime,xkl(3,3),xikl(3,3),vij,pgauss(3),orab(7,*),
37  & time,ttime,pnewdt,depvisc
38 !
39  real*8 xstate(nstate_,mi(1),*),xstateini(nstate_,mi(1),*)
40 !
41 
42  if(amat(1:8).eq.'ABAQUSNL') then
43 
44  amatloc(1:72)=amat(9:80)
45  amatloc(73:80)=' '
46  call umat_abaqusnl(amatloc,iel,iint,kode,elconloc,emec,
47  & emec0,beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
48  & icmd,ielas,mi(1),nstate_,xstateini,xstate,stre,stiff,
49  & iorien,pgauss,orab,istep,iinc,pnewdt,nmethod,iperturb)
50 
51  elseif(amat(1:9).eq.'@ABAQUSNL') then
52 !
53  call umat_abaqusnl(amat,iel,iint,kode,elconloc,emec,
54  & emec0,beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
55  & icmd,ielas,mi(1),nstate_,xstateini,xstate,stre,stiff,
56  & iorien,pgauss,orab,istep,iinc,pnewdt,nmethod,iperturb)
57 !
58  elseif(amat(1:6).eq.'ABAQUS') then
59 !
60  amatloc(1:74)=amat(7:80)
61  amatloc(75:80)=' '
62  call umat_abaqus(amatloc,iel,iint,kode,elconloc,emec,
63  & emec0,beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
64  & icmd,ielas,mi(1),nstate_,xstateini,xstate,stre,stiff,
65  & iorien,pgauss,orab,istep,iinc,pnewdt,nmethod,iperturb)
66 !
67  elseif(amat(1:7).eq.'@ABAQUS') then
68 
69  call umat_abaqus(amat,iel,iint,kode,elconloc,emec,
70  & emec0,beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
71  & icmd,ielas,mi(1),nstate_,xstateini,xstate,stre,stiff,
72  & iorien,pgauss,orab,istep,iinc,pnewdt,nmethod,iperturb)
73 !
74  elseif(amat(1:10).eq.'ANISO_PLAS') then
75 !
76  amatloc(1:70)=amat(11:80)
77  amatloc(71:80)=' '
78  call umat_aniso_plas(amatloc,
79  & iel,iint,kode,elconloc,emec,emec0,
80  & beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
81  & icmd,ielas,mi(1),nstate_,xstateini,xstate,stre,stiff,
82  & iorien,pgauss,orab,nmethod,pnewdt)
83 !
84  elseif(amat(1:11).eq.'ANISO_CREEP') then
85 !
86  amatloc(1:69)=amat(12:80)
87  amatloc(70:80)=' '
88  call umat_aniso_creep(amatloc,
89  & iel,iint,kode,elconloc,emec,emec0,
90  & beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
91  & icmd,ielas,mi(1),nstate_,xstateini,xstate,stre,stiff,
92  & iorien,pgauss,orab,nmethod,pnewdt,depvisc)
93 !
94  elseif(amat(1:10).eq.'CIARLET_EL') then
95 !
96  amatloc(1:70)=amat(11:80)
97  amatloc(71:80)=' '
98  call umat_ciarlet_el(amatloc,
99  & iel,iint,kode,elconloc,emec,
100  & emec0,beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
101  & icmd,ielas,mi(1),
102  & nstate_,xstateini,xstate,stre,stiff,iorien,pgauss,orab)
103 !
104  elseif(amat(1:16).eq.'COMPRESSION_ONLY') then
105 !
106  amatloc(1:64)=amat(17:80)
107  amatloc(65:80)=' '
108  call umat_compression_only(amatloc,
109  & iel,iint,kode,elconloc,emec,
110  & emec0,beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
111  & icmd,ielas,mi(1),
112  & nstate_,xstateini,xstate,stre,stiff,iorien,pgauss,orab)
113 !
114  elseif(amat(1:13).eq.'ELASTIC_FIBER') then
115 !
116  amatloc(1:67)=amat(14:80)
117  amatloc(68:80)=' '
118  call umat_elastic_fiber(amat(14:80),
119  & iel,iint,kode,elconloc,emec,emec0,
120  & beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
121  & icmd,ielas,mi(1),
122  & nstate_,xstateini,xstate,stre,stiff,iorien,pgauss,orab)
123 !
124  elseif(amat(1:10).eq.'LIN_ISO_EL') then
125 !
126  amatloc(1:70)=amat(11:80)
127  amatloc(71:80)=' '
128  call umat_lin_iso_el(amatloc,
129  & iel,iint,kode,elconloc,emec,emec0,
130  & beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
131  & icmd,ielas,mi(1),
132  & nstate_,xstateini,xstate,stre,stiff,iorien,pgauss,orab)
133 !
134  elseif(amat(1:9).eq.'IDEAL_GAS') then
135 !
136  amatloc(1:71)=amat(10:80)
137  amatloc(72:80)=' '
138  call umat_ideal_gas(amatloc,
139  & iel,iint,kode,elconloc,emec,emec0,
140  & beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
141  & icmd,ielas,mi(1),
142  & nstate_,xstateini,xstate,stre,stiff,iorien,pgauss,orab)
143 !
144  elseif(amat(1:20).eq.'SINGLE_CRYSTAL_CREEP') then
145 !
146  amatloc(1:60)=amat(21:80)
147  amatloc(61:80)=' '
148  call umat_single_crystal_creep(amatloc,
149  & iel,iint,kode,elconloc,emec,
150  & emec0,beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
151  & icmd,ielas,mi(1),
152  & nstate_,xstateini,xstate,stre,stiff,iorien,pgauss,orab,
153  & pnewdt)
154 !
155  elseif(amat(1:14).eq.'SINGLE_CRYSTAL') then
156 !
157  amatloc(1:66)=amat(15:80)
158  amatloc(67:80)=' '
159  call umat_single_crystal(amatloc,
160  & iel,iint,kode,elconloc,emec,
161  & emec0,beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
162  & icmd,ielas,mi(1),
163  & nstate_,xstateini,xstate,stre,stiff,iorien,pgauss,orab)
164 !
165  elseif(amat(1:12).eq.'TENSION_ONLY') then
166 !
167  amatloc(1:68)=amat(13:80)
168  amatloc(69:80)=' '
169  call umat_tension_only(amatloc,
170  & iel,iint,kode,elconloc,emec,
171  & emec0,beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
172  & icmd,ielas,mi(1),
173  & nstate_,xstateini,xstate,stre,stiff,iorien,pgauss,orab)
174 !
175  elseif(amat(1:4).eq.'USER') then
176 !
177  amatloc(1:76)=amat(5:80)
178  amatloc(77:80)=' '
179  call umat_user(amatloc,iel,iint,kode,elconloc,emec,emec0,
180  & beta,xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,
181  & icmd,ielas,mi(1),nstate_,xstateini,xstate,stre,stiff,
182  & iorien,pgauss,orab,pnewdt,ipkon)
183 !
184  elseif(amat(1:1).eq.'@') then
185 !
186  call call_external_umat_user(amat,iel,iint,kode,elconloc,
187  & emec,emec0,beta,xikl,vij,xkl,vj,ithermal,t1l,
188  & dtime,time,ttime,icmd,ielas,mi(1),nstate_,xstateini,
189  & xstate,stre,stiff,iorien,pgauss,orab,pnewdt,ipkon)
190  else
191  write(*,*) '*ERROR in umat: no user material subroutine'
192  write(*,*) ' defined for material ',amat
193  call exit(201)
194  endif
195 !
196  return
subroutine umat_single_crystal(amat, iel, iint, kode, elconloc, emec, emec0, beta, xokl, voj, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab)
Definition: umat_single_crystal.f:24
subroutine umat_compression_only(amat, iel, iint, kode, elconloc, emec, emec0, beta, xokl, voj, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab, pnewdt, ipkon)
Definition: umat_compression_only.f:24
subroutine umat_elastic_fiber(amat, iel, iint, kode, elconloc, emec, emec0, beta, xokl, voj, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab)
Definition: umat_elastic_fiber.f:24
subroutine umat_single_crystal_creep(amat, iel, iint, kode, elconloc, emec, emec0, beta, xokl, voj, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab, pnewdt)
Definition: umat_single_crystal_creep.f:24
subroutine umat_aniso_plas(amat, iel, iint, kode, elconloc, emec, emec0, beta, xokl, voj, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab, nmethod, pnewdt)
Definition: umat_aniso_plas.f:23
subroutine umat_ideal_gas(amat, iel, iint, kode, elconloc, emec, emec0, beta, xokl, voj, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab)
Definition: umat_ideal_gas.f:23
subroutine umat_tension_only(amat, iel, iint, kode, elconloc, emec, emec0, beta, xokl, voj, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab, pnewdt, ipkon)
Definition: umat_tension_only.f:24
subroutine umat_abaqusnl(amat, iel, iint, kode, elconloc, emec, emec0, beta, xokl, voj, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab, istep, kinc, pnewdt, nmethod, iperturb)
Definition: umat_abaqusnl.f:23
subroutine umat_aniso_creep(amat, iel, iint, kode, elconloc, emec, emec0, beta, xokl, voj, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab, nmethod, pnewdt, depvisc)
Definition: umat_aniso_creep.f:23
subroutine umat_lin_iso_el(amat, iel, iint, kode, elconloc, emec, emec0, beta, xokl, voj, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab)
Definition: umat_lin_iso_el.f:23
subroutine umat_user(amat, iel, iint, kode, elconloc, emec, emec0, beta, xokl, voj, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab, pnewdt, ipkon)
Definition: umat_user.f:23
subroutine umat_ciarlet_el(amat, iel, iint, kode, elconloc, emec, emec0, beta, xokl, voj, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab)
Definition: umat_ciarlet_el.f:27
subroutine umat_abaqus(amat, iel, iint, kode, elconloc, emec, emec0, beta, xokl, voj, xkl, vj, ithermal, t1l, dtime, time, ttime, icmd, ielas, mi, nstate_, xstateini, xstate, stre, stiff, iorien, pgauss, orab, istep, kinc, pnewdt, nmethod, iperturb)
Definition: umat_abaqus.f:23
Hosted by OpenAircraft.com, (Michigan UAV, LLC)