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#