GCC Code Coverage Report


Directory: ./
File: Solver/linearProblemBidomainExtraCell.hpp
Date: 2024-04-14 07:32:34
Exec Total Coverage
Lines: 0 3 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: A. Collin
13 //
14
15 #ifndef _LinearProblemBidomainExtraCell_HPP
16 #define _LinearProblemBidomainExtraCell_HPP
17
18 // System includes
19 #include <vector>
20
21 // External includes
22
23 // Project includes
24 #include "Solver/linearProblem.hpp"
25 #include "Core/felisceParam.hpp"
26 #include "Solver/bdf.hpp"
27 #include "Solver/cardiacFunction.hpp"
28
29 namespace felisce
30 {
31 /*!
32 \class LinearProblemBidomainExtraCell
33 \authors E. Schenone C. Corrado
34 \date 27/01/2012
35 \brief ???
36 */
37 class LinearProblemBidomainExtraCell:
38 public LinearProblem {
39 public:
40 LinearProblemBidomainExtraCell();
41 ~LinearProblemBidomainExtraCell() override;
42 void initialize(std::vector<GeometricMeshRegion::Pointer>& mesh, FelisceTransient::Pointer fstransient, MPI_Comm& comm, bool doUseSNES) override;
43 void getFiberDirection(felInt iel, int iUnknown, std::vector<double>& elemFiber);
44 void getAngleFiber(felInt iel, int iUnknown, std::vector<double>& elemAngle);
45 void initPerElementType(ElementType eltType, FlagMatrixRHS flagMatrixRHS = FlagMatrixRHS::matrix_and_rhs) override;
46 void initPerDomain(int label, FlagMatrixRHS flagMatrixRHS = FlagMatrixRHS::matrix_and_rhs) override {
47 m_currentLabel=label;
48 IGNORE_UNUSED_FLAG_MATRIX_RHS;
49 }
50 void computeElementArray(const std::vector<Point*>& elemPoint, const std::vector<felInt>& elemIdPoint, felInt& iel, FlagMatrixRHS flagMatrixRHS = FlagMatrixRHS::matrix_and_rhs) override;
51 void computeElementArrayBoundaryCondition(const std::vector<Point*>& elemPoint, const std::vector<felInt>& elemIdPoint, felInt& iel, FlagMatrixRHS flagMatrixRHS = FlagMatrixRHS::matrix_and_rhs) override;
52
53 void readData(IO& io) override;
54
55 void addMatrixRHS() override;
56
57 std::vector<double> & EndocardiumDistance() {
58 return m_vectorDistance;
59 }
60
61 virtual void sortSolution() {}
62
63 double* sortedSolution() {
64 return m_sortedSol;
65 }
66
67 protected:
68 CurrentFiniteElement* m_fePotExtraCell;
69 CurvilinearFiniteElement* m_fePotExtraCellCurv;
70 felInt m_ipotExtraCell;
71 double* m_sortedSol;
72
73 private:
74 double* m_fiber;
75 double* m_angleFiber;
76 double* m_endocardiumDistance;
77 std::vector<double> m_vectorDistance;
78 // bool allocateSeqVec;
79 };
80 }
81
82 #endif
83