Feellgood
electrostatSolver.h
Go to the documentation of this file.
1 #ifndef electrostat_h
2 #define electrostat_h
3 
11 #include <iostream>
12 #include <map>
13 #include "solver.h"
14 #include "config.h"
15 #include "algebra/algebra.h"
16 
18 const int DIM_PB_ELEC = 1;
19 
24 class electrostatSolver: public solver<DIM_PB_ELEC>
25  {
26 public:
29  Mesh::mesh & _msh ,
30  std::vector<Tetra::prm> & _pTetra ,
31  std::vector<Facette::prm> & _pFac ,
32  const double _tol ,
33  const bool v ,
34  const int max_iter ):
35  solver<DIM_PB_ELEC>(_msh,_pTetra,_pFac,"cg_dir",_tol,v,max_iter) {}
36 
39  std::vector<double> V;
40 
42  void infos(void);
43 
46  void integrales(Tetra::Tet const &tet, Eigen::Ref<Eigen::Matrix<double,Tetra::N,Tetra::N> > AE);
47 
49  void integrales(Facette::Fac const &fac, std::vector<double> &BE);
50 
53  bool save(const std::string V_fileName , std::string const &metadata ) const;
54 
56  double getSigma(Tetra::Tet const &tet) const;
57 
59  double getCurrentDensity(Facette::Fac const &fac) const;
60 
63  void compute(const bool verbose , const std::string V_fileName );
64 
67  void checkBoundaryConditions(void) const;
68 
69 private:
71  const int precision = 8;
72 
75  bool solve(void);
76  }; // end class electrostatSolver
77 #endif
set of class to handle sparse matrix operations for gradient conjugate algorithms a sparse vector cla...
Definition: facette.h:73
Definition: mesh.h:27
Definition: tetra.h:111
Definition: electrostatSolver.h:25
bool save(const std::string V_fileName, std::string const &metadata) const
Definition: electrostatSolver.cpp:137
bool solve(void)
Definition: electrostatSolver.cpp:92
void checkBoundaryConditions(void) const
Definition: electrostatSolver.cpp:10
const int precision
Definition: electrostatSolver.h:71
void integrales(Tetra::Tet const &tet, Eigen::Ref< Eigen::Matrix< double, Tetra::N, Tetra::N > > AE)
Definition: electrostatSolver.cpp:39
void compute(const bool verbose, const std::string V_fileName)
Definition: electrostatSolver.cpp:74
double getSigma(Tetra::Tet const &tet) const
Definition: electrostatSolver.cpp:158
std::vector< double > V
Definition: electrostatSolver.h:39
electrostatSolver(Mesh::mesh &_msh, std::vector< Tetra::prm > &_pTetra, std::vector< Facette::prm > &_pFac, const double _tol, const bool v, const int max_iter)
Definition: electrostatSolver.h:28
double getCurrentDensity(Facette::Fac const &fac) const
Definition: electrostatSolver.cpp:161
void infos(void)
Definition: electrostatSolver.cpp:29
template class for the different solvers template parameter DIM_PROBLEM: dimensionnality of the probl...
Definition: solver.h:20
const bool verbose
Definition: solver.h:53
const int DIM_PB_ELEC
Definition: electrostatSolver.h:18
constexpr double v[NPI]
Definition: facette.h:22
two templates to fill matrix and vectors in various dimensionnality situations. DIM_PROBLEM = 1 is us...