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

Go to the source code of this file.

Functions/Subroutines

subroutine dashdamp (xl, elas, konl, voldl, s, imat, elcon, nelcon, ncmat_, ntmat_, nope, lakonl, t0l, t1l, kode, elconloc, plicon, nplicon, npmat_, iperturb, time, nmethod)
 

Function/Subroutine Documentation

◆ dashdamp()

subroutine dashdamp ( real*8, dimension(3,9)  xl,
real*8, dimension(21)  elas,
integer, dimension(20)  konl,
real*8, dimension(3,9)  voldl,
real*8, dimension(60,60)  s,
integer  imat,
real*8, dimension(0:ncmat_,ntmat_,*)  elcon,
integer, dimension(2,*)  nelcon,
integer  ncmat_,
integer  ntmat_,
integer  nope,
character*8  lakonl,
real*8  t0l,
real*8  t1l,
integer  kode,
real*8, dimension(21)  elconloc,
real*8, dimension(0:2*npmat_,ntmat_,*)  plicon,
integer, dimension(0:ntmat_,*)  nplicon,
integer  npmat_,
integer  iperturb,
real*8  time,
integer  nmethod 
)
22 !
23 ! calculates the damping coefficient of a dashpot
24 !
25  implicit none
26 !
27  character*8 lakonl
28 !
29  integer konl(20),i,j,imat,ncmat_,ntmat_,nope,iperturb,niso,
30  & kode,npmat_,nelcon(2,*),nplicon(0:ntmat_,*),nmethod,id
31 !
32  real*8 xl(3,9),elas(21),s(60,60),voldl(3,9),xn(3),dd,
33  & elcon(0:ncmat_,ntmat_,*),t0l,t1l,elconloc(21),damp,
34  & plicon(0:2*npmat_,ntmat_,*),plconloc(802),pl(3,9),time,
35  & xiso(200),yiso(200)
36 !
37 ! original positions of the nodes belonging to the dashpot
38 !
39  if(iperturb.eq.0) then
40  do i=1,nope
41  do j=1,3
42  pl(j,i)=xl(j,i)
43  enddo
44  enddo
45  else
46  do i=1,nope
47  do j=1,3
48  pl(j,i)=xl(j,i)+voldl(j,i)
49  enddo
50  enddo
51  endif
52 !
53  dd=dsqrt((pl(1,2)-pl(1,1))**2
54  & +(pl(2,2)-pl(2,1))**2
55  & +(pl(3,2)-pl(3,1))**2)
56  do i=1,3
57  xn(i)=(pl(i,2)-pl(i,1))/dd
58  enddo
59 !
60 ! interpolating the material data
61 !
62  call materialdata_sp(elcon,nelcon,imat,ntmat_,i,t1l,
63  & elconloc,kode,plicon,nplicon,npmat_,plconloc,ncmat_)
64 !
65 ! calculating the damping force and damping coefficient
66 !
67  if(kode.eq.2) then
68  damp=elconloc(1)
69  else
70  if(nmethod.ne.5) then
71  write(*,*) '*ERROR in dashdamp: the damping coefficient'
72  write(*,*) ' may depend on temperature and frequency'
73  write(*,*) ' only; the latter is only allowed for'
74  write(*,*) ' steady state dynamics calculations'
75  call exit(201)
76  endif
77  niso=int(plconloc(801))
78  do i=1,niso
79  xiso(i)=plconloc(2*i-1)
80  yiso(i)=plconloc(2*i)
81  enddo
82  call ident(xiso,time,niso,id)
83  if(id.eq.0) then
84  damp=yiso(1)
85  elseif(id.eq.niso) then
86  damp=yiso(niso)
87  else
88  damp=yiso(id)+(yiso(id+1)-yiso(id))/(xiso(id+1)-xiso(id))*
89  & (time-xiso(id))
90  endif
91  endif
92 c write(*,*) 'dashdamp ',time,damp
93 !
94  do i=1,3
95  do j=1,3
96  s(i,j)=damp*xn(i)*xn(j)
97  enddo
98  enddo
99  do i=1,3
100  do j=1,3
101  s(i+3,j)=-s(i,j)
102  s(i,j+3)=-s(i,j)
103  s(i+3,j+3)=s(i,j)
104  enddo
105  enddo
106 !
107  return
subroutine ident(x, px, n, id)
Definition: ident.f:26
subroutine materialdata_sp(elcon, nelcon, imat, ntmat_, i, t1l, elconloc, kode, plicon, nplicon, npmat_, plconloc, ncmat_)
Definition: materialdata_sp.f:20
Hosted by OpenAircraft.com, (Michigan UAV, LLC)