Documentation ¶
Index ¶
- Constants
- func IsZero(array []float64, max float64) bool
- func Kernel_Arne(size []int, cellsize []float64, pbc []int, accuracy_ int, kernel *host.Array)
- func LoadAnisUniaxial(e *Engine)
- func LoadAnizBrown(e *Engine, args ...Arguments)
- func LoadBField(e *Engine)
- func LoadBrillouinArgs(e *Engine, args ...Arguments)
- func LoadBrillouinKappaArgs(e *Engine, args ...Arguments)
- func LoadCeDrudeArgs(e *Engine, args ...Arguments)
- func LoadDFArgs(e *Engine, args ...Arguments)
- func LoadDebyeCpArgs(e *Engine, args ...Arguments)
- func LoadDemag(e *Engine)
- func LoadEFArgs(e *Engine, args ...Arguments)
- func LoadEL(e *Engine)
- func LoadES(e *Engine)
- func LoadETM(e *Engine)
- func LoadEnergy(e *Engine)
- func LoadEnergyTerm(e *Engine, out, in1, in2 string, weight float64, desc string) *Quant
- func LoadExch6(e *Engine)
- func LoadFullMagnetization(e *Engine)
- func LoadGammaLL(e *Engine)
- func LoadHField(e *Engine)
- func LoadKappa(e *Engine, name string)
- func LoadLLBar(e *Engine)
- func LoadLLBarLocal00NCArgs(e *Engine, args ...Arguments)
- func LoadLLBarLocal02C(e *Engine)
- func LoadLLBarLocal02NCArgs(e *Engine, args ...Arguments)
- func LoadLLBarNonlocal00NC(e *Engine)
- func LoadLLBarTorque(e *Engine)
- func LoadLTM(e *Engine)
- func LoadLongFieldArgs(e *Engine, args ...Arguments)
- func LoadMFAParams(e *Engine)
- func LoadMMEFArgs(e *Engine, args ...Arguments)
- func LoadMaxTorqueArgs(e *Engine, args ...Arguments)
- func LoadNorm(e *Engine, args ...Arguments)
- func LoadQ(e *Engine, name string)
- func LoadQEspat(e *Engine)
- func LoadQLspat(e *Engine)
- func LoadQSspat(e *Engine)
- func LoadQinter(e *Engine, fName string, TiName string, TjName string, GijName string)
- func LoadQspat(e *Engine, tName string, fName string, cName string)
- func LoadSL(e *Engine)
- func LoadSTM(e *Engine)
- func LoadTM(e *Engine, tName string, fName string, rName string, cName string)
- func LoadTemp(e *Engine, name string)
- func LoadTempSum(e *Engine)
- func LoadTsArgs(e *Engine, args ...Arguments)
- func LoadZeeman(e *Engine)
- func MatrixSymmetry(matrix *host.Array) int
- func NewAnizBrownUpdater(htherm, therm_seed, cutoff_dt, T, mu, msat0T0 *Quant) Updater
- func NewEnergyUpdater(result, w, m, H, msat *Quant, weight float64) Updater
- type AnizBrownUpdater
- type BFieldUpdater
- type BrillouinUpdater
- type CeDrudeUpdater
- type CpDebyeUpdater
- type DFUpdater
- type EFUpdater
- type EnergyUpdater
- type LLBarLocal00NCUpdater
- type LLBarLocal02CUpdater
- type LLBarLocal02NCUpdater
- type LLBarNonlocal00NCUpdater
- type LLBarTorqueUpdater
- type LongFieldUpdater
- type MMEFUpdater
- type MaxwellPlan
- func (plan *MaxwellPlan) EnableDemag(m, msat0T0 *Quant)
- func (plan *MaxwellPlan) ForwardFFT(in *gpu.Array)
- func (plan *MaxwellPlan) Free()
- func (plan *MaxwellPlan) InverseFFT(out *gpu.Array)
- func (plan *MaxwellPlan) LoadKernel(kernel *host.Array, matsymm int, realness int)
- func (plan *MaxwellPlan) UpdateB()
- type NormUpdater
- type QinterUpdater
- type QspatUpdater
- type TSumUpdater
- type TsUpdater
- type UniaxialAnisUpdater
Constants ¶
const ( CPUONLY = true GPU = false )
const ( NOSYMMETRY = 0 // Kij independent of Kji SYMMETRIC = 1 // Kij = Kji DIAGONAL = 2 // also used for vector ANTISYMMETRIC = -1 // Kij = -Kji )
matrix symmetry
const ( PUREREAL = 0 // data is purely real PUREIMAG = 1 // data is purely complex COMPLEX = 2 // data is full complex number )
data realness
const ELTiName = EtempName
const ELTjName = LtempName
const ELcoupName = "Ge-p"
const ELfluxName = "Qe-p"
const ESTiName = EtempName
const ESTjName = StempName
const EScoupName = "Ges"
const ESfluxName = "Qes"
const EcapacName = "Ce"
const EcondName = "Ke"
const EfluxName = "Qe"
const ErateName = "dTedt"
const EspatFluxName = "Qe_spat"
const EtempName = "Te"
const LcapacName = "Cp"
const LcondName = "Kp"
const LfluxName = "Qp"
const LrateName = "dTpdt"
const LspatFluxName = "Qp_spat"
const LtempName = "Tp"
const RCorrName = "R"
const SLTiName = StempName
const SLTjName = LtempName
const SLcoupName = "Gs-p"
const SLfluxName = "Qs-p"
const ScapacName = "Cs"
const ScondName = "Ks"
const SfluxName = "Qs"
const SrateName = "dTsdt"
const SspatFluxName = "Qs_spat"
const StempName = "Ts"
const TSumName = "Teff"
Variables ¶
This section is empty.
Functions ¶
func IsZero ¶
list is considered zero if all elements are at least a factorzero_tolerance smaller than max.
func Kernel_Arne ¶
Calculates the magnetostatic kernel by brute-force integration of magnetic charges over the faces and averages over cell volumes. Mesh should NOT yet be zero-padded.
func LoadAnisUniaxial ¶
func LoadAnisUniaxial(e *Engine)
func LoadAnizBrown ¶
func LoadAnizBrown(e *Engine, args ...Arguments)
func LoadBrillouinArgs ¶
func LoadBrillouinArgs(e *Engine, args ...Arguments)
func LoadBrillouinKappaArgs ¶
func LoadBrillouinKappaArgs(e *Engine, args ...Arguments)
func LoadCeDrudeArgs ¶
func LoadCeDrudeArgs(e *Engine, args ...Arguments)
func LoadDFArgs ¶
func LoadDFArgs(e *Engine, args ...Arguments)
func LoadDebyeCpArgs ¶
func LoadDebyeCpArgs(e *Engine, args ...Arguments)
func LoadEFArgs ¶
func LoadEFArgs(e *Engine, args ...Arguments)
func LoadEnergy ¶
func LoadEnergy(e *Engine)
func LoadEnergyTerm ¶
func LoadFullMagnetization ¶
func LoadFullMagnetization(e *Engine)
func LoadGammaLL ¶
func LoadGammaLL(e *Engine)
func LoadKappa ¶
func LoadKappa(e *Engine, name string)
Loads the "Q" quantity if it is not already present.
func LoadLLBarLocal00NCArgs ¶
func LoadLLBarLocal00NCArgs(e *Engine, args ...Arguments)
func LoadLLBarLocal02C ¶
func LoadLLBarLocal02C(e *Engine)
func LoadLLBarLocal02NCArgs ¶
func LoadLLBarLocal02NCArgs(e *Engine, args ...Arguments)
func LoadLLBarNonlocal00NC ¶
func LoadLLBarNonlocal00NC(e *Engine)
func LoadLLBarTorque ¶
func LoadLLBarTorque(e *Engine)
func LoadLongFieldArgs ¶
func LoadLongFieldArgs(e *Engine, args ...Arguments)
func LoadMFAParams ¶
func LoadMFAParams(e *Engine)
Loads the "Q" quantity if it is not already present.
func LoadMMEFArgs ¶
func LoadMMEFArgs(e *Engine, args ...Arguments)
func LoadMaxTorqueArgs ¶
func LoadMaxTorqueArgs(e *Engine, args ...Arguments)
func LoadQ ¶
func LoadQ(e *Engine, name string)
Loads the "Q" quantity if it is not already present.
func LoadQEspat ¶
func LoadQEspat(e *Engine)
func LoadQLspat ¶
func LoadQLspat(e *Engine)
func LoadQSspat ¶
func LoadQSspat(e *Engine)
func LoadQinter ¶
func LoadTemp ¶
func LoadTemp(e *Engine, name string)
Load the temperature for 1TM model and other dependencies
func LoadTempSum ¶
func LoadTempSum(e *Engine)
func LoadTsArgs ¶
func LoadTsArgs(e *Engine, args ...Arguments)
func LoadZeeman ¶
func LoadZeeman(e *Engine)
func MatrixSymmetry ¶
Detects matrix symmetry. returns NOSYMMETRY, SYMMETRIC, ANTISYMMETRIC
func NewAnizBrownUpdater ¶
func NewAnizBrownUpdater(htherm, therm_seed, cutoff_dt, T, mu, msat0T0 *Quant) Updater
func NewEnergyUpdater ¶
func NewEnergyUpdater(result, w, m, H, msat *Quant, weight float64) Updater
Types ¶
type AnizBrownUpdater ¶
type AnizBrownUpdater struct { T *Quant // contains filtered or unexported fields }
Updates the thermal field
type BFieldUpdater ¶
type BFieldUpdater struct { }
Updates the E field in a single convolution taking into account all possible sources.
func (*BFieldUpdater) Update ¶
func (u *BFieldUpdater) Update()
type BrillouinUpdater ¶
type BrillouinUpdater struct {
T, Tc, J *Quant
// contains filtered or unexported fields
}
func (*BrillouinUpdater) Update ¶
func (u *BrillouinUpdater) Update()
type CeDrudeUpdater ¶
type CeDrudeUpdater struct {
Ce, T *Quant
// contains filtered or unexported fields
}
func (*CeDrudeUpdater) Update ¶
func (u *CeDrudeUpdater) Update()
type CpDebyeUpdater ¶
type CpDebyeUpdater struct {
Cp, T, Td *Quant
// contains filtered or unexported fields
}
func (*CpDebyeUpdater) Update ¶
func (u *CpDebyeUpdater) Update()
type DFUpdater ¶
type DFUpdater struct { Qmagn *Quant Heff *Quant R *Quant // contains filtered or unexported fields }
type EFUpdater ¶
type EFUpdater struct { J *Quant Tc *Quant R *Quant // contains filtered or unexported fields }
type EnergyUpdater ¶
type EnergyUpdater struct { *SumReduceUpdater H *Quant // contains filtered or unexported fields }
func (*EnergyUpdater) Update ¶
func (u *EnergyUpdater) Update()
type LLBarLocal00NCUpdater ¶
type LLBarLocal00NCUpdater struct { H *Quant // contains filtered or unexported fields }
func (*LLBarLocal00NCUpdater) Update ¶
func (u *LLBarLocal00NCUpdater) Update()
type LLBarLocal02CUpdater ¶
type LLBarLocal02CUpdater struct {
// contains filtered or unexported fields
}
func (*LLBarLocal02CUpdater) Update ¶
func (u *LLBarLocal02CUpdater) Update()
type LLBarLocal02NCUpdater ¶
type LLBarLocal02NCUpdater struct { H *Quant // contains filtered or unexported fields }
func (*LLBarLocal02NCUpdater) Update ¶
func (u *LLBarLocal02NCUpdater) Update()
type LLBarNonlocal00NCUpdater ¶
type LLBarNonlocal00NCUpdater struct {
// contains filtered or unexported fields
}
func (*LLBarNonlocal00NCUpdater) Update ¶
func (u *LLBarNonlocal00NCUpdater) Update()
type LLBarTorqueUpdater ¶
type LLBarTorqueUpdater struct {
// contains filtered or unexported fields
}
func (*LLBarTorqueUpdater) Update ¶
func (u *LLBarTorqueUpdater) Update()
type LongFieldUpdater ¶
type LongFieldUpdater struct {
J, Hlf, Tc, T *Quant
// contains filtered or unexported fields
}
func (*LongFieldUpdater) Update ¶
func (u *LongFieldUpdater) Update()
type MMEFUpdater ¶
type MMEFUpdater struct { Qmm *Quant R *Quant // contains filtered or unexported fields }
func (*MMEFUpdater) Update ¶
func (u *MMEFUpdater) Update()
type MaxwellPlan ¶
Full Maxwell Electromagnetic field solver. TODO: magnetic charge gives H, not B, need M
func (*MaxwellPlan) EnableDemag ¶
func (plan *MaxwellPlan) EnableDemag(m, msat0T0 *Quant)
Enable Demagnetizing field
func (*MaxwellPlan) ForwardFFT ¶
func (plan *MaxwellPlan) ForwardFFT(in *gpu.Array)
INTERNAL
Sparse transform all 3 components. (FFTPlan knows about zero padding etc)
func (*MaxwellPlan) Free ¶
func (plan *MaxwellPlan) Free()
func (*MaxwellPlan) InverseFFT ¶
func (plan *MaxwellPlan) InverseFFT(out *gpu.Array)
INTERNAL
Sparse backtransform (FFTPlan knows about zero padding etc)
func (*MaxwellPlan) LoadKernel ¶
func (plan *MaxwellPlan) LoadKernel(kernel *host.Array, matsymm int, realness int)
// Loads a sub-kernel at position pos in the 3x3 global kernel matrix. // The symmetry and real/imaginary/complex properties are taken into account to reduce storage.
func (*MaxwellPlan) UpdateB ¶
func (plan *MaxwellPlan) UpdateB()
Calculate the magnetic field plan.B
type NormUpdater ¶
type NormUpdater struct {
// contains filtered or unexported fields
}
func (*NormUpdater) Update ¶
func (u *NormUpdater) Update()
type QinterUpdater ¶
type QinterUpdater struct {
Qinter, Ti, Tj, Gij *Quant
}
func (*QinterUpdater) Update ¶
func (u *QinterUpdater) Update()
type QspatUpdater ¶
type QspatUpdater struct {
Qspat, T *Quant
// contains filtered or unexported fields
}
func (*QspatUpdater) Update ¶
func (u *QspatUpdater) Update()
type TSumUpdater ¶
type TSumUpdater struct {
T, Te, Tl, R *Quant
// contains filtered or unexported fields
}
func (*TSumUpdater) Update ¶
func (u *TSumUpdater) Update()
type TsUpdater ¶
type TsUpdater struct {
Ts, Tc, J *Quant
// contains filtered or unexported fields
}
type UniaxialAnisUpdater ¶
type UniaxialAnisUpdater struct {
// contains filtered or unexported fields
}
func (*UniaxialAnisUpdater) Update ¶
func (u *UniaxialAnisUpdater) Update()
Source Files ¶
- Qinter.go
- Qspat.go
- TM.go
- Temp.go
- gamma_LL.go
- heat-flow.go
- hfield.go
- kappa.go
- kernel_magnetostatic.go
- magnetization-full.go
- maxwell_convolution.go
- mfa_params.go
- mod_ETM.go
- mod_LTM.go
- mod_STM.go
- mod_Ts.go
- mod_brillouin.go
- mod_brown.go
- mod_ce.go
- mod_cp.go
- mod_demag.go
- mod_el_coupling.go
- mod_energy-density-dissipation-rate.go
- mod_energy.go
- mod_es_coupling.go
- mod_exchange6.go
- mod_kappa.go
- mod_llbar-local00nc.go
- mod_llbar-local02c.go
- mod_llbar-local02nc.go
- mod_llbar-nonlocal00nc.go
- mod_llbar-torque.go
- mod_llbar.go
- mod_long_field.go
- mod_maxtorque.go
- mod_micromagnetic-energy-flow.go
- mod_molecular-energy-density-rate.go
- mod_normalize.go
- mod_qe_spatial.go
- mod_ql_spatial.go
- mod_qs_spatial.go
- mod_sl_coupling.go
- mod_temperature_sum.go
- mod_uniaxialanisotropy.go
- mod_zeeman.go
- vector.go