Magnetics

Magnetics#

UML diagram of Altermagnet, Antiferromagnet, BoundaryTraction, CuBoundaryTraction, CuDmiTensor, DmiTensor, Ferromagnet, HostMagnet, Magnet, Minimizer, MumaxWorld, NcAfm.

@startuml
!theme vibrant
package Legend {
  class Class
  class Visibility {
    +public field
    +public method()
    -private field
    -private method()
  }
  Class -[hidden]-> Extension
  Visibility <|-- Extension : Extension
  Visibility o-- Aggregation : Aggregation
  Visibility --> Dependency : Dependency
  Visibility ..> WeakDependency : Weak dependency
}
class "Minimizer" as C_0008093513517733324021
class C_0008093513517733324021 {
-addMagDiff(real) : void
-converged() const : bool
+exec() : void
-step() : void
__
-lastMagDiffs_ : std::deque<real>
-m0 : std::vector<Field>
-m1 : std::vector<Field>
-magnets_ : std::vector<const Ferromagnet *>
-nMagDiffSamples_ : int
-nsteps_ : int
-stepsizes_ : std::vector<real>
-stopMaxMagDiff_ : real
-t0 : std::vector<Field>
-t1 : std::vector<Field>
-torques_ : std::vector<FM_FieldQuantity>
}
class "MumaxWorld" as C_0016179571750721185330
class C_0016179571750721185330 {
+addAltermagnet(Grid grid, GpuBuffer<bool> geometry, GpuBuffer<unsigned int> regions, std::string name = "") : Altermagnet *
+addAntiferromagnet(Grid grid, GpuBuffer<bool> geometry, GpuBuffer<unsigned int> regions, std::string name = "") : Antiferromagnet *
+addFerromagnet(Grid grid, GpuBuffer<bool> geometry, GpuBuffer<unsigned int> regions, std::string name = "") : Ferromagnet *
+addMagnetTempl<T>(std::map<std::string,std::unique_ptr<T>> & container, Grid grid, GpuBuffer<bool> geometry, GpuBuffer<unsigned int> regions, std::string name, const std::string & prefix) : T *
+addNcAfm(Grid grid, GpuBuffer<bool> geometry, GpuBuffer<unsigned int> regions, std::string name = "") : NcAfm *
+altermagnets() const : const std::map<std::string,Altermagnet *>
+antiferromagnets() const : const std::map<std::string,Antiferromagnet *>
+boundingGrid() const : Grid
+checkAddibility(Grid grid, std::string name) const : void
+checkAllMagnetsInMastergrid() const : void
+ferromagnets() const : const std::map<std::string,Ferromagnet *>
+getAltermagnet(std::string name) const : Altermagnet *
+getAntiferromagnet(std::string name) const : Antiferromagnet *
+getFerromagnet(std::string name) const : Ferromagnet *
+getMagnet(std::string name) const : Magnet *
+getMagnetPointers<T,MapT>(const MapT & container) const : std::map<std::string, T>
+getMagnetTempl<MapT>(const MapT & container, const std::string & name) const : decltype(container.begin()->second.get())
+getNcAfm(std::string name) const : NcAfm *
+handleNewStrayfield(Magnet * newMagnet) : void
+magnets() const : const std::map<std::string,Magnet *>
+minimize(real tol = 1e-6, int nSamples = 10) : void
+ncafms() const : const std::map<std::string,NcAfm *>
+recalculateStrayFields() : void
+relax(real tol) : void
+resetTimeSolverEquations(FM_Field torque = torqueQuantity) const : void
+setMastergrid(const Grid mastergrid) : void
+setPBC(const Grid mastergrid, const int3 pbcRepetitions) : void
+setPBC(const int3 pbcRepetitions) : void
+setPbcRepetitions(const int3 pbcRepetitions) : void
+unsetPBC() : void
__
+RelaxTorqueThreshold : real
-altermagnets_ : std::map<std::string,std::unique_ptr<Altermagnet>>
-antiferromagnets_ : std::map<std::string,std::unique_ptr<Antiferromagnet>>
+biasMagneticField : real3
-ferromagnets_ : std::map<std::string,std::unique_ptr<Ferromagnet>>
-hostmagnets_ : std::map<std::string,HostMagnet *>
-magnets_ : std::map<std::string,Magnet *>
-ncafms_ : std::map<std::string,std::unique_ptr<NcAfm>>
}
class "DmiTensor" as C_0004656650194850054816
class C_0004656650194850054816 {
+assuredZero() const : bool
+cu() const : CuDmiTensor
__
+xxy : Parameter
+xxz : Parameter
+xyz : Parameter
+yxy : Parameter
+yxz : Parameter
+yyz : Parameter
+zxy : Parameter
+zxz : Parameter
+zyz : Parameter
}
class "CuDmiTensor" as C_0013668556689540008513
class C_0013668556689540008513 {
__
+xxy : CuParameter
+xxz : CuParameter
+xyz : CuParameter
+yxy : CuParameter
+yxz : CuParameter
+yyz : CuParameter
+zxy : CuParameter
+zxz : CuParameter
+zyz : CuParameter
}
class "BoundaryTraction" as C_0006011030370442785102
class C_0006011030370442785102 {
+assuredZero() const : bool
+cu() const : CuBoundaryTraction
__
+negXside : VectorParameter
+negYside : VectorParameter
+negZside : VectorParameter
+posXside : VectorParameter
+posYside : VectorParameter
+posZside : VectorParameter
}
class "CuBoundaryTraction" as C_0005494726350955164753
class C_0005494726350955164753 {
+getSide(int orientation, int sense) const : const CuVectorParameter &
__
+negXside : CuVectorParameter
+negYside : CuVectorParameter
+negZside : CuVectorParameter
+posXside : CuVectorParameter
+posYside : CuVectorParameter
+posZside : CuVectorParameter
}
class "Magnet" as C_0003275239944218480396
class C_0003275239944218480396 {
+operator=(const Magnet &) = deleted : Magnet &
+operator=(Magnet && other) noexcept : Magnet &
..
+addStrayField(const Magnet *, StrayFieldExecutor::Method method = StrayFieldExecutor::METHOD_AUTO) : void
+asAFM() const : const Antiferromagnet *
+asATM() const : const Altermagnet *
+asFM() const : const Ferromagnet *
+asHost() const : const HostMagnet *
+asNcAfm() const : const NcAfm *
+cellsize() const : real3
+elasticDisplacement() const : const Variable *
+elasticVelocity() const : const Variable *
+enableElastodynamics() const : bool
+getGeometry() const : const GpuBuffer<bool> &
+getStrayField(const Magnet *) const : const StrayField *
+getStrayFields() const : std::vector<const StrayField *>
+grid() const : Grid
+mumaxWorld() const : const MumaxWorld *
+name() const : std::string
+removeStrayField(const Magnet *) : void
+setEnableElastodynamics(bool) : void
+system() const : std::shared_ptr<const System>
+world() const : const World *
__
+C11 : Parameter
+C12 : Parameter
+C44 : Parameter
+boundaryTraction : BoundaryTraction
-elasticDisplacement_ : std::unique_ptr<Variable>
-elasticVelocity_ : std::unique_ptr<Variable>
+enableAsStrayFieldDestination : bool
+enableAsStrayFieldSource : bool
-enableElastodynamics_ : bool
+eta : Parameter
+eta11 : Parameter
+eta12 : Parameter
+eta44 : Parameter
+externalBodyForce : VectorParameter
-name_ : std::string
+rho : Parameter
+rigidNormStrain : VectorParameter
+rigidShearStrain : VectorParameter
+stiffnessDamping : Parameter
-strayFields_ : std::map<const Magnet *,StrayField *>
-system_ : std::shared_ptr<System>
}
class "Ferromagnet" as C_0014126231922832319520
class C_0014126231922832319520 {
+getThermalSeed() const : int
+hostMagnet() const : const HostMagnet *
+isSublattice() const : bool
+magnetization() const : const Variable *
+minimize(real tol = 1e-6, int nSamples = 10) : void
+relax(real tol) : void
+resetNoiseGenerator() : void
+setThermalSeed(int value) : void
__
+B1 : Parameter
+B2 : Parameter
+Lambda : Parameter
+RelaxTorqueThreshold : real
+aex : Parameter
+alpha : Parameter
+amrRatio : Parameter
+anisC1 : VectorParameter
+anisC2 : VectorParameter
+anisU : VectorParameter
+appliedPotential : Parameter
+biasMagneticField : VectorParameter
+conductivity : Parameter
+dmiTensor : DmiTensor
+enableDemag : bool
+enableOpenBC : bool
+enableSlonczewskiTorque : bool
+enableZhangLiTorque : bool
+epsilonPrime : Parameter
+fixedLayer : VectorParameter
+fixedLayerOnTop : bool
+freeLayerThickness : Parameter
+frozenSpins : Parameter
+gamma : Parameter
-hostMagnet_ : HostMagnet *
+interExch : InterParameter
+jcur : VectorParameter
+kc1 : Parameter
+kc2 : Parameter
+kc3 : Parameter
+ku1 : Parameter
+ku2 : Parameter
-magnetization_ : NormalizedVariable
+msat : Parameter
+poissonSystem : PoissonSystem
+pol : Parameter
+randomGenerator : curandGenerator_t
+scaleExch : InterParameter
+temperature : Parameter
+thermalSeed : int
+xi : Parameter
}
class "HostMagnet" as C_0007732802595508485477
class C_0007732802595508485477 {
+addSublattice(const Ferromagnet * sub) : void
+getOtherSublattices(const Ferromagnet *) const : std::vector<const Ferromagnet *>
+getSublatticeIndex(const Ferromagnet *) const : int
+sublattices() const : std::vector<const Ferromagnet *>
__
+afmex_cell : Parameter
+afmex_nn : Parameter
+dmiTensor : DmiTensor
+dmiVector : VectorParameter
+interAfmExchNN : InterParameter
+latcon : Parameter
+scaleAfmExchNN : InterParameter
-sublattices_ : std::vector<const Ferromagnet *>
}
class "Altermagnet" as C_0014853714476038189127
class C_0014853714476038189127 {
+minimize(real tol = 1e-6, int nSamples = 20) : void
+relax(real tol) : void
+sub1() const : const Ferromagnet *
+sub2() const : const Ferromagnet *
__
+alterex_1 : Parameter
+alterex_2 : Parameter
+alterex_angle : Parameter
+interAlterex_1 : InterParameter
+interAlterex_2 : InterParameter
+scaleAlterex_1 : InterParameter
+scaleAlterex_2 : InterParameter
-sub1_ : Ferromagnet
-sub2_ : Ferromagnet
}
class "Antiferromagnet" as C_0016226320639562968932
class C_0016226320639562968932 {
+minimize(real tol = 1e-6, int nSamples = 20) : void
+relax(real tol) : void
+sub1() const : const Ferromagnet *
+sub2() const : const Ferromagnet *
__
-sub1_ : Ferromagnet
-sub2_ : Ferromagnet
}
class "NcAfm" as C_0003465611192535094070
class C_0003465611192535094070 {
+minimize(real tol = 1e-6, int nsamples = 30) : void
+relax(real tol) : void
+sub1() const : const Ferromagnet *
+sub2() const : const Ferromagnet *
+sub3() const : const Ferromagnet *
__
-sub1_ : Ferromagnet
-sub2_ : Ferromagnet
-sub3_ : Ferromagnet
}
C_0008093513517733324021 ..> C_0007732802595508485477
C_0008093513517733324021 ..> C_0016179571750721185330
C_0008093513517733324021 --> C_0014126231922832319520 : -magnets_
C_0008093513517733324021 o-- C_0014126231922832319520 : -torques_
C_0016179571750721185330 --> C_0003275239944218480396 : -magnets_
C_0016179571750721185330 --> C_0007732802595508485477 : -hostmagnets_
C_0016179571750721185330 o-- C_0014126231922832319520 : -ferromagnets_
C_0016179571750721185330 o-- C_0016226320639562968932 : -antiferromagnets_
C_0016179571750721185330 o-- C_0014853714476038189127 : -altermagnets_
C_0016179571750721185330 o-- C_0003465611192535094070 : -ncafms_
C_0004656650194850054816 ..> C_0013668556689540008513
C_0006011030370442785102 ..> C_0005494726350955164753
C_0003275239944218480396 ..> C_0014126231922832319520
C_0003275239944218480396 ..> C_0007732802595508485477
C_0003275239944218480396 ..> C_0016226320639562968932
C_0003275239944218480396 ..> C_0014853714476038189127
C_0003275239944218480396 ..> C_0003465611192535094070
C_0003275239944218480396 --> C_0003275239944218480396 : -strayFields_
C_0003275239944218480396 o-- C_0006011030370442785102 : +boundaryTraction
C_0003275239944218480396 <.. C_0016179571750721185330 : +<<friend>>
C_0014126231922832319520 ..> C_0016179571750721185330
C_0014126231922832319520 --> C_0007732802595508485477 : -hostMagnet_
C_0014126231922832319520 o-- C_0004656650194850054816 : +dmiTensor
C_0003275239944218480396 <|-- C_0014126231922832319520
C_0007732802595508485477 o-- C_0004656650194850054816 : +dmiTensor
C_0007732802595508485477 --> C_0014126231922832319520 : -sublattices_
C_0003275239944218480396 <|-- C_0007732802595508485477
C_0014853714476038189127 ..> C_0016179571750721185330
C_0014853714476038189127 o-- C_0014126231922832319520 : -sub1_
C_0014853714476038189127 o-- C_0014126231922832319520 : -sub2_
C_0007732802595508485477 <|-- C_0014853714476038189127
C_0016226320639562968932 ..> C_0016179571750721185330
C_0016226320639562968932 o-- C_0014126231922832319520 : -sub1_
C_0016226320639562968932 o-- C_0014126231922832319520 : -sub2_
C_0007732802595508485477 <|-- C_0016226320639562968932
C_0003465611192535094070 ..> C_0016179571750721185330
C_0003465611192535094070 o-- C_0014126231922832319520 : -sub1_
C_0003465611192535094070 o-- C_0014126231922832319520 : -sub2_
C_0003465611192535094070 o-- C_0014126231922832319520 : -sub3_
C_0007732802595508485477 <|-- C_0003465611192535094070
C_0016226320639562968932 -[hidden]down- C_0007732802595508485477
C_0016226320639562968932 -[hidden]right- C_0003465611192535094070
C_0003465611192535094070 -[hidden]right- C_0014853714476038189127

'Generated with clang-uml, version 0.6.2
'LLVM version clang version 19.1.7 (https://github.com/conda-forge/clangdev-feedstock 3c5e7de432e909e225d8040e72a44724afb0c446)
@enduml