-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathbmi_heat.hxx
85 lines (65 loc) · 2.43 KB
/
bmi_heat.hxx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#ifndef BMI_HEAT_H_INCLUDED
#define BMI_HEAT_H_INCLUDED
#include <string>
#include <iostream>
#include <bmi.hxx>
#include "heat.hxx"
class NotImplemented : public std::logic_error {
public:
NotImplemented() : std::logic_error("Not Implemented") { };
};
class BmiHeat : public bmi::Bmi {
public:
BmiHeat() {
this->input_var_names[0] = "plate_surface__temperature";
this->output_var_names[0] = "plate_surface__temperature";
};
void Initialize(std::string config_file);
void Update();
void UpdateUntil(double time);
void Finalize();
std::string GetComponentName();
int GetInputItemCount();
int GetOutputItemCount();
std::vector<std::string> GetInputVarNames();
std::vector<std::string> GetOutputVarNames();
int GetVarGrid(std::string name);
std::string GetVarType(std::string name);
int GetVarItemsize(std::string name);
std::string GetVarUnits(std::string name);
int GetVarNbytes(std::string name);
std::string GetVarLocation(std::string name);
double GetCurrentTime();
double GetStartTime();
double GetEndTime();
std::string GetTimeUnits();
double GetTimeStep();
void GetValue(std::string name, void *dest);
void *GetValuePtr(std::string name);
void GetValueAtIndices(std::string name, void *dest, int *inds, int count);
void SetValue(std::string name, void *src);
void SetValueAtIndices(std::string name, int *inds, int len, void *src);
int GetGridRank(const int grid);
int GetGridSize(const int grid);
std::string GetGridType(const int grid);
void GetGridShape(const int grid, int *shape);
void GetGridSpacing(const int grid, double *spacing);
void GetGridOrigin(const int grid, double *origin);
void GetGridX(const int grid, double *x);
void GetGridY(const int grid, double *y);
void GetGridZ(const int grid, double *z);
int GetGridNodeCount(const int grid);
int GetGridEdgeCount(const int grid);
int GetGridFaceCount(const int grid);
void GetGridEdgeNodes(const int grid, int *edge_nodes);
void GetGridFaceEdges(const int grid, int *face_edges);
void GetGridFaceNodes(const int grid, int *face_nodes);
void GetGridNodesPerFace(const int grid, int *nodes_per_face);
private:
heat::Heat _model;
static const int input_var_name_count = 1;
static const int output_var_name_count = 1;
std::string input_var_names[2];
std::string output_var_names[2];
};
#endif