| 1571 | |
| 1572 | |
| 1573 | double |
| 1574 | FiberSection3dThermal::determineFiberTemperature(const Vector& DataMixed, double fiberLocy, double fiberLocz) |
| 1575 | { |
| 1576 | double FiberTemperature = 0; |
| 1577 | if(DataMixed.Size()==18){ |
| 1578 | //--------------if temperature Data has 18 elements-------------------- |
| 1579 | if ( fabs(DataMixed(1)) <= 1e-10 && fabs(DataMixed(17)) <= 1e-10 ) //no tempe load |
| 1580 | { |
| 1581 | return 0 ; |
| 1582 | } |
| 1583 | |
| 1584 | double dataTempe[18]; //PK changed 18 to 27 to pass max temps |
| 1585 | for (int i = 0; i < 18; i++) { |
| 1586 | dataTempe[i] = DataMixed(i); |
| 1587 | } |
| 1588 | |
| 1589 | if ( fiberLocy <= dataTempe[1]) |
| 1590 | { |
| 1591 | opserr <<"FiberSection2dThermal::setTrialSectionDeformationTemperature -- fiber loc is out of the section"; |
| 1592 | } |
| 1593 | else if (fiberLocy <= dataTempe[3]) |
| 1594 | { |
| 1595 | FiberTemperature = dataTempe[0] - (dataTempe[1] - fiberLocy) * (dataTempe[0] - dataTempe[2])/(dataTempe[1] - dataTempe[3]); |
| 1596 | } |
| 1597 | else if ( fiberLocy <= dataTempe[5] ) |
| 1598 | { |
| 1599 | FiberTemperature = dataTempe[2] - (dataTempe[3] - fiberLocy) * (dataTempe[2] - dataTempe[4])/(dataTempe[3] - dataTempe[5]); |
| 1600 | } |
| 1601 | else if ( fiberLocy <= dataTempe[7] ) |
| 1602 | { |
| 1603 | FiberTemperature = dataTempe[4] - (dataTempe[5] - fiberLocy) * (dataTempe[4] - dataTempe[6])/(dataTempe[5] - dataTempe[7]); |
| 1604 | } |
| 1605 | else if ( fiberLocy <= dataTempe[9] ) |
| 1606 | { |
| 1607 | FiberTemperature = dataTempe[6] - (dataTempe[7] - fiberLocy) * (dataTempe[6] - dataTempe[8])/(dataTempe[7] - dataTempe[9]); |
| 1608 | } |
| 1609 | else if (fiberLocy <= dataTempe[11] ) |
| 1610 | { |
| 1611 | FiberTemperature = dataTempe[8] - (dataTempe[9] - fiberLocy) * (dataTempe[8] - dataTempe[10])/(dataTempe[9] - dataTempe[11]); |
| 1612 | } |
| 1613 | else if (fiberLocy <= dataTempe[13] ) |
| 1614 | { |
| 1615 | FiberTemperature = dataTempe[10] - (dataTempe[11] - fiberLocy) * (dataTempe[10] - dataTempe[12])/(dataTempe[11] - dataTempe[13]); |
| 1616 | } |
| 1617 | else if (fiberLocy <= dataTempe[15] ) |
| 1618 | { |
| 1619 | FiberTemperature = dataTempe[12] - (dataTempe[13] - fiberLocy) * (dataTempe[12] - dataTempe[14])/(dataTempe[13] - dataTempe[15]); |
| 1620 | } |
| 1621 | else if ( fiberLocy <= dataTempe[17] ) |
| 1622 | { |
| 1623 | FiberTemperature = dataTempe[14] - (dataTempe[15] - fiberLocy) * (dataTempe[14] - dataTempe[16])/(dataTempe[15] - dataTempe[17]); |
| 1624 | } |
| 1625 | else |
| 1626 | { |
| 1627 | opserr <<"FiberSection3dThermal::setTrialSectionDeformation -- fiber loc " <<fiberLocy<<" is out of the section"<<endln; |
| 1628 | } |
| 1629 | } |
| 1630 | else if(DataMixed.Size()==25){ |
no test coverage detected