1
1
import numpy
2
- cimport numpy as np
3
- np.import_array()
4
2
5
3
cdef extern from " micro_clib.h" :
6
4
void compute_exch_field_micro(double * m, double * field,
@@ -22,47 +20,48 @@ cdef extern from "micro_clib.h":
22
20
int nx, int ny, int nz, int * ngbs)
23
21
24
22
25
- def compute_exchange_field_micro (np.ndarray[ double , ndim = 1 , mode = " c " ] m,
26
- np.ndarray[ double , ndim = 1 , mode = " c " ] field,
27
- np.ndarray[ double , ndim = 1 , mode = " c " ] energy,
28
- np.ndarray[ double , ndim = 1 , mode = " c " ] Ms_inv,
23
+ def compute_exchange_field_micro (double [: ] m ,
24
+ double [: ] field ,
25
+ double [: ] energy ,
26
+ double [: ] Ms_inv ,
29
27
A , dx , dy , dz , n ,
30
- np.ndarray[ int , ndim = 2 , mode = " c " ] ngbs):
28
+ int [:, : ] ngbs ):
31
29
32
30
compute_exch_field_micro(& m[0 ], & field[0 ], & energy[0 ], & Ms_inv[0 ], A,
33
31
dx, dy, dz, n, & ngbs[0 , 0 ])
34
32
35
33
36
- def compute_dmi_field (np.ndarray[ double , ndim = 1 , mode = " c " ] m,
37
- np.ndarray[ double , ndim = 1 , mode = " c " ] field,
38
- np.ndarray[ double , ndim = 1 , mode = " c " ] energy,
39
- np.ndarray[ double , ndim = 1 , mode = " c " ] Ms_inv,
40
- np.ndarray[ double , ndim = 1 , mode = " c " ] D,
41
- np.ndarray[ double , ndim = 1 , mode = " c " ] dmi_vector,
34
+ def compute_dmi_field (double [: ] m ,
35
+ double [: ] field ,
36
+ double [: ] energy ,
37
+ double [: ] Ms_inv ,
38
+ double [: ] D ,
39
+ double [: ] dmi_vector ,
42
40
n_dmi_ngbs ,
43
41
dx , dy , dz ,
44
- n , np.ndarray[int , ndim = 2 , mode = " c" ] ngbs
42
+ n ,
43
+ int [:, :] ngbs
45
44
):
46
45
47
46
dmi_field(& m[0 ], & field[0 ], & energy[0 ], & Ms_inv[0 ],
48
47
& D[0 ], & dmi_vector[0 ], n_dmi_ngbs,
49
48
dx, dy, dz, n, & ngbs[0 , 0 ])
50
49
51
50
52
- def compute_anisotropy_micro (np.ndarray[ double , ndim = 1 , mode = " c " ] m,
53
- np.ndarray[ double , ndim = 1 , mode = " c " ] field,
54
- np.ndarray[ double , ndim = 1 , mode = " c " ] energy,
55
- np.ndarray[ double , ndim = 1 , mode = " c " ] Ms_inv,
56
- np.ndarray[ double , ndim = 1 , mode = " c " ] Ku,
57
- np.ndarray[ double , ndim = 1 , mode = " c " ] axis,
58
- nx , ny , nz ):
51
+ def compute_anisotropy_micro (double [: ] m ,
52
+ double [: ] field ,
53
+ double [: ] energy ,
54
+ double [: ] Ms_inv ,
55
+ double [: ] Ku ,
56
+ double [: ] axis ,
57
+ nx , ny , nz ):
59
58
60
59
compute_uniaxial_anis(& m[0 ], & field[0 ], & energy[0 ], & Ms_inv[0 ],
61
60
& Ku[0 ], & axis[0 ], nx, ny, nz)
62
61
63
- def compute_skyrmion_number (np.ndarray[ double , ndim = 1 , mode = " c " ] m,
64
- np.ndarray[ double , ndim = 1 , mode = " c " ] charge,
62
+ def compute_skyrmion_number (double [: ] m ,
63
+ double [: ] charge ,
65
64
nx , ny , nz ,
66
- np.ndarray[ int , ndim = 2 , mode = " c " ] ngbs):
65
+ int [:, : ] ngbs ):
67
66
68
67
return skyrmion_number(& m[0 ], & charge[0 ], nx, ny, nz, & ngbs[0 , 0 ])
0 commit comments