func main() { cuda.Init(0) InitIO("standardproblem4.mx3", "standardproblem4.out", true) GoServe(":35367") defer Close() SetGridSize(128, 32, 1) SetCellSize(500e-9/128, 125e-9/32, 3e-9) Msat.Set(800e3) Aex.Set(13e-12) Alpha.Set(0.02) M.Set(Uniform(1, .1, 0)) AutoSave(&M, 100e-12) TableAdd(MaxTorque) TableAutoSave(5e-12) Relax() // reversal B_ext.Set(Vector(-24.6E-3, 4.3E-3, 0)) Run(1e-9) TOL := 1e-3 ExpectV("m", M.Average(), Vector(-0.9846124053001404, 0.12604089081287384, 0.04327124357223511), TOL) }
func main() { flag.Parse() log.SetPrefix("") log.SetFlags(0) cuda.Init(*engine.Flag_gpu) cuda.Synchronous = *engine.Flag_sync if *flag_version { printVersion() } // used by bootstrap launcher to test cuda // successful exit means cuda was initialized fine if *flag_test { fmt.Println(cuda.GPUInfo) os.Exit(0) } defer engine.Close() // flushes pending output, if any if *flag_vet { vet() return } switch flag.NArg() { case 0: runInteractive() case 1: runFileAndServe(flag.Arg(0)) default: RunQueue(flag.Args()) } }
func main() { flag.Parse() log.SetPrefix("") log.SetFlags(0) cuda.Init(*flag_gpu) runtime.GOMAXPROCS(runtime.NumCPU()) cuda.Synchronous = *flag_sync if *flag_version { printVersion() } timer.Timeout = *flag_launchtimeout if *flag_launchtimeout != 0 { cuda.Synchronous = true } engine.TestDemag = *flag_selftest // used by bootstrap launcher to test cuda // successful exit means cuda was initialized fine if *flag_test { fmt.Println(cuda.GPUInfo) os.Exit(0) } engine.CacheDir = *flag_cachedir if *flag_cpuprof { prof.InitCPU(".") } if *flag_memprof { prof.InitMem(".") } defer prof.Cleanup() defer engine.Close() // flushes pending output, if any defer func() { if *flag_sync { timer.Print(os.Stdout) } }() if *flag_vet { vet() return } switch flag.NArg() { case 0: runInteractive() case 1: runFileAndServe(flag.Arg(0)) default: RunQueue(flag.Args()) } }
func buildAPI() { cuda.Init(0) // gpu 0 ident := engine.World.Identifiers doc := engine.World.Doc e := make(entries, 0, len(ident)) for K, v := range doc { k := strings.ToLower(K) t := ident[k].Type() entr := entry{K, t, v, false} e = append(e, &entr) api_ident[k] = entr } sort.Sort(&e) api_entries = e }
func main() { cuda.Init(0) defer Close() Nx := 512 Ny := 128 Nz := 1 cellsize := 5.0e-9 SetGridSize(Nx, Ny, Nz) thickness := 40e-9 //width := float64(Ny) * cellsize length := float64(Nx) * cellsize SetCellSize(cellsize, cellsize, thickness/float64(Nz)) mask := data.NewSlice(3, Mesh().Size()) wireX := -length * 0.45 //wireY := 0.0 wireZ := thickness * 5.0 for h := 0; h < 10; h++ { for i := 0; i < Nx; i++ { for j := 0; j < Ny; j++ { r := Index2Coord(i, j, 0) r = r.Sub(Vector(wireX+float64(h)*cellsize, r.Y(), wireZ)) B := Vector(0, 0, 0) current := Vector(0, 1, 0) B = r.Cross(current).Mul(Mu0 / (2 * math.Pi * math.Pow(r.Len(), 2))) mask.Set(0, i, j, 0, B.X()) mask.Set(1, i, j, 0, B.Y()) mask.Set(2, i, j, 0, B.Z()) } } } f, _ := os.OpenFile("antenna.ovf", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0666) defer f.Close() oommf.WriteOVF2(f, mask, data.Meta{}, "binary 4") }
// Usage: in every Go input file, write: // // func main(){ // defer InitAndClose()() // // ... // } // // This initialises the GPU, output directory, etc, // and makes sure pending output will get flushed. func InitAndClose() func() { flag.Parse() cuda.Init(*Flag_gpu) cuda.Synchronous = *Flag_sync od := *Flag_od if od == "" { od = path.Base(os.Args[0]) + ".out" } inFile := util.NoExt(od) InitIO(inFile, od, *Flag_forceclean) GoServe(*Flag_port) return func() { Close() } }