MCPcopy Create free account
hub / github.com/OpenSees/OpenSees / determineFiberTemperature

Method determineFiberTemperature

SRC/material/section/FiberSectionGJThermal.cpp:1060–1191  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1058}
1059
1060double
1061FiberSectionGJThermal::determineFiberTemperature(const Vector& DataMixed, double fiberLocy, double fiberLocz)
1062{
1063 double FiberTemperature = 0;
1064 if(DataMixed.Size()==18){
1065 //--------------if temperature Data has 18 elements--------------------
1066 if ( fabs(DataMixed(1)) <= 1e-10 && fabs(DataMixed(17)) <= 1e-10 ) //no tempe load
1067 {
1068 return 0 ;
1069 }
1070
1071 double dataTempe[18]; //PK changed 18 to 27 to pass max temps
1072 for (int i = 0; i < 18; i++) {
1073 dataTempe[i] = DataMixed(i);
1074 }
1075
1076 if ( fiberLocy <= dataTempe[1])
1077 {
1078 opserr <<"FiberSectionGJThermal "<<this->getTag()<<":: fiber locy "<< fiberLocy <<" is out of the section below "<< dataTempe[1]<<endln;
1079 }
1080 else if (fiberLocy <= dataTempe[3])
1081 {
1082 FiberTemperature = dataTempe[0] - (dataTempe[1] - fiberLocy) * (dataTempe[0] - dataTempe[2])/(dataTempe[1] - dataTempe[3]);
1083 }
1084 else if ( fiberLocy <= dataTempe[5] )
1085 {
1086 FiberTemperature = dataTempe[2] - (dataTempe[3] - fiberLocy) * (dataTempe[2] - dataTempe[4])/(dataTempe[3] - dataTempe[5]);
1087 }
1088 else if ( fiberLocy <= dataTempe[7] )
1089 {
1090 FiberTemperature = dataTempe[4] - (dataTempe[5] - fiberLocy) * (dataTempe[4] - dataTempe[6])/(dataTempe[5] - dataTempe[7]);
1091 }
1092 else if ( fiberLocy <= dataTempe[9] )
1093 {
1094 FiberTemperature = dataTempe[6] - (dataTempe[7] - fiberLocy) * (dataTempe[6] - dataTempe[8])/(dataTempe[7] - dataTempe[9]);
1095 }
1096 else if (fiberLocy <= dataTempe[11] )
1097 {
1098 FiberTemperature = dataTempe[8] - (dataTempe[9] - fiberLocy) * (dataTempe[8] - dataTempe[10])/(dataTempe[9] - dataTempe[11]);
1099 }
1100 else if (fiberLocy <= dataTempe[13] )
1101 {
1102 FiberTemperature = dataTempe[10] - (dataTempe[11] - fiberLocy) * (dataTempe[10] - dataTempe[12])/(dataTempe[11] - dataTempe[13]);
1103 }
1104 else if (fiberLocy <= dataTempe[15] )
1105 {
1106 FiberTemperature = dataTempe[12] - (dataTempe[13] - fiberLocy) * (dataTempe[12] - dataTempe[14])/(dataTempe[13] - dataTempe[15]);
1107 }
1108 else if ( fiberLocy <= dataTempe[17] )
1109 {
1110 FiberTemperature = dataTempe[14] - (dataTempe[15] - fiberLocy) * (dataTempe[14] - dataTempe[16])/(dataTempe[15] - dataTempe[17]);
1111 }
1112 else
1113 {
1114 opserr <<"FiberSectionGJThermal " << this->getTag() << " :: fiber loc " <<fiberLocy<<" is out of the section over" << dataTempe[17] << endln;
1115 }
1116 }
1117 else if(DataMixed.Size()==25){

Callers 2

Calls 2

SizeMethod · 0.45
getTagMethod · 0.45

Tested by

no test coverage detected