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