code 33303; procedure FEM HERM SYM(X, Y, N, P, Q, R, F, ORDER, E); value N, ORDER; integer N, ORDER; array X, Y, E; real procedure P, Q, R, F; begin integer L, N2, V, W; array A[1:8*(N - 1)], EM[2:3]; real A11, A12, A13, A14, A22, A23, A24, A33, A34, A44, YA, YB, ZA, ZB, B1, B2, B3, B4, D1, D2, E1, R1, R2, XL1, XL; procedure ELEMENTMATVECEVALUATION; if ORDER=4then begin real X2, H, H2, H3, P1, P2, Q1, Q2, R1, R2, F1, F2, B11, B12, B13, B14, B22, B23, B24, B33, B34, B44, S11, S12, S13, S14, S22, S23, S24, S33, S34, S44, M11, M12, M13, M14, M22, M23, M24, M33, M34, M44; own real P3, Q3, R3, F3; H:= XL - XL1; H2:= H*H; H3:= H*H2; X2:= (XL1 + XL)/2; if L=1then begin P3:= P(XL1); Q3:= Q(XL1); R3:= R(XL1); F3:= F(XL1) end; comment ELEMENT BENDING MATRIX; P1:= P3; P2:= P(X2); P3:= P(XL); B11:= 6*(P1 + P3); B12:= 4*P1 + 2*P3; B13:= - B11; B14:= B11 - B12; B22:= (4*P1 + P2 + P3)/1.5; B23:= - B12; B24:= B12 - B22; B33:= B11; B34:= - B14; B44:= B14 - B24; comment ELEMENT STIFFNESS MATRIX; Q1:= Q3; Q2:= Q(X2); Q3:= Q(XL); S11:= 1.5*Q2; S12:= Q2/4; S13:= - S11; S14:= S12; S24:= Q2/24; S22:= Q1/6 + S24; S23:= - S12; S33:= S11; S34:= - S12; S44:= S24 + Q3/6; comment ELEMENT MASS MATRIX; R1:= R3; R2:= R(X2); R3:= R(XL); M11:= (R1 + R2)/6; M12:= R2/24; M13:= R2/6; M14:= - M12; M22:= R2/96; M23:= - M14; M24:= - M22; M33:= (R2 + R3)/6; M34:= M14; M44:= M22; comment ELEMENT LOAD VECTOR; F1:= F3; F2:= F(X2); F3:= F(XL); B1:= H*(F1 + 2*F2)/6; B3:= H*(F3 + 2*F2)/6; B2:= H2*F2/12; B4:= - B2; A11:= B11/H3 + S11/H + M11*H; A12:= B12/H2 + S12 + M12*H2; A13:= B13/H3 + S13/H + M13*H; A14:= B14/H2 + S14 + M14*H2; A22:= B22/H + S22*H + M22*H3; A23:= B23/H2 + S23 + M23*H2; A24:= B24/H + S24*H + M24*H3; A34:= B34/H2 + S34 + M34*H2; A33:= B33/H3 + S33/H + M33*H; A44:= B44/H + S44*H + M44*H3 end else if ORDER=6then begin own real P4, Q4, R4, F4; real H, H2, H3, X2, X3, P1, P2, P3, Q1, Q2, Q3, R1, R2, R3, F1, F2, F3, B11, B12, B13, B14, B15, B22, B23, B24, B25, B33, B34, B35, B44, B45, B55, S11, S12, S13, S14, S15, S22, S23, S24, S25, S33, S34, S35, S44, S45, S55, M11, M12, M13, M14, M15, M22, M23, M24, M25, M33, M34, M35, M44, M45, M55, A15, A25, A35, A45, A55, C1, C2, C3, C4, B5; if L=1then begin P4:= P(XL1); Q4:= Q(XL1); R4:= R(XL1); F4:= F(XL1) end; H:= XL - XL1; H2:= H*H; H3:= H*H2; X2:= 0.27639320225*H + XL1; X3:= XL1 + XL - X2; comment ELEMENT BENDING MATRIX; P1:= P4; P2:= P(X2); P3:= P(X3); P4:= P(XL); B11:= + 4.0333333333333"+1*P1 + 1.1124913866738"-1*P2 + 1.4422084194664"+1*P3 + 8.3333333333333"+0*P4; B12:= + 1.4666666666667"+1*P1 - 3.3191425091659"-1*P2 + 2.7985809175818"+0*P3 + 1.6666666666667"+0*P4; B13:= + 1.8333333333333"+1*(P1+P4) + 1.2666666666667"+0*(P2+P3); B15:= - (B11 + B13); B14:= - (B12 + B13 + B15/2); B22:= + 5.3333333333333"+0*P1 + 9.9027346441674"-1*P2 + 5.4305986891624"-1*P3 + 3.3333333333333"-1*P4; B23:= + 6.6666666666667"+0*P1 - 3.7791278464167"+0*P2 + 2.4579451308295"-1*P3 + 3.6666666666667"+0*P4; B25:= - (B12 + B23); B24:= - (B22 + B23 + B25/2); B33:= + 8.3333333333333"+0*P1 + 1.4422084194666"+1*P2 + 1.1124913866726"-1*P3 + 4.0333333333333"+1*P4; B35:= - (B13 + B33); B34:= - (B23 + B33 + B35/2); B45:= - (B14 + B34); B44:= - (B24 + B34 + B45/2); B55:= - (B15 + B35); comment ELEMENT STIFFNESS MATRIX; Q1:= Q4; Q2:= Q(X2); Q3:= Q(X3); Q4:= Q(XL); S11:= + 2.8844168389330"+0*Q2 + 2.2249827733448"-2*Q3; S12:= + 2.5671051872498"-1*Q2 + 3.2894812749994"-3*Q3; S13:= + 2.5333333333333"-1*(Q2+Q3); S14:= - 3.7453559925005"-2*Q2 - 2.2546440074988"-2*Q3; S15:= - (S13 + S11); S22:= + 8.3333333333333"-2*Q1 + 2.2847006554164"-2*Q2 + 4.8632677916445"-4*Q3; S23:= + 2.2546440075002"-2*Q2 + 3.7453559924873"-2*Q3; S24:= - 3.3333333333333"-3*(Q2+Q3); S25:= - (S12 + S23); S33:= + 2.2249827733471"-2*Q2 + 2.8844168389330"+0*Q3; S34:= - 3.2894812750127"-3*Q2 - 2.5671051872496"-1*Q3; S35:= - (S13 + S33); S44:= + 4.8632677916788"-4*Q2 + 2.2847006554161"-2*Q3 + 8.3333333333338"-2*Q4; S45:= - (S14 + S34); S55:= - (S15 + S35); comment ELEMENT MASS MATRIX; R1:= R4; R2:= R(X2); R3:= R(X3); R4:= R(XL); M11:= + 8.3333333333333"-2*R1 + 1.0129076086083"-1*R2 + 7.3759058058380"-3*R3; M12:= + 1.3296181273333"-2*R2 + 1.3704853933353"-3*R3; M13:= - 2.7333333333333"-2*(R2+R3); M14:= + 5.0786893258335"-3*R2 + 3.5879773408333"-3*R3; M15:= + 1.3147987115999"-1*R2 - 3.5479871159991"-2*R3; M22:= + 1.7453559925000"-3*R2 + 2.5464400750059"-4*R3; M23:= - 3.5879773408336"-3*R2 - 5.0786893258385"-3*R3; M24:= + 6.6666666666667"-4*(R2+R3); M25:= + 1.7259029213333"-2*R2 - 6.5923625466719"-3*R3; M33:= + 7.3759058058380"-3*R2 + 1.0129076086083"-1*R3 + 8.3333333333333"-2*R4; M34:= - 1.3704853933333"-3*R2 - 1.3296181273333"-2*R3; M35:= - 3.5479871159992"-2*R2 + 1.3147987115999"-1*R3; M44:= + 2.5464400750008"-4*R2 + 1.7453559924997"-3*R3; M45:= + 6.5923625466656"-3*R2 - 1.7259029213330"-2*R3; M55:= + .17066666666667"+0*(R2+R3); comment ELEMENT LOAD VECTOR; F1:= F4; F2:= F(X2); F3:= F(X3); F4:= F(XL); B1:= + 8.3333333333333"-2*F1 + 2.0543729868749"-1*F2 - 5.5437298687489"-2*F3; B2:= + 2.6967233145832"-2*F2 - 1.0300566479175"-2*F3; B3:= - 5.5437298687489"-2*F2 + 2.0543729868749"-1*F3 + 8.3333333333333"-2*F4; B4:= + 1.0300566479165"-2*F2 - 2.6967233145830"-2*F3; B5:= + 2.6666666666667"-1*(F2+F3); A11:= H2*(H2*M11 + S11) + B11; A12:= H2*(H2*M12 + S12) + B12; A13:= H2*(H2*M13 + S13) + B13; A14:= H2*(H2*M14 + S14) + B14; A15:= H2*(H2*M15 + S15) + B15; A22:= H2*(H2*M22 + S22) + B22; A23:= H2*(H2*M23 + S23) + B23; A24:= H2*(H2*M24 + S24) + B24; A25:= H2*(H2*M25 + S25) + B25; A33:= H2*(H2*M33 + S33) + B33; A34:= H2*(H2*M34 + S34) + B34; A35:= H2*(H2*M35 + S35) + B35; A44:= H2*(H2*M44 + S44) + B44; A45:= H2*(H2*M45 + S45) + B45; A55:= H2*(H2*M55 + S55) + B55; comment STATIC CONDENSATION; C1:= A15/A55; C2:= A25/A55; C3:= A35/A55; C4:= A45/A55; B1:= (B1 - C1*B5)*H; B2:= (B2 - C2*B5)*H2; B3:= (B3 - C3*B5)*H; B4:= (B4 - C4*B5)*H2; A11:= (A11 - C1*A15)/H3; A12:= (A12 - C1*A25)/H2; A13:= (A13 - C1*A35)/H3; A14:= (A14 - C1*A45)/H2; A22:= (A22 - C2*A25)/H; A23:= (A23 - C2*A35)/H2; A24:= (A24 - C2*A45)/H; A33:= (A33 - C3*A35)/H3; A34:= (A34 - C3*A45)/H2; A44:= (A44 - C4*A45)/H; end else begin own real P5, Q5, R5, F5; real X2, X3, X4, H, H2, H3, P1, P2, P3, P4, Q1, Q2, Q3, Q4, R1, R2, R3, R4, F1, F2, F3, F4, B11, B12, B13, B14, B15, B16, B22, B23, B24, B25, B26, B33, B34, B35, B36, B44, B45, B46, B55, B56, B66, S11, S12, S13, S14, S15, S16, S22, S23, S24, S25, S26, S33, S34, S35, S36, S44, S45, S46, S55, S56, S66, M11, M12, M13, M14, M15, M16, M22, M23, M24, M25, M26, M33, M34, M35, M36, M44, M45, M46, M55, M56, M66, C15, C16, C25, C26, C35, C36, C45, C46, B5, B6, A15, A16, A25, A26, A35, A36, A45, A46, A55, A56, A66, DET; if L=1then begin P5:= P(XL1); Q5:= Q(XL1); R5:= R(XL1); F5:= F(XL1) end; H:= XL - XL1; H2:= H*H; H3:= H*H2; X2:= XL1 + H*.172673164646; X3:= XL1 + H/2; X4:= XL1 + XL - X2; comment ELEMENT BENDING MATRIX; P1:= P5; P2:= P(X2); P3:= P(X3); P4:= P(X4); P5:= P(XL); B11:= + 105.8*P1 + 9.8*P5 + 7.3593121303513"-2*P2 + 2.2755555555556"+1*P3 + 7.0565656088553"+0*P4; B12:= + 27.6*P1 + 1.4*P5 - 3.41554824811"-1*P2 + 2.8444444444444"+0*P3 + 1.0113960946522"+0*P4; B13:= - 32.2*(P1 + P5) - 7.2063492063505"-1*(P2 + P4) + 2.2755555555556"+1*P3; B14:= + 4.6*P1 + 8.4*P5 + 1.0328641222944"-1*P2 - 2.8444444444444"+0*P3 - 3.3445562534992"+0*P4; B15:= - (B11 + B13); B16:= - (B12 + B13 + B14 + B15/2); B22:= + 7.2*P1 + 0.2*P5 + 1.5851984028581"+0*P2 + 3.5555555555556"-1*P3 + 1.4496032730059"-1*P4; B23:= - 8.4*P1 - 4.6*P5 + 3.3445562534992"+0*P2 + 2.8444444444444"+0*P3 - 1.0328641222944"-1*P4; B24:= + 1.2*(P1 + P5) - 4.7936507936508"-1*(P2 + P4) - 3.5555555555556"-1*P3; B25:= - (B12 + B23); B26:= - (B22 + B23 + B24 + B25/2); B33:= + 7.0565656088553"+0*P2 + 2.2755555555556"+1*P3 + 7.3593121303513"-2*P4 + 105.8*P5 + 9.8*P1; B34:= - 1.4*P1 - 27.6*P5 - 1.0113960946522"+0*P2 - 2.8444444444444"+0*P3 + 3.4155482481100"-1*P4; B35:= - (B13 + B33); B36:= - (B23 + B33 + B34 + B35/2); B44:= +7.2*P5 + P1/5 + 1.4496032730059"-1*P2 + 3.5555555555556"-1*P3 + 1.5851984028581"+0*P4; B45:= - (B14 + B34); B46:= - (B24 + B34 + B44 + B45/2); B55:= - (B15 + B35); B56:= - (B16 + B36); B66:= - (B26 + B36 + B46 + B56/2); comment ELEMENT STIFFNESS MATRIX; Q1:= Q5; Q2:= Q(X2); Q3:= Q(X3); Q4:= Q(X4); Q5:= Q(XL); S11:= + 3.0242424037951"+0*Q2 + 3.1539909130065"-2*Q4; S12:= + 1.2575525581744"-1*Q2 + 4.1767169716742"-3*Q4; S13:= - 3.0884353741496"-1*(Q2+Q4); S14:= + 4.0899041243062"-2*Q2 + 1.2842455355577"-2*Q4; S15:= - (S13 + S11); S16:= + 5.9254861177068"-1*Q2 + 6.0512612719116"-2*Q4; S22:= + 5.2292052865422"-3*Q2 + 5.5310763862796"-4*Q4 + Q1/20; S23:= - 1.2842455355577"-2*Q2 - 4.0899041243062"-2*Q4; S24:= + 1.7006802721088"-3*(Q2+Q4); S25:= - (S12 + S23); S26:= + 2.4639593097426"-2*Q2 + 8.0134681270641"-3*Q4; S33:= + 3.1539909130065"-2*Q2 + 3.0242424037951"+0*Q4; S34:= - 4.1767169716742"-3*Q2 - 1.2575525581744"-1*Q4; S35:= - (S13 + S33); S36:= - 6.0512612719116"-2*Q2 - 5.9254861177068"-1*Q4; S44:= + 5.5310763862796"-4*Q2 + 5.2292052865422"-3*Q4 + Q5/20; S45:= - (S14 + S34); S46:= + 8.0134681270641"-3*Q2 + 2.4639593097426"-2*Q4; S55:= - (S15 + S35); S56:= -(S16 + S36); S66:= + 1.1609977324263"-1*(Q2+Q4) + 3.5555555555556"-1*Q3; comment ELEMENT MASS MATRIX; R1:= R5; R2:= R(X2); R3:= R(X3); R4:= R(X4); R5:= R(XL); M11:= + 9.7107020727310"-2*R2 + 1.5810259199180"-3*R4 + R1/20; M12:= + 8.2354889460254"-3*R2 + 2.1932154960071"-4*R4; M13:= + 1.2390670553936"-2*(R2+R4); M14:= - 1.7188466249968"-3*R2 - 1.0508326752939"-3*R4; M15:= + 5.3089789712119"-2*R2 + 6.7741558661060"-3*R4; M16:= - 1.7377712856076"-2*R2 + 2.2173630018466"-3*R4; M22:= + 6.9843846173145"-4*R2 + 3.0424512029349"-5*R4; M23:= + 1.0508326752947"-3*R2 + 1.7188466249936"-3*R4; M24:= - 1.4577259475206"-4*(R2+R4); M25:= + 4.5024589679127"-3*R2 + 9.3971790283374"-4*R4; M26:= - 1.4737756452780"-3*R2 + 3.0759488725998"-4*R4; M33:= + 1.5810259199209"-3*R2 + 9.7107020727290"-2*R4 + R5/20; M34:= - 2.1932154960131"-4*R2 - 8.2354889460254"-3*R4; M35:= + 6.7741558661123"-3*R2 + 5.3089789712112"-2*R4; M36:= - 2.2173630018492"-3*R2 + 1.7377712856071"-2*R4; M44:= + 3.0424512029457"-5*R2 + 6.9843846173158"-4*R4; M45:= - 9.3971790283542"-4*R2 - 4.5024589679131"-3*R4; M46:= + 3.0759488726060"-4*R2 - 1.4737756452778"-3*R4; M55:= + 2.9024943310657"-2*(R2+R4) + 3.5555555555556"-1*R3; M56:= + 9.5006428402050"-3*(R4-R2); M66:= + 3.1098153547125"-3*(R2+R4); comment ELEMENT LOAD VECTOR; F1:= F5; F2:= F(X2); F3:= F(X3); F4:= F(X4); F5:= F(XL); B1:= + 1.6258748099336"-1*F2 + 2.0745852339969"-2*F4 + F1/20; B2:= + 1.3788780589233"-2*F2 + 2.8778860774335"-3*F4; B3:= + 2.0745852339969"-2*F2 + 1.6258748099336"-1*F4 + F5/20; B4:= - 2.8778860774335"-3*F2 - 1.3788780589233"-2*F4; B5:= + (F2 + F4)/11.25 + 3.5555555555556"-1*F3; B6:= + 2.9095718698132"-2*(F4-F2); A11:= H2*(H2*M11 + S11) + B11; A12:= H2*(H2*M12 + S12) + B12; A13:= H2*(H2*M13 + S13) + B13; A14:= H2*(H2*M14 + S14) + B14; A15:= H2*(H2*M15 + S15) + B15; A16:= H2*(H2*M16 + S16) + B16; A22:= H2*(H2*M22 + S22) + B22; A23:= H2*(H2*M23 + S23) + B23; A24:= H2*(H2*M24 + S24) + B24; A25:= H2*(H2*M25 + S25) + B25; A26:= H2*(H2*M26 + S26) + B26; A33:= H2*(H2*M33 + S33) + B33; A34:= H2*(H2*M34 + S34) + B34; A35:= H2*(H2*M35 + S35) + B35; A36:= H2*(H2*M36 + S36) + B36; A44:= H2*(H2*M44 + S44) + B44; A45:= H2*(H2*M45 + S45) + B45; A46:= H2*(H2*M46 + S46) + B46; A55:= H2*(H2*M55 + S55) + B55; A56:= H2*(H2*M56 + S56) + B56; A66:= H2*(H2*M66 + S66) + B66; comment STATIC CONDENSATION; DET:= - A55*A66 + A56*A56; C15:= (A15*A66 - A16*A56)/DET; C16:= (A16*A55 - A15*A56)/DET; C25:= (A25*A66 - A26*A56)/DET; C26:= (A26*A55 - A25*A56)/DET; C35:= (A35*A66 - A36*A56)/DET; C36:= (A36*A55 - A35*A56)/DET; C45:= (A45*A66 - A46*A56)/DET; C46:= (A46*A55 - A45*A56)/DET; A11:= (A11 + C15*A15 + C16*A16)/H3; A12:= (A12 + C15*A25 + C16*A26)/H2; A13:= (A13 + C15*A35 + C16*A36)/H3; A14:= (A14 + C15*A45 + C16*A46)/H2; A22:= (A22 + C25*A25 + C26*A26)/H; A23:= (A23 + C25*A35 + C26*A36)/H2; A24:= (A24 + C25*A45 + C26*A46)/H; A33:= (A33 + C35*A35 + C36*A36)/H3; A34:= (A34 + C35*A45 + C36*A46)/H2; A44:= (A44 + C45*A45 + C46*A46)/H; B1:= (B1 + C15*B5 + C16*B6)*H; B2:= (B2 + C25*B5 + C26*B6)*H2; B3:= (B3 + C35*B5 + C36*B6)*H; B4:= (B4 + C45*B5 + C46*B6)*H2; end EL.MATVECEVAL.; L:= 1; W:= V:= 0; N2:= N + N - 2; XL1:= X[0]; XL:= X[1]; YA:= E[1]; ZA:= E[2]; YB:= E[3]; ZB:= E[4]; ELEMENTMATVECEVALUATION; EM[2]:= "-12; R1:= B3 - A13*YA - A23*ZA; D1:= A33; D2:= A44; R2:= B4 - A14*YA - A24*ZA; E1:= A34; for L:= L + 1while L<N"DO" begin XL1:= XL; XL:= X[L]; ELEMENTMATVECEVALUATION; A[W + 1]:= D1 + A11; A[W + 4]:= E1 + A12; A[W + 7]:= A13; A[W + 10]:= A14; A[W + 5]:= D2 + A22; A[W + 8]:= A23; A[W + 11]:= A24; A[W + 14]:= 0; Y[V + 1]:= R1 + B1; Y[V + 2]:= R2 + B2; R1:= B3; R2:= B4; V:= V + 2; W:= W + 8; D1:= A33; D2:= A44; E1:= A34 end; L:= N; XL1:= XL; XL:= X[L]; ELEMENTMATVECEVALUATION; Y[N2 - 1]:= R1 + B1 - A13*YB - A14*ZB; Y[N2]:= R2 + B2 - A23*YB - A24*ZB; A[W + 1]:= D1 + A11; A[W + 4]:= E1 + A12; A[W + 5]:= D2 + A22; CHLDECSOLBND(A, N2, 3, EM, Y) end FEMHERM; eop