Skip to content

Commit 11e30bb

Browse files
authored
Merge pull request #37 from OverheadTransmissionLineSoftware/develop
Develop
2 parents 8e077fc + 15f4f6d commit 11e30bb

41 files changed

Lines changed: 1804 additions & 1028 deletions

Some content is hidden

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

build/codeblocks/otlsmodels_sagtension.cbp

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,18 @@
6565
<Unit filename="../../include/models/sagtension/catenary_cable_unloader.h">
6666
<Option virtualFolder="Header Files/" />
6767
</Unit>
68+
<Unit filename="../../include/models/sagtension/line_cable_loader_base.h">
69+
<Option virtualFolder="Header Files/" />
70+
</Unit>
6871
<Unit filename="../../include/models/sagtension/line_cable_reloader.h">
6972
<Option virtualFolder="Header Files/" />
7073
</Unit>
7174
<Unit filename="../../include/models/sagtension/line_cable_sagger.h">
7275
<Option virtualFolder="Header Files/" />
7376
</Unit>
77+
<Unit filename="../../include/models/sagtension/line_cable_unloader.h">
78+
<Option virtualFolder="Header Files/" />
79+
</Unit>
7480
<Unit filename="../../include/models/sagtension/sag_tension_cable.h">
7581
<Option virtualFolder="Header Files/" />
7682
</Unit>
@@ -92,12 +98,18 @@
9298
<Unit filename="../../src/sagtension/catenary_cable_unloader.cc">
9399
<Option virtualFolder="Source Files/" />
94100
</Unit>
101+
<Unit filename="../../src/sagtension/line_cable_loader_base.cc">
102+
<Option virtualFolder="Source Files/" />
103+
</Unit>
95104
<Unit filename="../../src/sagtension/line_cable_reloader.cc">
96105
<Option virtualFolder="Source Files/" />
97106
</Unit>
98107
<Unit filename="../../src/sagtension/line_cable_sagger.cc">
99108
<Option virtualFolder="Source Files/" />
100109
</Unit>
110+
<Unit filename="../../src/sagtension/line_cable_unloader.cc">
111+
<Option virtualFolder="Source Files/" />
112+
</Unit>
101113
<Unit filename="../../src/sagtension/sag_tension_cable.cc">
102114
<Option virtualFolder="Source Files/" />
103115
</Unit>

build/codeblocks/otlsmodels_transmissionline.cbp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
<Unit filename="../../include/models/transmissionline/cable_position_locator.h">
6161
<Option virtualFolder="Header Files/" />
6262
</Unit>
63-
<Unit filename="../../include/models/transmissionline/cable_unit_load_calculator.h">
63+
<Unit filename="../../include/models/transmissionline/cable_unit_load_solver.h">
6464
<Option virtualFolder="Header Files/" />
6565
</Unit>
6666
<Unit filename="../../include/models/transmissionline/catenary.h">
@@ -102,7 +102,7 @@
102102
<Unit filename="../../src/transmissionline/cable_position_locator.cc">
103103
<Option virtualFolder="Source Files/" />
104104
</Unit>
105-
<Unit filename="../../src/transmissionline/cable_unit_load_calculator.cc">
105+
<Unit filename="../../src/transmissionline/cable_unit_load_solver.cc">
106106
<Option virtualFolder="Source Files/" />
107107
</Unit>
108108
<Unit filename="../../src/transmissionline/catenary.cc">

build/msvc/otlsmodels_sagtension.vcxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,10 @@
6161
<ClInclude Include="..\..\include\models\sagtension\cable_strainer.h" />
6262
<ClInclude Include="..\..\include\models\sagtension\catenary_cable_reloader.h" />
6363
<ClInclude Include="..\..\include\models\sagtension\catenary_cable_unloader.h" />
64+
<ClInclude Include="..\..\include\models\sagtension\line_cable_loader_base.h" />
6465
<ClInclude Include="..\..\include\models\sagtension\line_cable_reloader.h" />
6566
<ClInclude Include="..\..\include\models\sagtension\line_cable_sagger.h" />
67+
<ClInclude Include="..\..\include\models\sagtension\line_cable_unloader.h" />
6668
<ClInclude Include="..\..\include\models\sagtension\sag_tension_cable.h" />
6769
</ItemGroup>
6870
<ItemGroup>
@@ -72,8 +74,10 @@
7274
<ClCompile Include="..\..\src\sagtension\cable_strainer.cc" />
7375
<ClCompile Include="..\..\src\sagtension\catenary_cable_reloader.cc" />
7476
<ClCompile Include="..\..\src\sagtension\catenary_cable_unloader.cc" />
77+
<ClCompile Include="..\..\src\sagtension\line_cable_loader_base.cc" />
7578
<ClCompile Include="..\..\src\sagtension\line_cable_reloader.cc" />
7679
<ClCompile Include="..\..\src\sagtension\line_cable_sagger.cc" />
80+
<ClCompile Include="..\..\src\sagtension\line_cable_unloader.cc" />
7781
<ClCompile Include="..\..\src\sagtension\sag_tension_cable.cc" />
7882
</ItemGroup>
7983
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

build/msvc/otlsmodels_sagtension.vcxproj.filters

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,12 @@
3838
<ClInclude Include="..\..\include\models\sagtension\sag_tension_cable.h">
3939
<Filter>Header Files</Filter>
4040
</ClInclude>
41+
<ClInclude Include="..\..\include\models\sagtension\line_cable_loader_base.h">
42+
<Filter>Header Files</Filter>
43+
</ClInclude>
44+
<ClInclude Include="..\..\include\models\sagtension\line_cable_unloader.h">
45+
<Filter>Header Files</Filter>
46+
</ClInclude>
4147
</ItemGroup>
4248
<ItemGroup>
4349
<ClCompile Include="..\..\src\sagtension\cable_component_elongation_model.cc">
@@ -67,5 +73,11 @@
6773
<ClCompile Include="..\..\src\sagtension\sag_tension_cable.cc">
6874
<Filter>Source Files</Filter>
6975
</ClCompile>
76+
<ClCompile Include="..\..\src\sagtension\line_cable_loader_base.cc">
77+
<Filter>Source Files</Filter>
78+
</ClCompile>
79+
<ClCompile Include="..\..\src\sagtension\line_cable_unloader.cc">
80+
<Filter>Source Files</Filter>
81+
</ClCompile>
7082
</ItemGroup>
7183
</Project>

build/msvc/otlsmodels_transmissionline.vcxproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@
6060
<ClInclude Include="..\..\include\models\transmissionline\cable_attachment_equilibrium_solver.h" />
6161
<ClInclude Include="..\..\include\models\transmissionline\cable_constraint.h" />
6262
<ClInclude Include="..\..\include\models\transmissionline\cable_position_locator.h" />
63-
<ClInclude Include="..\..\include\models\transmissionline\cable_unit_load_calculator.h" />
63+
<ClInclude Include="..\..\include\models\transmissionline\cable_unit_load_solver.h" />
6464
<ClInclude Include="..\..\include\models\transmissionline\catenary.h" />
6565
<ClInclude Include="..\..\include\models\transmissionline\catenary_solver.h" />
6666
<ClInclude Include="..\..\include\models\transmissionline\hardware.h" />
@@ -76,7 +76,7 @@
7676
<ClCompile Include="..\..\src\transmissionline\cable_attachment_equilibrium_solver.cc" />
7777
<ClCompile Include="..\..\src\transmissionline\cable_constraint.cc" />
7878
<ClCompile Include="..\..\src\transmissionline\cable_position_locator.cc" />
79-
<ClCompile Include="..\..\src\transmissionline\cable_unit_load_calculator.cc" />
79+
<ClCompile Include="..\..\src\transmissionline\cable_unit_load_solver.cc" />
8080
<ClCompile Include="..\..\src\transmissionline\catenary.cc" />
8181
<ClCompile Include="..\..\src\transmissionline\catenary_solver.cc" />
8282
<ClCompile Include="..\..\src\transmissionline\hardware.cc" />

build/msvc/otlsmodels_transmissionline.vcxproj.filters

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,6 @@
1717
<ClInclude Include="..\..\include\models\transmissionline\cable_constraint.h">
1818
<Filter>Header Files</Filter>
1919
</ClInclude>
20-
<ClInclude Include="..\..\include\models\transmissionline\cable_unit_load_calculator.h">
21-
<Filter>Header Files</Filter>
22-
</ClInclude>
2320
<ClInclude Include="..\..\include\models\transmissionline\catenary.h">
2421
<Filter>Header Files</Filter>
2522
</ClInclude>
@@ -53,6 +50,9 @@
5350
<ClInclude Include="..\..\include\models\transmissionline\transmission_line.h">
5451
<Filter>Header Files</Filter>
5552
</ClInclude>
53+
<ClInclude Include="..\..\include\models\transmissionline\cable_unit_load_solver.h">
54+
<Filter>Header Files</Filter>
55+
</ClInclude>
5656
</ItemGroup>
5757
<ItemGroup>
5858
<ClCompile Include="..\..\src\transmissionline\cable.cc">
@@ -61,9 +61,6 @@
6161
<ClCompile Include="..\..\src\transmissionline\cable_constraint.cc">
6262
<Filter>Source Files</Filter>
6363
</ClCompile>
64-
<ClCompile Include="..\..\src\transmissionline\cable_unit_load_calculator.cc">
65-
<Filter>Source Files</Filter>
66-
</ClCompile>
6764
<ClCompile Include="..\..\src\transmissionline\catenary.cc">
6865
<Filter>Source Files</Filter>
6966
</ClCompile>
@@ -97,5 +94,8 @@
9794
<ClCompile Include="..\..\src\transmissionline\transmission_line.cc">
9895
<Filter>Source Files</Filter>
9996
</ClCompile>
97+
<ClCompile Include="..\..\src\transmissionline\cable_unit_load_solver.cc">
98+
<Filter>Source Files</Filter>
99+
</ClCompile>
100100
</ItemGroup>
101101
</Project>

docs/doxygen_config

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -745,9 +745,11 @@ WARN_LOGFILE = "./doxygen.log"
745745

746746
INPUT = ../include/models/base \
747747
../include/models/sagtension \
748+
../include/models/thermalrating \
748749
../include/models/transmissionline \
749750
../src/base \
750751
../src/sagtension \
752+
../src/thermalrating \
751753
../src/transmissionline
752754

753755
# This tag can be used to specify the character encoding of the source files

include/models/sagtension/cable_component_elongation_model.h

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -427,6 +427,14 @@ class CableComponentElongationModel {
427427
/// The polynomial that describes the cable component elongation.
428428
Polynomial polynomial_loadstrain_;
429429

430+
/// \var state_
431+
/// The state of the component.
432+
const CableState* state_;
433+
434+
/// \var state_stretch_
435+
/// The state used to stretch the component.
436+
const CableStretchState* state_stretch_;
437+
430438
/// \var strain_thermal_state_
431439
/// The amount of strain due to shifting from reference temperature to the
432440
/// state temperature.
@@ -437,14 +445,6 @@ class CableComponentElongationModel {
437445
/// stretch temperature.
438446
mutable double strain_thermal_stretch_;
439447

440-
/// \var state_
441-
/// The state of the component.
442-
const CableState* state_;
443-
444-
/// \var state_stretch_
445-
/// The state used to stretch the component.
446-
const CableStretchState* state_stretch_;
447-
448448
/// \var temperature_reference_
449449
/// The base reference temperature for the cable component. The polynomial
450450
/// is defined at this temperature.
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
// This is free and unencumbered software released into the public domain.
2+
// For more information, please refer to <http://unlicense.org/>
3+
4+
#ifndef OTLS_MODELS_SAGTENSION_LINECABLELOADERBASE_H_
5+
#define OTLS_MODELS_SAGTENSION_LINECABLELOADERBASE_H_
6+
7+
#include <list>
8+
9+
#include "models/base/error_message.h"
10+
#include "models/sagtension/cable_elongation_model.h"
11+
#include "models/sagtension/sag_tension_cable.h"
12+
#include "models/transmissionline/catenary.h"
13+
#include "models/transmissionline/line_cable.h"
14+
15+
/// \par OVERVIEW
16+
///
17+
/// This class sets up a LineCable for a sag-tension analysis. The process is
18+
/// as follows:
19+
/// - solve for a catenary based on the line cable constraint
20+
/// - solve cable model for the constraint
21+
/// - solve cable models for the stretch conditions
22+
/// - determine the stretch load for each condition
23+
///
24+
/// \par STRETCH
25+
///
26+
/// This class supports multiple forms of stretch, including:
27+
/// - short term, heavy load stretch
28+
/// - long term, creep stretch
29+
///
30+
/// \par LINE CABLE GEOMETRY
31+
///
32+
/// This class uses the ruling span geometry defined in the line cable.
33+
class LineCableLoaderBase {
34+
public:
35+
/// \brief Default constructor.
36+
LineCableLoaderBase();
37+
38+
/// \brief Destructor.
39+
~LineCableLoaderBase();
40+
41+
/// \brief Gets the stretch state for the creep condition.
42+
/// \return The stretch state for the creep condition.
43+
CableStretchState StretchStateCreep() const;
44+
45+
/// \brief Gets the stretch state for the load condition.
46+
/// \return The stretch state for the load condition.
47+
CableStretchState StretchStateLoad() const;
48+
49+
/// \brief Validates member variables.
50+
/// \param[in] is_included_warnings
51+
/// A flag that tightens the acceptable value range.
52+
/// \param[in,out] messages
53+
/// A list of detailed error messages. If this is provided, any validation
54+
/// errors will be appended to the list.
55+
/// \return A boolean value indicating status of member variables.
56+
bool Validate(const bool& is_included_warnings = true,
57+
std::list<ErrorMessage>* messages = nullptr) const;
58+
59+
/// \brief Gets the line cable.
60+
/// \return The line cable.
61+
const LineCable* line_cable() const;
62+
63+
/// \brief Sets the line cable.
64+
/// \param[in] line_cable
65+
/// The line cable.
66+
void set_line_cable(const LineCable* line_cable);
67+
68+
protected:
69+
/// \brief Initializes the models defined in the line cable.
70+
/// \return The success status of the update.
71+
/// This function initializes the cable models with the correct temperature
72+
/// and polynomial, but does not solve for any stretch.
73+
bool InitializeLineCableModels() const;
74+
75+
/// \brief Determines if class is updated.
76+
/// \return A boolean indicating if class is updated.
77+
virtual bool IsUpdated() const;
78+
79+
/// \brief Calculates the unit load of the catenary.
80+
/// \param[in] weathercase
81+
/// The weather case.
82+
/// \return The unit loading of the cable.
83+
Vector3d UnitLoad(const WeatherLoadCase& weathercase) const;
84+
85+
/// \brief Updates cached member variables and modifies control variables if
86+
/// update is required.
87+
/// \return A boolean indicating if class updates completed successfully.
88+
virtual bool Update() const;
89+
90+
/// \brief Updates the constraint cable model.
91+
/// \return The success status of the update.
92+
/// This function further updates the constraint cable model to include any
93+
/// stretch.
94+
bool UpdateConstraintCableModel() const;
95+
96+
/// \brief Updates the constraint catenary.
97+
/// \return The success status of the update.
98+
bool UpdateConstraintCatenary() const;
99+
100+
/// \brief Updates the stretch due to load and creep.
101+
/// \return The success status of the update.
102+
bool UpdateLoadStretch() const;
103+
104+
/// \var cable_sagtension_
105+
/// The cable, which is referenced for sag-tension methods.
106+
SagTensionCable cable_sagtension_;
107+
108+
/// \var catenary_constraint_
109+
/// The catenary for the line cable constraint.
110+
mutable Catenary3d catenary_constraint_;
111+
112+
/// \var is_updated_catenary_constraint_
113+
/// An indicator that tells if the constraint catenary cable is updated.
114+
mutable bool is_updated_catenary_constraint_;
115+
116+
/// \var is_updated_stretch_
117+
/// An indicator that tells if the stretch load is updated.
118+
mutable bool is_updated_stretch_;
119+
120+
/// \var line_cable_
121+
/// The line cable that is being reloaded.
122+
const LineCable* line_cable_;
123+
124+
/// \var model_constraint_
125+
/// The cable model for the constraint weathercase. This model may contain
126+
/// stretch, depending on the constraint condition.
127+
mutable CableElongationModel model_constraint_;
128+
129+
/// \var model_creep_
130+
/// The cable model used for solving creep stretch. This model will always
131+
/// contain zero stretch to ensure that only the polynomial is referenced.
132+
mutable CableElongationModel model_creep_;
133+
134+
/// \var model_load_
135+
/// The cable model used for solving heavy load stretch. This model will
136+
/// always contain zero stretch to ensure that only the polynomial is
137+
/// referenced.
138+
mutable CableElongationModel model_load_;
139+
140+
/// \var state_stretch_creep_
141+
/// The stretch state for the creep condition.
142+
mutable CableStretchState state_stretch_creep_;
143+
144+
/// \var state_stretch_load_;
145+
/// The stretch state for the load condition.
146+
mutable CableStretchState state_stretch_load_;
147+
};
148+
149+
#endif // OTLS_MODELS_SAGTENSION_LINECABLELOADERBASE_H_

0 commit comments

Comments
 (0)