Loading [MathJax]/extensions/tex2jax.js
Plugins
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
biot_tools.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2019-2020: G-CSC, Goethe University Frankfurt
3 * Author: Arne Naegel
4 *
5 * This file is part of UG4.
6 *
7 * UG4 is free software: you can redistribute it and/or modify it under the
8 * terms of the GNU Lesser General Public License version 3 (as published by the
9 * Free Software Foundation) with the following additional attribution
10 * requirements (according to LGPL/GPL v3 §7):
11 *
12 * (1) The following notice must be displayed in the Appropriate Legal Notices
13 * of covered and combined works: "Based on UG4 (www.ug4.org/license)".
14 *
15 * (2) The following notice must be displayed at a prominent place in the
16 * terminal output of covered works: "Based on UG4 (www.ug4.org/license)".
17 *
18 * (3) The following bibliography is recommended for citation and must be
19 * preserved in all covered files:
20 * "Reiter, S., Vogel, A., Heppner, I., Rupp, M., and Wittum, G. A massively
21 * parallel geometric multigrid solver on hierarchically distributed grids.
22 * Computing and visualization in science 16, 4 (2013), 151-164"
23 * "Vogel, A., Reiter, S., Rupp, M., Nägel, A., and Wittum, G. UG4 -- a novel
24 * flexible software system for simulating pde based models on high performance
25 * computers. Computing and visualization in science 16, 4 (2013), 165-179"
26 *
27 * This program is distributed in the hope that it will be useful,
28 * but WITHOUT ANY WARRANTY; without even the implied warranty of
29 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
30 * GNU Lesser General Public License for more details.
31 */
32
33#ifndef __BIOT_TOOLS_H__
34#define __BIOT_TOOLS_H__
35
36
37// std libs.
38#include <string.h>
39#include <vector>
40
41// Boost
42#include <boost/math/special_functions/bessel.hpp>
43
44// UG4 dependencies.
48
49
50// Plugin dependencies.
51#include "../ConvectionDiffusion/fe/convection_diffusion_fe.h"
52#include "../ConvectionDiffusion/fe/convection_diffusion_stab_fe.h"
53#include "../ConvectionDiffusion/fv1/convection_diffusion_fv1.h"
54#include "../SmallStrainMechanics/small_strain_mech.h"
55#include "../SmallStrainMechanics/material_laws/hooke.h"
56
57#ifdef UG_JSON
58#include <nlohmann/json.hpp>
59#endif
60
61namespace ug {
62namespace Poroelasticity {
63
65double BesselJ0(double x);
66double BesselJ1(double x);
67
68
69
70
72{
73 BiotDiscConfig(const char* uCmp, const char *pCmp)
74 : m_uCmp(uCmp), m_pCmp(pCmp), m_uOrder(2), m_pOrder(1), m_dStab(0.0),
76 {}
77
78 BiotDiscConfig(const char* uCmp, int uorder, const char *pCmp, int porder)
79 : m_uCmp(uCmp), m_pCmp(pCmp), m_uOrder(uorder), m_pOrder(porder), m_dStab(0.0),
81
82 BiotDiscConfig(const char* uCmp, int uorder, const char *pCmp, int porder, double dStab)
83 : m_uCmp(uCmp), m_pCmp(pCmp), m_uOrder(uorder), m_pOrder(porder), m_dStab(dStab),
85
86 BiotDiscConfig(const char* uCmp, int uorder, const char *pCmp, int porder, bool bSteadyStateMechanics)
87 : m_uCmp(uCmp), m_pCmp(pCmp), m_uOrder(uorder), m_pOrder(porder), m_dStab(0.0),
88 m_bSteadyStateMechanics(bSteadyStateMechanics), m_identityFlow(false) {}
89
90
92 void set_stabilization(double dStab)
93 { m_dStab = dStab; }
94
95 int get_porder() const {return m_pOrder;}
96 int get_uorder() const {return m_uOrder;}
97
98 std::string m_uCmp, m_pCmp;
100 double m_dStab;
101
104};
105
107/*
108 *
109 *
110 {
111
112 {"alpha":1.0,"beta":2.799999999999999e-06,"kappa":0.01,"lambda":142857.1428571429,"mu":35714.28571428572,"phi":0.0,"subsets":"INNER"}
113 } */
115{
116public:
117
120
122 BiotSubsetParameters(const char *s, number alpha, number kappa, number phi, number lambda, number mu, number beta)
123 : m_subsets(s), m_alpha(alpha), m_kappa(kappa), m_phi(phi), m_lambda(lambda), m_mu(mu), m_beta_uzawa(beta)
124 {}
125
127 std::string get_subsets() const { return m_subsets; }
128 void set_subsets(std::string subset) { m_subsets = subset; }
129
131 number get_alpha() const { return m_alpha; }
132 void set_alpha(number alpha) { m_alpha = alpha; }
133
135 number get_phi() const { return m_phi; }
136 void set_phi(number phi) { m_phi = phi; }
137
139 number get_kappa() const { return m_kappa; }
140 void set_kappa(number kappa) { m_kappa = kappa; }
141
143 number get_lambda() const { return m_lambda; }
144 void set_lambda(number lambda) { m_lambda = lambda; }
145
147 number get_mu() const { return m_mu; }
148 void set_mu(number mu) { m_mu = mu; }
149
151 number get_beta() const { return m_beta_uzawa; }
152 void set_beta(number beta) { m_beta_uzawa = beta; }
153
154#ifdef UG_JSON
155 friend void from_json(const nlohmann::json& j, BiotSubsetParameters& p);
156#endif
157
158protected:
159 std::string m_subsets;
160
163
167
169};
170
171#ifdef UG_JSON
172void to_json(nlohmann::json &j, const BiotSubsetParameters &p);
173void from_json(const nlohmann::json &j, BiotSubsetParameters &p);
174#endif
175
176
177
179double DefaultCharTime(const BiotSubsetParameters& p, double length=1.0);
180
181// Container for data (TODO: Extend to real IElemDisc?)
182template <typename TDomain>
184{
185public:
186 static const int dim = TDomain::dim;
191
194
197
198 // SmartPtr<TConvectionDiffusion> pressure_disc()
201
202 // SmartPtr<TSmallStrainMechanics> displacement_disc()
205
208
211
212protected:
213 // Container data.
216
217
220
221public:
223 const BiotDiscConfig &config)
224 {
225 CreateElemDiscs(param, config.m_uCmp.c_str(), config.m_uOrder,
226 config.m_pCmp.c_str(), config.m_pOrder,
228 }
229 // This is the main function for constructing from a parameter set.
231 const char *ucmps, int uorder,
232 const char *pcmp, int porder,
233 bool bSteadyStateMechanics=true)
234 {
235
236 // Create main objects.
237 flowEqDisc = make_sp(new TConvectionDiffusion(pcmp, param.get_subsets().c_str()));
238 displacementEqDisc = make_sp(new TSmallStrainMechanics(ucmps, param.get_subsets().c_str()));
239
240 // Do not scale with tau?
241 displacementEqDisc->set_stationary(bSteadyStateMechanics);
242
243 // A) Specify displacement eq (for u)
244 // (Note: This corresponds to plane strain in 2D)
246 matLaw->set_hooke_elasticity_tensor(param.get_lambda(), param.get_mu());
247
248 displacementEqDisc->set_material_law(matLaw);
249 displacementEqDisc->set_mass_scale(0.0);
250
251 // Add divergence.
253 divLinker->add(param.get_alpha(), flowEqDisc->value());
254 displacementEqDisc->set_div_factor(divLinker);
255
256 // B) Specify flow eq (for p).
258 compressionLinker->add(param.get_alpha(), displacementEqDisc->divergence());
259
260 flowEqDisc->set_mass(compressionLinker);
261 flowEqDisc->set_mass_scale(param.get_phi()); // Storativity 1.0/M = S ‰
262 flowEqDisc->set_diffusion((number) param.get_kappa());
263
264 // TODO: Adjust quadrature order
265 if (dim==2) {
266
267 if (porder==1) { flowEqDisc->set_quad_order(4); }
268 if (uorder==2) { displacementEqDisc->set_quad_order(4); }
269
270 }
271 else if (dim == 3) {
272
273 if (uorder == 1) {
274 // displacementEqDisc->set_quad_order(2);
275 } else if (uorder == 2) {
276 displacementEqDisc->set_quad_order(5);
277 flowEqDisc->set_quad_order(3);
278 }
279 }
280
281 // Print info.
282 // UG_LOG(flowEqDisc->config_string());
283 UG_LOG(displacementEqDisc->config_string());
284
285
286 }
287
290 {
291 flowEqDisc->set_mass(0.0);
292 flowEqDisc->set_mass_scale(1.0);
293 flowEqDisc->set_diffusion(0.0);
294 //flowEqDisc->set_flux(ConstUserVector<dim>(0.0));
295 //flowEqDisc->set_velocity(ConstUserVector<dim>(0.0));
296 flowEqDisc->set_reaction_rate(0.0);
297 flowEqDisc->set_reaction(0.0);
298 flowEqDisc->set_source(0.0);
299
300 }
301
302
303
304
305
306};
307
309template <typename TDomain>
311public:
312 static const int dim = TDomain::dim;
314
315 BiotElemDiscFactory(const char *ucmps, int uorder, const char *pcmp, int porder,
316 bool bSteadyStateMechanics=true)
317 : m_config(ucmps, uorder, pcmp, porder, bSteadyStateMechanics){}
318
320
321 // Create new disc container.
323 {
325 biot->CreateElemDiscs(param, m_config);
326
328 { biot->SetPressureDiscIdentity(); }
329 return biot;
330 }
331
332 // Create new disc container. Pressure disc is identity.
334 {
336 biot->CreateElemDiscs(param, m_config);
337 biot->SetPressureDiscIdentity();
338 return biot;
339 }
340
341protected:
342 // BiotDiscConfig& config() {return m_config;}
343 const BiotDiscConfig& config() {return m_config;} const
345
346};
347
348/* JSON object representation
349{
350 "discretization" = {
351 "ucmp" = "ux, uy, uz"
352 "uorder" = 2,
353
354 "pcmp" = "p"
355 "porder" = 1,
356
357 "stab" = 1.0
358 }
359
360
361 "gridname" = "mygrid"
362
363
364 "params" : [
365 { "subset" = "subset1", "alpha" = 1.0, "mu" = },
366 { "subset" = "subset2", "alpha" = 1.0 },
367 ]
368}
369*/
370
372
373template <typename TDomain, typename TAlgebra>
375{
376public:
377 static const int dim = TDomain::dim;
381protected:
384public:
385
387 BiotProblem(const char* uCmp, const char *pCmp, const char *gridname)
388 : m_config(uCmp, pCmp), m_gridname(gridname) {}
389
391 BiotProblem(const BiotDiscConfig& config, const char *gridname)
392 : m_config(config), m_gridname(gridname) {}
393
395 virtual ~BiotProblem() {}
396
397 // get grid name
398 const char* get_gridname() const { return m_gridname.c_str();}
399
402 { m_params.push_back(p); }
403
404#ifdef UG_JSON
406 void add_subset_parameters(const char* &json_string)
407 {
408 std::stringstream ss;
409 ss << json_string;
410
411 nlohmann::json json;
412 ss >> json;
413
414 BiotSubsetParameters _p = json; // implicit use of from_json!
415 m_params.push_back(_p);
416 }
417#endif
418
419
420
422 virtual double get_char_time()
423 {
424 std::vector<BiotSubsetParameters>::const_iterator it= m_params.begin();
425 double tchar = 0.0;
426
427 for(it = m_params.begin(); it != m_params.end(); it++) {
428 tchar=std::max(tchar, DefaultCharTime(*it));
429 }
430
431 return tchar;
432 }
433
434 virtual double start_time()
435 { return 0.0; }
436
437 virtual double end_time()
438 { return 2.0*get_char_time(); }
439
440
442 void add_elem_discs_general(SmartPtr<TDomainDisc> dd, bool bSteadyStateMechanics=true, bool bIdentityFlow=false)
443 {
444 // Using factory to create elem discs.
445 typedef BiotElemDiscFactory<TDomain> TBiotElemDiscFactory;
446 typedef BiotElemDisc<TDomain> TBiotElemDisc;
447
448 BiotDiscConfig conf = config();
449 conf.m_bSteadyStateMechanics = bSteadyStateMechanics;
450 conf.m_identityFlow = bIdentityFlow;
451
452 BiotElemDiscFactory<TDomain> elemDiscFactory(conf);
453
454 // Iterate over parameter sets.
455 std::vector<BiotSubsetParameters>::iterator it;
456 for(it = m_params.begin(); it != m_params.end(); it++)
457 {
458 // Create elem discs and add
459 SmartPtr<TBiotElemDisc> biot = elemDiscFactory.create_elem_discs(*it);
460 dd->add(biot->displacement_disc().template cast_dynamic<TElemDisc>());
461 dd->add(biot->pressure_disc().template cast_dynamic<TElemDisc>());
462 }
463 }
464
465
466 virtual void add_elem_discs(SmartPtr<TDomainDisc> dd, bool bSteadyStateMechanics=true)
467 { add_elem_discs_general(dd,bSteadyStateMechanics); }
468
471
472
473
474protected:
476 virtual void add_stab_discs(SmartPtr<TDomainDisc> dd, bool bSteadyStateMechanics=true)
477 {
478 UG_ASSERT(bSteadyStateMechanics == true, "ERROR: Only implemented for Mass matrix!");
479
480 if (config().m_dStab <= 0.0) return;
481
482 SmartPtr<TElemDisc> pDiscStab;
483 std::vector<BiotSubsetParameters>::iterator it;
484 for(it = m_params.begin(); it != m_params.end(); it++) {
485 double gamma = it->get_lambda() + 2.0*it->get_mu();
486 pDiscStab = make_sp(new TConvectionDiffusionStab(config().m_pCmp.c_str(), it->get_subsets().c_str(), config().m_dStab/gamma));
487 dd->add(pDiscStab.template cast_dynamic<TElemDisc>());
488 }
489 }
490
491public:
493 virtual void add_uzawa_discs(SmartPtr<TDomainDisc> dd, bool bSteadyStateMechanics=true)
494 {
495
496 UG_ASSERT(bSteadyStateMechanics == true, "ERROR: Only implemented for Mass matrix!");
497
499 std::vector<BiotSubsetParameters>::iterator it;
500 for(it = m_params.begin(); it != m_params.end(); it++) {
501 pDiscUzawa = make_sp(new TConvectionDiffusionFV1(config().m_pCmp.c_str(), it->get_subsets().c_str()));
502 pDiscUzawa->set_mass_scale(it->get_beta());
503 dd->add(pDiscUzawa.template cast_static<TElemDisc>());
504 }
505
506 }
507
508
511
514
516 virtual void add_boundary_conditions(SmartPtr<TDomainDisc> dd, bool bSteadyStateMechanics=true)
517 {
520 }
521
522
525 {}
526
528 virtual bool post_processing(SmartPtr<TGridFunction> u, size_t step, double time) {return true; }
529
530
531
532 const BiotDiscConfig& config() const { return m_config; }
533 int get_porder() const {return config().m_pOrder;}
534 int get_uorder() const {return config().m_uOrder;}
535
536protected:
538 std::vector<BiotSubsetParameters> m_params;
539 const std::string m_gridname;
540};
541
542
543#ifdef UG_JSON
544template <typename TDomain, typename TAlgebra>
545void to_json(nlohmann::json &j, const BiotProblem<TDomain,TAlgebra> &p);
546
547template <typename TDomain, typename TAlgebra>
548void from_json(const nlohmann::json &j, BiotProblem<TDomain,TAlgebra> &p);
549#endif
550
551
552} // namespace Poroelasticity
553} // namespace ug
554
555#endif
parameterString p
Definition Biogas.lua:1
parameterString s
Definition Biogas.lua:2
Discretization for the Convection-Diffusion Equation.
Definition convection_diffusion_fe.h:58
FV Discretization for the Convection-Diffusion Equation.
Definition convection_diffusion_fv1.h:61
Discretization for the Convection-Diffusion Equation.
Definition convection_diffusion_stab_fe.h:56
This class generates element discretizations.
Definition biot_tools.h:310
const BiotDiscConfig m_config
Definition biot_tools.h:344
BiotElemDiscFactory(const char *ucmps, int uorder, const char *pcmp, int porder, bool bSteadyStateMechanics=true)
Definition biot_tools.h:315
const BiotDiscConfig & config()
Definition biot_tools.h:343
BiotElemDiscFactory(const BiotDiscConfig &config)
Definition biot_tools.h:319
static const int dim
Definition biot_tools.h:312
BiotElemDisc< TDomain > TBiotDisc
Definition biot_tools.h:313
SmartPtr< TBiotDisc > create_elem_discs(const BiotSubsetParameters &param) const
Definition biot_tools.h:322
SmartPtr< TBiotDisc > create_elem_discs_for_consistency(const BiotSubsetParameters &param) const
Definition biot_tools.h:333
Definition biot_tools.h:184
SmartPtr< TSmallStrainMechanics > displacementEqDisc
Definition biot_tools.h:215
static const int dim
Definition biot_tools.h:186
ConstSmartPtr< TScaleAddLinkerNumber > divergence()
Definition biot_tools.h:209
void CreateElemDiscs(const BiotSubsetParameters &param, const BiotDiscConfig &config)
Definition biot_tools.h:222
ConstSmartPtr< TScaleAddLinkerNumber > compression_linker()
Definition biot_tools.h:206
SmartPtr< TScaleAddLinkerNumber > divLinker
Definition biot_tools.h:218
SmartPtr< TScaleAddLinkerNumber > compressionLinker
Definition biot_tools.h:219
ConvectionDiffusionPlugin::ConvectionDiffusionFE< TDomain > TConvectionDiffusion
Definition biot_tools.h:189
void CreateElemDiscs(const BiotSubsetParameters &param, const char *ucmps, int uorder, const char *pcmp, int porder, bool bSteadyStateMechanics=true)
Definition biot_tools.h:230
ScaleAddLinker< number, dim, number > TScaleAddLinkerNumber
Definition biot_tools.h:190
SmartPtr< TElemDisc > displacement_disc()
Definition biot_tools.h:203
SmartPtr< TElemDisc > pressure_disc()
Definition biot_tools.h:199
SmallStrainMechanics::SmallStrainMechanicsElemDisc< TDomain > TSmallStrainMechanics
Definition biot_tools.h:188
BiotElemDisc()
Definition biot_tools.h:192
IElemDisc< TDomain > TElemDisc
Definition biot_tools.h:187
BiotElemDisc(SmartPtr< TConvectionDiffusion > pDisc, SmartPtr< TSmallStrainMechanics > uDisc)
Definition biot_tools.h:195
void SetPressureDiscIdentity()
Reset pressure disc to identity (for consistent initial values)
Definition biot_tools.h:289
SmartPtr< TConvectionDiffusion > flowEqDisc
Definition biot_tools.h:214
A Biot problem consists of several element discs plus boundary conditions.
Definition biot_tools.h:375
DomainDiscretization< TDomain, TAlgebra > TDomainDisc
Definition biot_tools.h:379
BiotDiscConfig m_config
Definition biot_tools.h:537
virtual double start_time()
Definition biot_tools.h:434
virtual bool post_processing(SmartPtr< TGridFunction > u, size_t step, double time)
Post-processing (per time step)
Definition biot_tools.h:528
virtual void add_boundary_conditions_p(SmartPtr< TDomainDisc > dd)=0
Add boundary conditions for pressure.
virtual void add_boundary_conditions_u(SmartPtr< TDomainDisc > dd)=0
Add boundary conditions for deformation.
virtual void add_stab_discs(SmartPtr< TDomainDisc > dd, bool bSteadyStateMechanics=true)
Add stabilizationto domain disc.
Definition biot_tools.h:476
GridFunction< TDomain, TAlgebra > TGridFunction
Definition biot_tools.h:380
virtual double get_char_time()
Get characteristic time.
Definition biot_tools.h:422
void add_subset_parameters(const BiotSubsetParameters &p)
Add subset parameters.
Definition biot_tools.h:401
BiotProblem(const BiotDiscConfig &config, const char *gridname)
CTOR (full)
Definition biot_tools.h:391
virtual void add_boundary_conditions(SmartPtr< TDomainDisc > dd, bool bSteadyStateMechanics=true)
Add all boundary conditions.
Definition biot_tools.h:516
ConvectionDiffusionPlugin::ConvectionDiffusionStabFE< TDomain > TConvectionDiffusionStab
Definition biot_tools.h:382
virtual void add_elem_discs_with_static_pressure(SmartPtr< TDomainDisc > dd)
Definition biot_tools.h:469
virtual void interpolate_start_values(SmartPtr< TGridFunction > u, double t0)
Initial values.
Definition biot_tools.h:524
const BiotDiscConfig & config() const
Definition biot_tools.h:532
std::vector< BiotSubsetParameters > m_params
Definition biot_tools.h:538
int get_porder() const
Definition biot_tools.h:533
int get_uorder() const
Definition biot_tools.h:534
static const int dim
Definition biot_tools.h:377
const std::string m_gridname
Definition biot_tools.h:539
BiotProblem(const char *uCmp, const char *pCmp, const char *gridname)
CTOR (default orders)
Definition biot_tools.h:387
virtual void add_uzawa_discs(SmartPtr< TDomainDisc > dd, bool bSteadyStateMechanics=true)
Add stabilization to domain disc.
Definition biot_tools.h:493
ConvectionDiffusionPlugin::ConvectionDiffusionFV1< TDomain > TConvectionDiffusionFV1
Definition biot_tools.h:383
IElemDisc< TDomain > TElemDisc
Definition biot_tools.h:378
virtual ~BiotProblem()
DTOR.
Definition biot_tools.h:395
virtual void add_elem_discs(SmartPtr< TDomainDisc > dd, bool bSteadyStateMechanics=true)
Definition biot_tools.h:466
void add_elem_discs_general(SmartPtr< TDomainDisc > dd, bool bSteadyStateMechanics=true, bool bIdentityFlow=false)
Adding all elem discs to domain disc.
Definition biot_tools.h:442
const char * get_gridname() const
Definition biot_tools.h:398
virtual double end_time()
Definition biot_tools.h:437
Class for Biot parameters (per subset)
Definition biot_tools.h:115
void set_mu(number mu)
Definition biot_tools.h:148
void set_kappa(number kappa)
Definition biot_tools.h:140
number m_phi
Definition biot_tools.h:164
number m_alpha
Definition biot_tools.h:161
void set_beta(number beta)
Definition biot_tools.h:152
number get_lambda() const
Elasticity lambda.
Definition biot_tools.h:143
void set_phi(number phi)
Definition biot_tools.h:136
BiotSubsetParameters(const char *s, number alpha, number kappa, number phi, number lambda, number mu, number beta)
Create from table.
Definition biot_tools.h:122
void set_alpha(number alpha)
Definition biot_tools.h:132
number m_beta_uzawa
Definition biot_tools.h:168
number m_lambda
Definition biot_tools.h:165
void set_subsets(std::string subset)
Definition biot_tools.h:128
void set_lambda(number lambda)
Definition biot_tools.h:144
BiotSubsetParameters()
Default constructor.
Definition biot_tools.h:119
number get_alpha() const
Biot coefficient.
Definition biot_tools.h:131
number get_beta() const
OPTIONAL: Fixed-stress beta.
Definition biot_tools.h:151
std::string get_subsets() const
Subset.
Definition biot_tools.h:127
number m_kappa
Definition biot_tools.h:162
number m_mu
Definition biot_tools.h:166
std::string m_subsets
Definition biot_tools.h:159
number get_mu() const
Elasticity mu.
Definition biot_tools.h:147
number get_kappa() const
Diffusion.
Definition biot_tools.h:139
number get_phi() const
Storativity.
Definition biot_tools.h:135
const NullSmartPtr SPNULL
#define UG_ASSERT(expr, msg)
#define UG_LOG(msg)
double number
double BesselJ1(double x)
Definition biot_tools.cpp:42
double DefaultCharTime(const BiotSubsetParameters &p, double length)
Compute characteristic time.
Definition biot_tools.cpp:81
double BesselJ0(double x)
Bessel functions.
Definition biot_tools.cpp:39
SmartPtr< T, FreePolicy > make_sp(T *inst)
Definition biot_tools.h:72
int m_uOrder
Definition biot_tools.h:99
BiotDiscConfig(const char *uCmp, const char *pCmp)
Definition biot_tools.h:73
BiotDiscConfig(const char *uCmp, int uorder, const char *pCmp, int porder, bool bSteadyStateMechanics)
Definition biot_tools.h:86
bool m_identityFlow
Definition biot_tools.h:103
bool m_bSteadyStateMechanics
Definition biot_tools.h:102
double m_dStab
Definition biot_tools.h:100
int get_uorder() const
Definition biot_tools.h:96
BiotDiscConfig(const char *uCmp, int uorder, const char *pCmp, int porder)
Definition biot_tools.h:78
int m_pOrder
Definition biot_tools.h:99
std::string m_pCmp
Definition biot_tools.h:98
void set_stabilization(double dStab)
Stabilization parameter (from [0,1]).
Definition biot_tools.h:92
int get_porder() const
Definition biot_tools.h:95
std::string m_uCmp
Definition biot_tools.h:98
BiotDiscConfig(const char *uCmp, int uorder, const char *pCmp, int porder, double dStab)
Definition biot_tools.h:82