Skip to content

Commit 8e077fc

Browse files
authored
Merge pull request #36 from OverheadTransmissionLineSoftware/develop
Develop
2 parents 68dc113 + 0516c1f commit 8e077fc

57 files changed

Lines changed: 4070 additions & 79 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
*.idb
2222
*.ilk
2323
*.iobj
24+
*.ipch
2425
*.ipdb
2526
*.lastbuildstate
2627
*.opendb

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ This library contains classes/methods that model cable sag-tension behavior.
3131
* Load and creep stretch
3232
* Resolving multiple tension constraints
3333

34+
### ThermalRating
35+
This library contains classes/methods that model cable thermal behavior.
36+
* Steady-state current and temperature
37+
* Transient temperature
38+
3439
## Branches
3540
The master branch contains stable code most of the time, but it's best to use
3641
specific [releases](https://github.com/OverheadTransmissionLineSoftware/Models/releases)

build/codeblocks/otlsmodels.workspace

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
<Depends filename="otlsmodels_base.cbp" />
77
<Depends filename="otlsmodels_transmissionline.cbp" />
88
</Project>
9+
<Project filename="otlsmodels_thermalrating.cbp">
10+
<Depends filename="otlsmodels_base.cbp" />
11+
<Depends filename="otlsmodels_transmissionline.cbp" />
12+
</Project>
913
<Project filename="otlsmodels_transmissionline.cbp">
1014
<Depends filename="otlsmodels_base.cbp" />
1115
</Project>
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
2+
<CodeBlocks_project_file>
3+
<FileVersion major="1" minor="6" />
4+
<Project>
5+
<Option title="otlsmodels_thermalrating" />
6+
<Option pch_mode="2" />
7+
<Option compiler="gcc" />
8+
<Option virtualFolders="Header Files/;Source Files/;" />
9+
<Build>
10+
<Target title="debug">
11+
<Option output="debug/otlsmodels_thermalratingd" prefix_auto="1" extension_auto="1" />
12+
<Option working_dir="" />
13+
<Option object_output="debug/otlsmodels_thermalrating/" />
14+
<Option external_deps="debug/libotlsmodels_transmissionlined.a" />
15+
<Option type="2" />
16+
<Option compiler="gcc" />
17+
<Compiler>
18+
<Add option="-g" />
19+
</Compiler>
20+
<Linker>
21+
<Add library="debug/libotlsmodels_based.a" />
22+
<Add library="debug/libotlsmodels_transmissionlined.a" />
23+
</Linker>
24+
</Target>
25+
<Target title="release">
26+
<Option output="release/otlsmodels_thermalrating" prefix_auto="1" extension_auto="1" />
27+
<Option working_dir="" />
28+
<Option object_output="release/otlsmodels_thermalrating/" />
29+
<Option external_deps="release/libotlsmodels_transmissionline.a" />
30+
<Option type="2" />
31+
<Option compiler="gcc" />
32+
<Compiler>
33+
<Add option="-O2" />
34+
</Compiler>
35+
<Linker>
36+
<Add option="-s" />
37+
<Add library="release/libotlsmodels_base.a" />
38+
<Add library="release/libotlsmodels_transmissionline.a" />
39+
</Linker>
40+
</Target>
41+
</Build>
42+
<Compiler>
43+
<Add option="-std=c++11" />
44+
<Add option="-Wall" />
45+
<Add directory="../../include" />
46+
</Compiler>
47+
<Linker>
48+
<Add directory="../../" />
49+
</Linker>
50+
<Unit filename="../../include/models/thermalrating/cable_heat_transfer_solver.h">
51+
<Option virtualFolder="Header Files/" />
52+
</Unit>
53+
<Unit filename="../../include/models/thermalrating/cable_heat_transfer_state.h">
54+
<Option virtualFolder="Header Files/" />
55+
</Unit>
56+
<Unit filename="../../include/models/thermalrating/solar_radiation_solver.h">
57+
<Option virtualFolder="Header Files/" />
58+
</Unit>
59+
<Unit filename="../../include/models/thermalrating/steady_cable_current_solver.h">
60+
<Option virtualFolder="Header Files/" />
61+
</Unit>
62+
<Unit filename="../../include/models/thermalrating/steady_cable_temperature_solver.h">
63+
<Option virtualFolder="Header Files/" />
64+
</Unit>
65+
<Unit filename="../../include/models/thermalrating/thermal_rating_cable.h">
66+
<Option virtualFolder="Header Files/" />
67+
</Unit>
68+
<Unit filename="../../include/models/thermalrating/thermal_rating_weather.h">
69+
<Option virtualFolder="Header Files/" />
70+
</Unit>
71+
<Unit filename="../../include/models/thermalrating/transient_cable_temperature_solver.h">
72+
<Option virtualFolder="Header Files/" />
73+
</Unit>
74+
<Unit filename="../../src/thermalrating/cable_heat_transfer_solver.cc">
75+
<Option virtualFolder="Source Files/" />
76+
</Unit>
77+
<Unit filename="../../src/thermalrating/cable_heat_transfer_state.cc">
78+
<Option virtualFolder="Source Files/" />
79+
</Unit>
80+
<Unit filename="../../src/thermalrating/solar_radiation_solver.cc">
81+
<Option virtualFolder="Source Files/" />
82+
</Unit>
83+
<Unit filename="../../src/thermalrating/steady_cable_current_solver.cc">
84+
<Option virtualFolder="Source Files/" />
85+
</Unit>
86+
<Unit filename="../../src/thermalrating/steady_cable_temperature_solver.cc">
87+
<Option virtualFolder="Source Files/" />
88+
</Unit>
89+
<Unit filename="../../src/thermalrating/thermal_rating_cable.cc">
90+
<Option virtualFolder="Source Files/" />
91+
</Unit>
92+
<Unit filename="../../src/thermalrating/thermal_rating_weather.cc">
93+
<Option virtualFolder="Source Files/" />
94+
</Unit>
95+
<Unit filename="../../src/thermalrating/transient_cable_temperature_solver.cc">
96+
<Option virtualFolder="Source Files/" />
97+
</Unit>
98+
<Extensions>
99+
<code_completion />
100+
<debugger />
101+
</Extensions>
102+
</Project>
103+
</CodeBlocks_project_file>

build/msvc/otlsmodels.sln

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 14
4-
VisualStudioVersion = 14.0.25123.0
3+
# Visual Studio 15
4+
VisualStudioVersion = 15.0.26730.16
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "otlsmodels_base", "otlsmodels_base.vcxproj", "{8A3681DE-D718-4B86-8820-FA5074B58934}"
77
EndProject
@@ -16,6 +16,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "otlsmodels_sagtension", "ot
1616
{8A3681DE-D718-4B86-8820-FA5074B58934} = {8A3681DE-D718-4B86-8820-FA5074B58934}
1717
EndProjectSection
1818
EndProject
19+
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "otlsmodels_thermalrating", "otlsmodels_thermalrating.vcxproj", "{55742003-5DC6-4C75-B732-AE0B7A2C5114}"
20+
ProjectSection(ProjectDependencies) = postProject
21+
{EC902B82-BEAF-4F88-8A05-2675850D5B74} = {EC902B82-BEAF-4F88-8A05-2675850D5B74}
22+
{8A3681DE-D718-4B86-8820-FA5074B58934} = {8A3681DE-D718-4B86-8820-FA5074B58934}
23+
EndProjectSection
24+
EndProject
1925
Global
2026
GlobalSection(SolutionConfigurationPlatforms) = preSolution
2127
Debug|x64 = Debug|x64
@@ -34,8 +40,15 @@ Global
3440
{DFAEC1D3-FFF8-4817-92B7-B3767AE0DCF1}.Debug|x64.Build.0 = Debug|x64
3541
{DFAEC1D3-FFF8-4817-92B7-B3767AE0DCF1}.Release|x64.ActiveCfg = Release|x64
3642
{DFAEC1D3-FFF8-4817-92B7-B3767AE0DCF1}.Release|x64.Build.0 = Release|x64
43+
{55742003-5DC6-4C75-B732-AE0B7A2C5114}.Debug|x64.ActiveCfg = Debug|x64
44+
{55742003-5DC6-4C75-B732-AE0B7A2C5114}.Debug|x64.Build.0 = Debug|x64
45+
{55742003-5DC6-4C75-B732-AE0B7A2C5114}.Release|x64.ActiveCfg = Release|x64
46+
{55742003-5DC6-4C75-B732-AE0B7A2C5114}.Release|x64.Build.0 = Release|x64
3747
EndGlobalSection
3848
GlobalSection(SolutionProperties) = preSolution
3949
HideSolutionNode = FALSE
4050
EndGlobalSection
51+
GlobalSection(ExtensibilityGlobals) = postSolution
52+
SolutionGuid = {034D8927-BE1F-442E-B3AA-878A197C862E}
53+
EndGlobalSection
4154
EndGlobal
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup Label="ProjectConfigurations">
4+
<ProjectConfiguration Include="Debug|x64">
5+
<Configuration>Debug</Configuration>
6+
<Platform>x64</Platform>
7+
</ProjectConfiguration>
8+
<ProjectConfiguration Include="Release|x64">
9+
<Configuration>Release</Configuration>
10+
<Platform>x64</Platform>
11+
</ProjectConfiguration>
12+
</ItemGroup>
13+
<PropertyGroup Label="Globals">
14+
<VCProjectVersion>15.0</VCProjectVersion>
15+
<ProjectGuid>{55742003-5DC6-4C75-B732-AE0B7A2C5114}</ProjectGuid>
16+
<RootNamespace>otlsmodels_thermalrating</RootNamespace>
17+
<WindowsTargetPlatformVersion>8.1</WindowsTargetPlatformVersion>
18+
</PropertyGroup>
19+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
20+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
21+
<ConfigurationType>StaticLibrary</ConfigurationType>
22+
<UseDebugLibraries>true</UseDebugLibraries>
23+
<PlatformToolset>v141</PlatformToolset>
24+
<CharacterSet>Unicode</CharacterSet>
25+
</PropertyGroup>
26+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
27+
<ConfigurationType>StaticLibrary</ConfigurationType>
28+
<UseDebugLibraries>false</UseDebugLibraries>
29+
<PlatformToolset>v141</PlatformToolset>
30+
<WholeProgramOptimization>false</WholeProgramOptimization>
31+
<CharacterSet>Unicode</CharacterSet>
32+
</PropertyGroup>
33+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
34+
<ImportGroup Label="ExtensionSettings">
35+
</ImportGroup>
36+
<ImportGroup Label="Shared">
37+
</ImportGroup>
38+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
39+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
40+
</ImportGroup>
41+
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
42+
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
43+
</ImportGroup>
44+
<PropertyGroup Label="UserMacros" />
45+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
46+
<OutDir>$(ProjectDir)\$(Configuration)\</OutDir>
47+
<IntDir>$(ProjectDir)\$(Configuration)\$(ProjectName)\</IntDir>
48+
<TargetName>$(ProjectName)d</TargetName>
49+
</PropertyGroup>
50+
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
51+
<OutDir>$(ProjectDir)\$(Configuration)\</OutDir>
52+
<IntDir>$(ProjectDir)\$(Configuration)\$(ProjectName)\</IntDir>
53+
</PropertyGroup>
54+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
55+
<ClCompile>
56+
<Optimization>Disabled</Optimization>
57+
<MultiProcessorCompilation>true</MultiProcessorCompilation>
58+
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
59+
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
60+
<MinimalRebuild>false</MinimalRebuild>
61+
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
62+
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
63+
</ClCompile>
64+
</ItemDefinitionGroup>
65+
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
66+
<ClCompile>
67+
<Optimization>MaxSpeed</Optimization>
68+
<MultiProcessorCompilation>true</MultiProcessorCompilation>
69+
<AdditionalIncludeDirectories>..\..\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
70+
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
71+
</ClCompile>
72+
<Link>
73+
<EnableCOMDATFolding>true</EnableCOMDATFolding>
74+
<OptimizeReferences>true</OptimizeReferences>
75+
</Link>
76+
</ItemDefinitionGroup>
77+
<ItemGroup>
78+
<ClInclude Include="..\..\include\models\thermalrating\cable_heat_transfer_solver.h" />
79+
<ClInclude Include="..\..\include\models\thermalrating\cable_heat_transfer_state.h" />
80+
<ClInclude Include="..\..\include\models\thermalrating\solar_radiation_solver.h" />
81+
<ClInclude Include="..\..\include\models\thermalrating\steady_cable_current_solver.h" />
82+
<ClInclude Include="..\..\include\models\thermalrating\steady_cable_temperature_solver.h" />
83+
<ClInclude Include="..\..\include\models\thermalrating\thermal_rating_cable.h" />
84+
<ClInclude Include="..\..\include\models\thermalrating\thermal_rating_weather.h" />
85+
<ClInclude Include="..\..\include\models\thermalrating\transient_cable_temperature_solver.h" />
86+
</ItemGroup>
87+
<ItemGroup>
88+
<ClCompile Include="..\..\src\thermalrating\cable_heat_transfer_solver.cc" />
89+
<ClCompile Include="..\..\src\thermalrating\cable_heat_transfer_state.cc" />
90+
<ClCompile Include="..\..\src\thermalrating\solar_radiation_solver.cc" />
91+
<ClCompile Include="..\..\src\thermalrating\steady_cable_current_solver.cc" />
92+
<ClCompile Include="..\..\src\thermalrating\steady_cable_temperature_solver.cc" />
93+
<ClCompile Include="..\..\src\thermalrating\thermal_rating_cable.cc" />
94+
<ClCompile Include="..\..\src\thermalrating\thermal_rating_weather.cc" />
95+
<ClCompile Include="..\..\src\thermalrating\transient_cable_temperature_solver.cc" />
96+
</ItemGroup>
97+
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
98+
<ImportGroup Label="ExtensionTargets">
99+
</ImportGroup>
100+
</Project>
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3+
<ItemGroup>
4+
<Filter Include="Source Files">
5+
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
6+
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
7+
</Filter>
8+
<Filter Include="Header Files">
9+
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
10+
<Extensions>h;hh;hpp;hxx;hm;inl;inc;xsd</Extensions>
11+
</Filter>
12+
</ItemGroup>
13+
<ItemGroup>
14+
<ClInclude Include="..\..\include\models\thermalrating\cable_heat_transfer_solver.h">
15+
<Filter>Header Files</Filter>
16+
</ClInclude>
17+
<ClInclude Include="..\..\include\models\thermalrating\cable_heat_transfer_state.h">
18+
<Filter>Header Files</Filter>
19+
</ClInclude>
20+
<ClInclude Include="..\..\include\models\thermalrating\solar_radiation_solver.h">
21+
<Filter>Header Files</Filter>
22+
</ClInclude>
23+
<ClInclude Include="..\..\include\models\thermalrating\steady_cable_current_solver.h">
24+
<Filter>Header Files</Filter>
25+
</ClInclude>
26+
<ClInclude Include="..\..\include\models\thermalrating\steady_cable_temperature_solver.h">
27+
<Filter>Header Files</Filter>
28+
</ClInclude>
29+
<ClInclude Include="..\..\include\models\thermalrating\thermal_rating_cable.h">
30+
<Filter>Header Files</Filter>
31+
</ClInclude>
32+
<ClInclude Include="..\..\include\models\thermalrating\thermal_rating_weather.h">
33+
<Filter>Header Files</Filter>
34+
</ClInclude>
35+
<ClInclude Include="..\..\include\models\thermalrating\transient_cable_temperature_solver.h">
36+
<Filter>Header Files</Filter>
37+
</ClInclude>
38+
</ItemGroup>
39+
<ItemGroup>
40+
<ClCompile Include="..\..\src\thermalrating\cable_heat_transfer_solver.cc">
41+
<Filter>Source Files</Filter>
42+
</ClCompile>
43+
<ClCompile Include="..\..\src\thermalrating\cable_heat_transfer_state.cc">
44+
<Filter>Source Files</Filter>
45+
</ClCompile>
46+
<ClCompile Include="..\..\src\thermalrating\solar_radiation_solver.cc">
47+
<Filter>Source Files</Filter>
48+
</ClCompile>
49+
<ClCompile Include="..\..\src\thermalrating\steady_cable_current_solver.cc">
50+
<Filter>Source Files</Filter>
51+
</ClCompile>
52+
<ClCompile Include="..\..\src\thermalrating\steady_cable_temperature_solver.cc">
53+
<Filter>Source Files</Filter>
54+
</ClCompile>
55+
<ClCompile Include="..\..\src\thermalrating\thermal_rating_cable.cc">
56+
<Filter>Source Files</Filter>
57+
</ClCompile>
58+
<ClCompile Include="..\..\src\thermalrating\thermal_rating_weather.cc">
59+
<Filter>Source Files</Filter>
60+
</ClCompile>
61+
<ClCompile Include="..\..\src\thermalrating\transient_cable_temperature_solver.cc">
62+
<Filter>Source Files</Filter>
63+
</ClCompile>
64+
</ItemGroup>
65+
</Project>

include/models/base/helper.h

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,21 @@ std::string DoubleToFormattedString(const double& value,
3636
/// \return If the string is numeric.
3737
bool IsNumeric(const std::string& str);
3838

39+
/// \brief Linearly interpolates/extrapolates a y value.
40+
/// \param[in] x1
41+
/// The x value for the first line point.
42+
/// \param[in] y1
43+
/// The y value for the first line point.
44+
/// \param[in] x2
45+
/// The x value for the second line point.
46+
/// \param[in] y2
47+
/// The y value for the second line point.
48+
/// \param[in] x
49+
/// The x value.
50+
/// \return The y value.
51+
double LinearY(const double& x1, const double& y1,
52+
const double& x2, const double& y2, const double& x);
53+
3954
/// \brief Parses a string.
4055
/// \param[in] str
4156
/// The string.

include/models/base/units.h

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,14 @@ enum class LengthConversionType {
3636
kCentimetersToMeters,
3737
kFeetToInches,
3838
kFeetToMeters,
39+
kFeetToMiles,
3940
kInchesToFeet,
41+
kKilometersToMeters,
4042
kMetersToCentimeters,
4143
kMetersToFeet,
44+
kMetersToKilometers,
4245
kMetersToMillimeters,
46+
kMilesToFeet,
4347
kMillimetersToMeters
4448
};
4549

@@ -175,11 +179,16 @@ double ConvertStress(const double& value,
175179
/// \param[in] is_numerator
176180
/// A boolean indicating if the unit being converted from is in the
177181
/// numerator.
182+
/// \param[in] include_shift
183+
/// A flag that indicates if the value is to be shifted to the new scale
184+
/// datum during the conversion. This flag does not affect how the value is
185+
/// scaled.
178186
/// \return The converted value.
179187
double ConvertTemperature(const double& value,
180188
const TemperatureConversionType& type,
181189
const int& exponent = 1,
182-
const bool& is_numerator = true);
190+
const bool& is_numerator = true,
191+
const bool& include_shift = true);
183192

184193
} // namespace units
185194

0 commit comments

Comments
 (0)