Finite Element Domain Decomposition Library
FEDDLib
Toggle main menu visibility
Loading...
Searching...
No Matches
AssembleFE_SCI_SMC_MLCK_decl.hpp
1
#ifndef AssembleFE_SCI_SMC_MLCK_DECL_hpp
2
#define AssembleFE_SCI_SMC_MLCK_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
20
21
namespace
FEDD
{
22
23
template
<
class
SC = default_sc,
class
LO = default_lo,
class
GO = default_go,
class
NO = default_no>
24
class
AssembleFE_SCI_SMC_MLCK :
public
AssembleFE
<SC,LO,GO,NO> {
25
public
:
26
27
typedef
Matrix<SC,LO,GO,NO>
Matrix_Type;
28
typedef
Teuchos::RCP<Matrix_Type> MatrixPtr_Type;
29
30
typedef
SmallMatrix<SC>
SmallMatrix_Type;
31
typedef
Teuchos::RCP<SmallMatrix_Type> SmallMatrixPtr_Type;
32
33
typedef
MultiVector<SC,LO,GO,NO>
MultiVector_Type;
34
typedef
Teuchos::RCP<MultiVector_Type> MultiVectorPtr_Type;
35
36
typedef
AssembleFE<SC,LO,GO,NO>
AssembleFE_Type;
37
41
void
assembleJacobian
()
override
;
42
46
void
assembleRHS
()
override
;
47
52
void
assembleJacobianBlock
(LO i)
override
{}
53
54
void
advanceInTime
(
double
dt)
override
;
55
56
57
protected
:
58
AssembleFE_SCI_SMC_MLCK
(
int
flag, vec2D_dbl_Type nodesRefConfig, ParameterListPtr_Type params,tuple_disk_vec_ptr_Type tuple);
59
60
private
:
61
62
void
assemble_SCI_SMC_MLCK(SmallMatrixPtr_Type &elementMatrix);
63
64
friend
class
AssembleFEFactory
<SC,LO,GO,NO>;
// Must have for specfic classes
65
66
std::string FEType_ ;
// FEType of Disk
67
68
int
dofsSolid_ ;
// Degrees of freedom per node
69
int
dofsChem_;
70
int
numNodesSolid_ ;
// Number of nodes of element
71
int
numNodesChem_ ;
// Number of nodes of element
72
73
74
int
dofsElement_;
// "Dimension of return matrix"
75
76
int
dofOrdering_;
// Order of DOFs:
77
// dofOrdering = 1 -> 'u1 v1 w1 c1 u2 v2 w2 c2 ... un vn wn cn'
78
// dofOrdering = 2 -> 'u1 v1 w1 u2 v2 w2 ... un vn wn c1 c2 c3 ... cn'
79
80
/*
81
fA -Fibre angle_1
82
$[Lambda]$C50 -LambdaC50_2
83
$[Gamma]$3 -Gamma3_3
84
$[Lambda]$BarCDotMax -LambdaBarCDotMax_4
85
$[Lambda]$BarCDotMin -LambdaBarCDotMin_5
86
$[Gamma]$2 -Gamma2_6
87
$[Gamma]$1 -Gamma1_7
88
$[Eta]$1 -Eta1_8
89
Ca50 -Ca50_9
90
k2 -K2_10
91
k5 -K5_11
92
k3 -K3_12
93
k4 -K4_13
94
k7 -K7_14
95
$[Kappa]$C -KappaC_15
96
$[Beta]$1 -Beta1_16
97
$[Mu]$a -MuA_17
98
$[Alpha]$ -Alpha_18
99
$[Epsilon]$1 -Epsilon1_19
100
$[Epsilon]$2 -Epsilon2_20
101
c1 -C1_21
102
$[Alpha]$1 -Alpha1_22
103
$[Alpha]$2 -Alpha2_23
104
p1 -P1_24
105
p3 -P3_25
106
c50 -C50_26
107
d0 -D0_27
108
m -M_28
109
startTime -StartTime_29 // wann das Material aktiv wird
110
$[Rho]$0 -Density_30
111
*/
112
double
fA_;
113
double
lambdaC50_;
114
double
gamma3_;
115
double
lambdaBarCDotMax_;
116
double
lambdaBarCDotMin_;
117
double
gamma2_;
118
double
gamma1_;
119
double
eta1_;
120
double
ca50_;
121
double
k2_;
122
double
k5_;
123
double
k3_;
124
double
k4_;
125
double
k7_;
126
double
kappaC_;
127
double
beta1_;
128
double
muA_;
129
double
alpha_;
130
double
epsilon1_;
131
double
epsilon2_;
132
double
c1_;
133
double
alpha1_;
134
double
alpha2_;
135
double
p1_;
136
double
p3_;
137
double
c50_;
138
double
d0_;
139
double
m_;
140
double
startTime_;
141
double
rho_;
142
143
int
iCode_;
// Integration Code
144
vec_dbl_Type historyUpdated_;
145
vec_dbl_Type history_;
146
147
vec_dbl_Type solutionC_n_;
148
vec_dbl_Type solutionC_n1_;
149
150
vec2D_dbl_Type timeParametersVec_;
151
double
numSegments_ ;
152
153
};
154
155
}
156
#endif
//AssembleFE_SCI_SMC_MLCK_DECL_hpp
FEDD::AssembleFEFactory
This class allows for constructing AssembleFE objects.
Definition
AssembleFEFactory_decl.hpp:36
FEDD::AssembleFE_SCI_SMC_MLCK
Definition
AssembleFE_SCI_SMC_MLCK_decl.hpp:24
FEDD::AssembleFE_SCI_SMC_MLCK::assembleJacobian
void assembleJacobian() override
Assemble the element Jacobian matrix.
Definition
AssembleFE_SCI_SMC_MLCK_def.hpp:120
FEDD::AssembleFE_SCI_SMC_MLCK::assembleJacobianBlock
void assembleJacobianBlock(LO i) override
Assemble block parts of the element Jacobian matrix.
Definition
AssembleFE_SCI_SMC_MLCK_decl.hpp:52
FEDD::AssembleFE_SCI_SMC_MLCK::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_MLCK_def.hpp:130
FEDD::AssembleFE_SCI_SMC_MLCK::assembleRHS
void assembleRHS() override
Assemble the element right hand side vector.
Definition
AssembleFE_SCI_SMC_MLCK_def.hpp:154
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_MLCK_decl.hpp
Generated by
1.17.0