# Node PointDipoleNode Defined in `mime.nodes.actuation._point_dipole.PointDipoleNode`. Algorithm `MIME-NODE-106`. A point magnetic dipole: the flux density and its gradient at each reader's point, from a magnet part's moment placed and turned by the frame it is mounted on. ## Governing equations $$ \mathbf{B} = \frac{\mu_{0}}{4 \pi} \, \frac{3 (\mathbf{m} \cdot \mathbf{r}) \, \mathbf{r} / r^{2} - \mathbf{m}}{r^{3}}, \quad G_{ij} = \frac{\partial B_{i}}{\partial x_{j}} = \frac{3 \mu_{0}}{4 \pi r^{5}} \left( (\mathbf{m} \cdot \mathbf{r}) \, \delta_{ij} + m_{i} r_{j} + r_{i} m_{j} - \frac{5 (\mathbf{m} \cdot \mathbf{r}) \, r_{i} r_{j}}{r^{2}} \right), \quad \mathbf{r} = \mathbf{x} - \mathbf{c}; \quad (\mathbf{c}, \mathbf{q}) = \mathbf{M}_{j} \circ \mathbf{O}, \quad \mathbf{m} = R(\mathbf{q}) \, \mathbf{p} $$ ## Discretisation none declared; a node whose order depends on its construction declares it with the `discretization_order()` hook, which is read from a built node. ## Assumptions - A point dipole: faithful only far from the magnet, against its radius (MIME-ANO-100) - A rigid, uniform magnetisation along the part's declared direction ## Limitations none declared ## Declared regimes (not evidenced here) none declared ## References [@Jackson1998] ## Symbols | Symbol | Kind | Name | Units | Implemented by | |---|---|---|---|---| | $\mathbf{B}$ | state | `flux_density_{slot}` | T | `mime.nodes.actuation._point_dipole.point_dipole` | | $G$ | state | `gradient_{slot}` | T/m | `mime.nodes.actuation._point_dipole.point_dipole` | | $\mu_{0}$ | constant | `mime.units.VACUUM_PERMEABILITY` | N A^-2 (units declared, not checked) | `mime.nodes.actuation._point_dipole.point_dipole` | | $\mathbf{x}$ | input | `points_{slot}` | m; 1 | `mime.nodes.actuation._point_dipole.PointDipoleNode.advance` | | $\mathbf{c}$ | state | `centre` | m (units declared, not checked) | `mime.nodes.actuation._point_dipole.PointDipoleNode.advance` | | $\mathbf{q}$ | state | `orientation` | 1 (units declared, not checked) | `mime.nodes.actuation._point_dipole.PointDipoleNode.advance` | | $\mathbf{M}$ | input | `mount_poses` | m; 1 | `mime.nodes.actuation._chain.MountedNode.base` | | $\mathbf{O}$ | parameter | `placement` | m; 1 | `mime.nodes.actuation._chain.MountedNode.base` | | $\mathbf{p}$ | parameter | `moment` | A m^2 | `mime.nodes.actuation._point_dipole.PointDipoleNode.advance` | A row marked *units declared, not checked* has the units its author wrote: the code declares none there, so the node walk cannot compare them with anything. ## Built by - [`point_dipole`](../entries/field_provider/point_dipole.md) 0.1.0