29 KiB
matrix is proportional to the mass and stiffness matrix. This is known as Rayleigh damping and we have
\boldsymbol {C} = \alpha \boldsymbol {M} + \beta \boldsymbol {K} \tag {10.47}
In the central difference method we can make the approximation that \beta = 0 so that
\boldsymbol {C} = \alpha \boldsymbol {M} \tag {10.48}
or
c _ {i i} = a m _ {i i}
where
a = 2 \xi_ {r} \omega_ {r}
in which \xi_{r} and \omega_{r} are the damping factor and circular frequency for the r^{th} mode. This modelling of damping is rather poor since a is fixed for all modes of vibration. Thus if we take r = 1 then the higher modes will be less damped whereas the opposite would be more desirable. This is the price we pay for an otherwise convenient and efficient solution.
10.5 Critical time step
In explicit and implicit time integration schemes the selection of an appropriate time step is crucially important. Small time steps are required for accurate and stable solutions whereas for reasons of economy we would prefer large time steps. The analysis of the stability and accuracy characteristics ^{(2)} allows us to decide on a suitable time step for the various time stepping schemes. On this basis for the conditionally stable, central difference scheme, the stability considerations are of prime importance and the time step length is limited by the expression
\Delta t \leqslant \frac {2}{\omega_ {\max}} \tag {10.49}
where \omega_{max} is the highest circular frequency of the finite element mesh. This severe time step limit, required for stability, ensures accuracy in practically all modes of vibration. Providing that \omega_{max} represents the maximum nonlinear frequency, (10.49) holds for nonlinear problems. The estimate of the critical time step for conditionally stable schemes apparently necessitates the solution of the eigenvalue problem for the whole system. This is not so. The bound on the highest eigenvalue can be simply obtained by the consideration of an individual element. This is established by an important theorem proposed by Irons ^{(4)} which proves that the highest system eigenvalue must always be less than the highest eigenvalue of the individual elements. This allows a very easy estimate of critical time steps (by the above theorem) which will err on the safe side. To avoid the exact evaluation of the highest
finite element mesh frequency approximate expressions are usually employed. The most common form for plane strain is
\Delta t \leqslant \mu L \left(\frac {\rho (1 + \nu) (1 - 2 \nu)}{E (1 - \nu)}\right) ^ {1 / 2} \tag {10.50}
where L is the smallest length between any two nodes and \mu is a coefficient dependent on the type of element employed. ^{(5)} For problems in which many time steps are used it may be beneficial to calculate the exact highest linear frequency of the finite element mesh prior to the time stepping analysis.
Recall that when an elasto-viscoplastic model is adopted care must be taken not to exceed the critical time step for the Euler scheme in evaluating the viscoplastic strains. (See Section 8.3).
10.6 Program DYNPAK
10.6.1 Overall structure of DYNPAK
We now present program DYNPAK for the elasto-viscoplastic or geometrically nonlinear, transient dynamic analysis of plane stress, plane strain and axisymmetric problems. The basic structure of the program is shown in Fig. 10.2. Many of the subroutines used in DYNPAK have already been described in earlier chapters.
The algorithm adopted has been presented schematically in Fig. 10.1. The program is written in a dynamically dimensioned form. Efficiency has sometimes been sacrificed for clarity of presentation and the reader may consider ways of making the program more efficient when reviewing this chapter.
Isoparametric 4, 8 and 9-noded quadrilateral elements are included in the program. A special mass lumping procedure ^{(6)} has been adopted and separate Gauss–Legendre rules may be adopted in the evaluation of the stiffness and the lumped mass matrices.
Impact and seismic loading can easily be specified. Material nonlinearity is based on elasto-viscoplastic models with Von Mises, Tresca, Mohr-Coulomb or Drucker-Prager yield criteria with isotropic hardening. A total Lagrangian formulation is used to allow for the geometric nonlinear behaviour.
Subroutines GAUSSQ, SFR2 and JACOB2 have already been dealt with and only the remaining routines will be listed and described.
10.6.2 Master routine DYNPAK
The master routine organises the calling of the main routines as outlined in Fig. 10.2. In subroutine CONTOL the variables required for dynamic dimensioning are read and a check is made on the maximum available dimensions. Note that the values given in the DIMENSION statement in
flowchart
graph TD
A["MASTER DYNPAK"] --> B["CONTOL"]
A --> C["INPUTD"]
C --> D["NODXYR"]
C --> E["GAUSSQ"]
A --> F["INTIME"]
A --> G["PREVOS"]
A --> H["LOADPLf(t)"]
H --> I["MODPS"]
H --> J["SFR2"]
H --> K["JACOB2"]
A --> L["LUMASS"]
L --> M["GAUSSQ"]
L --> N["SFR2"]
L --> O["JACOB2"]
A --> P["RESVPL"]
P --> Q["MODPS"]
P --> R["SFR2"]
P --> S["JACOB2"]
P --> T["JACOBD"]
A --> U["EXPLIT"]
U --> V["FUNCTS"]
U --> W["FUNCTA"]
U --> X["FUNCTA"]
A --> Y["RESVPLp(t)"]
Y --> Z["FWVVP"]
Y --> AA["YIELDF"]
A --> AB["OUTDYN"]
A --> AC["DO LOOP 1, TO NSTEP"]
Fig. 10.2 Flow diagram for program DYNPAK.
DYNPAK should agree with the values specified in CONTOL. Subroutines INPUTD, INTIME and PREVOS read the mesh data, the time integration data and data for the previous state of the structure. Subroutines LUMASS and LOADPL generate the lumped mass and applied force vectors respectively. FIXITY deals with fixed boundary nodes. In the time step do loop, EXPLIT performs the direct time integration and RESVPL calculates
\int_ {\Omega} [ \boldsymbol {B} ] _ {n} ^ {T} \boldsymbol {\sigma} _ {n} d \Omega
when an elasto-viscoplastic material model is adopted.
In this version of DYNPAK it should be noted that the maximum dimensions imply that we can solve problems with no more than 50 elements, 200 nodal points, 50 fixed boundary nodes and 600 acceleration ordinates.
Of course, larger problems can be accommodated by increasing the values in CONTOL and also the appropriate dimensions in the DIMENSION statement in the main routine DYNPAK.
| PROGRAM DYNPAK (INPUT, TAPE5=INPUT, TAPE4, TAPE10, TAPE12, TAPE3, OUTPUT, TAPE6=OUTPUT, TAPE7, TAPE11, TAPE13) | DYNK | 1 | |||||||
| C | DYNAMIC TRANSIENT ELASTO - VISCOPLASTIC PROGRAM | DYNK | 2 | ||||||
| C | DYNAMIC TRANSIENT ELASTO - VISCOPLASTIC PROGRAM | DYNK | 3 | ||||||
| C | DYNAMIC TRANSIENT ELASTO - VISCOPLASTIC PROGRAM | DYNK | 4 | ||||||
| C | DYNAMIC TRANSIENT ELASTO - VISCOPLASTIC PROGRAM | DYNK | 5 | ||||||
| C | DYNAMIC TRANSIENT ELASTO - VISCOPLASTIC PROGRAM | DYNK | 6 | ||||||
| C | DYNAMIC TRANSIENT ELASTO - VISCOPLASTIC PROGRAM | DYNK | 7 | ||||||
| C | DIMENSION ACCEH(600), ACCEV(600), COORD(200,2), DISPL(400), DYNK | DYNK | 8 | ||||||
| C | FORCE(400), IFPRE(2,200), LNODS(50,9), MATNO(50), DYNK | DYNK | 9 | ||||||
| C | INTGR(50), NPRQD(10), NGRQS(10), POSGP(4), DYNK | DYNK | 10 | ||||||
| C | PROPS(10,13), RESID(400), RLOAD(50,18), STRIN(4,450), DYNK | DYNK | 11 | ||||||
| C | STRSG(4,450), TDISP(400), TEMPE(100), VELOC(400), DYNK | DYNK | 12 | ||||||
| C | VISTN(4,450), VIVEL(5,450), WEIGP(4), YMASS(400) | DYNK | 13 | ||||||
| C | DYNK | DYNK | 14 | ||||||
| C | CALL | CONTOL | (NDOFN, NELEM, NMATS, NPOIN) | DYNK | 15 | ||||
| C | DYNK | DYNK | 16 | ||||||
| C | CALL | INPUTD | (COORD, IFPRE, LNODS, MATNO, NCONM, NCRIT, DYNK | DYNK | 17 | ||||
| C | DYNK | DYNK | 18 | ||||||
| C | CALL | INTIME | (NDIME, NDOFN, NELEM, NGAUM, NGAUS, NLAPS, DYNK | DYNK | 19 | ||||
| C | DYNK | DYNK | 20 | ||||||
| C | CALL | INTIME | (NMATS, NNODE, NPOIN, NPREV, NSTRE, NTYPE, DYNK | DYNK | 21 | ||||
| C | DYNK | DYNK | 22 | ||||||
| C | CALL | INTIME | (POSGP, PROPS, WEIGP) | DYNK | 23 | ||||
| C | DYNK | DYNK | 24 | ||||||
| C | CALL | INTIME | (AALFA, ACCEH, ACCEV, AFACT, AZERO, BEETA, DYNK | DYNK | 25 | ||||
| C | DYNK | DYNK | 26 | ||||||
| C | CALL | INTIME | (BZERO, DELTA, DTIME, DTEND, GAAMA, IFIXD, DYNK | DYNK | 27 | ||||
| C | DYNK | DYNK | 28 | ||||||
| C | CALL | PREVOS | IFUNC, INTGR, KSTEP, MITER, NDOFN, NELEM, DYNK | DYNK | 29 | ||||
| C | DYNK | DYNK | 30 | ||||||
| C | CALL | LOADPL | NGRQS, NOUTD, NOUTP, NPOIN, NPRQD, NREQD, DYNK | DYNK | 31 | ||||
| C | DYNK | DYNK | 32 | ||||||
| C | CALL | LOADPL | (NREQS, NSTEP, OMEGA, TDISP, TOLER, VELOC, DYNK | DYNK | 33 | ||||
| C | DYNK | DYNK | 34 | ||||||
| C | CALL | LOADPL | (NREQS, NSTEP, OMEGA, TDISP, TOLER, VELOC, DYNK | DYNK | 35 | ||||
| C | DYNK | DYNK | 36 | ||||||
| C | CALL | LOADPL | (NREQS, NSTEP, OMEGA, TDISP, TOLER, VELOC, DYNK | DYNK | 37 | ||||
| C | DYNK | DYNK | 38 | ||||||
| C | CALL | LOADPL | (NREQS, NSTEP, OMEGA, TDISP, TOLER, VELOC, DYNK | DYNK | 39 | ||||
C
CALL
FIXITY
(IFPRE, NDOFN, NPOIN, YMASS)
DYNK
40
DYNK
41
DYNK
42
IF(NPREV.NE.O)
.CALL
RESVPL
(COORD, DTIME, LNODS, MATNO, NCRIT, NDIME,
NDOFN, NELEM, NGAUS, NLAPS, NNODE, NMATS,
NPOIN, NSTRE, NTYPE, POSGP, PROPS, RESID,
RLOAD, STRIN, STRSG, TDISP, VISTN, VIVEL,
WEIGP)
DYNK
43
DYNK
44
DYNK
45
DYNK
46
DYNK
47
DYNK
48
DYNK
49
DYNK
50
DYNK
51
CALL
EXPLIT
(ACCEH, ACCEV, AFACT, AZERO, AALFA, BZERO,
DTIME, DTEND, FORCE, IFIXD, IFPRE, IFUNC,
ISTEP, NDOFN, NPOIN, OMEGA, RESID, TDISP,
VELOC, YMASS)
DYNK
52
DYNK
53
DYNK
54
DYNK
55
DYNK
56
CALL
RESVPL
(COORD, DTIME, LNODS, MATNO, NCRIT, NDIME,
NDOFN, NELEM, NGAUS, NLAPS, NNODE, NMATS,
NPOIN, NSTRE, NTYPE, POSGP, PROPS, RESID,
RLOAD, STRIN, STRSG, TDISP, VISTN, VIVEL,
WEIGP)
DYNK
57
DYNK
58
DYNK
59
DYNK
60
DYNK
61
DYNK
62
CALL
OUTDYN
(DISPL, DTIME, ISTEP, NDOFN, NELEM, NGAUS,
NGRQS, NOUTD, NOUTP, NPOIN, NPRQD, NREQD,
NREQS, NTYPE, STRSG, TDISP, VIVEL)
DYNK
63
DYNK
64
DYNK
65
DYNK
66
500 CONTINUE
STOP
END
DYNK
67
DYNK
68
DYNK
69
10.6.3 Subroutine BLARGE
This subroutine evaluates the strain-displacement matrix for geometrically nonlinear displacements using the deformation Jacobian matrix [J_{D}]_{n} . Note that for small displacement analysis we pre-set NLAPS = 0.
SUBROUTINE BLARGE (BMATX, CARTD, DJACM, DLCOD, GPCOD, KGASP, BLAR 1
NLAPS, NNODE, NTYPE, SHAPE) BLAR 2
C******************************************************************************************
BLAR 3
C BLAR 4
C*** LARGE DISPLACEMENT B MATRIX BLAR 5
C BLAR 6
C******************************************************************************************
BLAR 7
DIMENSION BMATX(4,18), CARTD(2,9), DJACM(2,2), DLCOD(2,9), BLAR 8
GPCOD(2,9), SHAPE(9) BLAR 9
NGASH=0 BLAR 10
DO 10 INODE=1, NNODE BLAR 11
MGASH=NGASH+1 BLAR 12
NGASH=MGASH+1 BLAR 13
BMATX(1, MGASH)=CARTD(1, INODE)*DJACM(1,1) BLAR 14
BMATX(1, NGASH)=CARTD(1, INODE)*DJACM(2,1) BLAR 15
BMATX(2, MGASH)=CARTD(2, INODE)*DJACM(1,2) BLAR 16
BMATX(2, NGASH)=CARTD(2, INODE)*DJACM(2,2) BLAR 17
BMATX(3, MGASH)=CARTD(2, INODE)*DJACM(1,1)+CARTD(1, INODE)*DJACM(1,2)BLAR 18
BMATX(3, NGASH)=CARTD(1, INODE)*DJACM(2,2)+CARTD(2, INODE)*DJACM(2,1)BLAR 19
10 CONTINUE BLAR 20
IF(NTYPE.NE.3) RETURN BLAR 21
FMULT=1. BLAR 22
IF(NLAPS.LT.2) GO TO 40 BLAR 23
FMULT=0.0 BLAR 24
DO 20 JNODE=1, NNODE BLAR 25
20 FMULT=FMULT+DLCOD(1, JNODE)*SHAPE(JNODE) BLAR 26
FMULT=FMULT/GPCOD(1, KGASP) BLAR 27
40 NGASH=0 BLAR 28
DO 30 INODE=1, NNODE BLAR 29
MGASH=NGASH+1 BLAR 30
NGASH=MGASH+1 BLAR 31
BMATX(4, MGASH)=SHAPE(INODE)*FMULT/GPCOD(1, KGASP) BLAR 32
30 BMATX(4, NGASH)=0.0 BLAR 33
RETURN BLAR 34
END BLAR 35
BLAR 10-20 Evaluate the complete strain matrix for plane stress/strain problems and the first three rows of the strain matrix for axisymmetric problems.
BLAR 21-33 Evaluate the remainder of the strain matrix for axisymmetric problems, if applicable.
10.6.4 Subroutine CONTOL
The purpose of this subroutine is to set the values of variables for the dynamic dimensions which are used elsewhere in the program. If any change in the DIMENSION statement in the master routine is made, then a corresponding change in this subroutine should also be made.
SUBROUTINE CONTOL (NDOFN, NELEM, NMATS, NPOIN) CONT 1
C*******************************
C
C*** READ CONTROL DATA AND CHECK FOR DIMENSIONS CONT 2
C
C*******************************
C
READ(5,110) NPOIN, NELEM, NDOFN, NMATS CONT 3
IF(NELEM.GT. 50) GO TO 200 CONT 4
IF(NPOIN.GT.200) GO TO 200 CONT 5
IF(NMATS.GT. 10) GO TO 200 CONT 6
GO TO 210 CONT 7
200 WRITE(6,120) CONT 8
STOP CONT 9
120 FORMAT(/'SET DIMENSION EXCEEDED - CONTOL CHECK') CONT 10
110 FORMAT(16I5) CONT 11
210 CONTINUE CONT 12
RETURN CONT 13
END CONT 14
CONT 15
CONT 16
CONT 17
CONT 18
10.6.5 Subroutine EXPLIT
This subroutine performs the direct time integration using expressions (10.43) and (10.44) to evaluate the nodal displacements at every time step. Special provisions are made for the first time step.
SUBROUTINE EXPLIT (ACCEH, ACCEV, AFACT, AZERO, AALFA, BZERO, EXPL 1
. DTIME, DTEND, FORCE, IFIXD, IFPRE, IFUNC, EXPL 2
. ISTEP, NDOFN, NPOIN, OMEGA, RESID, TDISP, EXPL 3
. VELOC, YMASS) EXPL 4
C*************** EXPL 5
C EXPL 6
C *** TIME STEPPING ROUTINE EXPL 7
C EXPL 8
C*************** EXPL 9
DIMENSION YMASS(1), ACCEH(1), TDISP(1), RESID(1), EXPL 10
FORCE(1), ACCEV(1), VELOC(1), IFPRE(2,1)
CFACT=1.0+0.5*AALFA*DTIME
CFACT=1./CFACT
CONS1=2.*CFACT
RCONS=1./CONS1
CONS2=CONS1-1
CONS3=DTIME*DTIME*CFACT
CONS4=-2.0*CONS2*DTIME
IF(ISTEP.GT.1) CONS4=CONS2
NPOSN=0
FACTS=FUNCTS (AZERO, BZERO, DTEND, DTIME, IFUNC, ISTEP, OMEGA)
FACTH=FUNCTA (ACCEH, AFACT, DTEND, DTIME, IFUNC, ISTEP)
FACTV=FUNCTA (ACCEV, AFACT, DTEND, DTIME, IFUNC, ISTEP)
DO 500 IPOIN=1, NPOIN
DO 510 IDOFN=1, NDOFN
FACTT=0.0
IF(IFUNC.NE.0) GO TO 200
IF(IFIXD.EQ.0.AND.IDOFN.EQ.1) FACTT=FACTH
IF(IFIXD.EQ.0.AND.IDOFN.EQ.2) FACTT=FACTV
IF(IFIXD.EQ.1.AND.IDOFN.EQ.2) FACTT=FACTV
IF(IFIXD.EQ.2.AND.IDOFN.EQ.1) FACTT=FACTH
IF(IFPRE(IDOFN, IPOIN).EQ.0) GO TO 200
FACTT=0.0
FACTS=1.0
200 CONTINUE
NPOSN=NPOSN+1
DCURR=TDISP(NPOSN)
RESID(NPOSN)=RESID(NPOSN)-FORCE(NPOSN)*FACTS
TDISP(NPOSN)=-RESID(NPOSN)*CONS3/YMASS(NPOSN)
.-FACTT*CONS3+DCURR*CONS1-VELOC(NPOSN)*CONS4
IF(ISTEP.EQ.1) TDISP(NPOSN)=TDISP(NPOSN)*RCONS
VELOC(NPOSN)=DCURR
510 CONTINUE
500 CONTINUE
RETURN
END
EXPL 10
EXPL 11
EXPL 12
EXPL 13
EXPL 14
EXPL 15
EXPL 16
EXPL 17
EXPL 18
EXPL 19
EXPL 20
EXPL 21
EXPL 22
EXPL 23
EXPL 24
EXPL 25
EXPL 26
EXPL 27
EXPL 28
EXPL 29
EXPL 30
EXPL 31
EXPL 32
EXPL 33
EXPL 34
EXPL 35
EXPL 36
EXPL 37
EXPL 38
EXPL 39
EXPL 40
EXPL 41
EXPL 42
EXPL 43
EXPL 44
EXPL 45
EXPL 46
EXPL 12–19 Evaluate the various time integration constants. After the first time step modify variable CONS4.
EXPL 21 Evaluate the value of the time varying Heaviside or harmonic function for a particular time step.
EXPL 22–23 Evaluate the acceleration ordinates (FACTH for horizontal and FACTV for vertical acceleration respectively) at a particular time step.
EXPL 24–31 The seismic force is only applied for particular degrees of freedom. For IFIXD = 1 only vertical, IFIXD = 2 only horizontal or radial and IFIXD = 0 both components of the acceleration are considered.
EXPL 32-35 Assign appropriate values for restrained boundary nodes.
EXPL 36–40 Evaluate displacements.
EXPL 41 For the first time step modify the displacement.
EXPL 42 Store the current displacements for the next time step.
10.6.6 Subroutine FIXITY
This subroutine deals with the restrained degrees of freedom (boundary points). The diagonal mass vector, XMASS, is modified—for restrained
degrees of freedom. The component of the XMASS vector is set to a large value such as 1.E30, which artificially makes the displacement zero.
SUBROUTINE FIXITY (IFPRE, NDOFN, NPOIN, YMASS) FIXY 1
C********** 1
C 2
C 3
C *** DEALS WITH FIXED BOUNDARY NODES 4
C 5
C********** 6
DIMENSION IFPRE(2,1), YMASS(1) 7
NTOTV=NDOFN*NPOIN 8
IPOSN=0 9
DO 500 IPOIN=1, NPOIN 10
DO 500 IDOFN=1, NDOFN 11
IPOSN=IPOSN+1 12
500 IF(IFPRE(IDOFN, IPOIN).EQ.1) YMASS(IPOSN)=1.E30 13
WRITE(6,900) 14
900 FORMAT(/5X,19HNODAL LUMPED MASSES/) 15
WRITE(6,910) (ITOTV, YMASS(ITOTV), ITOTV=1, NTOTV) 16
910 FORMAT(6(1X, I5, E13.5)) 17
RETURN 18
END 19
10.6.7 Subroutine FLOWVP
This routine evaluates the viscoplastic strain rate.
SUBROUTINE FLOWVP (AVECT, KGAUS, LPROP, NCRIT, NMATS, PROPS, STEFF, VIVEL, YIELD) FLOV 1
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
C
DIMENSION AVECT(4), PROPS(NMATS,1), VIVEL(5,1)
IF(STEFF.EQ.0.0) GO TO 90
NSTR1=4
TOLOR=0.01
FDATM=PROPS(LPROP, 6)
HARDS=PROPS(LPROP, 7)
FRICT=PROPS(LPROP, 8)
GAMMA=PROPS(LPROP, 9)
DELTA=PROPS(LPROP,10)
NFLOW=PROPS(LPROP,11)
FRICT=FRICT*0.017453292
IF(NCRIT.EQ.3) FDATM=FDATM*COS(FRICT)
IF(NCRIT.EQ.4) FDATM=6.0*FDATM*COS(FRICT)/
(1.73205080757*(3.0-SIN(FRICT)))
IF(HARDS.GT.0.) FDATM=FDATM+VIVEL(5,KGAUS)*HARDS
IF(FDATM.LT.0.001) FDATM=1.0
FCURR=YIELD-FDATM
FNORM=FCURR/FDATM
IF(FNORM.LT.TOLOR) GO TO 90
IF(NFLOW.EQ.1) GO TO 50
CMULT=GAMMA*(EXP(DELTA*FNORM)-1.0)
GO TO 60
50 CMULT=GAMMA*(FNORM**DELTA)
60 CONTINUE
DO 70 ISTR1=1,NSTR1
70 AVECT(ISTR1)=CMULT*AVECT(ISTR1)
DO 80 ISTR1=1,NSTR1
80 VIVEL(ISTR1,KGAUS)=AVECT(ISTR1)
RETURN
90 DO 100 ISTR1=1,NSTR1
100 VIVEL(ISTR1,KGAUS)=0.
RETURN
FLOV 10
10.6.8 Function FUNCTA
This function interpolates the accelerogram data for a particular time step. AFACT is the ratio of the accelerogram record time step length to the computational time step length.
FUNCTION FUNCTA (ACCER, AFACT, DTEND, DTIME, IFUNC, JSTEP) FUNA 1
C*******************************
C
C*** ACCELEROGRAM INTERPOLATION FUNA 2
C
C*******************************
DIMENSION ACCER(1) FUNA 3
IF(IFUNC.NE.0) RETURN FUNA 4
FUNCTA=0.0 FUNA 5
IF(JSTEP.EQ.0.OR.FLOAT(JSTEP)*DTIME.GT.DTEND) RETURN FUNA 6
XGASH=(FLOAT(JSTEP)-1.0)/AFACT+1.0 FUNA 7
MGASH=XGASH FUNA 8
NGASH=MGASH+1 FUNA 9
XGASH=XGASH-FLOAT(MGASH) FUNA 10
FUNCTA=ACCER(MGASH)*(1.0-XGASH)+XGASH*ACCER(NGASH) FUNA 11
RETURN FUNA 12
END FUNA 13
FUNA 14
FUNA 15
FUNA 16
FUNA 17
10.6.9 Function FUNCTS
This function sets the value of the time varying function for a particular time step. Heaviside functions (f(t) = 1.0 \ H(t)) or harmonic functions, (f(t) = a - b \sin \omega t) can be specified.
FUNCTION FUNCTS (AZERO,BZERO,DTEND,DTIME,IFUNC,JSTEP,OMEGA) FUNS 1
C************************** FUNS 2
C FUNS 3
C*** HEAVISIDE AND HARMONIC TIME FUNCTION FUNS 4
C FUNS 5
C************************** FUNS 6
IF(IFUNC.EQ.0) RETURN FUNS 7
FUNCTS=0.0 FUNS 8
IF(JSTEP.EQ.0.OR uses FLOAT(JSTEP)*DTIME.GT.DTEND) RETURN FUNS 9
IF(IFUNC.EQ.1) FUNCTS = 1.0 FUNS 10
IF(IFUNC.EQ.2) ARGUM=OMEGA*JSTEP*DTIME FUNS 11
IF(IFUNC.EQ.2) FUNCTS = AZERO + BZERO*SIN(ARGUM) FUNS 12
RETURN FUNS 13
END FUNS 14
10.6.10 Subroutine INPUTD
This subroutine reads and writes most of the control parameters, nodal point coordinates, element connectivities, boundary conditions and material properties. It also writes the geometric data onto file 13 for deformation plotting. A similar routine was described in Chapter 6.
SUBROUTINE INPUTD (COORD, IFPRE, LNODS, MATNO, NCONM, NCRIT, NPUT 1
. NDIME, NDOFN, NELEM, NGAUM, NGAUS, NLAPS, NPUT 2
. NMATS, NNODE, NPOIN, NPREV, NSTRE, NTYPE, NPUT 3
. POSGP, PROPS, WEIGP) NPUT 4
C*******************************
C*******************************
C*******************************
C*** DYNPAK INPUT ROUTINE
C
C*******************************
DIMENSION COORD(NPOIN, 1), IFPRE(NDOFN, 1), WEIGP(1), MATNO(1), NPUT 10
READ(5,913) TITLE NPUT 12
913 FORMAT(10A4) NPUT 13
WRITE(6,914) TITLE NPUT 14
914 FORMAT(//,5X,10A4) NPUT 15
C NPUT 16
C*** READ THE FIRST DATA CARD, AND ECHO IT IMMEDIATELY. NPUT 17
C NPUT 18
READ (5,900) NVFIX,NTYPE,NNODE,NPROP,NGAUS,NDIME,NSTRE,NCRIT, NPREV,NCONM,NLAPS,NGAUM,NRADS NPUT 19
WRITE(6,901) NPOIN,NELEM,NVFIX,NTYPE,NNODE,NDOFN,NMATS,NPROP, NGAUS,NDIME,NSTRE,NCRIT,NPREV,NCONM,NLAPS,NGAUM, NRADS NPUT 20
901 FORMAT (/5X,18HCONTROL PARAMETERS/ NPUT 21
/5X,8H NPOIN =,I10,5X,8H NELEM =,I10,5X,8H NVFIX =,I10/ NPUT 22
/5X,8H NTYPE =,I10,5X,8H NNODE =,I10,5X,8H NDOFN =,I10/ NPUT 23
/5X,8H NMATS =,I10,5X,8H NPROP =,I10,5X,8H NGAUS =,I10/ NPUT 24
/5X,8H NDIME =,I10,5X,8H NSTRE =,I10,5X,8H NCRIT =,I10/ NPUT 25
/5X,8H NPREV =,I10,5X,8H NCONM =,I10,5X,8H NLAPS =,I10/ NPUT 26
/5X,8H NGAUM =,I10,5X,8H NRADS =,I10/) NPUT 27
900 FORMAT(16I5) NPUT 28
NPUT 29
NPUT 30
NPUT 31
NPUT 32
NPUT 33
NPUT 34
NPUT 35
NPUT 36
NPUT 37
NPUT 38
NPUT 39
NPUT 40
NPUT 41
NPUT 42
NPUT 43
NPUT 44
NPUT 45
NPUT 46
NPUT 47
NPUT 48
NPUT 49
NPUT 50
NPUT 51
NPUT 52
NPUT 53
NPUT 54
NPUT 55
NPUT 56
NPUT 57
NPUT 58
NPUT 59
NPUT 60
NPUT 61
NPUT 62
NPUT 63
NPUT 64
NPUT 65
NPUT 66
NPUT 67
NPUT 68
NPUT 69
NPUT 70
NPUT 71
NPUT 72
NPUT 73
NPUT 74
NPUT 75
NPUT 76
NPUT 77
NPUT 78
NPUT 79
NPUT 80
NPUT 81
NPUT 82
NPUT 83
NPUT 84
NPUT 85
NPUT 86
NPUT 87
NPUT 88
NPUT 89
NPUT 90
NPUT 91
NPUT 92
NPUT 93
NPUT 94
NPUT 95
NPUT 96
NPUT 97
NPUT 98
NPUT 99
NPUT 100
NPUT 101
NPUT 102
NPUT 103
NPUT 104
NPUT 105
NPUT 106
NPUT 107
NPUT 108
NPUT 109
NPUT 110
NPUT 111
NPUT 112
NPUT 113
NPUT 114
NPUT 115
NPUT 116
NPUT 117
NPUT 118
NPUT 119
NPUT 120
NPUT 121
NPUT 122
NPUT 123
NPUT 124
NPUT 125
NPUT 126
NPUT 127
NPUT 128
NPUT 129
NPUT 130
NPUT 131
NPUT 132
NPUT 133
NPUT 134
NPUT 135
NPUT 136
NPUT 137
NPUT 138
NPUT 139
NPUT 140
NPUT 141
NPUT 142
NPUT 143
NPUT 144
NPUT 145
NPUT 146
NPUT 147
NPUT 148
NPUT 149
NPUT 150
NPUT 151
NPUT 152
NPUT 153
NPUT 154
NPUT 155
NPUT 156
NPUT 157
NPUT 158
NPUT 159
NPUT 160
NPUT 161
NPUT 162
NPUT 163
NPUT 164
NPUT 165
NPUT 166
NPUT 167
NPUT 168
NPUT 169
NPUT 170
NPUT 171
NPUT 172
NPUT 173
NPUT 174
NPUT 175
NPUT 176
NPUT 177
NPUT 178
NPUT 179
NPUT 180
NPUT 181
NPUT 182
NPUT 183
NPUT 184
NPUT 185
NPUT 186
NPUT 187
NPUT 188
NPUT 189
NPUT 190
NPUT 191
NPUT 192
NPUT 193
NPUT 194
NPUT 195
NPUT 196
NPUT 197
NPUT 198
NPUT 199
NPUT 200
NPUT 201
NPUT 202
NPUT 203
NPUT 204
NPUT 205
NPUT 206
NPUT 207
NPUT 208
NPUT 209
NPUT 210
NPUT 211
NPUT 212
NPUT 213
NPUT 214
NPUT 215
NPUT 216
NPUT 217
NPUT 218
NPUT 219
NPUT 220
NPUT 221
NPUT 222
NPUT 223
NPUT 224
NPUT 225
NPUT 226
NPUT 227
NPUT 228
NPUT 229
NPUT 230
NPUT 231
NPUT 232
NPUT 233
NPUT 234
NPUT 235
NPUT 236
NPUT 237
NPUT 238
NPUT 239
NPUT 240
NPUT 241
NPUT 242
NPUT 243
NPUT 244
NPUT 245
NPUT 246
NPUT 247
NPUT 248
NPUT 249
NPUT 250
NPUT 251
NPUT 252
NPUT 253
NPUT 254
NPUT 255
NPUT 256
NPUT 257
NPUT 258
NPUT 259
NPUT 260
NPUT 261
NPUT 262
NPUT 263
NPUT 264
NPUT 265
NPUT 266
NPUT 267
NPUT 268
NPUT 269
NPUT 270
NPUT 271
NPUT 272
NPUT 273
NPUT 274
NPUT 275
NPUT 276
NPUT 277
NPUT 278
NPUT 279
NPUT 280
NPUT 281
NPUT 282
NPUT 283
NPUT 284
NPUT 285
NPUT 286
NPUT 287
NPUT 288
NPUT 289
NPUT 290
NPUT 291
NPUT 292
NPUT 293
NPUT 294
NPUT 295
NPUT 296
NPUT 297
NPUT 298
NPUT 299
NPUT 300
NPUT 301
NPUT 302
NPUT 303
NPUT 304
NPUT 305
NPUT 306
NPUT 307
NPUT 308
NPUT 309
NPUT 310
NPUT 311
NPUT 312
NPUT 313
NPUT 314
NPUT 315
NPUT 316
NPUT 317
NPUT 318
NPUT 319
NPUT 320
NPUT 321
NPUT 322
NPUT 323
NPUT 324
NPUT 325
NPUT 326
NPUT 327
NPUT 328
NPUT 329
NPUT 330
NPUT 331
NPUT 332
NPUT 333
NPUT 334
NPUT 335
NPUT 336
NPUT 337
NPUT 338
NPUT 339
NPUT 340
NPUT 341
NPUT 342
NPUT 343
NPUT 344
NPUT 345
NPUT 346
NPUT 347
NPUT 348
NPUT 349
NPUT 350
NPUT 351
NPUT 352
NPUT 353
NPUT 354
NPUT 355
NPUT 356
NPUT 357
NPUT 358
NPUT 359
NPUT 360
NPUT 361
NPUT 362
NPUT 363
NPUT 364
NPUT 365
NPUT 366
NPUT 367
NPUT 368
NPUT 369
NPUT 370
NPUT 371
NPUT 372
NPUT 373
NPUT 374
NPUT 375
NPUT 376
NPUT 377
NPUT 378
NPUT 379
NPUT 380
NPUT 381
NPUT 382
NPUT 383
NPUT 384
NPUT 385
NPUT 386
NPUT 387
NPUT 388
NPUT 389
NPUT 390
NPUT 391
NPUT 392
NPUT 393
NPUT 394
NPUT 395
NPUT 396
NPUT 397
NPUT 398
NPUT 399
NPUT 400
NPUT 401
NPUT 402
NPUT 403
NPUT 404
NPUT 405
NPUT 406
NPUT 407
NPUT 408
NPUT 409
NPUT 410
NPUT 411
NPUT 412
NPUT 413
NPUT 414
NPUT 415
NPUT 416
NPUT 417
NPUT 418
NPUT 419
NPUT 420
NPUT 421
NPUT 422
NPUT 423
NPUT 424
NPUT 425
NPUT 426
NPUT 427
NPUT 428
NPUT 429
NPUT 430
NPUT 431
NPUT 432
NPUT 433
NPUT 434
NPUT 435
NPUT 436
NPUT 437
NPUT 438
NPUT 439
NPUT 440
NPUT 441
NPUT 442
NPUT 443
NPUT 444
NPUT 445
NPUT 446
NPUT 447
NPUT 448
NPUT 449
NPUT 450
NPUT 451
NPUT 452
NPUT 453
NPUT 454
NPUT 455
NPUT 456
NPUT 457
NPUT 458
NPUT 459
NPUT 460
NPUT 461
NPUT 462
NPUT 463
NPUT 464
NPUT 465
NPUT 466
NPUT 467
NPUT 468
NPUT 469
NPUT 470
NPUT 471
NPUT 472
NPUT 473
NPUT 474
NPUT 475
NPUT 476
NPUT 477
NPUT 478
NPUT 479
NPUT 480
NPUT 481
NPUT 482
NPUT 483
NPUT 484
NPUT 485
NPUT 486
NPUT 487
NPUT 488
NPUT 489
NPUT 490
NPUT 491
NPUT 492
NPUT 493
NPUT 494
NPUT 495
NPUT 496
NPUT 497
NPUT 498
NPUT 499
NPUT 500
NPUT 501
NPUT 502
NPUT 503
NPUT 504
NPUT 505
NPUT 506
NPUT 507
NPUT 508
NPUT 509
NPUT 510
NPUT 511
NPUT 512
NPUT 513
NPUT 514
NPUT 515
NPUT 516
NPUT 517
NPUT 518
NPUT 519
NPUT 520
NPUT 521
NPUT 522
NPUT 523
NPUT 524
NPUT 525
NPUT 526
NPUT 527
NPUT 528
NPUT 529
NPUT 530
NPUT 531
NPUT 532
NPUT 533
NPUT 534
NPUT 535
NPUT 536
NPUT 537
NPUT 538
NPUT 539
NPUT 540
NPUT 541
NPUT 542
NPUT 543
NPUT 544
NPUT 545
NPUT 546
NPUT 547
NPUT 548
NPUT 549
NPUT 550
NPUT 551
NPUT 552
NPUT 553
NPUT 554
NPUT 555
NPUT 556
NPUT 557
NPUT 558
NPUT 559
NPUT 560
NPUT 561
NPUT 562
NPUT 563
NPUT 564
NPUT 565
NPUT 566
NPUT 567
NPUT 568
NPUT 569
NPUT 570
NPUT 571
NPUT 572
NPUT 573
NPUT 574
NPUT 575
NPUT 576
NPUT 577
NPUT 578
NPUT 579
NPUT 580
NPUT 581
NPUT 582
NPUT 583
NPUT 584
NPUT 585
NPUT 586
NPUT 587
NPUT 588
NPUT 589
NPUT 590
NPUT 591
NPUT 592
NPUT 593
NPUT 594
NPUT 595
NPUT 596
NPUT 597
NPUT 598
NPUT 599
NPUT 600
NPUT 601
NPUT 602
NPUT 603
NPUT 604
NPUT 605
NPUT 606
NPUT 607
NPUT 608
NPUT 609
NPUT 610
NPUT 611
NPUT 612
NPUT 613
NPUT 614
NPUT 615
NPUT 616
NPUT 617
NPUT 618
NPUT 619
NPUT 620
NPUT 621
NPUT 622
NPUT 623
NPUT 624
NPUT 625
NPUT 626
NPUT 627
NPUT 628
NPUT 629
NPUT 630
NPUT 631
NPUT 632
NPUT 633
NPUT 634
NPUT 635
NPUT 636
NPUT 637
NPUT 638
NPUT 639
NPUT 640
NPUT 641
NPUT 642
NPUT 643
NPUT 644
NPUT 645
NPUT 646
NPUT 647
NPUT 648
NPUT 649
NPUT 650
NPUT 651
NPUT 652
NPUT 653
NPUT 654
NPUT 655
NPUT 656
NPUT 657
NPUT 658
NPUT 659
NPUT 660
NPUT 661
NPUT 662
NPUT 663
NPUT 664
NPUT 665
NPUT 666
NPUT 667
NPUT 668
NPUT 669
NPUT 670
NPUT 671
NPUT 672
NPUT 673
NPUT 674
NPUT 675
NPUT 676
NPUT 677
NPUT 678
NPUT 679
NPUT 680
NPUT 681
NPUT 682
NPUT 683
NPUT 684
NPUT 685
NPUT 686
NPUT 687
NPUT 688
NPUT 689
NPUT 690
NPUT 691
NPUT 692
NPUT 693
NPUT 694
NPUT 695
NPUT 696
NPUT 697
NPUT 698
NPUT 699
NPUT 700
NPUT 701
NPUT 702
NPUT 703
NPUT 704
NPUT 705
NPUT 706
NPUT 707
NPUT 708
NPUT 709
NPUT 710
NPUT 711
NPUT 712
NPUT 713
NPUT 714
NPUT 715
NPUT 716
NPUT 717
NPUT 718
NPUT 719
NPUT 720
NPUT 721
NPUT 722
NPUT 723
NPUT 724
NPUT 725
NPUT 726
NPUT 727
NPUT 728
NPUT 729
NPUT 730
NPUT 731
NPUT 732
NPUT 733
NPUT 734
NPUT 735
NPUT 736
NPUT 737
NPUT 738
NPUT 739
NPUT 740
NPUT 741
NPUT 742
NPUT 743
NPUT 744
NPUT 745
NPUT 746
NPUT 747
NPUT 748
NPUT 749
NPUT 750
NPUT 751
NPUT 752
NPUT 753
NPUT 754
NPUT 755
NPUT 756
NPUT 757
NPUT 758
NPUT 759
NPUT 760
NPUT 761
NPUT 762
NPUT 763
NPUT 764
NPUT 765
NPUT 766
NPUT 767
NPUT 768
NPUT 769
NPUT 770
NPUT 771
NPUT 772
NPUT 773
NPUT 774
NPUT 775
NPUT 776
NPUT 777
NPUT 778
NPUT 779
NPUT 780
NPUT 781
NPUT 782
NPUT 783
NPUT 784
NPUT 785
NPUT 786
NPUT 787
NPUT 788
NPUT 789
NPUT 790
NPUT 791
NPUT 792
NPUT 793
NPUT 794
NPUT 795
NPUT 796
NPUT 797
NPUT 798
NPUT 799
NPUT 800
NPUT 801
NPUT 802
NPUT 803
NPUT 804
NPUT 805
NPUT 806
NPUT 807
NPUT 808
NPUT 809
NPUT 810
NPUT 811
NPUT 812
NPUT 813
NPUT 814
NPUT 815
NPUT 816
NPUT 817
NPUT 818
NPUT 819
NPUT 820
NPUT 821
NPUT 822
NPUT 823
NPUT 824
NPUT 825
NPUT 826
NPUT 827
NPUT 828
NPUT 829
NPUT 830
NPUT 831
NPUT 832
NPUT 833
NPUT 834
NPUT 835
NPUT 836
NPUT 837
NPUT 838
NPUT 839
NPUT 840
NPUT 841
NPUT 842
NPUT 843
NPUT 844
NPUT
