Finite Element Domain Decomposition Library
FEDDLib
Loading...
Searching...
No Matches
AssembleFE_SCI_NH_decl.hpp
1#ifndef ASSEMBLEFE_SCI_NH_DECL_hpp
2#define ASSEMBLEFE_SCI_NH_DECL_hpp
3
4#include "feddlib/core/AceFemAssembly/AssembleFE.hpp"
5#include "feddlib/core/FEDDCore.hpp"
6#include "feddlib/core/LinearAlgebra/Matrix.hpp"
7#include "feddlib/core/LinearAlgebra/MultiVector.hpp"
8
9namespace FEDD {
10
11template <class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_no>
12class AssembleFE_SCI_NH : public AssembleFE<SC,LO,GO,NO> {
13 public:
14
15 typedef Matrix<SC,LO,GO,NO> Matrix_Type;
16 typedef Teuchos::RCP<Matrix_Type> MatrixPtr_Type;
17
18 typedef SmallMatrix<SC> SmallMatrix_Type;
19 typedef Teuchos::RCP<SmallMatrix_Type> SmallMatrixPtr_Type;
20
21 typedef MultiVector<SC,LO,GO,NO> MultiVector_Type;
22 typedef Teuchos::RCP<MultiVector_Type> MultiVectorPtr_Type;
23
24 typedef AssembleFE<SC,LO,GO,NO> AssembleFE_Type;
25
30 void assembleJacobian() override;
31
36 void assembleRHS() override;
37
42 void assembleJacobianBlock(LO i) override {};
43
44 void advanceInTime( double dt) override;
45
46 protected:
47 AssembleFE_SCI_NH(int flag, vec2D_dbl_Type nodesRefConfig, ParameterListPtr_Type params,tuple_disk_vec_ptr_Type tuple);
48
49 private:
50
51 void assembleDeformationDiffusionNeoHook(SmallMatrixPtr_Type &elementMatrix);
52
53 friend class AssembleFEFactory<SC,LO,GO,NO>; // Must have for specfic classes
54
55 double E0_;
56 double E1_;
57 double poissonRatio_;
58 double c1_;
59 double D0_;
60 double m_;
61
62 std::string FEType_ ; // FEType of Disk
63
64 int dofsSolid_ ; // Degrees of freedom per node
65 int dofsChem_;
66 int numNodesSolid_ ; // Number of nodes of element
67 int numNodesChem_ ; // Number of nodes of element
68
69
70 int dofsElement_; // "Dimension of return matrix"
71
72 int dofOrdering_; // Order of DOFs:
73 // dofOrdering = 1 -> 'u1 v1 w1 c1 u2 v2 w2 c2 ... un vn wn cn'
74 // dofOrdering = 2 -> 'u1 v1 w1 u2 v2 w2 ... un vn wn c1 c2 c3 ... cn'
75 vec_dbl_Type solution_n_;
76 vec_dbl_Type solution_n1_;
77
78 vec2D_dbl_Type timeParametersVec_;
79 double numSegments_ ;
80};
81
82}
83#endif //ASSEMBLEFE_SCI_NH_DECL_hpp
This class allows for constructing AssembleFE objects.
Definition AssembleFEFactory_decl.hpp:37
Definition AssembleFE_SCI_NH_decl.hpp:12
void assembleRHS() override
Assemble the element right hand side vector.
Definition AssembleFE_SCI_NH_def.hpp:88
void assembleJacobianBlock(LO i) override
Assemble the element Jacobian matrix.
Definition AssembleFE_SCI_NH_decl.hpp:42
void advanceInTime(double dt) override
This function is called every time the FEDDLib proceeds from one to the next time step....
Definition AssembleFE_SCI_NH_def.hpp:65
void assembleJacobian() override
Assemble the element Jacobian matrix.
Definition AssembleFE_SCI_NH_def.hpp:54
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