Finite Element Domain Decomposition Library
FEDDLib
Toggle main menu visibility
Loading...
Searching...
No Matches
LinElas_decl.hpp
1
#ifndef LINELAS_decl_hpp
2
#define LINELAS_decl_hpp
3
#include "feddlib/problems/abstract/Problem.hpp"
4
5
namespace
FEDD
{
6
template
<
class
SC = default_sc,
class
LO = default_lo,
class
GO = default_go,
class
NO = default_no>
7
class
LinElas :
public
Problem<SC,LO,GO,NO> {
8
9
public
:
10
typedef
Problem<SC,LO,GO,NO> Problem_Type;
11
12
typedef
typename
Problem_Type::Matrix_Type Matrix_Type;
13
typedef
typename
Problem_Type::MatrixPtr_Type MatrixPtr_Type;
14
15
typedef
typename
Problem_Type::BlockMatrix_Type BlockMatrix_Type;
16
17
typedef
typename
Problem_Type::MultiVector_Type MultiVector_Type;
18
typedef
typename
Problem_Type::MultiVectorPtr_Type MultiVectorPtr_Type;
19
typedef
typename
Problem_Type::MultiVectorConstPtr_Type MultiVectorConstPtr_Type;
20
21
typedef
typename
Problem_Type::BlockMultiVector_Type BlockMultiVector_Type;
22
typedef
typename
Problem_Type::BlockMultiVectorPtr_Type BlockMultiVectorPtr_Type;
23
24
typedef
typename
Problem_Type::DomainConstPtr_Type DomainConstPtr_Type;
25
typedef
typename
Problem_Type::CommConstPtr_Type CommConstPtr_Type;
26
27
28
// Konstruktor
29
LinElas(
const
DomainConstPtr_Type &domain, std::string FEType, ParameterListPtr_Type parameterList);
30
31
// Destruktor
32
~LinElas();
33
34
virtual
void
info();
35
36
// Assemblierung der Matrix, hier: \sigma = 2\mu \epsilon + \lambda \div(u) I, mit \epsilon = 0.5 ( \grad u + (\grad u)^T )
37
virtual
void
assemble( std::string type =
""
)
const
;
38
39
// Assemblierung der rechten Seite der DGL (RHS), welche in AdvanceinTime() genutzt wird;
40
// also fuer zeitabhaengige Probleme ist
41
// Beachte: In AdvanceTime() wird in jedem Zeitschritt der SourceTerm neu berechnet, auch
42
// wenn dieser konstant ist!
43
// TODO: Baue in Problem_def.hpp sowas wie boolHasTimeDependentSourceTerm ein, mit default auf false.
44
// void assembleSourceTerm(double time);
45
46
virtual
void
getValuesOfInterest( vec_dbl_Type& values ){}
47
48
virtual
void
computeValuesOfInterestAndExport() {}
49
// Steifigkeitsmatrix des Problems der linearen Elastizitaet gegeben wie in assemble().
50
// Moeglicherweise nicht noetig (vgl. Laplace.hpp)
51
// Falls es doch irgendwann benutzt wird, denke daran den Konstruktor zu aendern (vgl. Stokes.hpp)
52
// Teuchos::RCP<Matrix_Type> K_;
53
// virtual void assembleExternal( std::string type ){}
54
private
:
55
MultiVectorPtr_Type d_rep_;
56
57
};
58
}
59
60
#endif
FEDD
Adaptive Mesh Refinement.
Definition
AdaptiveMeshRefinement_decl.hpp:36
feddlib
problems
specific
LinElas_decl.hpp
Generated by
1.17.0