Marine systems simulation
CNetStructureSpecABAQUS.h
1#ifndef CNetStructureSpecABAQUS_h__
2#define CNetStructureSpecABAQUS_h__
3
4#include <string>
5#include <Eigen/Eigen>
6#include <filesystem>
7
8#include "CNetStructureTestSpec.h"
9
11{
12public:
13
15 double density;
16 double elastic;
17 };
18
20 {
21 std::string materialName;
22 double section;
23 };
24
26 {
27 std::string name;
28 std::map<int,Eigen::Vector3d> ic_map;
29 std::map<int,std::pair<int,int> > con_map;
30 std::map<std::string,std::vector<int> > nodeSets;
31 std::map<std::string,std::vector<int> > elSets;
32 std::map<std::string,double> elementSections;
33 std::map<std::string,ABAQUSSolid> solidSections;
34 };
35
37 {
38 enum ABAQUSBoundry{YSYMM=666,PINNED};
39 std::map<std::string,std::vector<int> > nodeSets;
40 std::map<std::string,std::vector<int> > elSets;
41 std::map<std::string,ABAQUSBoundry> nodeSetCondition;
42 std::map<std::string,ABAQUSBoundry> elementSetCondition;
43 std::map<std::string,ABAQUSMaterial> materials;
44
45 std::map<std::string,Eigen::Vector3d> nodeSetLoads;
46 };
47
48 CNetStructureSpecABAQUS(ISimObjectLogger* logger):CNetStructureTestSpec(logger){m_model_net_length = std::numeric_limits<double>::quiet_NaN();}
49 void FromFile(std::string sFileName, std::string sFilePath);
50
51 const ABAQUSPart & GetABAQUSPart( unsigned int partNr){return m_parts[partNr];}
52 const ABAQUSExtra & GetABAQUSExtra(){return m_extra;}
53
54
55 double m_model_net_length;
56
57private:
58 void CheckNodes( ISimObjectLogger* pLogger);
59 void CheckNodeNumber(int iNodeNumber, ISimObjectLogger* const pLogger, std::string sNodeDescription);
60 void ReadAbaqusInputFile(const std::filesystem::path & filePath);
61 void Tokenize(std::string line, std::vector<std::string> &tok,std::string sep=" ");
62 void ReadPart( std::ifstream &is, ABAQUSPart & newPart);
63
64 void CreateCables();
65 void CreatePanels();
66 void ReadExtra( std::ifstream &is, ABAQUSExtra &extra );
67 std::vector<ABAQUSPart> m_parts;
68 ABAQUSExtra m_extra;
69};
70#endif // CNetStructureABAQUS_h__
Definition: CNetStructureSpecABAQUS.h:11
Definition: CNetStructureTestSpec.h:15
Definition: CNetStructureSpecABAQUS.h:37
Definition: CNetStructureSpecABAQUS.h:14
Definition: CNetStructureSpecABAQUS.h:26
Definition: CNetStructureSpecABAQUS.h:20