Hi, everyone
I am trying to simulate the motion of a domain wall on a nanostrip according to the paper 'Current-driven domain wall mobility in polycrystalline Permalloy nanowires: A numerical study' by J. Leliaert et al. DOI:
https://doi.org/10.1063/1.4883297. The dimension of my problem is different from the one mentioned in the paper, and I am attaching my code below for your ready reference. While executing the simulation, I am getting one error message that reads, 'Cannot save the quantity: the OVF1 format only supports 3D-vector fields'. Can anyone please suggest what I need to change in this OVF1 format to run the simulation?
Thanks in advance.
*********Code**********
Nx := 1000
Ny := 50
Nz := 1
cx := 2e-9
cy := 2e-9
cz := 10e-9
setgridsize(Nx, Ny, Nz)
setcellsize(cx, cy, cz)
SetMesh(Nx, Ny, Nz, cx, cy, cz, 0, 0, 0)
EdgeSmooth = 8
//resizing...
setgeom( rect(2000e-9, 100e-9))
saveas(geom, "rectangle")
Save(m)
m = randomMag()
relax()
// define grains with region number 0-255
grainSize := 10e-9 // m
randomSeed := 1234567
maxRegion := 255
ext_makegrains(grainSize, maxRegion, randomSeed)
defregion(256, rect(2000e-9, 100e-9).inverse()) // region 256 is outside, not really needed
//material_parameters
Msat = 860e3
Aex = 13e-12
alpha = 0.01
Ku1 = 0
// set random parameters per region
for i:=0; i<maxRegion; i++{
// random 10% anisotropy variation
K := 1e5
Ku1.SetRegion(i, K + randNorm() * 0.1 * K)
AnisU.setRegion(i, vector(1, 0, 0))
}
// reduce exchange coupling between grains by 10%
for i:=0; i<maxRegion; i++{
for j:=i+1; j<maxRegion; j++{
ext_ScaleExchange(i, j, 0.9)
}
}
m = Uniform(1,0,0)
m = TwoDomain(1,0,0, 0,1,0, -1,0,0) // mx in left and right domain
snapshot(m)
// Remove surface charges from left (mx=1) and right (mx=-1) sides to mimic infinitely long wire.
BoundaryRegion := 0
MagLeft := 1
MagRight := -1
ext_rmSurfaceCharge(BoundaryRegion, MagLeft, MagRight)
relax()
OutputFormat = OVF1_TEXT
saveas(m,"Domainwall0")
relax()
saveas(m,"Domainwall1")
//STT parameters
Pol = 0.5
xi = 0.04
// send current
jc := 2.0e12 // current density in A/m2
J = vector(-jc,0,0)
// schedule output & run
save(regions)
autosave(m, 10e-12)
tableautosave(10e-12)
run(5e-9)