|
Feellgood
|
#include <triangle.h>
Public Member Functions | |
| Tri (const std::vector< Nodes::Node > &_p_node, const int _idx, std::initializer_list< int > _i) | |
| void | interpolation (const std::function< Eigen::Vector3d(Nodes::Node)> &getter, Eigen::Ref< Eigen::Matrix< double, Nodes::DIM, NPI >> result) const |
| void | interpolation (const std::function< double(Nodes::Node)> &getter, Eigen::Ref< Eigen::Matrix< double, NPI, 1 >> result) const |
| void | integrales (Triangle::prm const ¶ms) |
| double | anisotropyEnergy (Triangle::prm const ¶m, const Eigen::Ref< const Eigen::Matrix< double, Nodes::DIM, NPI >> u) const |
| Eigen::Matrix< double, NPI, 1 > | charges (const double &dMs, const std::function< Eigen::Vector3d(const Nodes::Node &)> &getter) const override |
| void | correctionCharges (const std::function< Eigen::Vector3d(Nodes::Node)> &getter, Eigen::Matrix< double, Triangle::NPI, 1 > &localCharges, std::vector< double > &corr) const |
| double | demagEnergy (Eigen::Ref< Eigen::Matrix< double, Nodes::DIM, NPI >> u, const Eigen::Ref< const Eigen::Matrix< double, NPI, 1 >> phi) const |
| double | potential (const std::function< Eigen::Vector3d(Nodes::Node)> &getter, int i) const |
| bool | operator== (const Tri &f) const |
| Eigen::Vector3d | calc_norm (void) const |
| Eigen::Matrix< double, Nodes::DIM, NPI > | getPtGauss (void) const override |
| double | calc_surf (void) const |
Public Member Functions inherited from element< N, NPI > | |
| element (const std::vector< Nodes::Node > &_p_node, const int _idx, const std::initializer_list< int > &_i) | |
| constexpr int | getN (void) const |
| constexpr int | getNPI (void) const |
| void | buildMatP (Eigen::Ref< Eigen::Matrix< double, 2 *N, 3 *N >> P) |
| void | infos (void) const |
| bool | existNodes (void) const |
Public Attributes | |
| double | surf |
| double | dMs |
| Eigen::Vector3d | n |
Public Attributes inherited from element< N, NPI > | |
| std::array< int, N > | ind |
| int | idxPrm |
| Eigen::Matrix< double, NPI, 1 > | weight |
| Eigen::Matrix< double, 2 *N, 2 *N > | Kp |
| Eigen::Matrix< double, 2 *N, 1 > | Lp |
Private Member Functions | |
| void | orientate (void) override |
| Eigen::Vector3d | normal_vect () const |
Additional Inherited Members | |
Protected Member Functions inherited from element< N, NPI > | |
| const Nodes::Node & | getNode (const int i) const |
Tri is a class containing the index references to nodes, its surface and its normal unit vector, it has a triangular shape and should not be degenerated, orientation must be defined in adequation with the mesh
|
inline |
constructor used by readMesh
| [in] | _p_node | vector of nodes |
| [in] | _idx | region index in region vector |
| [in] | _i | node index |
| double Tri::anisotropyEnergy | ( | Triangle::prm const & | param, |
| const Eigen::Ref< const Eigen::Matrix< double, Nodes::DIM, NPI >> | u | ||
| ) | const |
anisotropy energy of the triangle
| [in] | param | |
| [in] | u |
|
inline |
computes the norm to the triangle, returns a unit vector
|
inline |
computes surface of the triangle
|
overridevirtual |
computes surface charges, return result on NPI
| [in] | dMs | |
| [in] | getter |
Implements element< N, NPI >.
| void Tri::correctionCharges | ( | const std::function< Eigen::Vector3d(Nodes::Node)> & | getter, |
| Eigen::Matrix< double, Triangle::NPI, 1 > & | localCharges, | ||
| std::vector< double > & | corr | ||
| ) | const |
computes correction on surface charges from localCharges input, result directly stored in corr
| [in] | getter | |
| [in] | localCharges | |
| corr | [in|out] |
| double Tri::demagEnergy | ( | Eigen::Ref< Eigen::Matrix< double, Nodes::DIM, NPI >> | u, |
| const Eigen::Ref< const Eigen::Matrix< double, NPI, 1 >> | phi | ||
| ) | const |
demagnetizing energy of the triangle
| [in] | u | |
| [in] | phi |
|
inlineoverridevirtual |
returns Gauss points
Implements element< N, NPI >.
| void Tri::integrales | ( | Triangle::prm const & | params | ) |
computes the integral contribution of the triangular triangle, the only contribution comes from Neel surface anisotropy
| [in] | params |
|
inline |
interpolation function on the output of the getter, mind the transposition: result = transpose(scalar_nod) * a
| [in] | getter | |
| [out] | result |
|
inline |
interpolation function on the output of the getter. result = vec_nod * a
| [in] | getter | |
| [out] | result |
|
inlineprivate |
return normal to the triangle, not normalized
|
inline |
Two triangles are equal if they have the same set of vertices, i.e. if their lists of node indices are the same to within a permutation. Warning: two equal triangles may have different orientations.
|
inlineoverrideprivatevirtual |
do nothing function: the orientation of the triangles does not change
Implements element< N, NPI >.
| double Tri::potential | ( | const std::function< Eigen::Vector3d(Nodes::Node)> & | getter, |
| int | i | ||
| ) | const |
computes correction on potential
| double Triangle::Tri::dMs |
difference (d for delta) of magnetization at the triangle between corresponding tetrahedrons
| Eigen::Vector3d Triangle::Tri::n |
normal vector (unit vector)
| double Triangle::Tri::surf |
surface of the element