FrontISTR  5.7.1
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:
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  }
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:
62  };
63  class cnum_co_rec {
64  public:
68  };
69 
70  // #1
72  // #2
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
char nf_char
Definition: CNFDataBlock.h:22
int nf_int
Definition: CNFDataBlock.h:19
unsigned char nf_bool
Definition: CNFDataBlock.h:20
double nf_float
Definition: CNFDataBlock.h:21
cconst_item(const cconst_item &i)
Definition: CNFDB_506.h:34
cconst_item & operator=(const cconst_item &i)
Definition: CNFDB_506.h:43
void write_const_item(class CNFData *nfd, FILE *fp, std::vector< cconst_item > &list)
Definition: CNFDB_506.cpp:130
std::vector< cconst_item > const_nodes
Definition: CNFDB_506.h:75
void write_const_eq(class CNFData *nfd, FILE *fp, std::vector< cconst_eq > &list)
Definition: CNFDB_506.cpp:143
void write_num_co_list(class CNFData *nfd, FILE *fp, std::vector< cnum_co_rec > &list)
Definition: CNFDB_506.cpp:163
std::vector< cconst_item > const_curves
Definition: CNFDB_506.h:79
void write_num_co(class CNFData *nfd, FILE *fp, std::vector< nf_int > &list)
Definition: CNFDB_506.cpp:154
std::vector< cconst_item > const_points
Definition: CNFDB_506.h:77
virtual ~CNFDB_506()
Definition: CNFDB_506.h:20
nf_int setID
Definition: CNFDB_506.h:71
std::vector< cconst_item > const_surfaces
Definition: CNFDB_506.h:81
std::vector< cnum_co_rec > num_co_list
Definition: CNFDB_506.h:87
void read_const_eq(class CNFData *nfd, std::vector< cconst_eq > &list)
Definition: CNFDB_506.cpp:63
void read_const_item(class CNFData *nfd, std::vector< cconst_item > &list)
Definition: CNFDB_506.cpp:46
std::vector< cconst_eq > const_equations
Definition: CNFDB_506.h:85
std::vector< nf_int > num_co
Definition: CNFDB_506.h:83
void read_num_co(class CNFData *nfd, int eq_n, std::vector< nf_int > &list)
Definition: CNFDB_506.cpp:78
virtual void Read(class CNFData *nfd)
Definition: CNFDB_506.cpp:18
void read_num_co_list(class CNFData *nfd, int eq_n, std::vector< cnum_co_rec > &list)
Definition: CNFDB_506.cpp:90
virtual void WriteData(class CNFData *nfd, FILE *fp)
Definition: CNFDB_506.cpp:105
nf_char title[26]
Definition: CNFDB_506.h:73