Nx := 3
Ny := 3
Nz := 64

D := .1e-9
th := 9e-9

SetGridSize(Nx,Ny,Nz)
SetCellSize(D,D,th/Nz)
EnableNewellDemag = true
EnableNewell2dDemag = true
pbc_2d_error = 1e-11
//setPBC(64,64,0)


Msat  = 796e3
Aex   = 8e-12
alpha = 0.008

anisU = vector(0, 0, 1)
Ku1 = 25e3

B_DC := 50e-3

B_ext = vector(0, B_DC, 0)

B_THz := 30e-3 // 160e-3
lambda_THz := 100e-9
f_center := 700e9
t0 := 5e-12

B_SOT := 10e-3
lambda_SOT := 2.0e-9
m = uniform(0, 1, 0)
relax()
mask := newVectorMask(Nx, Ny, Nz)


for j:=0; j<Ny; j++{
        for i:=0; i<Nx; i++{
            for k :=0; k<Nz; k++{
 		r := index2coord(i, j, k)
                x := r.X()
                y := r.Y()
		z := r.Z() 
                B_1 := B_THz*exp(-abs(z-th/2)/lambda_THz)
                B_2 := B_SOT*exp(-abs(z-th/2)/lambda_SOT)
                B_3 := -B_SOT*exp(-abs(z+th/2)/lambda_SOT)
                mask.setvector(i, j, k, vector(B_2 + B_3, 0, 0))
//                mask.setvector(i, j, k, vector(B_1, 0, B_2+B_3))
        	
		}
	}
}

B_ext.add(mask, sin(2*pi*f_center*(t-t0))*exp(-pow((t-t0),2)/(1.6e-24)))


TableAdd(E_total)
TableAdd(E_exch)
TableAdd(E_demag)
tableautosave(0.1e-12)
autosave(m,0.1e-12)
run(250e-12)


