Finite Element Domain Decomposition Library
FEDDLib
Loading...
Searching...
No Matches
Elasticity_decl.hpp
1#ifndef ELASTICITY_decl_hpp
2#define ELASTICITY_decl_hpp
3
4#include "feddlib/problems/abstract/LinearProblem.hpp"
5#include "feddlib/problems/abstract/NonLinearProblem.hpp"
6
7namespace FEDD{
16
17
18template <class SC = default_sc, class LO = default_lo, class GO = default_go, class NO = default_no>
19class Elasticity : public NonLinearProblem<SC,LO,GO,NO> {
20// We want Elasticity to be a general nonlinear problem, however if the underlying elasticity problem is linear we still use the reassmble functions but they dont do anything in this case.
21public:
22 typedef LinearProblem<SC,LO,GO,NO> LinearProblem_Type;
23 typedef NonLinearProblem<SC,LO,GO,NO> NonLinearProblem_Type;
24 typedef Teuchos::RCP<LinearProblem_Type> LinearProblemPtr_Type;
25 typedef Teuchos::RCP<NonLinearProblem_Type> NonLinearProblemPtr_Type;
26 typedef LinElas<SC,LO,GO,NO> LinElas_Type;
27 typedef NonLinElasticity<SC,LO,GO,NO> NonLinElas_Type;
28
29 typedef Problem<SC,LO,GO,NO> Problem_Type;
30 typedef typename Problem_Type::DomainConstPtr_Type DomainConstPtr_Type;
31
32 typedef typename Problem_Type::BlockMatrix_Type BlockMatrix_Type;
33 typedef typename Problem_Type::BlockMatrixPtr_Type BlockMatrixPtr_Type;
34
35 Elasticity( const DomainConstPtr_Type &domain, std::string FEType, ParameterListPtr_Type parameterList );
36
37 ~Elasticity();
38
39 virtual void info();
40
41 virtual void assemble();
42
43 virtual void reAssemble(std::string type="Newton") const;
44
45 virtual void reAssembleExtrapolation( );
46
47 virtual void calculateNonLinResidualVec(std::string type)const;
48
49 virtual void getValuesOfInterest( vec_dbl_Type& values ){};
50
51 virtual void computeValuesOfInterestAndExport() {};
52
53// virtual void assembleExternal( std::string type ){};
54
55 Teuchos::RCP< Thyra::LinearOpBase<SC> > create_W_op() const;
56
57 Teuchos::RCP<Thyra::PreconditionerBase<SC> > create_W_prec() const;
58
59private:
60
61 virtual void evalModelImpl(
62 const ::Thyra::ModelEvaluatorBase::InArgs<SC> &inArgs,
63 const ::Thyra::ModelEvaluatorBase::OutArgs<SC> &outArgs
64 ) const;
65
66 /*####################*/
67 LinearProblemPtr_Type linearProblem_;
68 NonLinearProblemPtr_Type nonLinearProblem_;
69};
70}
71#endif
Definition LinElas_decl.hpp:7
Definition LinearProblem_decl.hpp:18
Definition NonLinElasticity_decl.hpp:17
Definition Problem_decl.hpp:38
Adaptive Mesh Refinement.
Definition AdaptiveMeshRefinement.cpp:5