Versions in this module Expand all Collapse all v0 v0.2.0 Dec 17, 2021 v0.1.0 Nov 26, 2021 Changes in this version + const BlockSize + const CONV_TOLERANCE + const FFT_IMAG_TOLERANCE + const MaxGridSize + const REDUCE_BLOCKSIZE + const TileX + const TileY + const X + const Y + const Z + var DevName string + var DriverVersion int + var GPUInfo string + var Synchronous bool + var TotalMem int64 + var UseCC = 0 + func Add(dst, src1, src2 *data.Slice) + func AddCubicAnisotropy2(Beff, m *data.Slice, Msat, k1, k2, k3, c1, c2 MSlice) + func AddDMI(Beff *data.Slice, m *data.Slice, Aex_red, Dex_red SymmLUT, Msat MSlice, ...) + func AddDMIBulk(Beff *data.Slice, m *data.Slice, Aex_red, D_red SymmLUT, Msat MSlice, ...) + func AddDotProduct(dst *data.Slice, prefactor float32, a, b *data.Slice) + func AddExchange(B, m *data.Slice, Aex_red SymmLUT, Msat MSlice, regions *Bytes, ...) + func AddMagnetoelasticField(Beff, m *data.Slice, exx, eyy, ezz, exy, exz, eyz, B1, B2, Msat MSlice) + func AddSlonczewskiTorque2(torque, m *data.Slice, Msat, J, fixedP, alpha, pol, λ, ε_prime MSlice, ...) + func AddUniaxialAnisotropy2(Beff, m *data.Slice, Msat, k1, k2, u MSlice) + func AddZhangLiTorque(torque, m *data.Slice, Msat, J, alpha, xi, pol MSlice, mesh *data.Mesh) + func Buffer(nComp int, size [3]int) *data.Slice + func Crop(dst, src *data.Slice, offX, offY, offZ int) + func CrossProduct(dst, a, b *data.Slice) + func Div(dst, a, b *data.Slice) + func Dot(a, b *data.Slice) float32 + func ExchangeDecode(dst *data.Slice, Aex_red SymmLUT, regions *Bytes, mesh *data.Mesh) + func FreeBuffers() + func GPUCopy(in *data.Slice) *data.Slice + func GetCell(s *data.Slice, comp, ix, iy, iz int) float32 + func GetElem(s *data.Slice, comp int, index int) float32 + func GetMagnetoelasticForceDensity(out, m *data.Slice, B1, B2 MSlice, mesh *data.Mesh) + func Init(gpu int) + func LLNoPrecess(torque, m, B *data.Slice) + func LLTorque(torque, m, B *data.Slice, alpha MSlice) + func Madd2(dst, src1, src2 *data.Slice, factor1, factor2 float32) + func Madd3(dst, src1, src2, src3 *data.Slice, factor1, factor2, factor3 float32) + func Madd4(dst, src1, src2, src3, src4 *data.Slice, ...) + func Madd5(dst, src1, src2, src3, src4, src5 *data.Slice, ...) + func Madd6(dst, src1, src2, src3, src4, src5, src6 *data.Slice, ...) + func Madd7(dst, src1, src2, src3, src4, src5, src6, src7 *data.Slice, ...) + func MaxAbs(in *data.Slice) float32 + func MaxVecDiff(x, y *data.Slice) float64 + func MaxVecNorm(v *data.Slice) float64 + func MemAlloc(bytes int64) unsafe.Pointer + func MemCpy(dst, src unsafe.Pointer, bytes int64) + func MemCpyDtoH(dst, src unsafe.Pointer, bytes int64) + func MemCpyHtoD(dst, src unsafe.Pointer, bytes int64) + func Memset(s *data.Slice, val ...float32) + func Minimize(m, m0, torque *data.Slice, dt float32) + func Mul(dst, a, b *data.Slice) + func NewSlice(nComp int, size [3]int) *data.Slice + func Normalize(vec, vol *data.Slice) + func Recycle(s *data.Slice) + func RegionAddS(dst *data.Slice, lut LUTPtr, regions *Bytes) + func RegionAddV(dst *data.Slice, lut LUTPtrs, regions *Bytes) + func RegionDecode(dst *data.Slice, lut LUTPtr, regions *Bytes) + func RegionSelect(dst, src *data.Slice, regions *Bytes, region byte) + func Resize(dst, src *data.Slice, layer int) + func SetCell(s *data.Slice, comp int, ix, iy, iz int, value float32) + func SetElem(s *data.Slice, comp int, index int, value float32) + func SetMaxAngle(dst, m *data.Slice, Aex_red SymmLUT, regions *Bytes, mesh *data.Mesh) + func SetPhi(s *data.Slice, m *data.Slice) + func SetTemperature(Bth, noise *data.Slice, k2mu0_Mu0VgammaDt float64, Msat, Temp, Alpha MSlice) + func SetTheta(s *data.Slice, m *data.Slice) + func SetTopologicalCharge(s *data.Slice, m *data.Slice, mesh *data.Mesh) + func SetTopologicalChargeLattice(s *data.Slice, m *data.Slice, mesh *data.Mesh) + func ShiftBytes(dst, src *Bytes, m *data.Mesh, shiftX int, clamp byte) + func ShiftBytesY(dst, src *Bytes, m *data.Mesh, shiftY int, clamp byte) + func ShiftX(dst, src *data.Slice, shiftX int, clampL, clampR float32) + func ShiftY(dst, src *data.Slice, shiftY int, clampL, clampR float32) + func ShiftZ(dst, src *data.Slice, shiftZ int, clampL, clampR float32) + func Sum(in *data.Slice) float32 + func Sync() + func Zero(s *data.Slice) + func ZeroMask(dst *data.Slice, mask LUTPtr, regions *Bytes) + type Bytes struct + Len int + Ptr unsafe.Pointer + func NewBytes(Len int) *Bytes + func (b *Bytes) Free() + func (dst *Bytes) Copy(src *Bytes) + func (dst *Bytes) Set(index int, value byte) + func (dst *Bytes) Upload(src []byte) + func (src *Bytes) Download(dst []byte) + func (src *Bytes) Get(index int) byte + type DemagConvolution struct + func NewDemag(inputSize, PBC [3]int, kernel [3][3]*data.Slice, test bool) *DemagConvolution + func (c *DemagConvolution) Exec(B, m, vol *data.Slice, Msat MSlice) + func (c *DemagConvolution) Free() + type LUTPtr unsafe.Pointer + type LUTPtrs []unsafe.Pointer + type MFMConvolution struct + func NewMFM(mesh *data.Mesh, lift, tipsize float64, cachedir string) *MFMConvolution + func (c *MFMConvolution) Exec(outp, inp, vol *data.Slice, Msat MSlice) + func (c *MFMConvolution) Free() + func (c *MFMConvolution) Reinit(lift, tipsize float64, cachedir string) + type MSlice struct + func MakeMSlice(arr *data.Slice, mul []float64) MSlice + func ToMSlice(s *data.Slice) MSlice + func (m MSlice) DevPtr(c int) unsafe.Pointer + func (m MSlice) Len() int + func (m MSlice) Mul(c int) float32 + func (m MSlice) Recycle() + func (m MSlice) SetMul(c int, mul float32) + func (m MSlice) Size() [3]int + type SymmLUT unsafe.Pointer