Skip to content

Commit

Permalink
Use NewVectorParam
Browse files Browse the repository at this point in the history
  • Loading branch information
barnex committed Feb 8, 2016
1 parent 5d97943 commit c093f75
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 8 deletions.
12 changes: 6 additions & 6 deletions engine/anisotropy.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,19 @@ var (
Kc2 = NewScalarParam("Kc2", "J/m3", "2nd order cubic anisotropy constant", []derived{&kc2_red})
Kc3 = NewScalarParam("Kc3", "J/m3", "3rd order cubic anisotropy constant", []derived{&kc3_red})

AnisU, AnisC1, AnisC2 VectorParam // unixial and cubic anis axes
ku1_red, ku2_red derivedParam // K1 / Msat
kc1_red, kc2_red, kc3_red derivedParam
AnisU = NewVectorParam("anisU", "", "Uniaxial anisotropy direction")
AnisC1 = NewVectorParam("anisC1", "", "Cubic anisotropy direction #1")
AnisC2 = NewVectorParam("anisC2", "", "Cubic anisotorpy directon #2")

B_anis = NewVectorField("B_anis", "T", "Anisotropy filed", AddAnisotropyField)
Edens_anis = NewScalarField("Edens_anis", "J/m3", "Anisotropy energy density", AddAnisotropyEnergyDensity)
E_anis = NewScalarValue("E_anis", "J", "total anisotropy energy", GetAnisotropyEnergy)
ku1_red, ku2_red derivedParam // K1 / Msat
kc1_red, kc2_red, kc3_red derivedParam
zero param // utility zero parameter
)

func init() {
AnisU.init("anisU", "", "Uniaxial anisotropy direction")
AnisC1.init("anisC1", "", "Cubic anisotropy direction #1")
AnisC2.init("anisC2", "", "Cubic anisotorpy directon #2")
registerEnergy(GetAnisotropyEnergy, AddAnisotropyEnergyDensity)
zero.init(1, "_zero", "", nil)

Expand Down
2 changes: 2 additions & 0 deletions engine/engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ value: space-independent
param: region-dependent parameter (always input)
field: fully space-dependent field
TODO: godoc everything
*/
package engine

Expand Down
8 changes: 8 additions & 0 deletions engine/parameter.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@ func (p *ScalarParam) init(name, unit, desc string, children []derived) {
DeclLValue(name, p, cat(desc, unit))
}

// TODO: auto derived
func NewScalarParam(name, unit, desc string, children []derived) *ScalarParam {
p := new(ScalarParam)
p.param.init(SCALAR, name, unit, children)
Expand Down Expand Up @@ -264,6 +265,13 @@ type VectorParam struct {
param
}

func NewVectorParam(name, unit, desc string) *VectorParam {
p := new(VectorParam)
p.param.init(VECTOR, name, unit, nil)
DeclLValue(name, p, cat(desc, unit))
return p
}

func (p *VectorParam) init(name, unit, desc string) {
p.param.init(VECTOR, name, unit, nil) // no vec param has children (yet)
if !strings.HasPrefix(name, "_") { // don't export names beginning with "_" (e.g. from exciation)
Expand Down
3 changes: 1 addition & 2 deletions engine/torque.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ var (
EpsilonPrime = NewScalarParam("EpsilonPrime", "", "Slonczewski secondairy STT term ε'", nil)
FrozenSpins = NewScalarParam("frozenspins", "", "Defines spins that should be fixed", nil) // 1 - frozen, 0 - free. TODO: check if it only contains 0/1 values

FixedLayer VectorParam
FixedLayer = NewVectorParam("FixedLayer", "", "Slonczewski fixed layer polarization")
Torque = NewVectorField("torque", "T", "Total torque/γ0", SetTorque)
LLTorque = NewVectorField("LLtorque", "T", "Landau-Lifshitz torque/γ0", SetLLTorque)
STTorque = NewVectorField("STTorque", "T", "Spin-transfer torque/γ0", AddSTTorque)
Expand All @@ -30,7 +30,6 @@ func init() {
Pol.setUniform([]float64{1}) // default spin polarization
J.init("J", "A/m2", "Electrical current density")
Lambda.Set(1) // sensible default value (?). TODO: should not be zero
FixedLayer.init("FixedLayer", "", "Slonczewski fixed layer polarization")
DeclVar("GammaLL", &GammaLL, "Gyromagnetic ratio in rad/Ts")
DeclVar("DisableZhangLiTorque", &DisableZhangLiTorque, "Disables Zhang-Li torque (default=false)")
DeclVar("DisableSlonczewskiTorque", &DisableSlonczewskiTorque, "Disables Slonczewski torque (default=false)")
Expand Down

0 comments on commit c093f75

Please sign in to comment.