Finite Element Domain Decomposition Library
FEDDLib
Toggle main menu visibility
Loading...
Searching...
No Matches
AssembleFE_SCI_SMC_Active_Growth_Reorientation_decl.hpp
1
#ifndef AssembleFE_SCI_SMC_Active_Growth_Reorientation_DECL_hpp
2
#define AssembleFE_SCI_SMC_Active_Growth_Reorientation_DECL_hpp
3
4
#include "feddlib/core/AceFemAssembly/AssembleFE.hpp"
5
#include "feddlib/core/AceFemAssembly/AssembleFEBlock.hpp"
6
#include "feddlib/core/FEDDCore.hpp"
7
#include "feddlib/core/LinearAlgebra/Matrix.hpp"
8
#include "feddlib/core/LinearAlgebra/MultiVector.hpp"
9
#include <stdio.h>
10
#include <stdlib.h>
11
#include <string.h>
12
13
//#ifdef FEDD_HAVE_ACEGENINTERFACE
14
//#include <aceinterface.h>
15
//#include <ace2.h>
16
//#endif
17
24
25
26
namespace
FEDD
{
27
28
template
<
class
SC = default_sc,
class
LO = default_lo,
class
GO = default_go,
class
NO = default_no>
29
class
AssembleFE_SCI_SMC_Active_Growth_Reorientation :
public
AssembleFE
<SC,LO,GO,NO> {
30
public
:
31
32
typedef
Matrix<SC,LO,GO,NO>
Matrix_Type;
33
typedef
Teuchos::RCP<Matrix_Type> MatrixPtr_Type;
34
35
typedef
SmallMatrix<SC>
SmallMatrix_Type;
36
typedef
Teuchos::RCP<SmallMatrix_Type> SmallMatrixPtr_Type;
37
38
typedef
MultiVector<SC,LO,GO,NO>
MultiVector_Type;
39
typedef
Teuchos::RCP<MultiVector_Type> MultiVectorPtr_Type;
40
41
typedef
AssembleFE<SC,LO,GO,NO>
AssembleFE_Type;
42
46
void
assembleJacobian
()
override
;
47
51
void
assembleRHS
()
override
;
52
57
void
assembleJacobianBlock
(LO i)
override
{}
58
59
void
advanceInTime
(
double
dt)
override
;
60
61
void
getMassMatrix(SmallMatrixPtr_Type &massMatrix ){massMatrix=massMatrix_;}
62
63
protected
:
64
AssembleFE_SCI_SMC_Active_Growth_Reorientation
(
int
flag, vec2D_dbl_Type nodesRefConfig, ParameterListPtr_Type params,tuple_disk_vec_ptr_Type tuple);
65
66
private
:
67
68
void
assemble_SCI_SMC_Active_Growth_Reorientation(SmallMatrixPtr_Type &elementMatrix);
69
70
71
friend
class
AssembleFEFactory
<SC,LO,GO,NO>;
// Must have for specfic classes
72
73
std::string FEType_ ;
// FEType of Disk
74
75
SmallMatrixPtr_Type massMatrix_;
76
77
int
dofsSolid_ ;
// Degrees of freedom per node
78
int
dofsChem_;
79
int
numNodesSolid_ ;
// Number of nodes of element
80
int
numNodesChem_ ;
// Number of nodes of element
81
82
83
int
dofsElement_;
// "Dimension of return matrix"
84
85
int
dofOrdering_;
// Order of DOFs:
86
// dofOrdering = 1 -> 'u1 v1 w1 c1 u2 v2 w2 c2 ... un vn wn cn'
87
// dofOrdering = 2 -> 'u1 v1 w1 u2 v2 w2 ... un vn wn c1 c2 c3 ... cn'
88
89
90
91
int
iCode_;
// Integration Code
92
int
historyLength_;
// Length of history vector
93
94
vec_dbl_Type historyUpdated_;
95
vec_dbl_Type history_;
96
97
vec_dbl_Type solutionC_n_;
98
vec_dbl_Type solutionC_n1_;
99
100
vec2D_dbl_Type timeParametersVec_;
101
double
numSegments_ ;
102
/*
103
fA -Fibre angle_1
104
$[Lambda]$C50 -LambdaC50_2
105
$[Gamma]$3 -Gamma3_3
106
$[Lambda]$BarCDotMax -LambdaBarCDotMax_4
107
$[Lambda]$BarCDotMin -LambdaBarCDotMin_5
108
$[Gamma]$2 -Gamma2_6
109
$[Gamma]$1 -Gamma1_7
110
$[Eta]$1 -Eta1_8
111
Ca50 -Ca50_9
112
k2 -K2_10
113
k5 -K5_11
114
k3 -K3_12
115
k4 -K4_13
116
k7 -K7_14
117
$[Kappa]$C -KappaC_15
118
$[Beta]$1 -Beta1_16
119
$[Mu]$a -MuA_17
120
$[Alpha]$ -Alpha_18
121
$[Epsilon]$1 -Epsilon1_19
122
$[Epsilon]$2 -Epsilon2_20
123
c1 -C1_21
124
$[Alpha]$1 -Alpha1_22
125
$[Alpha]$2 -Alpha2_23
126
$[Gamma]$6 -Gamma6_24"
127
"$[Lambda]$P50 -LambdaP50_25"
128
"kDotMin -KDotMin_26"
129
"$[Zeta]$1 -Zeta1_27"
130
"kDotMax -KDotMax_28"
131
"$[Gamma]$4 -Gamma4_29"
132
"$[Lambda]$BarDotPMin -LambdaBarDotPMin_30"
133
"$[Lambda]$BarDotPMax -LambdaBarDotPMax_31"
134
"$[Gamma]$5 -Gamma5_32"
135
"$[Zeta]$2 -Zeta2_33"
136
"$[CapitalDelta]$$[Lambda]$BarPMin -DeltaLambdaBarPMin_34"
137
"p1 -P1_35"
138
"p3 -P3_36"
139
"c50 -C50_37"
140
"d0 -D0_38"
141
"m -M_39"
142
"activeStartTime -ActiveStartTime_40"
143
"k$[Eta]$Plus -kEtaPlus_41"
144
"m$[Eta]$Plus -mEtaPlus_42"
145
"growthStartTime -growthStartTime_43"
146
"reorientationStartTime -reorientationStartTime_44"
147
"growthEndTime -growthEndTime_45"
148
"reorientationEndTime -reorientationEndTime_46"
149
"k$[Theta]$Plus -KThetaPlus_47"
150
"k$[Theta]$Minus -KThetaMinus_48"
151
"m$[Theta]$Plus -MThetaPlus_49"
152
"m$[Theta]$Minus -MThetaMinus_50"
153
"$[Theta]$Plus1 -ThetaPlus1_51"
154
"$[Theta]$Plus2 -ThetaPlus2_52"
155
"$[Theta]$Plus3 -ThetaPlus3_53"
156
"$[Theta]$Minus1 -ThetaMinus1_54"
157
"$[Theta]$Minus2 -ThetaMinus2_55"
158
"$[Theta]$Minus3 -ThetaMinus3_56"
159
"$[Rho]$ -Density_57"
160
*/
161
162
double
fA_;
163
double
lambdaC50_;
164
double
gamma3_;
165
double
lambdaBarCDotMax_;
166
double
lambdaBarCDotMin_;
167
double
gamma2_;
168
double
gamma1_;
169
double
eta_;
170
double
ca50_;
171
double
k2_;
172
double
k5_;
173
double
k3_;
174
double
k4_;
175
double
k7_;
176
double
kappa_;
177
double
beta1_;
178
double
muA_;
179
double
beta2_;
180
double
alpha2_;
181
double
alpha3_;
182
double
alpha1_;
183
double
alpha4_;
184
double
alpha5_;
185
double
gamma6_ ;
186
double
lambdaP50_;
187
double
kDotMin_ ;
188
double
zeta1_ ;
189
double
kDotMax_ ;
190
double
gamma4_ ;
191
double
lambdaBarDotPMin_ ;
192
double
lambdaBarDotPMax_ ;
193
double
gamma5_;
194
double
zeta2_;
195
double
DeltaLambdaBarPMin_ ;
196
double
p1_;
197
double
p3_;
198
double
c50_;
199
double
d0_;
200
double
m_;
201
double
activeStartTime_;
202
double
kEtaPlus_ ;
203
double
mEtaPlus_ ;
204
double
growthStartTime_ ;
205
double
reorientationStartTime_ ;
206
double
growthEndTime_ ;
207
double
reorientationEndTime_ ;
208
double
kThetaPlus_ ;
209
double
kThetaMinus_ ;
210
double
mThetaPlus_ ;
211
double
mThetaMinus_ ;
212
double
thetaPlus1_ ;
213
double
thetaPlus2_ ;
214
double
thetaPlus3_ ;
215
double
thetaMinus1_ ;
216
double
thetaMinus2_ ;
217
double
thetaMinus3_ ;
218
double
kMin_;
219
double
rho_;
220
};
221
222
}
223
#endif
//AssembleFE_SCI_SMC_Active_Growth_Reorientation_DECL_hpp
FEDD::AssembleFEFactory
This class allows for constructing AssembleFE objects.
Definition
AssembleFEFactory_decl.hpp:36
FEDD::AssembleFE_SCI_SMC_Active_Growth_Reorientation
Definition
AssembleFE_SCI_SMC_Active_Growth_Reorientation_decl.hpp:29
FEDD::AssembleFE_SCI_SMC_Active_Growth_Reorientation::assembleJacobian
void assembleJacobian() override
Assemble the element Jacobian matrix.
Definition
AssembleFE_SCI_SMC_Active_Growth_Reorientation_def.hpp:192
FEDD::AssembleFE_SCI_SMC_Active_Growth_Reorientation::advanceInTime
void advanceInTime(double dt) override
This function is called every time the FEDDLib proceeds from one to the next time step....
Definition
AssembleFE_SCI_SMC_Active_Growth_Reorientation_def.hpp:202
FEDD::AssembleFE_SCI_SMC_Active_Growth_Reorientation::assembleJacobianBlock
void assembleJacobianBlock(LO i) override
Assemble block parts of the element Jacobian matrix.
Definition
AssembleFE_SCI_SMC_Active_Growth_Reorientation_decl.hpp:57
FEDD::AssembleFE_SCI_SMC_Active_Growth_Reorientation::assembleRHS
void assembleRHS() override
Assemble the element right hand side vector.
Definition
AssembleFE_SCI_SMC_Active_Growth_Reorientation_def.hpp:226
FEDD::AssembleFE< default_sc, default_lo, default_go, default_no >::AssembleFE
AssembleFE(int flag, vec2D_dbl_Type nodesRefConfig, ParameterListPtr_Type parameters, tuple_disk_vec_ptr_Type tuple)
Definition
AssembleFE_def.hpp:8
FEDD::Matrix
Definition
Matrix_decl.hpp:30
FEDD::MultiVector
Definition
MultiVector_decl.hpp:61
FEDD::SmallMatrix
This class represents a templated small Matrix of type T. Primarily created for 2x2 and 3x3 matrices....
Definition
SmallMatrix.hpp:20
FEDD
Adaptive Mesh Refinement.
Definition
AdaptiveMeshRefinement_decl.hpp:36
feddlib
core
AceFemAssembly
specific
AssembleFE_SCI_SMC_Active_Growth_Reorientation_decl.hpp
Generated by
1.17.0