# Node UniformRotatingNode Defined in `mime.nodes.actuation._uniform_field.UniformRotatingNode`. Algorithm `MIME-NODE-116`. A uniform magnetic field turning right-handed about a fixed axis at a commanded frequency and amplitude: the same at every point, with a zero gradient. ## Governing equations $$ \mathbf{B} = \frac{B_{0}}{\left\| \mathbf{d} - (\mathbf{d} \cdot \mathbf{a}) \mathbf{a} \right\|} \left( \cos(2 \pi f n h) \left( \mathbf{d} - (\mathbf{d} \cdot \mathbf{a}) \mathbf{a} \right) + \sin(2 \pi f n h) \, \mathbf{a} \times \mathbf{d} \right), \quad G = 0 $$ ## 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 - The field is uniform: it is the same at every point of every reader slot, and its gradient is zero - The rotation axis in the equation is a unit vector: the node normalises `rotation_axis` before it reads it - Time is the step count times the timestep, so the field's phase is exact however long the run and is not a sum of timesteps - The frequency and amplitude commanded at a step are the ones that step's field is made with: the phase is the present frequency times the time since the start, not the integral of a frequency that changes ## Limitations none declared ## Declared regimes (not evidenced here) none declared ## References none declared ## Symbols | Symbol | Kind | Name | Units | Implemented by | |---|---|---|---|---| | $\mathbf{B}$ | state | `flux_density_{slot}` | T | `mime.nodes.actuation._uniform_field.UniformRotatingNode.advance` | | $G$ | state | `gradient_{slot}` | T/m | `mime.nodes.actuation._uniform_field.UniformRotatingNode.advance` | | $B_{0}$ | input | `amplitude` | T | `mime.nodes.actuation._uniform_field.UniformRotatingNode.advance` | | $f$ | input | `frequency` | Hz | `mime.nodes.actuation._uniform_field.UniformRotatingNode.advance` | | $\mathbf{a}$ | parameter | `rotation_axis` | 1 | `mime.nodes.actuation._uniform_field.UniformRotatingNode.field_at` | | $\mathbf{d}$ | parameter | `initial_direction` | 1 | `mime.nodes.actuation._uniform_field.UniformRotatingNode.field_at` | | $n$ | state | `steps` | 1 (units declared, not checked) | `mime.nodes.actuation._uniform_field.UniformRotatingNode.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 - [`uniform_rotating`](../entries/field_provider/uniform_rotating.md) 0.1.0