Strayfield

Strayfield#

UML diagram of StrayField, StrayFieldBruteExecutor, StrayFieldExecutor, StrayFieldFFTExecutor, StrayFieldKernel.

@startuml
!theme vibrant
package Legend {
  class Class
  abstract class Abstract
  class Visibility {
    +public method()
    -private field
    #protected field
    #protected method()
  }
  Class -[hidden]-> Extension
  Abstract -[hidden]-> Extension
  Visibility <|-- Extension : Extension
  Visibility o-- Aggregation : Aggregation
}
class "StrayFieldKernel" as C_0001623490752882864757
class C_0001623490752882864757 {
+cellsize() const : real3
+compute() : void
+eps() const : double
+field() const : const Field &
+grid() const : Grid
{static} +kernelGrid(Grid dst, Grid src) : Grid
+kernelSystem() const : std::shared_ptr<const System>
+mastergrid() const : Grid
+order() const : int
+pbcRepetitions() const : const int3
+switchingradius() const : double
__
-eps_ : double
-kernel_ : std::unique_ptr<Field>
-order_ : int
-switchingradius_ : double
}
abstract "StrayFieldExecutor" as C_0000104582657294107016
abstract C_0000104582657294107016 {
{static} +create(const Magnet * magnet, std::shared_ptr<const System> system, Method method, int order, double eps, double switchingradius) : std::unique_ptr<StrayFieldExecutor>
{abstract} +eps() const = 0 : double
{abstract} +exec() const = 0 : Field
{abstract} +kernel() const = 0 : const StrayFieldKernel &
{abstract} +method() const = 0 : Method
{abstract} +order() const = 0 : int
{abstract} +switchingradius() const = 0 : double
__
#magnet_ : const Magnet *
#system_ : const std::shared_ptr<const System>
}
class "StrayField" as C_0014686121907703580782
class C_0014686121907703580782 {
+assuredZero() const : bool
+eps() const : double
+eval() const : Field
+kernel() const : const StrayFieldKernel &
+ncomp() const : int
+order() const : int
+recreateStrayFieldExecutor() : void
+setEps(double) : void
+setMethod(StrayFieldExecutor::Method) : void
+setOrder(int) : void
+setSwitchingradius(double) : void
+source() const : const Magnet *
+switchingradius() const : double
+system() const : std::shared_ptr<const System>
+unit() const : std::string
__
-executor_ : std::unique_ptr<StrayFieldExecutor>
-magnet_ : const Magnet *
-system_ : std::shared_ptr<const System>
}
class "StrayFieldBruteExecutor" as C_0003034338260910125866
class C_0003034338260910125866 {
+eps() const : double
+exec() const : Field
+kernel() const : const StrayFieldKernel &
+method() const : Method
+order() const : int
+switchingradius() const : double
__
-kernel_ : StrayFieldKernel
}
class "StrayFieldFFTExecutor" as C_0011679934110741534773
class C_0011679934110741534773 {
+eps() const : double
+exec() const : Field
+kernel() const : const StrayFieldKernel &
+method() const : Method
+order() const : int
+switchingradius() const : double
__
-backwardPlan : cufftHandle
-fftSize : int3
-forwardPlan : cufftHandle
-hfft : std::vector<complex *>
-kernel_ : StrayFieldKernel
-kfft : std::vector<complex *>
-mfft : std::vector<complex *>
}
C_0000104582657294107016 ..> C_0001623490752882864757
C_0014686121907703580782 ..> C_0001623490752882864757
C_0014686121907703580782 o-- C_0000104582657294107016 : -executor_
C_0003034338260910125866 o-- C_0001623490752882864757 : -kernel_
C_0000104582657294107016 <|-- C_0003034338260910125866
C_0011679934110741534773 o-- C_0001623490752882864757 : -kernel_
C_0000104582657294107016 <|-- C_0011679934110741534773

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