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 
43  bool checkBoundaryConditions(void) const;
44 
46  void infos(void);
47 
50  void integrales(Tetra::Tet const &tet, Eigen::Ref<Eigen::Matrix<double,Tetra::N,Tetra::N> > AE);
51 
53  void integrales(Facette::Fac const &fac, std::vector<double> &BE);
54 
57  bool save(const std::string V_fileName , std::string const &metadata ) const;
58 
60  double getSigma(Tetra::Tet const &tet) const;
61 
63  double getCurrentDensity(Facette::Fac const &fac) const;
64 
67  void compute(const bool verbose , const std::string V_fileName );
68 private:
70  const int precision = 8;
71 
74  bool solve(void);
75  }; // end class electrostatSolver
76 #endif
set of class to handle sparse matrix operations for gradient conjugate algorithms a sparse vector cla...
Definition: facette.h:72
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:130
bool solve(void)
Definition: electrostatSolver.cpp:85
const int precision
Definition: electrostatSolver.h:70
void integrales(Tetra::Tet const &tet, Eigen::Ref< Eigen::Matrix< double, Tetra::N, Tetra::N > > AE)
Definition: electrostatSolver.cpp:32
void compute(const bool verbose, const std::string V_fileName)
Definition: electrostatSolver.cpp:67
double getSigma(Tetra::Tet const &tet) const
Definition: electrostatSolver.cpp:151
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:154
void infos(void)
Definition: electrostatSolver.cpp:22
bool checkBoundaryConditions(void) const
Definition: electrostatSolver.cpp:10
template class for the different solvers template parameter DIM_PROBLEM: dimensionnality of the probl...
Definition: solver.h:20
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...