16 #include <sys/times.h>
20 #include "spinAccumulationSolver.h"
22 #include "chronometer.h"
50 std::fill(
E.begin(),
E.end(),0);
59 std::cout <<
"Approximate nearest neighbors:\n";
65 std::cerr <<
"ANN memory error while allocating points\n";
70 std::cout <<
" points allocated\n";
82 std::cout <<
" building kd_tree\n";
88 std::cerr <<
"ANN memory error while allocating kd_tree\n";
95 std::cout <<
" kd_tree allocated\n";
100 std::cout <<
"No recentering.\n";
138 std::array<double,NB_ENERGY_TERMS>
E;
153 void energy(
const double t
168 std::ofstream &fout ,
const int nt ,
169 const spinAcc &spinAcc_solver )
const;
183 char recentering_direction );
211 { std::cout <<
"magnetostatics done in " << fmm_counter.
millis() <<
"\n"; }
225 bool success = spinAcc_solver.
compute(k);
229 { std::cout <<
"spin diffusion solved.\n"; }
231 { std::cerr <<
"spin diffusion solver failed.\n"; }
double Etot
Definition: fem.h:147
void direction(enum Nodes::index idx_dir)
Definition: recentering.cpp:7
void evolution(void)
Definition: fem.h:160
void compute_all(Settings &settings, scal_fmm::fmm &myFMM, const double t)
Definition: fem.h:205
std::array< double, NB_ENERGY_TERMS > E
Definition: fem.h:138
void solve_spin_acc(Settings &settings, spinAcc &spinAcc_solver, const double t, const Nodes::step k)
Definition: fem.h:221
double Etot0
Definition: fem.h:144
Mesh::mesh msh
Definition: fem.h:150
bool recenter(double thres, char recentering_direction)
Definition: recentering.cpp:47
ANNpointArray pts
Definition: fem.h:197
ANNkd_tree * kdtree
Definition: fem.h:195
void energy(const double t, Settings &settings)
Definition: energy.cpp:5
~Fem()
Definition: fem.h:125
double DW_dir
Definition: fem.h:141
int time_integration(Settings &settings, LinAlgebra &linAlg, spinAcc &spinAcc_solver, scal_fmm::fmm &myFMM, timing &t_prm, int &nt)
Definition: time_integration.cpp:140
bool recenter_mem
Definition: fem.h:194
void saver(Settings &settings, const timing &t_prm, std::ofstream &fout, const int nt, const spinAcc &spinAcc_solver) const
Definition: save.cpp:13
Fem(Settings &mySets, timing &t_prm)
Definition: fem.h:47
double vmax
Definition: fem.h:135
Definition: linear_algebra.h:35
const Eigen::Vector3d getNode_p(const int i) const
Definition: mesh.h:156
double readSol(bool VERBOSE, const std::string &fileName)
Definition: read.cpp:200
void init_distrib()
Definition: mesh.h:225
int getNbNodes(void) const
Definition: mesh.h:147
void evolution(void)
Definition: mesh.h:193
Container for all the settings provided by the user, with conversions to/from YAML.
Definition: settings.h:72
int verbose
Definition: settings.h:135
double jnMultiplier(const double t_val) const
Definition: settings.h:331
double initial_time
Definition: settings.h:204
std::string restoreFileName
Definition: settings.h:201
bool recenter
Definition: settings.h:144
Definition: chronometer.h:18
std::string millis()
Definition: chronometer.h:49
Definition: fmm_demag.h:60
void calc_demag(Mesh::mesh &msh)
Definition: fmm_demag.h:96
Definition: spinAccumulationSolver.h:25
bool compute(const Nodes::step k=Nodes::NEXT)
Definition: spinAccumulationSolver.cpp:171
double jn_multiplier
Definition: spinAccumulationSolver.h:54
Definition: time_integration.h:13
void set_t(const double _t)
Definition: time_integration.h:101
const int NB_ENERGY_TERMS
Definition: fem.h:27
ENERGY_TYPE
Definition: fem.h:31
this header is the interface to scalfmm. Its purpose is to prepare an octree for the application of t...
secondary header, it grabs altogether the linear algebra by the solver to apply fem method It encap...
class mesh, readMesh is expecting a mesh file in gmsh format either text or binary,...
index
Definition: node.h:33
const int DIM
Definition: node.h:19
step
Definition: node.h:26
many settings to give some parameters to the solver, boundary conditions for the problem,...