Karamelo  714599e9
Parallel Material Point Method Simulator
method.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 #ifndef MPM_METHOD_H
15 #define MPM_METHOD_H
16 
17 #include "pointers.h"
18 #include <vector>
19 
25 class Method : protected Pointers {
26  public:
27  int style = 0;
28  string method_type;
29 
30  Method(class MPM *);
31  virtual ~Method();
32 
33  virtual void setup(vector<string>) = 0;
34  virtual void compute_grid_weight_functions_and_gradients() = 0;
35  virtual void particles_to_grid() = 0;
36  virtual void update_grid_state() = 0;
37  virtual void grid_to_points() = 0;
38  virtual void advance_particles() = 0;
39  virtual void velocities_to_grid() = 0;
40  virtual void update_grid_positions() = 0;
41  virtual void compute_rate_deformation_gradient() = 0;
42  virtual void update_deformation_gradient() = 0;
43  virtual void update_stress() = 0;
44  virtual void adjust_dt() = 0;
45  virtual void reset() = 0;
46  virtual void exchange_particles() = 0;
47 
48  bool is_TL;
49  bool is_CPDI;
50 };
51 
52 #endif
53 
bool is_TL
true: the method is total Lagrangian; false: it is updated Lagrangian
Definition: method.h:48
Definition: mpm.h:29
Definition: method.h:25
Definition: pointers.h:29
bool is_CPDI
true if the method is a CPDI-like
Definition: method.h:49