Files
MultiPhysicsVault/.raw/FiniteElementsinPlasticityTheoryandPractice/FiniteElementsinPlasticityTheoryandPractice_020.md
김경종 bd50e09e36
Tests / Hermetic test suite (push) Has been cancelled
Tests / Skill frontmatter validation (push) Has been cancelled
add documents
2026-06-02 11:38:52 +09:00

22 KiB

DERIV(1,7)=(-T+S2+ST2-TT)/4.0 SFR2 62
DERIV(1,8)=(-1.0+TT)/2.0 SFR2 63
DERIV(2,1)=(S+T2-SS-ST2)/4.0 SFR2 64
DERIV(2,2)=(-1.0+SS)/2.0 SFR2 65
DERIV(2,3)=(-S+T2-SS+ST2)/4.0 SFR2 66
DERIV(2,4)=-T-ST SFR2 67
DERIV(2,5)=(S+T2+SS+ST2)/4.0 SFR2 68
DERIV(2,6)=(1.0-SS)/2.0 SFR2 69
DERIV(2,7)=(-S+T2+SS-ST2)/4.0 SFR2 70
DERIV(2,8)=-T+ST SFR2 71
RETURN SFR2 72
30 CONTINUE SFR2 73
SS=S*S SFR2 74
ST=S*T SFR2 75
TT=T*T SFR2 76
S1=S+1.0 SFR2 77
T1=T+1.0 SFR2 78
S2=S*2.0 SFR2 79
T2=T*2.0 SFR2 80
S9=S-1.0 SFR2 81
T9=T-1.0 SFR2 82
C SFR2 83
C*** SHAPE FUNCTIONS FOR 9 NODED ELEMENT SFR2 84
C SFR2 85
SHAPE(1)=0.25*S9*ST*T9 SFR2 86
SHAPE(2)=0.5*(1.0-SS)*T*T9 SFR2 87
SHAPE(3)=0.25*S1*ST*T9 SFR2 88
SHAPE(4)=0.5*S*S1*(1.0-TT) SFR2 89
SHAPE(5)=0.25*S1*ST*T1 SFR2 90
SHAPE(6)=0.5*(1.0-SS)*T*T1 SFR2 91
SHAPE(7)=0.25*S9*ST*T1 SFR2 92
SHAPE(8)=0.5*S*S9*(1.0-TT) SFR2 93
SHAPE(9)=(1.0-SS)*(1.0-TT) SFR2 94
C SFR2 95
C*** SHAPE FUNCTION DERIVATIVES SFR2 96
C SFR2 97
DERIV(1,1)=0.25*T*T9*(-1.0+S2) SFR2 98
DERIV(1,2)=-ST*T9 SFR2 99
DERIV(1,3)=0.25*(1.0+S2)*T*T9 SFR2 100
DERIV(1,4)=0.5*(1.0+S2)*(1.0-TT) SFR2 101
DERIV(1,5)=0.25*(1.0+S2)*T*T1 SFR2 102
DERIV(1,6)=-ST*T1 SFR2 103
DERIV(1,7)=0.25*(-1.0+S2)*T*T1 SFR2 104
DERIV(1,8)=0.5*(-1.0+S2)*(1.0-TT) SFR2 105
DERIV(1,9)=-S2*(1.0-TT) SFR2 106
DERIV(2,1)=0.25*(-1.0+T2)*S*S9 SFR2 107
DERIV(2,2)=0.5*(1.0-SS)*(-1.0+T2) SFR2 108
DERIV(2,3)=0.25*S*S1*(-1.0+T2) SFR2 109
DERIV(2,4)=-ST*S1 SFR2 110
DERIV(2,5)=0.25*S*S1*(1.0+T2) SFR2 111
DERIV(2,6)=0.5*(1.0-SS)*(1.0+T2) SFR2 112
DERIV(2,7)=0.25*S*S9*(1.0+T2) SFR2 113
DERIV(2,8)=-ST*S9 SFR2 114
DERIV(2,9)=-T2*(1.0-SS) SFR2 115
20 CONTINUE SFR2 116
RETURN SFR2 117
END SFR2 118

6.4.4 Subroutine JACOB2 for evaluating the Jacobian matrix

This subroutine calculates, for any sampling position, \xi_{P} , \eta_{P} (usually the Gauss point), the following quantities:

  • The Cartesian coordinates of the Gauss point which are stored in the array GPCOD ( ).
  • The Jacobian matrix which is stored in XJACM ( ). For two-dimensional applications the Jacobian matrix is defined by (6.44).
    ● The determinant of the Jacobian matrix, DJACB.
  • The inverse of the Jacobian matrix which is stored as XJACI ( ).
  • The Cartesian derivatives \partial N_{t}^{(e)} / \partial x , \partial N_{t}^{(e)} / \partial y (or \partial N_{t}^{(e)} / \partial r , \partial N_{t}^{(e)} / \partial z ), of the element shape functions. These quantities are defined in (6.48).
SUBROUTINE JACOB2(CARTD,DERIV,DJACB,ELCOD,GPCOD,IELEM,KGASP, NNODE,SHAPE) JACB 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
CREATE JACOBIAN MATRIX XJACM JACB 21
C
DO 4 IDIME=1,2 JACB 22
DO 4 JDIME=1,2 JACB 23
XJACM(IDIME,JDIME)=0.0 JACB 24
DO 4 INODE=1,NNODE JACB 25
XJACM(IDIME,JDIME)=XJACM(IDIME,JDIME)+DERIV(IDIME,INODE)* JACB 26
ELCOD(JDIME,INODE) JACB 27
4 CONTINUE JACB 28
JACB 29
JACB 30
JACB 31
JACB 32
JACB 33
JACB 34
JACB 35
JACB 36
JACB 37
JACB 38
JACB 39
JACB 40
JACB 41
JACB 42
JACB 43
JACB 44
JACB 45
JACB 46
JACB 47
JACB 48
JACB 49
JACB 50
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
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
D
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
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
O
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
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
M
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
N
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
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3
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
A
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
M
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
J
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
I
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
P
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
B
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
L
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
U
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
S
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
G
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
F
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
E
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
T
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
R
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
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
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 
10 CONTINUEJACB51
600 FORMAT(//,36H PROGRAM HALTED IN SUBROUTINE JACOB2,/,11X, .22H ZERO OR NEGATIVE AREA,/,10X,16H ELEMENT NUMBER ,I5)JACB52
JACB53
RETURNJACB54
ENDJACB55

6.4.5 Subroutine LOADPS for evaluating the element nodal forces for plane and axisymmetric situations

The role of this subroutine is to evaluate the consistent nodal forces for each element due to discrete point loads, gravity loading and distributed edge loading/unit length of element. This subroutine is described in detail in Chapter 7, Ref. 4. The types of loading to be considered are controlled by input parameters IPLOD, IGRAV, IEDGE. Nonzero values of these respective items indicate that point loads, gravity loading or distributed edge loading is to be considered.

The consistent nodal loads are evaluated for each element separately and stored in the array RLOAD (IELEM, IEVAB) where IELEM indicates the element and IEVAB ranges over the degrees of freedom of the element. For equation solution by the frontal process it is not necessary to evaluate the total applied load acting at each node, with instead each element contribution being assembled directly into the global load vector during equation assembly and solution.

Point loads

If parameter IPLOD is nonzero the applied nodal loads are read as input. For each particular node the applied forces are associated with any one of the elements attached to it; since each element contribution will be assembled before equation solution. Thus a search is performed over all elements until the node number is found in an element and the nodal loads are then associated with the appropriate degrees of freedom of that element.

Gravity loading

For plane stress or plane strain problems the direction in which gravity acts need not coincide with either of the coordinate axes. Therefore the direction in which gravity acts must be defined as shown in Fig. 6.7 by specifying the angle \theta which the gravity axis makes with the positive y axis. The intensity of the loading is defined by specifying the gravitational acceleration, g, which acts. For axisymmetric problems, of course, the gravity axis must coincide with the z axis.

The consistent nodal forces for node i of an element are then given by


\left[ \begin{array}{l} P _ {x i} \\ P _ {y i} \end{array} \right] ^ {(e)} = \int_ {\underline {{\Omega}} ^ {(e)}} N _ {i} ^ {(e)} \rho g \left[ \begin{array}{c} \sin \theta \\ - \cos \theta \end{array} \right] d \Omega , \tag {6.61}

in which \rho is the material mass density. Integrated numerically this becomes


\left[ \begin{array}{l} P _ {x t} \\ P _ {y t} \end{array} \right] ^ {(e)} = \sum_ {n = 1} ^ {N G A U S} \sum_ {m = 1} ^ {N G A U S} \rho g t \left[ \begin{array}{c} \sin \theta \\ - \cos \theta \end{array} \right] N _ {t} (\xi_ {n}, \eta_ {m}) W _ {n} W _ {m} \det J, \tag {6.62}

where t is the element thickness for plane problems. For axisymmetric applications t is replaced by 2\pi r_{P} , where r_{P} is the radial distance to the Gauss point under consideration.

text_image

Consideration. η = +1 5 -ξ = +1 η ξ = -1 8 y, z 2 η = -1 3 θ = 0 for axisymmetric problems x, r Direction in which gravity acts

Fig. 6.7 Specification of the gravity axis for two-dimensional problems.

Distributed edge loading

Any element edge can have a distributed loading per unit length in a normal and tangential direction prescribed to it as shown in Fig. 6.8. These distributed forces can vary (independently) along the edges. For the quadratic elements considered in this text, a quadratic loading distribution can, at best, be accommodated. The variation is defined by prescribing the normal and tangential values at the three nodal points forming the element edge to which the loads are applied. For linear quadrilateral elements, only a linear distributed load variation can be accommodated. In order to be consistent with the order of listing of nodal connection numbers in the element topology definition, the three (or two) nodes forming the loaded edge must also be listed in an anticlockwise sequence with respect to the loaded element. The positive directions of normal and tangential loading are indicated in Fig. 6.8.

The consistent nodal forces for node i can be shown to be ^{(4)}


P _ {x i} ^ {(e)} = \int_ {I ^ {(e)}} N _ {i} ^ {(e)} \left(p _ {t} \frac {\dot {c} x}{\dot {c} \xi} - p _ {n} \frac {\dot {c} y}{\dot {c} \xi}\right) d \xi

P _ {y i} ^ {(e)} = \int_ {\Gamma^ {(e)}} N _ {i} ^ {(e)} \left(p _ {n} \frac {\dot {c} x}{\dot {c} \xi} + p _ {t} \frac {\dot {c} y}{\dot {c} \xi}\right) d \xi , \tag {6.63}

where p_{n} and p_{t} are the normal and tangential distributed loads respectively. Integration is taken along the loaded element edge \Gamma^{(e)} , which is arbitrarily chosen to be defined by \eta = -1 , as shown in Fig. 6.8.

text_image

numbering sequence y, z x, r Pn P1 η ξ dy dx dT Pt Pn

Fig. 6.8 Normal and tangential distributed loading on an element edge.

For axisymmetric problems the edge loading is in fact a distributed loading/unit area, since integration is additionally made over the circumferential direction.

If more than one type of loading acts on an element, the total nodal forces are accumulated and stored in array RLOAD. This total loading is then applied incrementally during elasto-plastic solution.

SUBROUTINE LOADPS(COORD, LNODS, MATNO, MELEM, MMATS, MPOIN, NELEM, LDPS 1
. NEVAB, NGAUS, NNODE, NPOIN, NSTRE, NTYPE, POSGP, LDPS 2
. PROPS, RLOAD, WEIGP, NDOFN) LDPS 3
. LDPS 4
C*************** LDPS 5
C LDPS 6
C**** THIS SUBROUTINE EVALUATES THE CONSISTENT NODAL FORCES FOR EACH LDPS 7
C ELEMENT LDPS 8
C LDPS 9
C*************** LDPS 10
DIMENSION CARTD(2,9), COORD(MPOIN,2), DERIV(2,9), DGASH(2), LDPS 11
. DMATX(4,4), ELCOD(2,9), LNODS(MELEM,9), MATNO(MELEM), LDPS 12
. NOPRS(4), PGASH(2), POINT(2), POSGP(4), PRESS(4,2), LDPS 13
. PROPS(MMATS,7), RLOAD(MELEM,18), SHAPE(9), STRAN(4), LDPS 14
. STRES(4), TITLE(12), LDPS 15
. WEIGP(4), GPCOD(2,9) LDPS 16
TWOPI=6.283185308 LDPS 17
DO 10 IELEM=1, NELEM LDPS 18
DO 10 IEVAB=1, NEVAB LDPS 19
10 RLOAD(IELEM,IEVAB)=0.0 LDPS 20
READ(5,901) TITLE LDPS 21
901 FORMAT(12A6) LDPS 22
WRITE(6,903) TITLE LDPS 23
903 FORMAT(1H0,12A6) LDPS 24 
C
C*** READ DATA CONTROLLING LOADING TYPES TO BE INPUTTED
C
READ(5,919) IPLOD,IGRAV,IEDGE
WRITE(6,919) IPLOD,IGRAV,IEDGE
919 FORMAT(3I5)
C
C*** READ NODAL POINT LOADS
C
IF(IPLOD.EQ.0) GO TO 500
20 READ(5,919) LODPT,(POINT(IDOFN),IDOFN=1,2)
WRITE(6,931) LODPT,(POINT(IDOFN),IDOFN=1,2)
931 FORMAT(I5,2F10.3)
C
C*** ASSOCIATE THE NODAL POINT LOADS WITH AN ELEMENT
C
DO 30 IELEM=1,NELEM
DO 30 INODE=1,NNODE
NLOCA=IABS(LNODS(IELEM,INODE))
30 IF(LODPT.EQ.NLOCA) GO TO 40
40 DO 50 IDOFN=1,2
NGASH=(INODE-1)*2+IDOFN
50 RLOAD(IELEM,NGASH)=POINT(IDOFN)
IF(LODPT.LT.NPOIN) GO TO 20
500 CONTINUE
IF(IGRAV.EQ.0) GO TO 600
C
C*** GRAVITY LOADING SECTION
C
C
C*** READ GRAVITY ANGLE AND GRAVITATIONAL CONSTANT
C
READ(5,906) THETA,GRAVY
906 FORMAT(2F10.3)
WRITE(6,911) THETA,GRAVY
911 FORMAT(1H0,16H GRAVITY ANGLE =,F10.3,19H GRAVITY CONSTANT =,F10.3)
THETA=THETA/57.295779514
C
C*** LOOP OVER EACH ELEMENT
C
DO 90 IELEM=1,NELEM
C
C*** SET UP PRELIMINARY CONSTANTS
C
LPROP=MATNO(IELEM)
THICK=PROPS(LPROP,3)
DENSE=PROPS(LPROP,4)
IF(DENSE.EQ.0.0) GO TO 90
GXCOM=DENSE*GRAVY*SIN(THETA)
GYCOM=-DENSE*GRAVY*COS(THETA)
C
C*** COMPUTE COORDINATES OF THE ELEMENT NODAL POINTS
C
DO 60 INODE=1,NNODE
LNODE=IABS(LNODS(IELEM,INODE))
DO 60 IDIME=1,2
60 ELCOD(IDIME,INODE)=COORD(LNODE,IDIME)
C
C*** ENTER LOOPS FOR AREA NUMERICAL INTEGRATION
C
KGASP=0
DO 80 IGAUS=1,NGAUS
DO 80 JGAUS=1,NGAUS
EXISP=POSGP(IGAUS)
ETASP=POSGP(JGAUS)
LDPS 25
LDPS 26
LDPS 27
LDPS 28
LDPS 29
LDPS 30
LDPS 31
LDPS 32
LDPS 33
LDPS 34
LDPS 35
LDPS 36
LDPS 37
LDPS 38
LDPS 39
LDPS 40
LDPS 41
LDPS 42
LDPS 43
LDPS 44
LDPS 45
LDPS 46
LDPS 47
LDPS 48
LDPS 49
LDPS 50
LDPS 51
LDPS 52
LDPS 53
LDPS 54
LDPS 55
LDPS 56
LDPS 57
LDPS 58
LDPS 59
LDPS 60
LDPS 61
LDPS 62
LDPS 63
LDPS 64
LDPS 65
LDPS 66
LDPS 67
LDPS 68
LDPS 69
LDPS 70
LDPS 71
LDPS 72
LDPS 73
LDPS 74
LDPS 75
LDPS 76
LDPS 77
LDPS 78
LDPS 79
LDPS 80
LDPS 81
LDPS 82
LDPS 83
LDPS 84
LDPS 85
LDPS 86
LDPS 87
LDPS 88
LDPS 89 
C
C*** COMPUTE THE SHAPE FUNCTIONS AT THE SAMPLING POINTS AND ELEMENTAL
C VOLUME
C
CALL SFR2(DERIV,ETASP,EXISP,NNODE,SHAPE)
KGASP=KGASP+1
CALL JACOB2(CARTD,DERIV,DJACB,ELCOD,GPCOD,IELEM,KGASP,
NNODE,SHAPE)
DVOLU=DJACB*WEIGP(IGAUS)*WEIGP(JGAUS)
IF(THICK.NE.0.0) DVOLU=DVOLU*THICK
IF(NTYPE.EQ.3) DVOLU=DVOLU*TWOPI*GPCOD(1,KGASP)
C
C*** CALCULATE LOADS AND ASSOCIATE WITH ELEMENT NODAL POINTS
C
DO 70 INODE=1,NNODE
NGASH=(INODE-1)*2+1
MGASH=(INODE-1)*2+2
RLOAD(IELEM,NGASH)=RLOAD(IELEM,NGASH)+GXCOM*SHAPE(INODE)*DVOLU
70 RLOAD(IELEM,MGASH)=RLOAD(IELEM,MGASH)+GYCOM*SHAPE(INODE)*DVOLU
80 CONTINUE
90 CONTINUE
600 CONTINUE
IF(IEDGE.EQ.0) GO TO 700
C
C*** DISTRIBUTED EDGE LOADS SECTION
C
READ(5,932) NEDGE
-932 FORMAT(I5)
WRITE(6,912) NEDGE
912 FORMAT(1H0,5X,21HNO. OF LOADED EDGES =,I5)
WRITE(6,915)
915 FORMAT(1H0,5X,38HLIST OF LOADED EDGES AND APPLIED LOADS)
NODEG=3
NCODE=NNODE
IF(NNODE.EQ.4) NODEG=2
IF(NNODE.EQ.9) NCODE=8
C
C*** LOOP OVER EACH LOADED EDGE
C
DO 160 IEDGE=1,NEDGE
C
C*** READ DATA LOCATING THE LOADED EDGE AND APPLIED LOAD
C
READ(5,902) NEASS,(NOPRS(IODEG),IODEG=1,NODEG)
902 FORMAT(4I5)
WRITE(6,913) NEASS,(NOPRS(IODEG),IODEG=1,NODEG)
913 FORMAT(I10,5X,3I5)
READ(5,914) ((PRESS(IODEG,IDOFN),IDOFN=1,2),IODEG=1,NODEG)
WRITE(6,914) ((PRESS(IODEG,IDOFN),IDOFN=1,2),IODEG=1,NODEG)
914 FORMAT(6F10.3)
ETASP=-1.0
C
C*** CALCULATE THE COORDINATES OF THE NODES OF THE ELEMENT EDGE
C
DO 100 IODEG=1,NODEG
LNODE=NOPRS(IODEG)
DO 100 IDIME=1,2
100 ELCOD(IDIME,IODEG)=COORD(LNODE,IDIME)
C
C*** ENTER LOOP FOR LINEAR NUMERICAL INTEGRATION
DO 150 IGAUS=1,NGAUS
EXISP=POSGP(IGAUS)
C
C*** EVALUATE THE SHAPE FUNCTIONS AT THE SAMPLING POINTS
C 
CALL SFR2(DERIV, ETASP, EXISP, NNODE, SHAPE) LDPS 155
C
C*** CALCULATE COMPONENTS OF THE EQUIVALENT NODAL LOADS LDPS 157
C
DO 110 IDOFN=1,2 LDPS 156
PGASH(IDOFN)=0.0 LDPS 160
DGASH(IDOFN)=0.0 LDPS 161
DO 110 IODEG=1, NODEG LDPS 162
PGASH(IDOFN)=PGASH(IDOFN)+PRESS(IODEG, IDOFN)*SHAPE(IODEG) LDPS 163
110 DGASH(IDOFN)=DGASH(IDOFN)+ELCOD(IDOFN, IODEG)*DERIV(1, IODEG) LDPS 164
DVOLU=WEIGP(IGAUS) LDPS 165
PXCOM=DGASH(1)*PGASH(2)-DGASH(2)*PGASH(1) LDPS 166
PYCOM=DGASH(1)*PGASH(1)+DGASH(2)*PGASH(2) LDPS 167
IF(NTYPE.NE.3) GO TO 115 LDPS 168
RADUS=0.0 LDPS 169
DO 125 IODEG=1, NODEG LDPS 170
125 RADUS=RADIUS+SHAPE(IODEG)*ELCOD(1, IODEG) LDPS 171
DVOLU=DVOLU*TWOPI*RADIUS LDPS 172
115 CONTINUE LDPS 173
C
C*** ASSOCIATE THE EQUIVALENT NODAL EDGE LOADS WITH AN ELEMENT LDPS 175
C
DO 120 INODE=1, NNODE LDPS 176
NLOCA=IABS(LNODS(NEASS, INODE)) LDPS 177
120 IF(NLOCA.EQ.NOPRS(1)) GO TO 130 LDPS 178
130 JNODE=INODE+NODEG-1 LDPS 179
KOUNT=0 LDPS 180
DO 140 KNODE=INODE, JNODE LDPS 181
KOUNT=KOUNT+1 LDPS 182
NGASH=(KNODE-1)*NDOFN+1 LDPS 183
MGASH=(KNODE-1)*NDOFN+2 LDPS 184
IF(KNODE.GT.NCODE) NGASH=1 LDPS 185
IF(KNODE.GT.NCODE) MGASH=2 LDPS 186
RLOAD(NEASS, NGASH)=RLOAD(NEASS, NGASH)+SHAPE(KOUNT)*PXCOM*DVOLU LDPS 187
140 RLOAD(NEASS, MGASH)=RLOAD(NEASS, MGASH)+SHAPE(KOUNT)*PYCOM*DVOLU LDPS 188
150 CONTINUE LDPS 189
160 CONTINUE LDPS 190
700 CONTINUE LDPS 191
WRITE(6,907) LDPS 192
907 FORMAT(1HO,5X,36H TOTAL NODAL FORCES FOR EACH ELEMENT) LDPS 193
DO 290 IELEM=1, NELEM LDPS 194
290 WRITE(6,905) IELEM,(RLOAD(IELEM, IEVAB), IEVAB=1, NEVAB) LDPS 195
905 FORMAT(1X,14,5X,8E12.4/(10X,8E12.4)) LDPS 196
RETURN LDPS 197
END LDPS 198
LDPS 199 

6.4.6 Subroutine LOADPB for evaluating the element nodal forces for plate bending applications

For plate bending applications two forms of loading will be considered. Firstly load components corresponding to the permissible generalised forces may be prescribed at the nodal points. Thus with respect to Fig. 6.9, a load in the z direction and couples acting in both the xz and yz planes may be input at each nodal point. Secondly a uniformly distributed load acting normal to the plate (i.e. in the z direction) may be applied. As in Section 6.4.5 such a loading must be converted into equivalent nodal forces before equation solution takes place. The equivalent nodal forces for node i take the form ^{(4)}


\left[ \begin{array}{l} P _ {i} \\ M _ {x i} \\ M _ {y i} \end{array} \right] ^ {(e)} = \int_ {A ^ {(e)}} N _ {i} ^ {(e)} \left[ \begin{array}{l} q \\ 0 \\ 0 \end{array} \right] d A, \tag {6.64}

where q is the distributed load intensity and integration is taken over the element area. The structure of the subroutine is similar to that of subroutine LOADPS described in Section 6.4.5.

text_image

q/unit area P My Mx z y x

Fig. 6.9 Applied nodal and distributed forces for plate applications

SUBROUTINE LOADPB (COORD, LNODS, MATNO, MELEM, MMATS, MPOIN, LOAD 1
NELEM, NEVAB, NGAUS, NNODE, NPOIN, PROPS, LOAD 2
RLOAD) LOAD 3
C********** LOAD 4
C LOAD 5
C*** COMPUTE NODAL FORCES AFTER READING RELEVANT DATA LOAD 6
C*** FOR MINDLIN PLATE ELEMENTS LOAD 7
C LOAD 8
C********** LOAD 9
DIMENSION CARTD(2,9), COORD(MPOIN,2), DERIV(2,9), ELCOD(2,9), LOAD 10
GPCOD(2,9), LNODS(MELEM,9), MATNO(MELEM), LOAD 11
POINT(3), POSGP(4), PROPS(MMATS,8), RLOAD(MELEM,27), LOAD 12
SHAPE(9), TITLE(12), WEIGP(4) LOAD 13
DO 10 IELEM=1, NELEM LOAD 14
DO 10 IEVAB=1, NEVAB LOAD 15
10 RLOAD(IELEM, IEVAB)=0.0 LOAD 16
READ(5,901) TITLE LOAD 17
901 FORMAT(12A6) LOAD 18
WRITE(6,903) TITLE LOAD 19
903 FORMAT(1H0,12A6) LOAD 20
C LOAD 21
C*** READ DATA CONTROLLING LOADING TYPES TO BE INPUTTED LOAD 22
C LOAD 23
READ(5,919) IPLOD LOAD 24
WRITE(6,919) IPLOD LOAD 25
919 FORMAT(4I5) LOAD 26
C LOAD 27
C*** READ NODAL POINT LOADS LOAD 28
C LOAD 29
IF(IPLOD.EQ.0) GO TO 500 LOAD 30
20 READ(5,931) LODPT, (POINT(IDOFN), IDOFN=1,3) LOAD 31
WRITE(6,931) LODPT, (POINT(IDOFN), IDOFN=1,3) LOAD 32
931 FORMAT(I5,2F10.3) LOAD 33
C LOAD 34 
C*** ASSOCIATE THE NODAL POINT LOADS WITH AN ELEMENT
C
DO 30 IELEM=1,NELEM
DO 30 INODE=1,NNODE
NLOCA=IABS(LNODS(IELEM,INODE))
30 IF(LODPT.EQ.NLOCA) GO TO 40
40 DO 50 IDOFN=1,3
NGASH=(INODE-1)*3+IDOFN
50 RLOAD(IELEM,NGASH)=POINT(IDOFN)
IF(LODPT.LT.NPOIN) GO TO 20
500 CONTINUE
C
C*** LOOP OVER EACH ELEMENT
C
DO 220 IELEM=1,NELEM
LPROP=MATNO(IELEM)
UDLOD=PROPS(LPROP,4)
IF(UDLOD.EQ.0.0)GO TO 220
C
C*** EVALUATE THE COORDINATES OF THE ELEMENT NODAL POINTS
C
DO 140 INODE=1,NNODE
LNODE=LNODS(IELEM,INODE)
LNODE=IABS(LNODE)
DO 140 IDIME=1,2
ELCOD(IDIME,INODE)=COORD(LNODE,IDIME)
140 CONTINUE
KGASP=0
CALL GAUSSQ (NGAUS,POSGP,WEIGP)
C
C*** ENTER LOOPS FOR NUMERICAL INTEGRATION
C
DO 200 IGAUS=1,NGAUS
EXISP=POSGP(IGAUS)
DO 200 JGAUS=1,NGAUS
ETASP=POSGP(JGAUS)
KGASP=KGASP+1
C
C*** EVALUATE THE SHAPE FUNCTIONS AT THE SAMPLING
C POINTS AND ELEMENTAL AREA
C
CALL SFR2 (DERIV,ETASP,EXISP,NNODE,SHAPE)
CALL JACOB2 (CARTD,DERIV,DJACB,ELCOD,GPCOD,IELEM,
KGASP,NNODE,SHAPE)
DAREA=DJACB*WEIGP(IGAUS)*WEIGP(JGAUS)
C
C*** CALCULATE LOADS AND ASSOCIATE WITH ELEMENT NODALPOINTS
C
DO 180 INODE=1,NNODE
NPOSN=(INODE-1)*3+1
RLOAD(IELEM,NPOSN)=RLOAD(IELEM,NPOSN)+
SHAPE(INODE)*UDLOD*DAREA
180 CONTINUE
200 CONTINUE
220 CONTINUE
WRITE(6,907)
907 FORMAT(1H0,5X,36H TOTAL NODAL FORCES FOR EACH ELEMENT)
DO 290 IELEM=1,NELEM
290 WRITE(6,905) IELEM,(RLOAD(IELEM,IEVAB),IEVAB=1,NEVAB)
905 FORMAT(1X,I4,5X,8E12.4/(10X,8E12.4))
RETURN
END
LOAD 35
LOAD 36
LOAD 37
LOAD 38
LOAD 39
LOAD 40
LOAD 41
LOAD 42
LOAD 43
LOAD 44
LOAD 45
LOAD 46
LOAD 47
LOAD 48
LOAD 49
LOAD 50
LOAD 51
LOAD 52
LOAD 53
LOAD 54
LOAD 55
LOAD 56
LOAD 57
LOAD 58
LOAD 59
LOAD 60
LOAD 61
LOAD 62
LOAD 63
LOAD 64
LOAD 65
LOAD 66
LOAD 67
LOAD 68
LOAD 69
LOAD 70
LOAD 71
LOAD 72
LOAD 73
LOAD 74
LOAD 75
LOAD 76
LOAD 77
LOAD 78
LOAD 79
LOAD 80
LOAD 81
LOAD 82
LOAD 83
LOAD 84
LOAD 85
LOAD 86
LOAD 87
LOAD 88
LOAD 89
LOAD 90
LOAD 91
LOAD 92
LOAD 93
LOAD 94
LOAD 95
LOAD 96