Karamelo  714599e9
Parallel Material Point Method Simulator
input.h
1 /* -*- c++ -*- ----------------------------------------------------------
2  *
3  * *** Karamelo ***
4  * Parallel Material Point Method Simulator
5  *
6  * Copyright (2019) Alban de Vaucorbeil, alban.devaucorbeil@monash.edu
7  * Materials Science and Engineering, Monash University
8  * Clayton VIC 3800, Australia
9 
10  * This software is distributed under the GNU General Public License.
11  *
12  * ----------------------------------------------------------------------- */
13 
14 
15 #ifndef MPM_INPUT_H
16 #define MPM_INPUT_H
17 
18 #include "pointers.h"
19 #include "var.h"
20 #include <vector>
21 #include <map>
22 
23 
30 class Input : protected Pointers {
31  friend class Error;
32 public:
33  int narg;
34  char **arg;
35 
36  map<string, class Var> *vars;
37 
39  // functions
40  Input(class MPM *, int, char **);
41  ~Input();
42  void file();
43  class Var parsev(string);
44  double parse(string);
45 
46 
47 private:
48  int me;
49  char *command;
50  string line, copy;
51  int line_number;
52  int maxline, maxcopy;
53  int maxarg;
54 
55  int numtriple(char *);
56  double precedence(string);
57  Var applyOp(Var, string, Var);
58  bool is_operator(char);
59  bool is_math_char(char);
60  Var evaluate_function(string , string);
61  string remove_whitespace(string);
62  int dimension(vector<string>);
63  int axisymmetric(vector<string>);
64  int region(vector<string>);
65  int solid(vector<string>);
66  int add_EOS(vector<string>);
67  int add_strength(vector<string>);
68  int add_material(vector<string>);
69  int add_damage(vector<string>);
70  int add_temperature(vector<string>);
71  int dump(vector<string>);
72  int group_command(vector<string>);
73  int set_output(vector<string>);
74  int log_modify(vector<string>);
75  int method(vector<string>);
76  int scheme(vector<string>);
77  int fix(vector<string>);
78  int delete_fix(vector<string>);
79  int set_dt_factor(vector<string>);
80  int set_dt(vector<string>);
81  class Var value(vector<string>);
82  int plot(vector<string>);
83  int save_plot(vector<string>);
84  int print(vector<string>);
85  int create_domain(vector<string>);
86 
87  bool protected_variable(string);
88 
89  vector<string> protected_vars;
90 
91  public:
92  typedef class Var (*CommandCreator)(MPM *,vector<string>);
93  typedef map<string,CommandCreator> CommandCreatorMap;
94  CommandCreatorMap *command_map;
95 
96  protected:
97  template <typename T> static class Var command_creator(MPM *,vector<string>);
98 
99 };
100 
101 #endif
Definition: error.h:22
Definition: mpm.h:29
map< string, class Var > * vars
Definition: input.h:36
double parse(string)
Deprecated function.
Definition: input.cpp:325
int narg
Number of command args.
Definition: input.h:33
class Var parsev(string)
Parse an input text line.
Definition: input.cpp:332
Definition: input.h:30
Definition: pointers.h:29
char ** arg
Parsed args for command.
Definition: input.h:34
void file()
Reads the input file line by line and pass it to parsev().
Definition: input.cpp:101
CommandCreatorMap * command_map
Map of the commands listed in style_command.h.
Definition: input.h:94