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";
63 std::cout <<
"ANN memory error while allocating points" << std::endl;
68 std::cout <<
" points allocated\n";
80 std::cout <<
" building kd_tree\n";
86 std::cout <<
"ANN memory error while allocating kd_tree" << std::endl;
93 std::cout <<
" kd_tree allocated\n";
98 std::cout <<
"No recentering.\n";
136 std::array<double,NB_ENERGY_TERMS>
E;
151 void energy(
const double t
166 std::ofstream &fout ,
const int nt ,
167 std::vector<Eigen::Vector3d> &s )
const;
181 char recentering_direction );
212 std::cout <<
"magnetostatics done in " << fmm_counter.
millis() << std::endl;
216 { std::cout <<
"spin diffusion solved.\n"; }
218 { std::cout <<
"spin diffusion solver failed.\n"; }
double Etot
Definition: fem.h:145
void direction(enum Nodes::index idx_dir)
Definition: recentering.cpp:7
void evolution(void)
Definition: fem.h:158
std::array< double, NB_ENERGY_TERMS > E
Definition: fem.h:136
double Etot0
Definition: fem.h:142
Mesh::mesh msh
Definition: fem.h:148
bool recenter(double thres, char recentering_direction)
Definition: recentering.cpp:47
ANNpointArray pts
Definition: fem.h:195
ANNkd_tree * kdtree
Definition: fem.h:193
void energy(const double t, Settings &settings)
Definition: energy.cpp:5
~Fem()
Definition: fem.h:123
double DW_dir
Definition: fem.h:139
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:192
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:202
void saver(Settings &settings, const timing &t_prm, std::ofstream &fout, const int nt, std::vector< Eigen::Vector3d > &s) const
Definition: save.cpp:14
double vmax
Definition: fem.h:133
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:195
int getNbNodes(void) const
Definition: mesh.h:144
void init_distrib(const Settings &mySets)
Definition: mesh.h:224
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:145
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,...