Finite Element Domain Decomposition Library
FEDDLib
Loading...
Searching...
No Matches
AssembleFE_Laplace_decl.hpp
1#ifndef ASSEMBLEFE_LAPLACE_DECL_hpp
2#define ASSEMBLEFE_LAPLACE_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
16
17namespace FEDD {
18
19
20template <class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_no>
21class AssembleFE_Laplace : public AssembleFE<SC,LO,GO,NO> {
22 public:
23
24 typedef Matrix<SC,LO,GO,NO> Matrix_Type;
25 typedef Teuchos::RCP<Matrix_Type> MatrixPtr_Type;
26
27 typedef SmallMatrix<SC> SmallMatrix_Type;
28 typedef Teuchos::RCP<SmallMatrix_Type> SmallMatrixPtr_Type;
29
30 typedef MultiVector<SC,LO,GO,NO> MultiVector_Type;
31 typedef Teuchos::RCP<MultiVector_Type> MultiVectorPtr_Type;
32
33 typedef AssembleFE<SC,LO,GO,NO> AssembleFE_Type;
34
35
40 void assembleJacobian() override;
41
46 void assembleRHS() override;
47
52 void assembleJacobianBlock(LO i) override {};
53
54 protected:
55 AssembleFE_Laplace(int flag, vec2D_dbl_Type nodesRefConfig, ParameterListPtr_Type parameters, tuple_disk_vec_ptr_Type tuple);
56
57 private:
58
59 void assemblyLaplacian(SmallMatrixPtr_Type &elementMatrix);
60
61 friend class AssembleFEFactory<SC,LO,GO,NO>; // Must have for specfic classes
62
63 void buildTransformation(SmallMatrix<SC>& B);
64
65 void applyBTinv(vec3D_dbl_ptr_Type& dPhiIn,
66 vec3D_dbl_Type& dPhiOut,
67 SmallMatrix<SC>& Binv);
68
69 };
70
71}
72#endif
73
This class allows for constructing AssembleFE objects.
Definition AssembleFEFactory_decl.hpp:37
void assembleJacobian() override
Assemble the element Jacobian matrix.
Definition AssembleFE_Laplace_def.hpp:34
void assembleJacobianBlock(LO i) override
Assemble the element Jacobian matrix.
Definition AssembleFE_Laplace_decl.hpp:52
void assembleRHS() override
Assemble the element right hand side vector.
Definition AssembleFE_Laplace_def.hpp:106
AssembleFE_Laplace(int flag, vec2D_dbl_Type nodesRefConfig, ParameterListPtr_Type parameters, tuple_disk_vec_ptr_Type tuple)
Constructor for AssembleFE_Laplace.
Definition AssembleFE_Laplace_def.hpp:19
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