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