| 1058 | } |
| 1059 | |
| 1060 | double |
| 1061 | FiberSectionGJThermal::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){ |
no test coverage detected