Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions build/codeblocks/otlsmodels_sagtension.cbp
Original file line number Diff line number Diff line change
Expand Up @@ -65,12 +65,18 @@
<Unit filename="../../include/models/sagtension/catenary_cable_unloader.h">
<Option virtualFolder="Header Files/" />
</Unit>
<Unit filename="../../include/models/sagtension/line_cable_loader_base.h">
<Option virtualFolder="Header Files/" />
</Unit>
<Unit filename="../../include/models/sagtension/line_cable_reloader.h">
<Option virtualFolder="Header Files/" />
</Unit>
<Unit filename="../../include/models/sagtension/line_cable_sagger.h">
<Option virtualFolder="Header Files/" />
</Unit>
<Unit filename="../../include/models/sagtension/line_cable_unloader.h">
<Option virtualFolder="Header Files/" />
</Unit>
<Unit filename="../../include/models/sagtension/sag_tension_cable.h">
<Option virtualFolder="Header Files/" />
</Unit>
Expand All @@ -92,12 +98,18 @@
<Unit filename="../../src/sagtension/catenary_cable_unloader.cc">
<Option virtualFolder="Source Files/" />
</Unit>
<Unit filename="../../src/sagtension/line_cable_loader_base.cc">
<Option virtualFolder="Source Files/" />
</Unit>
<Unit filename="../../src/sagtension/line_cable_reloader.cc">
<Option virtualFolder="Source Files/" />
</Unit>
<Unit filename="../../src/sagtension/line_cable_sagger.cc">
<Option virtualFolder="Source Files/" />
</Unit>
<Unit filename="../../src/sagtension/line_cable_unloader.cc">
<Option virtualFolder="Source Files/" />
</Unit>
<Unit filename="../../src/sagtension/sag_tension_cable.cc">
<Option virtualFolder="Source Files/" />
</Unit>
Expand Down
4 changes: 2 additions & 2 deletions build/codeblocks/otlsmodels_transmissionline.cbp
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
<Unit filename="../../include/models/transmissionline/cable_position_locator.h">
<Option virtualFolder="Header Files/" />
</Unit>
<Unit filename="../../include/models/transmissionline/cable_unit_load_calculator.h">
<Unit filename="../../include/models/transmissionline/cable_unit_load_solver.h">
<Option virtualFolder="Header Files/" />
</Unit>
<Unit filename="../../include/models/transmissionline/catenary.h">
Expand Down Expand Up @@ -102,7 +102,7 @@
<Unit filename="../../src/transmissionline/cable_position_locator.cc">
<Option virtualFolder="Source Files/" />
</Unit>
<Unit filename="../../src/transmissionline/cable_unit_load_calculator.cc">
<Unit filename="../../src/transmissionline/cable_unit_load_solver.cc">
<Option virtualFolder="Source Files/" />
</Unit>
<Unit filename="../../src/transmissionline/catenary.cc">
Expand Down
4 changes: 4 additions & 0 deletions build/msvc/otlsmodels_sagtension.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -61,8 +61,10 @@
<ClInclude Include="..\..\include\models\sagtension\cable_strainer.h" />
<ClInclude Include="..\..\include\models\sagtension\catenary_cable_reloader.h" />
<ClInclude Include="..\..\include\models\sagtension\catenary_cable_unloader.h" />
<ClInclude Include="..\..\include\models\sagtension\line_cable_loader_base.h" />
<ClInclude Include="..\..\include\models\sagtension\line_cable_reloader.h" />
<ClInclude Include="..\..\include\models\sagtension\line_cable_sagger.h" />
<ClInclude Include="..\..\include\models\sagtension\line_cable_unloader.h" />
<ClInclude Include="..\..\include\models\sagtension\sag_tension_cable.h" />
</ItemGroup>
<ItemGroup>
Expand All @@ -72,8 +74,10 @@
<ClCompile Include="..\..\src\sagtension\cable_strainer.cc" />
<ClCompile Include="..\..\src\sagtension\catenary_cable_reloader.cc" />
<ClCompile Include="..\..\src\sagtension\catenary_cable_unloader.cc" />
<ClCompile Include="..\..\src\sagtension\line_cable_loader_base.cc" />
<ClCompile Include="..\..\src\sagtension\line_cable_reloader.cc" />
<ClCompile Include="..\..\src\sagtension\line_cable_sagger.cc" />
<ClCompile Include="..\..\src\sagtension\line_cable_unloader.cc" />
<ClCompile Include="..\..\src\sagtension\sag_tension_cable.cc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
Expand Down
12 changes: 12 additions & 0 deletions build/msvc/otlsmodels_sagtension.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,12 @@
<ClInclude Include="..\..\include\models\sagtension\sag_tension_cable.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\include\models\sagtension\line_cable_loader_base.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\include\models\sagtension\line_cable_unloader.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\sagtension\cable_component_elongation_model.cc">
Expand Down Expand Up @@ -67,5 +73,11 @@
<ClCompile Include="..\..\src\sagtension\sag_tension_cable.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sagtension\line_cable_loader_base.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\sagtension\line_cable_unloader.cc">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
4 changes: 2 additions & 2 deletions build/msvc/otlsmodels_transmissionline.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@
<ClInclude Include="..\..\include\models\transmissionline\cable_attachment_equilibrium_solver.h" />
<ClInclude Include="..\..\include\models\transmissionline\cable_constraint.h" />
<ClInclude Include="..\..\include\models\transmissionline\cable_position_locator.h" />
<ClInclude Include="..\..\include\models\transmissionline\cable_unit_load_calculator.h" />
<ClInclude Include="..\..\include\models\transmissionline\cable_unit_load_solver.h" />
<ClInclude Include="..\..\include\models\transmissionline\catenary.h" />
<ClInclude Include="..\..\include\models\transmissionline\catenary_solver.h" />
<ClInclude Include="..\..\include\models\transmissionline\hardware.h" />
Expand All @@ -76,7 +76,7 @@
<ClCompile Include="..\..\src\transmissionline\cable_attachment_equilibrium_solver.cc" />
<ClCompile Include="..\..\src\transmissionline\cable_constraint.cc" />
<ClCompile Include="..\..\src\transmissionline\cable_position_locator.cc" />
<ClCompile Include="..\..\src\transmissionline\cable_unit_load_calculator.cc" />
<ClCompile Include="..\..\src\transmissionline\cable_unit_load_solver.cc" />
<ClCompile Include="..\..\src\transmissionline\catenary.cc" />
<ClCompile Include="..\..\src\transmissionline\catenary_solver.cc" />
<ClCompile Include="..\..\src\transmissionline\hardware.cc" />
Expand Down
12 changes: 6 additions & 6 deletions build/msvc/otlsmodels_transmissionline.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@
<ClInclude Include="..\..\include\models\transmissionline\cable_constraint.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\include\models\transmissionline\cable_unit_load_calculator.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\include\models\transmissionline\catenary.h">
<Filter>Header Files</Filter>
</ClInclude>
Expand Down Expand Up @@ -53,6 +50,9 @@
<ClInclude Include="..\..\include\models\transmissionline\transmission_line.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="..\..\include\models\transmissionline\cable_unit_load_solver.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\transmissionline\cable.cc">
Expand All @@ -61,9 +61,6 @@
<ClCompile Include="..\..\src\transmissionline\cable_constraint.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\transmissionline\cable_unit_load_calculator.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\transmissionline\catenary.cc">
<Filter>Source Files</Filter>
</ClCompile>
Expand Down Expand Up @@ -97,5 +94,8 @@
<ClCompile Include="..\..\src\transmissionline\transmission_line.cc">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="..\..\src\transmissionline\cable_unit_load_solver.cc">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
2 changes: 2 additions & 0 deletions docs/doxygen_config
Original file line number Diff line number Diff line change
Expand Up @@ -745,9 +745,11 @@ WARN_LOGFILE = "./doxygen.log"

INPUT = ../include/models/base \
../include/models/sagtension \
../include/models/thermalrating \
../include/models/transmissionline \
../src/base \
../src/sagtension \
../src/thermalrating \
../src/transmissionline

# This tag can be used to specify the character encoding of the source files
Expand Down
16 changes: 8 additions & 8 deletions include/models/sagtension/cable_component_elongation_model.h
Original file line number Diff line number Diff line change
Expand Up @@ -427,6 +427,14 @@ class CableComponentElongationModel {
/// The polynomial that describes the cable component elongation.
Polynomial polynomial_loadstrain_;

/// \var state_
/// The state of the component.
const CableState* state_;

/// \var state_stretch_
/// The state used to stretch the component.
const CableStretchState* state_stretch_;

/// \var strain_thermal_state_
/// The amount of strain due to shifting from reference temperature to the
/// state temperature.
Expand All @@ -437,14 +445,6 @@ class CableComponentElongationModel {
/// stretch temperature.
mutable double strain_thermal_stretch_;

/// \var state_
/// The state of the component.
const CableState* state_;

/// \var state_stretch_
/// The state used to stretch the component.
const CableStretchState* state_stretch_;

/// \var temperature_reference_
/// The base reference temperature for the cable component. The polynomial
/// is defined at this temperature.
Expand Down
149 changes: 149 additions & 0 deletions include/models/sagtension/line_cable_loader_base.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
// This is free and unencumbered software released into the public domain.
// For more information, please refer to <http://unlicense.org/>

#ifndef OTLS_MODELS_SAGTENSION_LINECABLELOADERBASE_H_
#define OTLS_MODELS_SAGTENSION_LINECABLELOADERBASE_H_

#include <list>

#include "models/base/error_message.h"
#include "models/sagtension/cable_elongation_model.h"
#include "models/sagtension/sag_tension_cable.h"
#include "models/transmissionline/catenary.h"
#include "models/transmissionline/line_cable.h"

/// \par OVERVIEW
///
/// This class sets up a LineCable for a sag-tension analysis. The process is
/// as follows:
/// - solve for a catenary based on the line cable constraint
/// - solve cable model for the constraint
/// - solve cable models for the stretch conditions
/// - determine the stretch load for each condition
///
/// \par STRETCH
///
/// This class supports multiple forms of stretch, including:
/// - short term, heavy load stretch
/// - long term, creep stretch
///
/// \par LINE CABLE GEOMETRY
///
/// This class uses the ruling span geometry defined in the line cable.
class LineCableLoaderBase {
public:
/// \brief Default constructor.
LineCableLoaderBase();

/// \brief Destructor.
~LineCableLoaderBase();

/// \brief Gets the stretch state for the creep condition.
/// \return The stretch state for the creep condition.
CableStretchState StretchStateCreep() const;

/// \brief Gets the stretch state for the load condition.
/// \return The stretch state for the load condition.
CableStretchState StretchStateLoad() const;

/// \brief Validates member variables.
/// \param[in] is_included_warnings
/// A flag that tightens the acceptable value range.
/// \param[in,out] messages
/// A list of detailed error messages. If this is provided, any validation
/// errors will be appended to the list.
/// \return A boolean value indicating status of member variables.
bool Validate(const bool& is_included_warnings = true,
std::list<ErrorMessage>* messages = nullptr) const;

/// \brief Gets the line cable.
/// \return The line cable.
const LineCable* line_cable() const;

/// \brief Sets the line cable.
/// \param[in] line_cable
/// The line cable.
void set_line_cable(const LineCable* line_cable);

protected:
/// \brief Initializes the models defined in the line cable.
/// \return The success status of the update.
/// This function initializes the cable models with the correct temperature
/// and polynomial, but does not solve for any stretch.
bool InitializeLineCableModels() const;

/// \brief Determines if class is updated.
/// \return A boolean indicating if class is updated.
virtual bool IsUpdated() const;

/// \brief Calculates the unit load of the catenary.
/// \param[in] weathercase
/// The weather case.
/// \return The unit loading of the cable.
Vector3d UnitLoad(const WeatherLoadCase& weathercase) const;

/// \brief Updates cached member variables and modifies control variables if
/// update is required.
/// \return A boolean indicating if class updates completed successfully.
virtual bool Update() const;

/// \brief Updates the constraint cable model.
/// \return The success status of the update.
/// This function further updates the constraint cable model to include any
/// stretch.
bool UpdateConstraintCableModel() const;

/// \brief Updates the constraint catenary.
/// \return The success status of the update.
bool UpdateConstraintCatenary() const;

/// \brief Updates the stretch due to load and creep.
/// \return The success status of the update.
bool UpdateLoadStretch() const;

/// \var cable_sagtension_
/// The cable, which is referenced for sag-tension methods.
SagTensionCable cable_sagtension_;

/// \var catenary_constraint_
/// The catenary for the line cable constraint.
mutable Catenary3d catenary_constraint_;

/// \var is_updated_catenary_constraint_
/// An indicator that tells if the constraint catenary cable is updated.
mutable bool is_updated_catenary_constraint_;

/// \var is_updated_stretch_
/// An indicator that tells if the stretch load is updated.
mutable bool is_updated_stretch_;

/// \var line_cable_
/// The line cable that is being reloaded.
const LineCable* line_cable_;

/// \var model_constraint_
/// The cable model for the constraint weathercase. This model may contain
/// stretch, depending on the constraint condition.
mutable CableElongationModel model_constraint_;

/// \var model_creep_
/// The cable model used for solving creep stretch. This model will always
/// contain zero stretch to ensure that only the polynomial is referenced.
mutable CableElongationModel model_creep_;

/// \var model_load_
/// The cable model used for solving heavy load stretch. This model will
/// always contain zero stretch to ensure that only the polynomial is
/// referenced.
mutable CableElongationModel model_load_;

/// \var state_stretch_creep_
/// The stretch state for the creep condition.
mutable CableStretchState state_stretch_creep_;

/// \var state_stretch_load_;
/// The stretch state for the load condition.
mutable CableStretchState state_stretch_load_;
};

#endif // OTLS_MODELS_SAGTENSION_LINECABLELOADERBASE_H_
Loading