22#include < cmath>
33#include < iostream>
44#include < vector>
5+ #include < memory>
56// #define MAX_ENERGY_TERMS 20
67
8+ class Energy ; // forward declaration; Energy is defined in c_energy.h
79class MicroSim {
810public:
911 MicroSim () {std::cout << " Instatiating MicroSim class; at " << this << " \n " ;};
@@ -28,22 +30,27 @@ class MicroSim {
2830 // Array with interactions
2931 // void * interactions;
3032 // int interactions_id[MAX_ENERGY_TERMS];
31- std::vector<void *> interactions;
32- std::vector<int > interactions_id;
33+ // Should we use a vector of weak_ptr? : std::vector<std::weak_ptr<Energy>> interactions;
34+ std::vector<Energy *> interactions;
35+
36+ // Not necessary at least we re creating an array of void pointers:
37+ // std::vector<int> interactions_id;
3338
3439 // Methods
3540 void setup (int nx, int ny, int nz, double dx, double dy, double dz,
36- double unit_length, double *coordinates, int *ngbs,
37- double *spin, double *Ms, double *Ms_inv,
41+ double unit_length, double *coordinates, int *ngbs,
42+ double *spin, double *Ms, double *Ms_inv,
3843 double *energy, double *field, int *pins
3944 );
4045
41- void add_interaction (void * interaction, int int_id);
46+ void add_interaction (Energy * interaction);
47+
48+ // void print_interactions_id() {
49+ // for(int i : interactions_id) std::cout << i << "\n";
50+ // for(auto i : interactions) std::cout << i << "\n";
51+ // }
4252
43- void print_interactions_id () {
44- for (int i : interactions_id) std::cout << i << " \n " ;
45- for (auto i : interactions) std::cout << i << " \n " ;
46- }
53+ void compute_effective_field (double t);
4754};
4855
4956enum EnergyTermIDs {
0 commit comments