FrontISTR  5.7.0
Large-scale structural analysis program with finit element method
CHECDB_Amplitude.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  CHECDB_Amplitude Ver.1.0
7 */
8 
9 #include "CHECDB.h"
10 #include "CHECData.h"
11 
12 using namespace std;
13 
15  : CHECDataBlock(HECDB_AMPLITUDE), ItemList() {
16  name[0] = 0;
17  strcpy(definition, "TABULAR");
18  strcpy(time, "STEP TIME");
19  strcpy(value, "RLATIVE");
20 }
21 
23 
24 void CHECDB_Amplitude::Clear() { ItemList.clear(); }
25 
27  if (ItemList.size() == 0) return;
28 
29  hecd->WriteHeader("!AMPLITUDE", "SSSS", "NAME", name, "DEFINITION",
30  definition, "TIME", time, "VALUE", value);
31  vector<CItem>::iterator iter;
32 
33  for (iter = ItemList.begin(); iter != ItemList.end(); iter++) {
34  hecd->WriteData("FF", iter->val, iter->t);
35  }
36 }
37 
38 bool CHECDB_Amplitude::Read(CHECData *hecd, char *header_line) {
39  int rcode[10];
40 
41  if (!hecd->ParseHeader(header_line, rcode, "SSSS", "NAME", name, "DEFINITION",
42  definition, "TIME", time, "VALUE", value))
43  return false;
44 
45  double val, t;
46 
47  while (hecd->ReadData(rcode, "FF", &val, &t)) {
48  ItemList.push_back(CItem(val, t));
49  }
50 
51  return true;
52 }
CHECDB_Amplitude::definition
char definition[hec_name_size]
Definition: CHECDB.h:249
CHECDataBlock
Definition: CHECDataBlock.h:17
CHECData::ParseHeader
virtual bool ParseHeader(char *header_line, int *rcode, const char *fmt,...)
Definition: CHECData.cpp:506
CHECData.h
CHECDB_Amplitude::Read
virtual bool Read(class CHECData *hecd, char *header_line)
Definition: CHECDB_Amplitude.cpp:38
CHECDB_Amplitude::Write
virtual void Write(class CHECData *hecd)
Definition: CHECDB_Amplitude.cpp:26
CHECDB_Amplitude::value
char value[hec_name_size]
Definition: CHECDB.h:251
HECDB_AMPLITUDE
@ HECDB_AMPLITUDE
Definition: CHECDB.h:29
CHECDB_Amplitude::Clear
virtual void Clear()
Definition: CHECDB_Amplitude.cpp:24
CHECData::WriteData
virtual void WriteData(const char *fmt,...)
Definition: CHECData.cpp:162
CHECDB_Amplitude::name
char name[hec_name_size]
Definition: CHECDB.h:248
CHECDB.h
CHECDB_Amplitude::CItem
Definition: CHECDB.h:253
CHECData::ReadData
virtual bool ReadData(int *rcode, const char *fmt,...)
Definition: CHECData.cpp:548
CHECData::WriteHeader
virtual void WriteHeader(const char *name, const char *fmt="",...)
Definition: CHECData.cpp:68
CHECData
Definition: CHECData.h:25
CHECDB_Amplitude::CHECDB_Amplitude
CHECDB_Amplitude()
Definition: CHECDB_Amplitude.cpp:14
CHECDB_Amplitude::~CHECDB_Amplitude
virtual ~CHECDB_Amplitude()
Definition: CHECDB_Amplitude.cpp:22
CHECDB_Amplitude::time
char time[hec_name_size]
Definition: CHECDB.h:250
CHECDB_Amplitude::ItemList
std::vector< CItem > ItemList
Definition: CHECDB.h:258