Finite Element Domain Decomposition Library
FEDDLib
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
21namespace FEDD {
22
23template <class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_no>
24class 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
This class allows for constructing AssembleFE objects.
Definition AssembleFEFactory_decl.hpp:37
Definition AssembleFE_SCI_SMC_MLCK_decl.hpp:24
void assembleJacobian() override
Assemble the element Jacobian matrix.
Definition AssembleFE_SCI_SMC_MLCK_def.hpp:122
void assembleJacobianBlock(LO i) override
Assemble block parts of the element Jacobian matrix.
Definition AssembleFE_SCI_SMC_MLCK_decl.hpp:52
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:132
void assembleRHS() override
Assemble the element right hand side vector.
Definition AssembleFE_SCI_SMC_MLCK_def.hpp:156
AssembleFE(int flag, vec2D_dbl_Type nodesRefConfig, ParameterListPtr_Type parameters, tuple_disk_vec_ptr_Type tuple)
Definition AssembleFE_def.hpp:10
Definition Matrix_decl.hpp:32
Definition MultiVector_decl.hpp:36
This class represents a templated small Matrix of type T. Primarily created for 2x2 and 3x3 matrices....
Definition SmallMatrix.hpp:22
Adaptive Mesh Refinement.
Definition AdaptiveMeshRefinement.cpp:5