Finite Element Domain Decomposition Library
FEDDLib
Toggle main menu visibility
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
10
namespace
FEDD
{
11
12
template
<
class
SC = default_sc,
class
LO = default_lo,
class
GO = default_go,
13
class
NO = default_no>
14
class
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
:
46
AssembleFENonLinLaplace
(
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
FEDD::AssembleFEFactory
This class allows for constructing AssembleFE objects.
Definition
AssembleFEFactory_decl.hpp:36
FEDD::AssembleFENonLinLaplace::assembleRHS
void assembleRHS() override
Assemble the element right hand side vector.
Definition
AssembleFENonLinLaplace_def.hpp:133
FEDD::AssembleFENonLinLaplace::assembleJacobian
void assembleJacobian() override
Assemble the element Jacobian matrix.
Definition
AssembleFENonLinLaplace_def.hpp:45
FEDD::AssembleFENonLinLaplace::assembleJacobianBlock
void assembleJacobianBlock(LO i) override
Assemble the element Jacobian matrix.
Definition
AssembleFENonLinLaplace_decl.hpp:43
FEDD::AssembleFENonLinLaplace::AssembleFENonLinLaplace
AssembleFENonLinLaplace(int flag, vec2D_dbl_Type nodesRefConfig, ParameterListPtr_Type parameters, tuple_disk_vec_ptr_Type tuple)
Constructor for AssembleFENonLinLaplace.
Definition
AssembleFENonLinLaplace_def.hpp:24
FEDD::AssembleFE< default_sc, default_lo, default_go, default_no >::AssembleFE
AssembleFE(int flag, vec2D_dbl_Type nodesRefConfig, ParameterListPtr_Type parameters, tuple_disk_vec_ptr_Type tuple)
Definition
AssembleFE_def.hpp:8
FEDD::Matrix
Definition
Matrix_decl.hpp:30
FEDD::MultiVector
Definition
MultiVector_decl.hpp:61
FEDD::SmallMatrix
This class represents a templated small Matrix of type T. Primarily created for 2x2 and 3x3 matrices....
Definition
SmallMatrix.hpp:20
FEDD
Adaptive Mesh Refinement.
Definition
AdaptiveMeshRefinement_decl.hpp:36
feddlib
core
AceFemAssembly
specific
AssembleFENonLinLaplace_decl.hpp
Generated by
1.17.0