OGS
TESLocalAssemblerInner.h
Go to the documentation of this file.
1
14#pragma once
15
20
21namespace ProcessLib
22{
23namespace TES
24{
25template <typename Traits>
27{
28public:
29 explicit TESLocalAssemblerInner(AssemblyParams const& ap,
30 const unsigned num_int_pts,
31 const unsigned dimension);
32
34 unsigned integration_point,
35 std::vector<double> const& localX,
36 typename Traits::ShapeMatrices const& sm,
37 const double weight,
38 Eigen::Map<typename Traits::LocalMatrix>& local_M,
39 Eigen::Map<typename Traits::LocalMatrix>& local_K,
40 Eigen::Map<typename Traits::LocalVector>& local_b);
41
42 void preEachAssemble();
43
44 // TODO better encapsulation
45 AssemblyParams const& getAssemblyParameters() const { return _d.ap; }
47 {
48 return *_d.reaction_adaptor;
49 }
51 TESLocalAssemblerData const& getData() const { return _d; }
52
53private:
54 Eigen::Matrix3d getMassCoeffMatrix(const unsigned int_pt) const;
55 typename Traits::LaplaceMatrix getLaplaceCoeffMatrix(const unsigned int_pt,
56 const unsigned dim);
57 Eigen::Matrix3d getAdvectionCoeffMatrix(const unsigned int_pt) const;
58 Eigen::Matrix3d getContentCoeffMatrix(const unsigned int_pt) const;
59 Eigen::Vector3d getRHSCoeffVector(const unsigned int_pt);
60
62 const unsigned int_pt,
63 std::vector<double> const& localX,
64 typename Traits::ShapeMatrices const& sm);
65
66 void initReaction(const unsigned int_pt);
67
69};
70
71} // namespace TES
72
73} // namespace ProcessLib
74
Eigen::Matrix3d getMassCoeffMatrix(const unsigned int_pt) const
void preEachAssembleIntegrationPoint(const unsigned int_pt, std::vector< double > const &localX, typename Traits::ShapeMatrices const &sm)
TESFEMReactionAdaptor const & getReactionAdaptor() const
AssemblyParams const & getAssemblyParameters() const
Traits::LaplaceMatrix getLaplaceCoeffMatrix(const unsigned int_pt, const unsigned dim)
Eigen::Matrix3d getContentCoeffMatrix(const unsigned int_pt) const
TESLocalAssemblerInner(AssemblyParams const &ap, const unsigned num_int_pts, const unsigned dimension)
TESLocalAssemblerData const & getData() const
void assembleIntegrationPoint(unsigned integration_point, std::vector< double > const &localX, typename Traits::ShapeMatrices const &sm, const double weight, Eigen::Map< typename Traits::LocalMatrix > &local_M, Eigen::Map< typename Traits::LocalMatrix > &local_K, Eigen::Map< typename Traits::LocalVector > &local_b)
Eigen::Matrix3d getAdvectionCoeffMatrix(const unsigned int_pt) const
Eigen::Vector3d getRHSCoeffVector(const unsigned int_pt)
std::unique_ptr< TESFEMReactionAdaptor > const reaction_adaptor