Finite Element Domain Decomposition Library
FEDDLib
Loading...
Searching...
No Matches
AssembleFENavierStokes_decl.hpp
1#ifndef ASSEMBLEFENAVIERSTOKES_DECL_hpp
2#define ASSEMBLEFENAVIERSTOKES_DECL_hpp
3
4#include "feddlib/core/AceFemAssembly/AssembleFE.hpp"
5#include "feddlib/core/FEDDCore.hpp"
6#include "feddlib/core/FE/Helper.hpp"
7#include "feddlib/core/LinearAlgebra/Matrix.hpp"
8#include "feddlib/core/LinearAlgebra/MultiVector.hpp"
9
10namespace FEDD {
11
12template <class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_no>
13class AssembleFENavierStokes : public AssembleFE<SC,LO,GO,NO> {
14 public:
15
16 typedef Matrix<SC,LO,GO,NO> Matrix_Type;
17 typedef Teuchos::RCP<Matrix_Type> MatrixPtr_Type;
18
19 typedef SmallMatrix<SC> SmallMatrix_Type;
20 typedef Teuchos::RCP<SmallMatrix_Type> SmallMatrixPtr_Type;
21
22 typedef MultiVector<SC,LO,GO,NO> MultiVector_Type;
23 typedef Teuchos::RCP<MultiVector_Type> MultiVectorPtr_Type;
24
25 typedef AssembleFE<SC,LO,GO,NO> AssembleFE_Type;
26
27
31 void assembleJacobian() override;
32
36 void assembleRHS() override;
37
42 void assembleJacobianBlock(LO i) override {};
43
44 void setCoeff(SmallMatrix_Type coeff);
45
50
51 SmallMatrixPtr_Type getFixedPointMatrix(){return ANB_;};
52
53 protected:
54
64 AssembleFENavierStokes(int flag, vec2D_dbl_Type nodesRefConfig, ParameterListPtr_Type parameters,tuple_disk_vec_ptr_Type tuple);
65
72 void assemblyLaplacian(SmallMatrixPtr_Type &elementMatrix);
73
80 void assemblyAdvection(SmallMatrixPtr_Type &elementMatrix);
81
88 void assemblyAdvectionInU(SmallMatrixPtr_Type &elementMatrix);
89
96 void assemblyDivAndDivT(SmallMatrixPtr_Type &elementMatrix);
97
98 friend class AssembleFEFactory<SC,LO,GO,NO>; // Must have for specfic classes
99
101
102 void applyBTinv(vec3D_dbl_ptr_Type& dPhiIn,
103 vec3D_dbl_Type& dPhiOut,
104 SmallMatrix<SC>& Binv);
105
106 //tuple_disk_vec_ptr_Type returnTuple(); /// @todo return tuple in case or check tuple
107
111 int dofsPressure_;
112
113 std::string FETypeVelocity_;
114 std::string FETypePressure_;
115
116 int numNodesVelocity_;
117 int numNodesPressure_;
118
119 int dofsElementVelocity_ ;
120 int dofsElementPressure_ ;
121
122 int dofsElement_;
123
124 vec_dbl_Type solutionVelocity_;
125 vec_dbl_Type solutionPressure_;
126
127 SmallMatrixPtr_Type constantMatrix_;
128 SmallMatrixPtr_Type ANB_;
129
130 SmallMatrix_Type coeff_;
131
132 double viscosity_ ;
133 double density_ ;
134
135 std::string linearization_;
136
137 private:
138
139
140 };
141
142}
143#endif
144
This class allows for constructing AssembleFE objects.
Definition AssembleFEFactory_decl.hpp:37
void assembleFixedPoint()
Assembly of FixedPoint- Matrix (System Matrix K with current u)
Definition AssembleFENavierStokes_def.hpp:115
int dofsVelocity_
Definition AssembleFENavierStokes_decl.hpp:110
void assembleJacobian() override
Assemble the element Jacobian matrix.
Definition AssembleFENavierStokes_def.hpp:67
void buildTransformation(SmallMatrix< SC > &B)
Building Transformation.
Definition AssembleFENavierStokes_def.hpp:478
void assembleJacobianBlock(LO i) override
Assemble the element Jacobian matrix.
Definition AssembleFENavierStokes_decl.hpp:42
void assemblyDivAndDivT(SmallMatrixPtr_Type &elementMatrix)
Assembly / .
Definition AssembleFENavierStokes_def.hpp:375
void assemblyAdvectionInU(SmallMatrixPtr_Type &elementMatrix)
Assembly advection vector field in u TODO: [JK] What is this? Is this the portion that needs to be ...
Definition AssembleFENavierStokes_def.hpp:302
void assemblyAdvection(SmallMatrixPtr_Type &elementMatrix)
Assembly advection vector field .
Definition AssembleFENavierStokes_def.hpp:228
void assembleRHS() override
Assemble the element right hand side vector.
Definition AssembleFENavierStokes_def.hpp:200
void assemblyLaplacian(SmallMatrixPtr_Type &elementMatrix)
Assembly function for vector values laplacian .
Definition AssembleFENavierStokes_def.hpp:150
AssembleFENavierStokes(int flag, vec2D_dbl_Type nodesRefConfig, ParameterListPtr_Type parameters, tuple_disk_vec_ptr_Type tuple)
Constructor for AssembleFEAceNavierStokes.
Definition AssembleFENavierStokes_def.hpp:9
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