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

Go to the source code of this file.

Functions/Subroutines

subroutine materialdata_th (cocon, ncocon, imat, iorien, pgauss, orab, ntmat_, coconloc, mattyp, t1l, rhcon, nrhcon, rho, shcon, nshcon, sph, xstiff, iint, iel, istiff, mi)
 

Function/Subroutine Documentation

◆ materialdata_th()

subroutine materialdata_th ( real*8, dimension(0:6,ntmat_,*)  cocon,
integer, dimension(2,*)  ncocon,
integer  imat,
integer  iorien,
real*8, dimension(3)  pgauss,
real*8, dimension(7,*)  orab,
integer  ntmat_,
real*8, dimension(6)  coconloc,
integer  mattyp,
real*8  t1l,
real*8, dimension(0:1,ntmat_,*)  rhcon,
integer, dimension(*)  nrhcon,
real*8  rho,
real*8, dimension(0:3,ntmat_,*)  shcon,
integer, dimension(*)  nshcon,
real*8  sph,
real*8, dimension(27,mi(1),*)  xstiff,
integer  iint,
integer  iel,
integer  istiff,
integer, dimension(*)  mi 
)
21 !
22  implicit none
23 !
24 ! determines the density, the specific heat and the conductivity
25 ! in an integration point with coordinates pgauss
26 !
27  integer ncocon(2,*),imat,iorien,k,mattyp,mi(*),
28  & ntmat_,id,two,four,seven,nrhcon(*),nshcon(*),
29  & iint,iel,ncond,istiff,ncoconst
30 !
31  real*8 cocon(0:6,ntmat_,*),orab(7,*),coconloc(6),t1l,
32  & pgauss(3),rhcon(0:1,ntmat_,*),
33  & shcon(0:3,ntmat_,*),rho,sph,xstiff(27,mi(1),*)
34 !
35  two=2
36  four=4
37  seven=7
38 !
39  if(istiff.eq.1) then
40 !
41  ncond=ncocon(1,imat)
42  if((ncond.le.-100).or.(iorien.ne.0)) ncond=6
43 !
44 ! calculating the density (needed for the capacity matrix)
45 !
46  call ident2(rhcon(0,1,imat),t1l,nrhcon(imat),two,id)
47  if(nrhcon(imat).eq.0) then
48  continue
49  elseif(nrhcon(imat).eq.1) then
50  rho=rhcon(1,1,imat)
51  elseif(id.eq.0) then
52  rho=rhcon(1,1,imat)
53  elseif(id.eq.nrhcon(imat)) then
54  rho=rhcon(1,id,imat)
55  else
56  rho=rhcon(1,id,imat)+
57  & (rhcon(1,id+1,imat)-rhcon(1,id,imat))*
58  & (t1l-rhcon(0,id,imat))/
59  & (rhcon(0,id+1,imat)-rhcon(0,id,imat))
60  endif
61 !
62 ! calculating the specific heat (needed for the capacity matrix)
63 !
64  call ident2(shcon(0,1,imat),t1l,nshcon(imat),four,id)
65  if(nshcon(imat).eq.0) then
66  continue
67  elseif(nshcon(imat).eq.1) then
68  sph=shcon(1,1,imat)
69  elseif(id.eq.0) then
70  sph=shcon(1,1,imat)
71  elseif(id.eq.nshcon(imat)) then
72  sph=shcon(1,id,imat)
73  else
74  sph=shcon(1,id,imat)+
75  & (shcon(1,id+1,imat)-shcon(1,id,imat))*
76  & (t1l-shcon(0,id,imat))/
77  & (shcon(0,id+1,imat)-shcon(0,id,imat))
78  endif
79 !
80 ! determining the conductivity coefficients
81 !
82  do k=1,6
83  coconloc(k)=xstiff(21+k,iint,iel)
84  enddo
85 !
86 ! determining the type: isotropic, orthotropic or anisotropic
87 !
88  if(ncond.le.1) then
89  mattyp=1
90  elseif(ncond.le.3) then
91  mattyp=2
92  else
93  mattyp=3
94  endif
95 !
96  else
97 !
98  ncoconst=ncocon(1,imat)
99  if(ncoconst.le.-100) ncoconst=-ncoconst-100
100 !
101 ! calculating the conductivity coefficients
102 !
103  call ident2(cocon(0,1,imat),t1l,ncocon(2,imat),seven,id)
104  if(ncocon(2,imat).eq.0) then
105  do k=1,6
106  coconloc(k)=0.d0
107  enddo
108  continue
109  elseif(ncocon(2,imat).eq.1) then
110  do k=1,ncoconst
111  coconloc(k)=cocon(k,1,imat)
112  enddo
113  elseif(id.eq.0) then
114  do k=1,ncoconst
115  coconloc(k)=cocon(k,1,imat)
116  enddo
117  elseif(id.eq.ncocon(2,imat)) then
118  do k=1,ncoconst
119  coconloc(k)=cocon(k,id,imat)
120  enddo
121  else
122  do k=1,ncoconst
123  coconloc(k)=(cocon(k,id,imat)+
124  & (cocon(k,id+1,imat)-cocon(k,id,imat))*
125  & (t1l-cocon(0,id,imat))/
126  & (cocon(0,id+1,imat)-cocon(0,id,imat)))
127  &
128  enddo
129  endif
130  endif
131 !
132  return
subroutine ident2(x, px, n, ninc, id)
Definition: ident2.f:27
Hosted by OpenAircraft.com, (Michigan UAV, LLC)