Memosa-FVM  0.2
PlateBC.h
Go to the documentation of this file.
1 // This file os part of FVM
2 // Copyright (c) 2012 FVM Authors
3 // See LICENSE file for terms.
4 
5 #include "misc.h"
6 #include "FloatVarDict.h"
7 #include "TractionVal.h"
8 #include "AMG.h"
9 
10 template<class T>
11 struct PlateBC : public FloatVarDict<T>
12 {
14  {
15  this->defineVar("specifiedXRotation",T(0.0));
16  this->defineVar("specifiedYRotation",T(0.0));
17  this->defineVar("specifiedZDeformation",T(0.0));
18  this->defineVar("specifiedXShear",T(0.0));
19  this->defineVar("specifiedYShear",T(0.0));
20  this->defineVar("specifiedZShear",T(0.0));
21  }
22  string bcType;
23 };
24 
25 template<class T>
26 struct PlateVC : public FloatVarDict<T>
27 {
29  {
30  this->defineVar("ym",T(1.0));
31  this->defineVar("nu",T(1.0));
32  this->defineVar("density",T(1.0));
33  }
34  string vcType;
35 };
36 
37 
38 template<class T>
39 struct PlateModelOptions : public FloatVarDict<T>
40 {
42  {
43  this->defineVar("initialXRotation",T(0.0));
44  this->defineVar("initialYRotation",T(0.0));
45  this->defineVar("initialZDeformation",T(0.0));
46  this->defineVar("deformationURF",T(0.7));
47  this->defineVar("timeStep",T(0.1));
48  this->defineVar("operatingTemperature",T(300.0));
49  this->defineVar("residualStressXX",T(0.0));
50  this->defineVar("residualStressYY",T(0.0));
51  this->defineVar("residualStressZZ",T(0.0));
52  this->defineVar("residualStressXY",T(0.0));
53  this->defineVar("residualStressYZ",T(0.0));
54  this->defineVar("residualStressXZ",T(0.0));
55 
56  this->deformationTolerance=1e-4;
57  this->printNormalizedResiduals = true;
58  this->transient = false;
60  this->scf=1.0; //lateral shear correction factor
61  this->variableTimeStep = false;
62  this->timeStepN1=0.1;
63  this->timeStepN2=0.1;
64  this->deformationLinearSolver = 0;
65  this->creep = false;
66  this->constForce = true;
67  this->creepModel=1;
68  this->A = 0.03/3600.;
69  this->B = 1.8e8;
70  this->m = 2.0;
71  this->n = 2.0;
72  this->Sy0 = 1.0e9;
73  this->nz = 20;
74 
75  this->incompressible = true;
76  }
77 
80  bool transient;
82  double scf;
84  double timeStepN1;
85  double timeStepN2;
87  bool creep;
88  bool constForce;
90  double A;
91  double B;
92  double m;
93  double n;
94  double Sy0;
95  int nz;
96 
98 #ifndef SWIG
100  {
101  if (this->deformationLinearSolver == 0)
102  {
103  LinearSolver* ls(new AMG());
104  ls->relativeTolerance = 1e-1;
105  ls->nMaxIterations = 20;
106  ls->verbosity=0;
107  this->deformationLinearSolver = ls;
108  }
109  return *this->deformationLinearSolver ;
110  }
111 #endif
112 };
113 
LinearSolver & getDeformationLinearSolver()
Definition: PlateBC.h:99
double timeStepN1
Definition: PlateBC.h:84
double timeStepN2
Definition: PlateBC.h:85
double deformationTolerance
Definition: PlateBC.h:79
bool variableTimeStep
Definition: PlateBC.h:83
Definition: AMG.h:27
bool incompressible
Definition: PlateBC.h:97
PlateBC()
Definition: PlateBC.h:13
void defineVar(const string varName, const T defaultValue)
Definition: FloatVarDict.h:94
int nMaxIterations
Definition: LinearSolver.h:31
double relativeTolerance
Definition: LinearSolver.h:33
string vcType
Definition: PlateBC.h:34
PlateVC()
Definition: PlateBC.h:28
string bcType
Definition: PlateBC.h:22
int timeDiscretizationOrder
Definition: PlateBC.h:81
LinearSolver * deformationLinearSolver
Definition: PlateBC.h:86
bool printNormalizedResiduals
Definition: PlateBC.h:78