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