|
Feellgood
|
#include <fmm_demag.h>
Public Member Functions | |
| fmm (Mesh::mesh &msh, std::vector< Tetra::prm > &prmTet, std::vector< Facette::prm > &prmFac, const int ScalfmmNbThreads) | |
| void | calc_demag (Mesh::mesh &msh) |
Public Attributes | |
| std::vector< double > | srcDen |
| std::vector< double > | corr |
| std::vector< Tetra::prm > | prmTetra |
| std::vector< Facette::prm > | prmFacette |
Private Member Functions | |
| template<class T , const int NPI> | |
| void | insertCharges (std::vector< T > const &container, FSize &idx, Eigen::Ref< Eigen::Vector3d > const c) |
| void | calc_charges (std::function< const Eigen::Vector3d(Nodes::Node)> getter, Mesh::mesh &msh) |
| void | demag (std::function< const Eigen::Vector3d(Nodes::Node)> getter, std::function< void(Nodes::Node &, const double)> setter, Mesh::mesh &msh) |
Private Attributes | |
| const int | NOD |
| OctreeClass | tree |
| KernelClass | kernels |
| double | norm |
to initialize a tree and a kernel for the computation of the demagnetizing field, and launch the computation easily with calc_demag public member
|
inline |
constructor, initialize memory for tree, kernel, sources corrections, initialize all sources
| [in] | msh | |
| [in] | prmTet | |
| [in] | prmFac | |
| [in] | ScalfmmNbThreads |
|
inlineprivate |
computes all charges from tetraedrons and facettes for the demag field to feed a tree in the fast multipole algo (scalfmm)
|
inline |
launch the calculation of the demag field with second order corrections
| [in] | msh |
|
inlineprivate |
computes the demag field, with (getter = u,setter = phi) or (getter = v,setter = phi_v)
|
inlineprivate |
function template to insert volume or surface charges in tree for demag computation. class T is Tet or Fac, it must have getPtGauss() method, second template parameter is NPI of the namespace containing class T
| std::vector<double> scal_fmm::fmm::corr |
corrections associated to the nodes, contributions only due to the facettes
|
private |
kernel initialized by constructor
|
private |
number of nodes
|
private |
normalization coefficient
| std::vector<Facette::prm> scal_fmm::fmm::prmFacette |
all surface region parameters for the facettes
| std::vector<Tetra::prm> scal_fmm::fmm::prmTetra |
all volume region parameters for the tetraedrons
| std::vector<double> scal_fmm::fmm::srcDen |
sources
|
private |
tree initialized by constructor