10#ifndef CNetStructureSpec_H
11#define CNetStructureSpec_H
17#include "CommonTypes.h"
18#include "NetCableElementSpec.h"
19#include "NetElementDef.h"
20#include <fhsim/InputReader.h>
21#include <fhsim/ISimObjectLogger.h>
26 double maxCableTension;
28 double meanCableTension;
29 double minCableLength;
30 double stepSafetyFactor;
31 double adaptationPeriod;
34 double addedDragPerMPS;
49 virtual void FromFile(std::string fileName, std::string filePath);
50 void FromBinaryFile(std::string fileName, std::string filePath);
61 std::vector<std::string>
DefaultNodes(
const std::string& parameter)
const;
64 int CreateExternalNodeMap(std::vector<std::string> VsInputNodes, VSPairStrInt& VsNodes)
const;
73 bool GetCatsRefinementMode()
const;
74 void PrintInfo()
const;
78 virtual void ReadInput(InputReader& FileReader, ISimObjectLogger* logger);
81 virtual void ReadBinaryInputFile(std::string fileName, std::string filePath, ISimObjectLogger* logger);
82 void FindNodesToDivide(
int nodesToDivide[2],
double *length,
double *lengthFactor);
86 void CheckNodeNumber(
int nodeNumber, ISimObjectLogger *
const logger, std::string nodeDescription =
"");
87 void CheckNodes(ISimObjectLogger *logger);
88 unsigned short AddCalcNode(
int aiNodes[2]);
89 unsigned short DivideCableElement(
int CableNum );
119 ISimObjectLogger* m_logger;
Definition NetStructureSpec.h:40
int m_numNodesCalc
The number of nodes of the net after refinement.
Definition NetStructureSpec.h:95
NetStructureSpec(const NetStructureSpec &)=delete
Owns its panel and cable specifications.
double m_maxSideLengthFactor
The maximum element side length factor.
Definition NetStructureSpec.h:102
int m_numNodesOriginal
The number of original nodes of the net.
Definition NetStructureSpec.h:94
void CheckAndRefine()
Checks the node numbers and refines the mesh of the net just read.
int m_numCablesCalc
The number of elements the cable is divided into.
Definition NetStructureSpec.h:93
VSPairStrInt m_VsNodesAvailable
The tag names and indices of the available external nodes.
Definition NetStructureSpec.h:110
int m_maxNumPanels
The maximum number of net panels used for the calculations.
Definition NetStructureSpec.h:105
virtual void ReadInput(InputReader &FileReader, ISimObjectLogger *logger)
Reads a <Net> document, from a file or from text.
SAdaptationSpec_t m_SAdaptationSpec
A struct containing adaptations for faster integration of the net structure.
Definition NetStructureSpec.h:112
int m_foldingPointRefinement
refinement by folding points on each cable (Cats mode)
Definition NetStructureSpec.h:101
virtual ~NetStructureSpec()
The elements are owned through std::unique_ptr.
int m_maxNumCables
The maximum number of cable elements used for the calculations.
Definition NetStructureSpec.h:106
int m_numPanelsCalc
The number of elements the net is divided into.
Definition NetStructureSpec.h:92
double m_minSideLength
The side length limit for the elements to be further subdivided.
Definition NetStructureSpec.h:103
std::vector< std::string > m_defaultNodesOutputPosAndVel
DefaultNodes("NodesOutputPosAndVel").
Definition NetStructureSpec.h:115
std::vector< const NetCableElementSpec * > GetCableElements() const
The cable elements of the refined mesh, as GetNetPanels.
NetStructureSpec(ISimObjectLogger *logger)
The constructor sets the pointer to the output object and the parser object.
std::vector< std::unique_ptr< NetCableElementSpec > > m_VCableElements
The cable elements read from the input file, then refined.
Definition NetStructureSpec.h:98
std::vector< const NetElementDef * > GetNetPanels() const
The panels of the refined mesh: read-only pointers to the elements the spec owns, valid while it live...
std::vector< std::string > m_defaultNodesInputForce
DefaultNodes("NodesInputForce").
Definition NetStructureSpec.h:114
double m_scale
The scale of the trawl net in relation to the specifications.
Definition NetStructureSpec.h:107
std::vector< std::unique_ptr< NetElementDef > > m_VSPanelData
The panels read from the input file, then refined.
Definition NetStructureSpec.h:97
std::vector< std::string > DefaultNodes(const std::string ¶meter) const
bool FromNetSpec(const std::string &specPath)
int m_maxNumNodes
The maximum number of nodes used for net calculations.
Definition NetStructureSpec.h:104
std::string m_netName
The identification name of the net.
Definition NetStructureSpec.h:109
Class containing the specification for a net object.
Definition NetStructureSpec.h:25