GranOO  3.0
A robust and versatile workbench to build 3D dynamic simulations based on the Discrete Element Method
ConvertElementPairToKratosFlatBond.hpp
Go to the documentation of this file.
1 // This file is part of GranOO, a workbench for DEM simulation.
2 //
3 // Author(s) : - Jean-luc CHARLES I2M-DuMAS/ENSAM Talence France
4 // <jean-luc.charles@ensam.eu>
5 // - Damien ANDRE SPCTS/ENS Ceramique industrielle, Limoges France
6 // <damien.andre@unilim.fr>
7 // - Jeremie GIRARDOT I2M-DuMAS/ENSAM Talence France
8 // <jeremie.girardot@ensam.eu>
9 // - Cedric Hubert LAMIH/UVHC Valenciennes France
10 // <cedric.hubert@univ-valenciennes.fr>
11 // - Ivan IORDANOFF I2M-DuMAS-MPI/ENSAM Talence France
12 // <ivan.iordanoff@ensam.eu>
13 //
14 // Copyright (C) 2008-2016 JL. CHARLES, D. ANDRE, I. IORDANOFF, J. GIRARDOT
15 //
16 //
17 //
18 //
19 //
20 // This program is free software: you can redistribute it and/or modify
21 // it under the terms of the GNU General Public License as published by
22 // the Free Software Foundation, either version 3 of the License, or
23 // (at your option) any later version.
24 //
25 // This program is distributed in the hope that it will be useful,
26 // but WITHOUT ANY WARRANTY; without even the implied warranty of
27 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28 // GNU General Public License for more details.
29 //
30 // You should have received a copy of the GNU General Public License
31 // along with this program. If not, see <http://www.gnu.org/licenses/>.
32 
33 
34 #ifndef _libDEM_ProcessPlugIn_ConvertElementPairToKratosFlatBond_hpp_
35 #define _libDEM_ProcessPlugIn_ConvertElementPairToKratosFlatBond_hpp_
36 
37 #ifdef KRATOS
38 
39 #include "GranOO3/Core/PlugIn.hpp"
40 
41 #include "GranOO3/Core/Convert.hpp"
45 
47 
48 
49 namespace GranOO3
50 {
51  namespace PlugIn
52  {
53 
54 
55  class ConvertElementPairToKratosFlatBond: public ConvertElementPairToBond
56  {
57  DECLARE_STD_GRANOO_PLUGIN(CONVERT-ELEMENT-PAIR-TO-KRATOS-FLAT-BOND);
58 
59  public:
60  enum DamageSofteningType {LINEAR, EXPONENTIAL};
61 
62  public:
63  ConvertElementPairToKratosFlatBond();
64  virtual ~ConvertElementPairToKratosFlatBond();
65 
66  public:
67  virtual void parse_xml();
68  virtual void run_conversion();
69 
70  DEM::KratosFlatBond& instanciate(DEM::ElementPair&);
71 
72  protected:
73  double _young_modulus;
74  double _poisson_ratio;
75  double _yield_stress;
76  double _fracture_energy;
77  double _damage_threshold;
78  double _characteristic_length;
79  std::vector<double> _ortho_elastic_constant_vector;
80  DamageSofteningType _softening_type;
81  DEM::KratosFlatBond::Type _type;
82  };
83 
84 
85 
86  }
87 }
88 
89 #endif // END OF KRATOS
90 
91 
92 #endif
#define DECLARE_STD_GRANOO_PLUGIN(T)
Definition: PlugIn.hpp:56
Core::Pair< DEM::Element > ElementPair
this typedef is simply a shortcut to the Core::Pair<DEM::Element> class
Definition: ElementPair.hpp:43
Definition: Common.hpp:198