GCC Code Coverage Report


Directory: ./
File: Solver/linearProblemPerfectFluid.hpp
Date: 2024-04-14 07:32:34
Exec Total Coverage
Lines: 2 2 100.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: M.Aletti
13 //
14
15
16 #ifndef _LINEARPROBLEMPERFECTFLUID_HPP
17 #define _LINEARPROBLEMPERFECTFLUID_HPP
18
19 // System includes
20
21 // External includes
22
23 // Project includes
24 #include "FiniteElement/elementField.hpp"
25 #include "Solver/reducedSteklov.hpp"
26
27 namespace felisce {
28 /*!
29 \class LinearProblemPerfectFluid
30 \authors M.Aletti
31 \date 2015
32 \brief Manage specific functions for perfect fluid for application to Intra Ocular Pressure (iop)
33 */
34 class LinearProblemPerfectFluid : public LinearProblem {
35 public:
36 // ====================================================================
37 // Simple constructor/destructor =
38 // ====================================================================
39 LinearProblemPerfectFluid();
40 8 ~LinearProblemPerfectFluid() override= default;
41 // ====================================================================
42 // This function overrides LinearProblem::initialize =
43 // ====================================================================
44 void initialize(std::vector<GeometricMeshRegion::Pointer>& mesh, FelisceTransient::Pointer fstransient, MPI_Comm& comm, bool doUseSNES) override;
45 // ====================================================================
46 // With these two functions we are able to initialize the petsc =
47 // vectors used at the interface =
48 // ====================================================================
49 void initializePetscVectors();
50 void resetInterfaceQuantities();
51 // ====================================================================
52 // Getters =
53 // ====================================================================
54 inline felInt idVarIop() const { return m_idVarIop; }
55 156 inline felInt idUnknownIop() const { return m_iUnknownIop; }
56 protected:
57 // ====================================================================
58 // This two functions are here to compute the matrix =
59 // of the system =
60 // ====================================================================
61 void initPerElementType(ElementType eltType, FlagMatrixRHS flagMatrixRHS) override;
62 void computeElementArray(const std::vector<Point*>& elemPoint, const std::vector<felInt>& elemIdPoint, felInt& iel, FlagMatrixRHS flagMatrixRHS) override;
63 // ====================================================================
64 // relaxation parameter, std::set in the datafile, for the coupling =
65 // boundary condition =
66 // ====================================================================
67 double m_relaxParam;
68 // ====================================================================
69 // id variable and id unknown and a pointer to current fe
70 // ====================================================================
71 felInt m_idVarIop;
72 felInt m_iUnknownIop;
73 CurrentFiniteElement *m_feIop;
74 };
75 }
76 #endif
77