Finite Element Domain Decomposition Library
FEDDLib
Loading...
Searching...
No Matches
AssembleFENonLinLaplace_decl.hpp
1#ifndef ASSEMBLEFENONLINLAPLACE_DECL_hpp
2#define ASSEMBLEFENONLINLAPLACE_DECL_hpp
3
4#include "feddlib/core/AceFemAssembly/AssembleFE.hpp"
5#include "feddlib/core/FE/Helper.hpp"
6#include "feddlib/core/FEDDCore.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,
13 class NO = default_no>
14class AssembleFENonLinLaplace : public AssembleFE<SC, LO, GO, NO> {
15 public:
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
31 void assembleJacobian() override;
32
37 void assembleRHS() override;
38
43 void assembleJacobianBlock(LO i) override {};
44
45 protected:
47 int flag, vec2D_dbl_Type nodesRefConfig,
48 ParameterListPtr_Type parameters,
49
50 tuple_disk_vec_ptr_Type tuple);
51 private:
52 void assemblyNonLinLaplacian(SmallMatrixPtr_Type &elementMatrix);
53
54 void buildTransformation(SmallMatrix<SC> &B);
55
56 void applyBTinv(vec3D_dbl_ptr_Type &dPhiIn, vec3D_dbl_Type &dPhiOut,
57 SmallMatrix<SC> &Binv);
58
59 friend class AssembleFEFactory<SC, LO, GO, NO>;
60 std::string FEType_;
61 int dofs_;
62 int numNodes_;
63 int dofsElement_;
64};
65
66} // namespace FEDD
67#endif
This class allows for constructing AssembleFE objects.
Definition AssembleFEFactory_decl.hpp:37
void assembleRHS() override
Assemble the element right hand side vector.
Definition AssembleFENonLinLaplace_def.hpp:134
void assembleJacobian() override
Assemble the element Jacobian matrix.
Definition AssembleFENonLinLaplace_def.hpp:46
void assembleJacobianBlock(LO i) override
Assemble the element Jacobian matrix.
Definition AssembleFENonLinLaplace_decl.hpp:43
AssembleFENonLinLaplace(int flag, vec2D_dbl_Type nodesRefConfig, ParameterListPtr_Type parameters, tuple_disk_vec_ptr_Type tuple)
Constructor for AssembleFENonLinLaplace.
Definition AssembleFENonLinLaplace_def.hpp:25
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