FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
CFSTRDB_Heat.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  CFSTRDB_Heat Ver.1.0
7 */
8 
9 #include "CFSTRDB.h"
10 #include "CHECData.h"
11 
12 using namespace std;
13 using namespace hecd_util;
14 
17  restart(0),
18  dt(0),
19  etime(0),
20  dtime(0),
21  deltmx(0),
22  itmax(20),
23  eps(1e-6) {}
24 
26 
28  restart = 0;
29  dt = 0;
30  etime = 0;
31  dtime = 0;
32  deltmx = 0;
33  itmax = 20;
34  eps = 1e-6;
35 }
36 
38  if (restart) {
39  hecd->WriteHeader("!HEAT", "S", "READ", "RESTART");
40 
41  } else {
42  hecd->WriteHeader("!HEAT");
43  }
44 
45  hecd->WriteData("FFFFIF", dt, etime, dtime, deltmx, itmax, eps);
46 }
47 
48 bool CFSTRDB_Heat::Read(CHECData *hecd, char *header_line) {
49  int rcode[10];
50  char s[256] = "";
51  char restart_s[256];
52 
53  if (!hecd->ParseHeader(header_line, rcode, "S", "READ", s)) return false;
54 
55  cleanup_token(s, restart_s);
56  toupper(restart_s);
57  restart = (strcmp(restart_s, "RESTERT") == 0);
58  hecd->ReadData(rcode, "FFFFIF", &dt, &etime, &dtime, &deltmx, &itmax, &eps);
59  return true;
60 }
CFSTRDB_Heat::dt
double dt
Definition: CFSTRDB.h:345
CFSTRDB_Heat::~CFSTRDB_Heat
virtual ~CFSTRDB_Heat()
Definition: CFSTRDB_Heat.cpp:25
CFSTRDB_Heat::Clear
virtual void Clear()
Definition: CFSTRDB_Heat.cpp:27
CHECData::ParseHeader
virtual bool ParseHeader(char *header_line, int *rcode, const char *fmt,...)
Definition: CHECData.cpp:506
CHECData.h
hecd_util::toupper
void toupper(char *s)
Definition: hecd_util.cpp:40
CFSTRDB_Heat::CFSTRDB_Heat
CFSTRDB_Heat()
Definition: CFSTRDB_Heat.cpp:15
FSTRDB_HEAT
@ FSTRDB_HEAT
Definition: CFSTRDB.h:44
m_fstr::itmax
integer(kind=kint) itmax
Definition: m_fstr.f90:141
CFSTRDB.h
CFSTRDB_Heat::restart
int restart
Definition: CFSTRDB.h:341
CFSTRDB_Heat::itmax
int itmax
Definition: CFSTRDB.h:346
CFSTRDB_Heat::eps
double eps
Definition: CFSTRDB.h:347
hecd_util::cleanup_token
void cleanup_token(char *s)
Definition: hecd_util.cpp:16
CHECData::WriteData
virtual void WriteData(const char *fmt,...)
Definition: CHECData.cpp:162
CFSTRDB_Heat::etime
double etime
Definition: CFSTRDB.h:345
m_fstr::eps
real(kind=kreal) eps
Definition: m_fstr.f90:142
CHECData::ReadData
virtual bool ReadData(int *rcode, const char *fmt,...)
Definition: CHECData.cpp:548
m_fstr::dt
real(kind=kreal) dt
ANALYSIS CONTROL for NLGEOM and HEAT.
Definition: m_fstr.f90:139
CHECData::WriteHeader
virtual void WriteHeader(const char *name, const char *fmt="",...)
Definition: CHECData.cpp:68
CHECData
Definition: CHECData.h:25
CFSTRDB_Heat::deltmx
double deltmx
Definition: CFSTRDB.h:345
hecd_util
Definition: hecd_util.cpp:11
CFSTRDataBlock
Definition: CFSTRDB.h:58
m_fstr::etime
real(kind=kreal) etime
Definition: m_fstr.f90:140
CFSTRDB_Heat::Write
virtual void Write(class CHECData *hecd)
Definition: CFSTRDB_Heat.cpp:37
CFSTRDB_Heat::dtime
double dtime
Definition: CFSTRDB.h:345
CFSTRDB_Heat::Read
virtual bool Read(class CHECData *hecd, char *header_line)
Definition: CFSTRDB_Heat.cpp:48