Xfem
The Xfem Plugin
xfemOptions.h
Go to the documentation of this file.
1 /************************************************************************
2 **
3 ** Copyright (C) 2014 by Carlos Augusto Teixera Mendes
4 ** All rights reserved.
5 **
6 ** This file is part of the "GeMA" software. It's use should respect
7 ** the terms in the license agreement that can be found together
8 ** with this source code.
9 ** It is provided AS IS, with NO WARRANTY OF ANY KIND,
10 ** INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR
11 ** A PARTICULAR PURPOSE.
12 **
13 ************************************************************************/
14 
24 #ifndef _GEMA_PLUGIN_XFEM_OPTIONS_H_
25 #define _GEMA_PLUGIN_XFEM_OPTIONS_H_
26 
27 class LuaTable;
28 
30 {
31 public:
34  {
35  MaxPS,
36  MaxPE,
37  //-----------------------------------
38  // IMPORTANT: When adding entries or CHANGING enum order, please remember
39  // to also change criteriaOptions()
40  };
41 
44  {
45  tip,
46  centroid,
47  nonLocalQuad,
48  nonLocalCircle,
49  //-----------------------------------
50  // IMPORTANT: When adding entries or CHANGING enum order, please remember
51  // to also change evalZoneOptions()
52  };
53 
54  //
55  enum WeightFunction
56  {
57  uniform,
58  gauss,
59  cubic,
60  //-----------------------------------
61  // IMPORTANT: When adding entries or CHANGING enum order, please remember
62  // to also change weightOptions()
63  };
64 
65  // Saturation and Relative Permeability Model
66  enum SaturationRelativePermeabilityModel
67  {
68  BrooksAndCorey,
69  vanGenuchtenMualem,
70  //-----------------------------------
71  // IMPORTANT: When adding entries or CHANGING enum order, please remember
72  // to also change saturationRelativePermeabilityModelOptions()
73  };
74 
75  //constructors
76  XfemOptions();
77 
78  void loadFromTable(LuaTable& optionsTable);
79 
80  PropagationCriteria _criteria;
81  EvaluationZone _evalZone;
82  WeightFunction _weight;
83  SaturationRelativePermeabilityModel _SaRelPer;
84  double _geometricTol;
85  double _radius;
86  bool _noPreProcessing;
87  bool _noPostProcessing;
88  bool _noCubicLaw;
89  bool _multiPhasic;
90  bool _nonIsoThermal;
91 
92 private:
93  const char** criteriaOptions();
94  const char** evalZoneOptions();
95  const char** weightOptions();
96  const char** SaRelPerOptions();
97 
98  void setCriteria(int index) { _criteria = (PropagationCriteria)index; }
99  void setEvalZone(int index) { _evalZone = (EvaluationZone)index; }
100  void setWeight (int index) { _weight = (WeightFunction)index; }
101  void setSaRelPer(int index) { _SaRelPer = (SaturationRelativePermeabilityModel)index; }
102 };
103 
104 #endif
const char ** criteriaOptions()
set propagation criteria
Definition: xfemOptions.cpp:70
XfemOptions()
Constructor.
Definition: xfemOptions.cpp:32
const char ** evalZoneOptions()
set evaluation Zone
Definition: xfemOptions.cpp:81
void loadFromTable(LuaTable &optionsTable)
Parses the set of XFem user parameters. On errors, this function calls luaL_error and does not return...
Definition: xfemOptions.cpp:50
Definition: xfemOptions.h:29
EvaluationZone
evaluation zone of the criteria
Definition: xfemOptions.h:43
PropagationCriteria
type of crack propagation
Definition: xfemOptions.h:33
const char ** SaRelPerOptions()
set Saturation and Relative Permeability Model
Definition: xfemOptions.cpp:106
const char ** weightOptions()
set weight function
Definition: xfemOptions.cpp:94