16 #include <sys/times.h>
20 #include "spinAccumulationSolver.h"
22 #include "chronometer.h"
49 std::fill(
E.begin(),
E.end(),0);
58 std::cout <<
"Approximate nearest neighbors:\n";
64 std::cerr <<
"ANN memory error while allocating points\n";
69 std::cout <<
" points allocated\n";
81 std::cout <<
" building kd_tree\n";
87 std::cerr <<
"ANN memory error while allocating kd_tree\n";
94 std::cout <<
" kd_tree allocated\n";
99 std::cout <<
"No recentering.\n";
137 std::array<double,NB_ENERGY_TERMS>
E;
152 void energy(
const double t
167 std::ofstream &fout ,
const int nt ,
168 std::vector<Eigen::Vector3d> &s )
const;
182 char recentering_direction );
213 std::cout <<
"magnetostatics done in " << fmm_counter.
millis() <<
"\n";
217 { std::cout <<
"spin diffusion solved.\n"; }
219 { std::cerr <<
"spin diffusion solver failed.\n"; }
double Etot
Definition: fem.h:146
void direction(enum Nodes::index idx_dir)
Definition: recentering.cpp:7
void evolution(void)
Definition: fem.h:159
std::array< double, NB_ENERGY_TERMS > E
Definition: fem.h:137
double Etot0
Definition: fem.h:143
Mesh::mesh msh
Definition: fem.h:149
bool recenter(double thres, char recentering_direction)
Definition: recentering.cpp:47
ANNpointArray pts
Definition: fem.h:196
ANNkd_tree * kdtree
Definition: fem.h:194
void energy(const double t, Settings &settings)
Definition: energy.cpp:5
~Fem()
Definition: fem.h:124
double DW_dir
Definition: fem.h:140
int time_integration(Settings &settings, LinAlgebra &linAlg, spinAcc &spinAcc_solver, scal_fmm::fmm &myFMM, timing &t_prm, int &nt)
Definition: time_integration.cpp:136
bool recenter_mem
Definition: fem.h:193
Fem(Settings &mySets, timing &t_prm)
Definition: fem.h:46
void compute_all(Settings &settings, spinAcc &spinAcc_solver, scal_fmm::fmm &myFMM, const double t)
Definition: fem.h:203
void saver(Settings &settings, const timing &t_prm, std::ofstream &fout, const int nt, std::vector< Eigen::Vector3d > &s) const
Definition: save.cpp:13
double vmax
Definition: fem.h:134
Definition: linear_algebra.h:35
const Eigen::Vector3d getNode_p(const int i) const
Definition: mesh.h:153
double readSol(bool VERBOSE, const std::string &fileName)
Definition: read.cpp:199
void init_distrib()
Definition: mesh.h:221
int getNbNodes(void) const
Definition: mesh.h:144
void evolution(void)
Definition: mesh.h:189
Container for all the settings provided by the user, with conversions to/from YAML.
Definition: settings.h:70
int verbose
Definition: settings.h:136
bool spin_acc
Definition: settings.h:160
double initial_time
Definition: settings.h:196
std::string restoreFileName
Definition: settings.h:193
bool recenter
Definition: settings.h:145
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:23
bool compute(void)
Definition: spinAccumulationSolver.cpp:151
Definition: time_integration.h:7
void set_t(const double _t)
Definition: time_integration.h:54
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
many settings to give some parameters to the solver, boundary conditions for the problem,...