1 #ifndef spinAccumulationSolver_h
2 #define spinAccumulationSolver_h
10 #include "meshUtils.h"
13 const int DIM_PB_SPIN_ACC = 3;
27 std::vector<Tetra::prm> & _pTetra ,
28 std::vector<Facette::prm> & _pFac ,
32 solver<DIM_PB_SPIN_ACC>(_msh,_pTetra,_pFac,
"bicg_dir",_tol,
v,max_iter)
52 std::vector<Eigen::Vector3d>
s;
60 std::vector<double>
V;
76 std::vector< Eigen::Matrix<double,Nodes::DIM,Tetra::NPI> >
gradV;
82 std::vector< Eigen::Matrix<double,Nodes::DIM,Tetra::NPI> >
Hst;
112 void calc_gradV(
Tetra::Tet const &tet, Eigen::Ref<Eigen::Matrix<double,Nodes::DIM,Tetra::NPI>> _gradV);
115 void calc_Hst(
Tetra::Tet const &tet, Eigen::Ref<Eigen::Matrix<double,Nodes::DIM,Tetra::NPI>> _gradV,
116 Eigen::Ref<Eigen::Matrix<double,Nodes::DIM,Tetra::NPI>> _Hst);
134 Eigen::Matrix<double,DIM_PB*Tetra::N,DIM_PB*Tetra::N> &AE);
template class for the different solvers template parameter DIM_PROBLEM: dimensionnality of the probl...
Definition: solver.h:20
const int NOD
Definition: solver.h:44
static const int DIM_PB
Definition: solver.h:38
Definition: spinAccumulationSolver.h:23
void calc_gradV(Tetra::Tet const &tet, Eigen::Ref< Eigen::Matrix< double, Nodes::DIM, Tetra::NPI >> _gradV)
Definition: spinAccumulationSolver.cpp:182
double getLsf(Tetra::Tet &tet) const
Definition: spinAccumulationSolver.cpp:99
void prepareExtras(void)
Definition: spinAccumulationSolver.cpp:108
void boundaryConditions(void)
Definition: spinAccumulationSolver.cpp:56
void calc_Hst(Tetra::Tet const &tet, Eigen::Ref< Eigen::Matrix< double, Nodes::DIM, Tetra::NPI >> _gradV, Eigen::Ref< Eigen::Matrix< double, Nodes::DIM, Tetra::NPI >> _Hst)
Definition: spinAccumulationSolver.cpp:194
double getLsd(Tetra::Tet &tet) const
Definition: spinAccumulationSolver.cpp:96
spinAcc(Mesh::mesh &_msh, std::vector< Tetra::prm > &_pTetra, std::vector< Facette::prm > &_pFac, const double _tol, const bool v, const int max_iter)
Definition: spinAccumulationSolver.h:26
double getPolarizationRate(Tetra::Tet &tet) const
Definition: spinAccumulationSolver.cpp:93
bool compute(void)
Definition: spinAccumulationSolver.cpp:168
void checkBoundaryConditions(void) const
Definition: spinAccumulationSolver.cpp:9
bool solve(void)
Definition: spinAccumulationSolver.cpp:204
std::vector< int > idxDirichlet
Definition: spinAccumulationSolver.h:67
double getSigma(Tetra::Tet const &tet) const
Definition: spinAccumulationSolver.cpp:84
const int precision
Definition: spinAccumulationSolver.h:85
void integrales(Tetra::Tet &tet, Eigen::Matrix< double, DIM_PB *Tetra::N, DIM_PB *Tetra::N > &AE)
Definition: spinAccumulationSolver.cpp:338
void integraleSpinHall(Tetra::Tet &tet, std::vector< double > &BE)
Definition: spinAccumulationSolver.cpp:318
std::vector< double > valDirichlet
Definition: spinAccumulationSolver.h:63
double getDiffusionCst(Tetra::Tet &tet) const
Definition: spinAccumulationSolver.cpp:87
double getMs(Tetra::Tet const &tet) const
Definition: spinAccumulationSolver.cpp:81
std::vector< Eigen::Vector3d > s
Definition: spinAccumulationSolver.h:52
void setPotential(std::vector< double > &_V)
Definition: spinAccumulationSolver.cpp:105
std::vector< Eigen::Matrix< double, Nodes::DIM, Tetra::NPI > > gradV
Definition: spinAccumulationSolver.h:76
double getSpinHall(Tetra::Tet &tet) const
Definition: spinAccumulationSolver.cpp:102
void integraleMag(Tetra::Tet &tet, Eigen::Matrix< double, DIM_PB *Tetra::N, DIM_PB *Tetra::N > &AE)
Definition: spinAccumulationSolver.cpp:262
void fillDirichletData(const int k, Eigen::Vector3d &s_value)
Definition: spinAccumulationSolver.cpp:46
std::vector< double > V
Definition: spinAccumulationSolver.h:60
void preCompute(void)
Definition: spinAccumulationSolver.cpp:152
std::vector< Eigen::Matrix< double, Nodes::DIM, Tetra::NPI > > Hst
Definition: spinAccumulationSolver.h:82
solver for electrostatic problem when spin accumulation is required header containing electrostatSolv...
constexpr double v[NPI]
Definition: facette.h:22
header to define struct Node
two templates to fill matrix and vectors in various dimensionnality situations. DIM_PROBLEM = 1 is us...
namespace Tetra header containing Tet class, some constants, and integrales