FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
CNFDB_601.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_601 Ver. 3.6
7  -----------------------------
8  601 Material
9 */
10 
11 #ifndef CNFDB_601H
12 #define CNFDB_601H
13 
14 #include "CNFDataBlock.h"
15 
16 // 601 Material
17 class CNFDB_601 : public CNFDataBlock {
18  public:
19  CNFDB_601();
20  virtual ~CNFDB_601() {}
21 
22  virtual void Read(class CNFData* nfd);
23  virtual void WriteData(class CNFData* nfd, FILE* fp);
24 
25  public:
26  class cfunc_rec {
27  public:
28  class cdata_pair {
29  public:
33  cdata_pair(nf_int I = 0, nf_float X = 0, nf_float Y = 0)
34  : index(I), x(X), y(Y) {}
35  };
36  // ##1
39  // ##2
41  // ## ----------------------
42  std::vector<cdata_pair> data;
43  };
44 
45  // #1
47  nf_int format; // == -601
53  // #2
55  // #3
56  nf_int Bcount; // == 10
57  // #4
59  // #5
61  // #6,7,8
62  nf_int ival[25];
63  // #9
65  // #10-29
66  nf_float mval[200];
67  // #30
69  // #31-35
70  nf_int fval[50];
71  // #36
73  // #37-43
74  nf_int tval[70];
75  // # ---------------------
76  std::vector<cfunc_rec> func_list;
77 
78  // ============================================================================
79  nf_float& E(int i) {
80  assert(0 <= i && i <= 2);
81  return mval[i];
82  }
83  nf_float& G(int i) {
84  assert(0 <= i && i <= 2);
85  return mval[i + 3];
86  }
87  nf_float& NU(int i) {
88  assert(0 <= i && i <= 2);
89  return mval[i + 6];
90  }
92  assert(0 <= i && i <= 5);
93  return mval[i + 36];
94  }
96  assert(0 <= i && i <= 5);
97  return mval[i + 42];
98  }
99  nf_float& THERMAL_CAPACITY() { return mval[48]; }
100  nf_float& DENSITY() { return mval[49]; }
101  nf_float& DAMPING() { return mval[50]; }
102  nf_float& TEMPERATURE() { return mval[51]; }
103 };
104 
105 #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
cdata_pair(nf_int I=0, nf_float X=0, nf_float Y=0)
Definition: CNFDB_601.h:33
std::vector< cdata_pair > data
Definition: CNFDB_601.h:42
nf_char title[80]
Definition: CNFDB_601.h:40
nf_int tval[70]
Definition: CNFDB_601.h:74
virtual void WriteData(class CNFData *nfd, FILE *fp)
Definition: CNFDB_601.cpp:121
nf_int format
Definition: CNFDB_601.h:47
nf_int ival[25]
Definition: CNFDB_601.h:62
nf_int Bcount
Definition: CNFDB_601.h:56
nf_float & G(int i)
Definition: CNFDB_601.h:83
std::vector< cfunc_rec > func_list
Definition: CNFDB_601.h:76
nf_int layer
Definition: CNFDB_601.h:51
nf_int Tcount
Definition: CNFDB_601.h:72
nf_int Icount
Definition: CNFDB_601.h:60
nf_float & THERMAL_CAPACITY()
Definition: CNFDB_601.h:99
nf_int color
Definition: CNFDB_601.h:48
nf_float & TEMPERATURE()
Definition: CNFDB_601.h:102
nf_int type
Definition: CNFDB_601.h:49
nf_float & DENSITY()
Definition: CNFDB_601.h:100
nf_float & DAMPING()
Definition: CNFDB_601.h:101
nf_char title[26]
Definition: CNFDB_601.h:54
nf_float & E(int i)
Definition: CNFDB_601.h:79
nf_float mval[200]
Definition: CNFDB_601.h:66
nf_int fval[50]
Definition: CNFDB_601.h:70
nf_int FunctionCount
Definition: CNFDB_601.h:52
nf_int ID
Definition: CNFDB_601.h:46
nf_int subtype
Definition: CNFDB_601.h:50
virtual ~CNFDB_601()
Definition: CNFDB_601.h:20
virtual void Read(class CNFData *nfd)
Definition: CNFDB_601.cpp:21
nf_float & THERMAL_EXPANSION(int i)
Definition: CNFDB_601.h:91
nf_float & THERMAL_CONDUCTIVITY(int i)
Definition: CNFDB_601.h:95
nf_int Mcount
Definition: CNFDB_601.h:64
nf_bool bval[10]
Definition: CNFDB_601.h:58
nf_float & NU(int i)
Definition: CNFDB_601.h:87
nf_int Fcount
Definition: CNFDB_601.h:68