22 #include <sys/times.h>
28 #include "spinAccumulationSolver.h"
30 #include "chronometer.h"
57 std::fill(
E.begin(),
E.end(),0);
66 std::cout <<
"Approximate nearest neighbors:\n";
71 std::cout <<
"ANN memory error while allocating points" << std::endl;
76 std::cout <<
" points allocated\n";
88 std::cout <<
" building kd_tree\n";
94 std::cout <<
"ANN memory error while allocating kd_tree" << std::endl;
101 std::cout <<
" kd_tree allocated\n";
106 std::cout <<
"No recentering.\n";
144 std::array<double,NB_ENERGY_TERMS>
E;
159 void energy(
double const t
174 std::ofstream &fout ,
const int nt ,
175 std::vector<Eigen::Vector3d> &s )
const;
189 char recentering_direction );
219 std::cout <<
"magnetostatics done in " << fmm_counter.
millis() << std::endl;
223 { std::cout <<
"spin diffusion solved.\n"; }
225 { std::cout <<
"spin diffusion solver failed.\n"; }
double Etot
Definition: fem.h:153
void direction(enum Nodes::index idx_dir)
Definition: recentering.cpp:7
void evolution(void)
Definition: fem.h:166
std::array< double, NB_ENERGY_TERMS > E
Definition: fem.h:144
double Etot0
Definition: fem.h:150
Mesh::mesh msh
Definition: fem.h:156
bool recenter(double thres, char recentering_direction)
Definition: recentering.cpp:47
ANNpointArray pts
Definition: fem.h:203
ANNkd_tree * kdtree
Definition: fem.h:201
~Fem()
Definition: fem.h:131
double DW_dir
Definition: fem.h:147
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:200
Fem(Settings &mySets, timing &t_prm)
Definition: fem.h:54
void compute_all(Settings &settings, spinAcc &spinAcc_solver, scal_fmm::fmm &myFMM, const double t)
Definition: fem.h:209
void saver(Settings &settings, timing const &t_prm, std::ofstream &fout, const int nt, std::vector< Eigen::Vector3d > &s) const
Definition: save.cpp:15
double vmax
Definition: fem.h:141
void energy(double const t, Settings &settings)
Definition: energy.cpp:5
Definition: linear_algebra.h:38
const Eigen::Vector3d getNode_p(const int i) const
Definition: mesh.h:144
void init_distrib(Settings const &mySets)
Definition: mesh.h:215
int getNbNodes(void) const
Definition: mesh.h:135
double readSol(bool VERBOSE, const std::string fileName)
Definition: read.cpp:173
void evolution(void)
Definition: mesh.h:180
Container for all the settings provided by the user, with conversions to/from YAML.
Definition: feellgoodSettings.h:73
int verbose
Definition: feellgoodSettings.h:135
bool spin_acc
Definition: feellgoodSettings.h:159
double initial_time
Definition: feellgoodSettings.h:195
std::string restoreFileName
Definition: feellgoodSettings.h:192
bool recenter
Definition: feellgoodSettings.h:144
Definition: chronometer.h:18
std::string millis()
Definition: chronometer.h:49
Definition: fmm_demag.h:58
void calc_demag(Mesh::mesh &msh)
Definition: fmm_demag.h:93
Definition: spinAccumulationSolver.h:23
bool compute(void)
Definition: spinAccumulationSolver.cpp:163
Definition: time_integration.h:6
void set_t(double _t)
Definition: time_integration.h:53
many settings to give some parameters to the solver, boundary conditions for the problem,...
const int NB_ENERGY_TERMS
Definition: fem.h:35
ENERGY_TYPE
Definition: fem.h:39
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:34
const int DIM
Definition: node.h:20