FrontISTR
5.7.0
Large-scale structural analysis program with finit element method
FSTRDB_util.cpp
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
Utility for CFSTRDB Ver.1.0
7
*/
8
9
#include <string.h>
10
#include <ctype.h>
11
#include "
CFSTRDB.h
"
12
#include "
hecd_util.h
"
13
14
using namespace
hecd_util
;
15
16
CHECDataBlock
*
CreateFSTRDataBlock
(
const
char
*header_name) {
17
char
name[80];
18
char
*np = name;
19
char
*p = (
char
*)header_name;
20
21
if
(*p ==
'!'
) p++;
22
23
*np = (char)
toupper
(*p);
24
p++;
25
np++;
26
27
while
(*p) {
28
*np = (char)
tolower
(*p);
29
p++;
30
np++;
31
}
32
33
*np = 0;
34
#define GENERATE_CODE(x) \
35
else if (strcmp(#x, name) == 0) { \
36
return new CFSTRDB_##x(); \
37
}
38
39
if
(
false
)
40
;
// dummy
41
42
GENERATE_CODE
(Solution)
43
GENERATE_CODE
(Solver)
44
GENERATE_CODE
(Write)
45
GENERATE_CODE
(Echo)
46
GENERATE_CODE
(Step)
47
GENERATE_CODE
(Static)
48
GENERATE_CODE
(Boundary)
49
GENERATE_CODE
(CLoad)
50
GENERATE_CODE
(DLoad)
51
GENERATE_CODE
(Temperature)
52
GENERATE_CODE
(Reftemp)
53
GENERATE_CODE
(Eigen)
54
GENERATE_CODE
(Heat)
55
GENERATE_CODE
(Fixtemp)
56
GENERATE_CODE
(CFlux)
57
GENERATE_CODE
(DFlux)
58
GENERATE_CODE
(SFlux)
59
GENERATE_CODE
(Film)
60
GENERATE_CODE
(SFilm)
61
GENERATE_CODE
(Radiate)
62
GENERATE_CODE
(SRadiate)
63
#undef GENERATE_CODE
64
return
0;
65
}
66
67
bool
IsFSTRDataBlockName
(
const
char
*name) {
68
char
s[256];
69
70
if
(name[0] ==
'!'
)
71
toupper
(&name[1], s);
72
73
else
74
toupper
(name, s);
75
76
#define GENERATE_CODE(x) \
77
else if (strcmp(#x, name) == 0) { \
78
return true; \
79
}
80
81
if
(
false
)
82
;
// dummy
83
84
GENERATE_CODE
(SOLUTION)
85
GENERATE_CODE
(SOLVER)
86
GENERATE_CODE
(WRITE)
87
GENERATE_CODE
(
ECHO
)
88
GENERATE_CODE
(STEP)
89
GENERATE_CODE
(STATIC)
90
GENERATE_CODE
(
BOUNDARY
)
91
GENERATE_CODE
(CLOAD)
92
GENERATE_CODE
(DLOAD)
93
GENERATE_CODE
(TEMPERATURE)
94
GENERATE_CODE
(REFTEMP)
95
GENERATE_CODE
(EIGEN)
96
GENERATE_CODE
(HEAT)
97
GENERATE_CODE
(FIXTEMP)
98
GENERATE_CODE
(CFLUX)
99
GENERATE_CODE
(DFLUX)
100
GENERATE_CODE
(SFLUX)
101
GENERATE_CODE
(FILM)
102
GENERATE_CODE
(SFILM)
103
GENERATE_CODE
(RADIATE)
104
GENERATE_CODE
(SRADIATE)
105
#undef GENERATE_CODE
106
return
false
;
107
}
CHECDataBlock
Definition:
CHECDataBlock.h:17
hecd_util::toupper
void toupper(char *s)
Definition:
hecd_util.cpp:40
CFSTRDB.h
hecd_util::tolower
void tolower(char *s)
Definition:
hecd_util.cpp:59
ECHO
#define ECHO
Definition:
hecmw_ablex.c:1727
IsFSTRDataBlockName
bool IsFSTRDataBlockName(const char *name)
Definition:
FSTRDB_util.cpp:67
hecd_util.h
CreateFSTRDataBlock
CHECDataBlock * CreateFSTRDataBlock(const char *header_name)
Definition:
FSTRDB_util.cpp:16
hecd_util
Definition:
hecd_util.cpp:11
GENERATE_CODE
#define GENERATE_CODE(x)
BOUNDARY
#define BOUNDARY
Definition:
hecmw_partition.c:42
fistr1
tools
neu2fstr
HECD
FSTRDB_util.cpp
Generated by
1.8.17