Xfem
The Xfem Plugin
Loading...
Searching...
No Matches
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
27class LuaTable;
28
30{
31public:
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
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
92private:
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
Definition xfemOptions.h:30
const char ** SaRelPerOptions()
set Saturation and Relative Permeability Model
Definition xfemOptions.cpp:106
EvaluationZone
evaluation zone of the criteria
Definition xfemOptions.h:44
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
const char ** evalZoneOptions()
set evaluation Zone
Definition xfemOptions.cpp:81
PropagationCriteria
type of crack propagation
Definition xfemOptions.h:34
const char ** criteriaOptions()
set propagation criteria
Definition xfemOptions.cpp:70
XfemOptions()
Constructor.
Definition xfemOptions.cpp:32
const char ** weightOptions()
set weight function
Definition xfemOptions.cpp:94