@@ -928,22 +928,28 @@ ElasticBeam2d::addLoad(ElementalLoad *theLoad, double loadFactor)
928928 // fixed end forces due to a linear thermal load
929929 double dT1 = Ttop1-Tbot1;
930930 double dT = (Ttop2-Tbot2)-(Ttop1-Tbot1);
931- double a = alpha/d; // constant based on temp difference at top and bottom,
932- // coefficient of thermal expansion and beam depth
933- double M1 = a*E*I*(-dT1+(4.0 /3.0 )*dT); // Fixed End Moment end 1
934- double M2 = a*E*I*(dT1+(5.0 /3.0 )*dT); // Fixed End Moment end 2
931+ double M1 = 0.0 ; double M2 = 0.0 ;
932+ if (d > 0.0 ) {
933+ double a = alpha/d; // constant based on temp difference at top and bottom,
934+ // coefficient of thermal expansion and beam depth
935+ M1 = a*E*I*(-dT1+(4.0 /3.0 )*dT); // Fixed End Moment end 1
936+ M2 = a*E*I*(dT1+(5.0 /3.0 )*dT); // Fixed End Moment end 2
937+ double M1M2divL =(M1 +M2 )/L; // Fixed End Shear
938+
939+ // Reactions in basic system
940+ // p0[0] += 0;
941+ p0[1 ] += M1M2divL;
942+ p0[2 ] -= M1M2divL;
943+
944+ // Fixed end forces in basic system
945+ q0[1 ] += M1 ;
946+ q0[2 ] += M2 ;
947+ }
948+
935949 double F = alpha*(((Ttop2+Ttop1)/2 +(Tbot2+Tbot1)/2 )/2 )*E*A; // Fixed End Axial Force
936- double M1M2divL =(M1 +M2 )/L; // Fixed End Shear
937-
938- // Reactions in basic system
939- p0[0 ] += 0 ;
940- p0[1 ] += M1M2divL;
941- p0[2 ] -= M1M2divL;
942950
943- // Fixed end forces in basic system
951+ // Fixed end axial force in basic system
944952 q0[0 ] -= F;
945- q0[1 ] += M1 ;
946- q0[2 ] += M2 ;
947953 }
948954
949955 else {
@@ -1287,6 +1293,7 @@ ElasticBeam2d::Print(OPS_Stream &s, int flag)
12871293 s << " \t Connected Nodes: " << connectedExternalNodes ;
12881294 s << " \t CoordTransf: " << theCoordTransf->getTag () << endln;
12891295 s << " \t mass density: " << rho << " , cMass: " << cMass << endln;
1296+ s << " \t alpha: " << alpha << " , depth: " << d << endln;
12901297 s << " \t release code: " << release << endln;
12911298 double P = q (0 );
12921299 double M1 = q (1 );
0 commit comments