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