FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
CNFDB_404.h
Go to the documentation of this file.
1 /*****************************************************************************
2  * Copyright (c) 2019 FrontISTR Commons
3  * This software is released under the MIT License, see LICENSE.txt
4  *****************************************************************************/
5 /*
6  CNFDB_404 Ver. 3.6
7 */
8 
9 #ifndef CNFDB_404H
10 #define CNFDB_404H
11 
12 #include <vector>
13 #include "CNFDataBlock.h"
14 
15 // 404 Element
16 class CNFDB_404 : public CNFDataBlock {
17  public:
18  CNFDB_404();
19  virtual ~CNFDB_404();
20 
21  virtual void Read(class CNFData* nfd);
22  virtual void WriteData(class CNFData* nfd, FILE* fp);
23 
24  public:
25  // ID of topology
26  enum {
27  top_Line2 = 0,
28  top_Line3,
29  top_Tri3,
44  };
45 
46  class cref_node {
47  public:
48  nf_int NodeID;
51  nf_int dof[7]; // dof[0]:dummy
52  cref_node() {}
53  cref_node(const cref_node& r)
55  dof[0] = r.dof[0];
56  dof[1] = r.dof[1];
57  dof[2] = r.dof[2];
58  dof[3] = r.dof[3];
59  dof[4] = r.dof[4];
60  dof[5] = r.dof[5];
61  dof[6] = r.dof[6];
62  }
63  cref_node& operator=(const cref_node& r) {
64  NodeID = r.NodeID;
65  faceID = r.faceID;
67  dof[0] = r.dof[0];
68  dof[1] = r.dof[1];
69  dof[2] = r.dof[2];
70  dof[3] = r.dof[3];
71  dof[4] = r.dof[4];
72  dof[5] = r.dof[5];
73  dof[6] = r.dof[6];
74  return *this;
75  }
76  };
77 
78  class cref_node_list {
79  public:
80  std::vector<cref_node> ref_node;
81  };
82 
83  // #1
84  nf_int ID;
85  nf_int color;
86  nf_int propID;
92  // Ver. 3.6 ========================
94  // Ver. 3.6 ========================
97  // Ver. 3.6 ========================
99  // #2,3
100  nf_int node[20];
101  // #4
102  nf_float orient[3];
103  // #5
104  nf_float offset1[3];
105  // #6
106  nf_float offset2[3];
107  // #7
108  nf_bool release1[6];
109  // #8
110  nf_bool release2[6];
111  // Ver. 3.6 ========================
112  nf_int list[4];
113  // Ver. 3.6 ========================
114  // every node record, if topology == top_MultiList or top_RigidList(Rigid?)
115  std::vector<cref_node_list*> ref_node_set;
116 
117  protected:
119  void clear_ref_node_set();
120  void write_ref_node_list(CNFData* nfd, FILE* fp, cref_node_list* list);
121 };
122 
123 #endif
CNFDB_404::top_Quad8
@ top_Quad8
Definition: CNFDB_404.h:35
CNFDB_404::formulation2
nf_int formulation2
Definition: CNFDB_404.h:101
CNFDB_404::type
nf_int type
Definition: CNFDB_404.h:90
CNFDB_404::top_Brick20
@ top_Brick20
Definition: CNFDB_404.h:42
CNFDB_404::orientID
nf_int orientID
Definition: CNFDB_404.h:93
CNFDataBlock
Definition: CNFDataBlock.h:24
CNFDB_404::cref_node::operator=
cref_node & operator=(const cref_node &r)
Definition: CNFDB_404.h:66
CNFDB_404::CNFDB_404
CNFDB_404()
Definition: CNFDB_404.cpp:16
CNFDB_404::cref_node_list
Definition: CNFDB_404.h:81
CNFDB_404::top_Wedge15
@ top_Wedge15
Definition: CNFDB_404.h:41
CNFDB_404::color
nf_int color
Definition: CNFDB_404.h:88
CNFDB_404::top_Brick8
@ top_Brick8
Definition: CNFDB_404.h:38
CNFDB_404::top_RigidList
@ top_RigidList
Definition: CNFDB_404.h:43
CNFDataBlock.h
CNFDB_404::top_Wedge6
@ top_Wedge6
Definition: CNFDB_404.h:37
CNFDB_404::geomID
nf_int geomID
Definition: CNFDB_404.h:96
CNFDB_404::Read
virtual void Read(class CNFData *nfd)
Definition: CNFDB_404.cpp:20
CNFDB_404::top_MultiList
@ top_MultiList
Definition: CNFDB_404.h:45
CNFDB_404::topology
nf_int topology
Definition: CNFDB_404.h:91
CNFDB_404::release2
nf_bool release2[6]
Definition: CNFDB_404.h:113
CNFDB_404::propID
nf_int propID
Definition: CNFDB_404.h:89
CNFDB_404::top_Quad4
@ top_Quad4
Definition: CNFDB_404.h:34
CNFDB_404::offset1
nf_float offset1[3]
Definition: CNFDB_404.h:107
CNFDB_404::write_ref_node_list
void write_ref_node_list(CNFData *nfd, FILE *fp, cref_node_list *list)
Definition: CNFDB_404.cpp:199
CNFDB_404::cref_node::faceID
nf_int faceID
Definition: CNFDB_404.h:52
CNFData
Definition: CNFData.h:46
CNFDB_404::top_Line2
@ top_Line2
Definition: CNFDB_404.h:30
CNFDB_404::ID
nf_int ID
Definition: CNFDB_404.h:87
CNFDB_404::offset2
nf_float offset2[3]
Definition: CNFDB_404.h:109
CNFDB_404::list
nf_int list[4]
Definition: CNFDB_404.h:115
CNFDB_404::cref_node::NodeID
nf_int NodeID
Definition: CNFDB_404.h:51
CNFDB_404::node
nf_int node[20]
Definition: CNFDB_404.h:103
CNFDB_404::cref_node_list::ref_node
std::vector< cref_node > ref_node
Definition: CNFDB_404.h:83
CNFDB_404::contactsegment
nf_int contactsegment[2]
Definition: CNFDB_404.h:99
CNFDB_404::top_Contact
@ top_Contact
Definition: CNFDB_404.h:46
CNFDB_404::top_Tri6
@ top_Tri6
Definition: CNFDB_404.h:33
CNFDB_404::cref_node::weight
nf_float weight
Definition: CNFDB_404.h:53
CNFDB_404::clear_ref_node_set
void clear_ref_node_set()
Definition: CNFDB_404.cpp:99
nf_bool
unsigned char nf_bool
Definition: CNFDataBlock.h:20
CNFDB_404::cref_node::cref_node
cref_node()
Definition: CNFDB_404.h:55
CNFDB_404::make_ref_node_list
cref_node_list * make_ref_node_list(CNFData *nfd)
Definition: CNFDB_404.cpp:109
CNFDB_404::top_Tetra4
@ top_Tetra4
Definition: CNFDB_404.h:36
CNFDB_404::~CNFDB_404
virtual ~CNFDB_404()
Definition: CNFDB_404.cpp:18
CNFDB_404::cref_node
Definition: CNFDB_404.h:49
CNFDB_404::top_Tetra10
@ top_Tetra10
Definition: CNFDB_404.h:40
CNFDB_404::top_Line3
@ top_Line3
Definition: CNFDB_404.h:31
CNFDB_404::top_dummy2
@ top_dummy2
Definition: CNFDB_404.h:44
CNFDB_404
Definition: CNFDB_404.h:16
nf_int
int nf_int
Definition: CNFDataBlock.h:19
CNFDB_404::cref_node::dof
nf_int dof[7]
Definition: CNFDB_404.h:54
CNFDB_404::top_Tri3
@ top_Tri3
Definition: CNFDB_404.h:32
CNFDB_404::top_Point
@ top_Point
Definition: CNFDB_404.h:39
CNFDB_404::matl_orflag
nf_bool matl_orflag
Definition: CNFDB_404.h:94
CNFDB_404::ref_node_set
std::vector< cref_node_list * > ref_node_set
Definition: CNFDB_404.h:118
CNFDB_404::formulation
nf_int formulation
Definition: CNFDB_404.h:98
CNFDB_404::orient
nf_float orient[3]
Definition: CNFDB_404.h:105
CNFDB_404::release1
nf_bool release1[6]
Definition: CNFDB_404.h:111
CNFDB_404::WriteData
virtual void WriteData(class CNFData *nfd, FILE *fp)
Definition: CNFDB_404.cpp:140
CNFDB_404::layer
nf_int layer
Definition: CNFDB_404.h:92
nf_float
double nf_float
Definition: CNFDataBlock.h:21