FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
CNFDB_506.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_506 Ver. 3.6
7 */
8 
9 #ifndef CNFDB_506H
10 #define CNFDB_506H
11 
12 #include <vector>
13 #include "CNFDataBlock.h"
14 
15 // 506 Constraints
16 
17 class CNFDB_506 : public CNFDataBlock {
18  public:
19  CNFDB_506();
20  virtual ~CNFDB_506() {}
21 
22  virtual void Read(class CNFData* nfd);
23  virtual void WriteData(class CNFData* nfd, FILE* fp);
24 
25  public:
26  class cconst_item {
27  public:
28  nf_int ID;
30  nf_int layer;
35  : ID(i.ID), color(i.color), layer(i.layer), ex_geom(i.ex_geom) {
36  DOF[0] = i.DOF[0];
37  DOF[1] = i.DOF[1];
38  DOF[2] = i.DOF[2];
39  DOF[3] = i.DOF[3];
40  DOF[4] = i.DOF[4];
41  DOF[5] = i.DOF[5];
42  }
43  cconst_item& operator=(const cconst_item& i) {
44  ID = i.ID;
45  color = i.color;
46  layer = i.layer;
47  ex_geom = i.ex_geom;
48  DOF[0] = i.DOF[0];
49  DOF[1] = i.DOF[1];
50  DOF[2] = i.DOF[2];
51  DOF[3] = i.DOF[3];
52  DOF[4] = i.DOF[4];
53  DOF[5] = i.DOF[5];
54  return *this;
55  }
56  };
57  class cconst_eq {
58  public:
59  nf_int ID;
61  nf_int layer;
62  };
63  class cnum_co_rec {
64  public:
68  };
69 
70  // #1
71  nf_int setID;
72  // #2
73  nf_char title[26];
74  // for nodes
75  std::vector<cconst_item> const_nodes;
76  // for points
77  std::vector<cconst_item> const_points;
78  // for curves
79  std::vector<cconst_item> const_curves;
80  // for surfaces
81  std::vector<cconst_item> const_surfaces;
82  // for number of coefficiency in equation
83  std::vector<nf_int> num_co;
84  // for equations
85  std::vector<cconst_eq> const_equations;
86  // for num_co records
87  std::vector<cnum_co_rec> num_co_list;
88 
89  protected:
90  void read_const_item(class CNFData* nfd, std::vector<cconst_item>& list);
91  void read_const_eq(class CNFData* nfd, std::vector<cconst_eq>& list);
92  void read_num_co(class CNFData* nfd, int eq_n, std::vector<nf_int>& list);
93  void read_num_co_list(class CNFData* nfd, int eq_n,
94  std::vector<cnum_co_rec>& list);
95  void write_const_item(class CNFData* nfd, FILE* fp,
96  std::vector<cconst_item>& list);
97  void write_const_eq(class CNFData* nfd, FILE* fp,
98  std::vector<cconst_eq>& list);
99  void write_num_co(class CNFData* nfd, FILE* fp, std::vector<nf_int>& list);
100  void write_num_co_list(class CNFData* nfd, FILE* fp,
101  std::vector<cnum_co_rec>& list);
102 };
103 
104 #endif
CNFDB_506::cconst_item
Definition: CNFDB_506.h:29
CNFDB_506::cconst_item::ex_geom
nf_bool ex_geom
Definition: CNFDB_506.h:35
CNFDB_506::CNFDB_506
CNFDB_506()
Definition: CNFDB_506.cpp:16
CNFDB_506::cnum_co_rec::coeff
nf_float coeff
Definition: CNFDB_506.h:70
CNFDB_506::write_const_item
void write_const_item(class CNFData *nfd, FILE *fp, std::vector< cconst_item > &list)
Definition: CNFDB_506.cpp:130
CNFDB_506::cconst_item::ID
nf_int ID
Definition: CNFDB_506.h:31
CNFDB_506::const_surfaces
std::vector< cconst_item > const_surfaces
Definition: CNFDB_506.h:84
CNFDB_506::Read
virtual void Read(class CNFData *nfd)
Definition: CNFDB_506.cpp:18
CNFDataBlock
Definition: CNFDataBlock.h:24
CNFDB_506::cconst_item::cconst_item
cconst_item()
Definition: CNFDB_506.h:36
nf_char
char nf_char
Definition: CNFDataBlock.h:22
CNFDB_506::cnum_co_rec::eqn_dof
nf_int eqn_dof
Definition: CNFDB_506.h:69
CNFDB_506::~CNFDB_506
virtual ~CNFDB_506()
Definition: CNFDB_506.h:23
CNFDB_506::read_const_item
void read_const_item(class CNFData *nfd, std::vector< cconst_item > &list)
Definition: CNFDB_506.cpp:46
CNFDataBlock.h
CNFDB_506::num_co
std::vector< nf_int > num_co
Definition: CNFDB_506.h:86
CNFDB_506::cconst_item::DOF
nf_bool DOF[6]
Definition: CNFDB_506.h:34
CNFDB_506::cnum_co_rec
Definition: CNFDB_506.h:66
CNFDB_506::title
nf_char title[26]
Definition: CNFDB_506.h:76
CNFDB_506
Definition: CNFDB_506.h:17
CNFDB_506::read_num_co
void read_num_co(class CNFData *nfd, int eq_n, std::vector< nf_int > &list)
Definition: CNFDB_506.cpp:78
CNFDB_506::write_num_co_list
void write_num_co_list(class CNFData *nfd, FILE *fp, std::vector< cnum_co_rec > &list)
Definition: CNFDB_506.cpp:163
CNFDB_506::cconst_eq::color
nf_int color
Definition: CNFDB_506.h:63
CNFDB_506::cconst_item::layer
nf_int layer
Definition: CNFDB_506.h:33
CNFDB_506::const_curves
std::vector< cconst_item > const_curves
Definition: CNFDB_506.h:82
CNFData
Definition: CNFData.h:46
CNFDB_506::cnum_co_rec::eqn_nodeID
nf_int eqn_nodeID
Definition: CNFDB_506.h:68
CNFDB_506::const_points
std::vector< cconst_item > const_points
Definition: CNFDB_506.h:80
CNFDB_506::read_const_eq
void read_const_eq(class CNFData *nfd, std::vector< cconst_eq > &list)
Definition: CNFDB_506.cpp:63
nf_bool
unsigned char nf_bool
Definition: CNFDataBlock.h:20
CNFDB_506::setID
nf_int setID
Definition: CNFDB_506.h:74
CNFDB_506::read_num_co_list
void read_num_co_list(class CNFData *nfd, int eq_n, std::vector< cnum_co_rec > &list)
Definition: CNFDB_506.cpp:90
CNFDB_506::write_num_co
void write_num_co(class CNFData *nfd, FILE *fp, std::vector< nf_int > &list)
Definition: CNFDB_506.cpp:154
CNFDB_506::const_nodes
std::vector< cconst_item > const_nodes
Definition: CNFDB_506.h:78
CNFDB_506::write_const_eq
void write_const_eq(class CNFData *nfd, FILE *fp, std::vector< cconst_eq > &list)
Definition: CNFDB_506.cpp:143
CNFDB_506::const_equations
std::vector< cconst_eq > const_equations
Definition: CNFDB_506.h:88
nf_int
int nf_int
Definition: CNFDataBlock.h:19
CNFDB_506::WriteData
virtual void WriteData(class CNFData *nfd, FILE *fp)
Definition: CNFDB_506.cpp:105
CNFDB_506::cconst_item::operator=
cconst_item & operator=(const cconst_item &i)
Definition: CNFDB_506.h:46
CNFDB_506::cconst_eq::layer
nf_int layer
Definition: CNFDB_506.h:64
CNFDB_506::cconst_item::color
nf_int color
Definition: CNFDB_506.h:32
CNFDB_506::num_co_list
std::vector< cnum_co_rec > num_co_list
Definition: CNFDB_506.h:90
nf_float
double nf_float
Definition: CNFDataBlock.h:21
CNFDB_506::cconst_eq::ID
nf_int ID
Definition: CNFDB_506.h:62