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

Go to the source code of this file.

Functions/Subroutines

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

Function/Subroutine Documentation

◆ mechmodel()

subroutine mechmodel ( real*8, dimension(*)  elconloc,
real*8, dimension(21)  elas,
real*8, dimension(*)  emec,
integer  kode,
real*8, dimension(*)  emec0,
integer  ithermal,
integer  icmd,
real*8, dimension(*)  beta,
real*8, dimension(*)  stre,
real*8, dimension(*)  xkl,
real*8, dimension(*)  ckl,
real*8  vj,
real*8, dimension(*)  xikl,
real*8  vij,
real*8, dimension(*)  plconloc,
real*8, dimension(nstate_,mi(1),*)  xstate,
real*8, dimension(nstate_,mi(1),*)  xstateini,
integer  ielas,
character*80  amat,
real*8  t1l,
real*8  dtime,
real*8  time,
real*8  ttime,
integer  iel,
integer  iint,
integer  nstate_,
integer, dimension(*)  mi,
integer  iorien,
real*8, dimension(3)  pgauss,
real*8, dimension(7,*)  orab,
real*8, dimension(6)  eloc,
integer  mattyp,
real*8  pnewdt,
integer  istep,
integer  iinc,
integer, dimension(*)  ipkon,
integer  nmethod,
integer, dimension(*)  iperturb,
real*8  depvisc 
)
24 !
25 ! kode=-1: Arruda-Boyce
26 ! -2: Mooney-Rivlin
27 ! -3: Neo-Hooke
28 ! -4: Ogden (N=1)
29 ! -5: Ogden (N=2)
30 ! -6: Ogden (N=3)
31 ! -7: Polynomial (N=1)
32 ! -8: Polynomial (N=2)
33 ! -9: Polynomial (N=3)
34 ! -10: Reduced Polynomial (N=1)
35 ! -11: Reduced Polynomial (N=2)
36 ! -12: Reduced Polynomial (N=3)
37 ! -13: Van der Waals (not implemented yet)
38 ! -14: Yeoh
39 ! -15: Hyperfoam (N=1)
40 ! -16: Hyperfoam (N=2)
41 ! -17: Hyperfoam (N=3)
42 ! -50: deformation plasticity
43 ! -51: incremental plasticity (no viscosity)
44 ! -52: viscoplasticity
45 ! < -100: user material routine with -kode-100 user
46 ! defined constants with keyword *USER MATERIAL
47 !
48  implicit none
49 !
50  character*80 amat
51 !
52  integer kode,ithermal,icmd,ielas,iel,iint,nstate_,mi(*),iorien,
53  & mattyp,istep,iinc,ipkon(*),nmethod,iperturb(*)
54 !
55  real*8 elconloc(*),elas(21),emec(*),emec0(*),beta(*),stre(*),
56  & ckl(*),vj,plconloc(*),t1l,xkl(*),xikl(*),vij,depvisc,
57  & dtime,didc(27),d2idc2(243),dibdc(27),d2ibdc2(243),
58  & dudc(9),d2udc2(81),dldc(27),d2ldc2(243),dlbdc(27),d2lbdc2(243),
59  & pgauss(3),orab(7,*),time,ttime,eloc(6),pnewdt
60 !
61  real*8 xstate(nstate_,mi(1),*),xstateini(nstate_,mi(1),*)
62 !
63  if(kode.gt.0) then
64  call linel(kode,mattyp,beta,emec,stre,elas,elconloc,
65  & iorien,orab,pgauss)
66  elseif(kode.gt.-50) then
67  mattyp=3
68  call rubber(elconloc,elas,emec,kode,didc,d2idc2,
69  & dibdc,d2ibdc2,dudc,d2udc2,dldc,d2ldc2,dlbdc,d2lbdc2,
70  & ithermal,icmd,beta,stre)
71  elseif(kode.eq.-50) then
72  mattyp=3
73  call defplas(elconloc,elas,emec,ithermal,icmd,beta,stre,
74  & ckl,vj)
75  elseif(kode.gt.-100) then
76  mattyp=3
77  if(iperturb(2).eq.1) then
78  call incplas(elconloc,plconloc,xstate,xstateini,elas,emec,
79  & ithermal,icmd,beta,stre,vj,kode,ielas,amat,t1l,dtime,
80  & time,ttime,iel,iint,nstate_,mi(1),eloc,pgauss,nmethod,
81  & pnewdt,depvisc)
82  else
83  call incplas_lin(elconloc,plconloc,xstate,xstateini,elas,
84  & emec,
85  & ithermal,icmd,beta,stre,vj,kode,ielas,amat,t1l,dtime,
86  & time,ttime,iel,iint,nstate_,mi(1),eloc,pgauss,nmethod,
87  & pnewdt,depvisc)
88  endif
89  else
90  mattyp=3
91  call umat_main(amat,iel,iint,kode,elconloc,emec,emec0,beta,
92  & xikl,vij,xkl,vj,ithermal,t1l,dtime,time,ttime,icmd,ielas,
93  & mi(1),nstate_,xstateini,xstate,stre,elas,iorien,pgauss,
94  & orab,pnewdt,istep,iinc,ipkon,nmethod,iperturb,depvisc)
95  endif
96 !
97  return
subroutine linel(kode, mattyp, beta, emec, stre, elas, elconloc, iorien, orab, pgauss)
Definition: linel.f:21
subroutine defplas(elconloc, elas, emec, ithermal, icmd, beta, stre, ckl, vj)
Definition: defplas.f:21
subroutine incplas_lin(elconloc, plconloc, xstate, xstateini, elas, emec, ithermal, icmd, beta, stre, vj, kode, ielas, amat, t1l, dtime, time, ttime, iel, iint, nstate_, mi, eloc, pgauss, nmethod, pnewdt, depvisc)
Definition: incplas_lin.f:23
subroutine rubber(elconloc, elas, emec, kode, didc, d2idc2, dibdc, d2ibdc2, dudc, d2udc2, dldc, d2ldc2, dlbdc, d2lbdc2, ithermal, icmd, beta, stre)
Definition: rubber.f:22
subroutine incplas(elconloc, plconloc, xstate, xstateini, elas, emec, ithermal, icmd, beta, stre, vj, kode, ielas, amat, t1l, dtime, time, ttime, iel, iint, nstate_, mi, eloc, pgauss, nmethod, pnewdt, depvisc)
Definition: incplas.f:23
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)
Definition: umat_main.f:24
Hosted by OpenAircraft.com, (Michigan UAV, LLC)