Skip to content

Commit 88be703

Browse files
authored
Merge pull request OpenSees#1728 from mhscott/elastic-beam-thermal
Checking for d>0 before computing thermal curvatures
2 parents 0797e84 + 22dcfde commit 88be703

1 file changed

Lines changed: 20 additions & 13 deletions

File tree

SRC/element/elasticBeamColumn/ElasticBeam2d.cpp

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -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 << "\tConnected Nodes: " << connectedExternalNodes ;
12881294
s << "\tCoordTransf: " << theCoordTransf->getTag() << endln;
12891295
s << "\tmass density: " << rho << ", cMass: " << cMass << endln;
1296+
s << "\talpha: " << alpha << ", depth: " << d << endln;
12901297
s << "\trelease code: " << release << endln;
12911298
double P = q(0);
12921299
double M1 = q(1);

0 commit comments

Comments
 (0)