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 ,
32  std::vector<Facette::prm> & _pFac ,
34  const double _tol ,
35  const bool v ,
36  const int max_iter ):
37  solver<DIM_PB_ELEC>(_msh,_pTetra,_pFac,"cg_dir",_tol,v,max_iter) {}
38 
41  std::vector<double> V;
42 
44  void infos(void);
45 
48  void integrales(Tetra::Tet const &tet, Eigen::Ref<Eigen::Matrix<double,Tetra::N,Tetra::N> > AE);
49 
51  void integrales(Facette::Fac const &fac, std::vector<double> &BE);
52 
55  bool save(const std::string V_fileName ,
56  std::string const &metadata ) const;
57 
59  double getSigma(Tetra::Tet const &tet) const;
60 
63  double getCurrentDensity(Facette::Fac const &fac) const;
64 
67  void compute(const bool verbose ,
68  const std::string V_fileName );
69 
73  void checkBoundaryConditions(void) const;
74 
75 private:
77  const int precision = 8;
78 
81  bool solve(void);
82  }; // end class electrostatSolver
83 
84 #endif
set of class to handle sparse matrix operations for gradient conjugate algorithms a sparse vector cla...
Definition: facette.h:109
Definition: mesh.h:32
Definition: tetra.h:141
Definition: electrostatSolver.h:25
bool save(const std::string V_fileName, std::string const &metadata) const
Definition: electrostatSolver.cpp:135
bool solve(void)
Definition: electrostatSolver.cpp:93
void checkBoundaryConditions(void) const
Definition: electrostatSolver.cpp:10
const int precision
Definition: electrostatSolver.h:77
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:75
double getSigma(Tetra::Tet const &tet) const
Definition: electrostatSolver.cpp:156
std::vector< double > V
Definition: electrostatSolver.h:41
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:159
void infos(void)
Definition: electrostatSolver.cpp:29
template class for the different solvers template parameter DIM_PROBLEM: dimensionnality of the probl...
Definition: solver.h:25
const bool verbose
Definition: solver.h:65
const int DIM_PB_ELEC
Definition: electrostatSolver.h:18
constexpr double v[NPI]
Definition: facette.h:49
two templates to fill matrix and vectors in various dimensionnality situations. DIM_PROBLEM = 1 is us...