Feellgood
electrostatSolver.h
Go to the documentation of this file.
1 #ifndef electrostat_h
2 #define electrostat_h
3 
11 #include "solver.h"
12 #include "config.h"
13 #include "algebra/algebra.h"
14 
16 constexpr int DIM_PB_ELEC = 1;
17 
22 class electrostatSolver: public solver<DIM_PB_ELEC>
23  {
24 public:
27  Mesh::mesh & _msh ,
28  const std::vector<Tetra::prm> & _pTetra ,
30  const std::vector<Triangle::prm> & _pTri ,
32  const double _tol ,
33  const bool v ,
34  const int max_iter ):
35  solver<DIM_PB_ELEC>(_msh,_pTetra,_pTri,"cg_dir",_tol,v,max_iter) {}
36 
39  std::vector<double> V;
40 
42  void infos(void) const;
43 
46  void integrales(const Tetra::Tet &tet, Eigen::Ref<Eigen::Matrix<double,Tetra::N,Tetra::N> > AE) const;
47 
49  void integrales(const Triangle::Tri &tri, std::vector<double> &BE) const;
50 
53  bool save(const std::string& V_fileName ,
54  const std::string &metadata ) const;
55 
57  double getSigma(const Tetra::Tet &tet) const;
58 
61  double getCurrentDensity(const Triangle::Tri &tri) const;
62 
65  void compute(bool verbose ,
66  const std::string& V_fileName );
67 
71  void checkBoundaryConditions(void) const override;
72 
73 private:
75  const int precision = 8;
76 
79  bool solve(void);
80  }; // end class electrostatSolver
81 
82 #endif
set of class to handle sparse matrix operations for gradient conjugate algorithms a sparse vector cla...
Definition: mesh.h:32
Definition: tetra.h:132
Definition: triangle.h:109
Definition: electrostatSolver.h:23
double getCurrentDensity(const Triangle::Tri &tri) const
Definition: electrostatSolver.cpp:158
void infos(void) const
Definition: electrostatSolver.cpp:28
bool solve(void)
Definition: electrostatSolver.cpp:92
const int precision
Definition: electrostatSolver.h:75
bool save(const std::string &V_fileName, const std::string &metadata) const
Definition: electrostatSolver.cpp:134
void compute(bool verbose, const std::string &V_fileName)
Definition: electrostatSolver.cpp:74
void integrales(const Tetra::Tet &tet, Eigen::Ref< Eigen::Matrix< double, Tetra::N, Tetra::N > > AE) const
Definition: electrostatSolver.cpp:38
std::vector< double > V
Definition: electrostatSolver.h:39
double getSigma(const Tetra::Tet &tet) const
Definition: electrostatSolver.cpp:155
electrostatSolver(Mesh::mesh &_msh, const std::vector< Tetra::prm > &_pTetra, const std::vector< Triangle::prm > &_pTri, const double _tol, const bool v, const int max_iter)
Definition: electrostatSolver.h:26
void checkBoundaryConditions(void) const override
Definition: electrostatSolver.cpp:10
template class for the different solvers template parameter DIM_PROBLEM: dimensionnality of the probl...
Definition: solver.h:22
const bool verbose
Definition: solver.h:62
constexpr int DIM_PB_ELEC
Definition: electrostatSolver.h:16
constexpr double v[NPI]
Definition: tetra.h:58
two templates to fill matrix and vectors in various dimensionnality situations. DIM_PROBLEM = 1 is us...