GCC Code Coverage Report


Directory: ./
File: Solver/linearProblemBidomainTransMemb.hpp
Date: 2024-04-14 07:32:34
Exec Total Coverage
Lines: 0 10 0.0%
Branches: 0 0 -%

Line Branch Exec Source
1 // ______ ______ _ _ _____ ______
2 // | ____| ____| | (_)/ ____| | ____|
3 // | |__ | |__ | | _| (___ ___| |__
4 // | __| | __| | | | |\___ \ / __| __|
5 // | | | |____| |____| |____) | (__| |____
6 // |_| |______|______|_|_____/ \___|______|
7 // Finite Elements for Life Sciences and Engineering
8 //
9 // License: LGL2.1 License
10 // FELiScE default license: LICENSE in root folder
11 //
12 // Main authors: E. Schenone C. Corrado
13 //
14
15 #ifndef _LinearProblemBidomainTransMemb_HPP
16 #define _LinearProblemBidomainTransMemb_HPP
17
18 // System includes
19
20 // External includes
21
22 // Project includes
23 #include "Solver/linearProblem.hpp"
24 #include "Core/felisceParam.hpp"
25 #include "Solver/bdf.hpp"
26 #include "Solver/cardiacFunction.hpp"
27
28 namespace felisce {
29 /*!
30 \class LinearProblemBidomainTransMemb
31 \authors E. Schenone C. Corrado
32 \date 27/01/201
33 \brief ???
34 */
35 class LinearProblemBidomainTransMemb:
36 public LinearProblem {
37 public:
38 LinearProblemBidomainTransMemb();
39 ~LinearProblemBidomainTransMemb() override;
40 void initialize(std::vector<GeometricMeshRegion::Pointer>& mesh, FelisceTransient::Pointer fstransient, MPI_Comm& comm, bool doUseSNES) override;
41 void getFiberDirection(felInt iel, int iUnknown, std::vector<double>& elemFiber);
42 void getAngleFiber(felInt iel, int iUnknown, std::vector<double>& elemAngle);
43 void initPerElementType(ElementType eltType, FlagMatrixRHS flagMatrixRHS = FlagMatrixRHS::matrix_and_rhs) override;
44 void initPerDomain(int label, FlagMatrixRHS flagMatrixRHS = FlagMatrixRHS::matrix_and_rhs) override {
45 m_currentLabel=label;
46 IGNORE_UNUSED_FLAG_MATRIX_RHS;
47 }
48 void computeElementArray(const std::vector<Point*>& elemPoint, const std::vector<felInt>& elemIdPoint, felInt& iel, FlagMatrixRHS flagMatrixRHS = FlagMatrixRHS::matrix_and_rhs) override;
49 void computeElementArrayBoundaryCondition(const std::vector<Point*>& elemPoint, const std::vector<felInt>& elemIdPoint, felInt& iel, FlagMatrixRHS flagMatrixRHS = FlagMatrixRHS::matrix_and_rhs) override;
50
51 void initializeTimeScheme(Bdf* bdf) override {
52 m_bdf = bdf;
53 }
54 void readData(IO& io) override;
55
56 void addMatrixRHS() override;
57
58 const PetscVector& massRHS() const {
59 return m_massRHS;
60 }
61 PetscVector& massRHS() {
62 return m_massRHS;
63 }
64 const PetscVector& ksigmaiRHS() const {
65 return _KsigmaiRHS;
66 }
67 PetscVector& ksigmaiRHS() {
68 return _KsigmaiRHS;
69 }
70
71 std::vector<double> & EndocardiumDistance() {
72 return m_vectorDistance;
73 }
74
75 protected:
76 CurrentFiniteElement* m_fePotTransMemb;
77 CurvilinearFiniteElement* m_fePotTransMembCurv;
78 felInt m_ipotTransMemb;
79 private:
80 Bdf* m_bdf;
81 PetscVector m_massRHS;
82 PetscVector _KsigmaiRHS;
83 double* m_fiber;
84 double* m_angleFiber;
85 double* m_endocardiumDistance;
86 std::vector<double> m_vectorDistance;
87 };
88 }
89
90 #endif
91