How to correctly enforce conditions on derivatives at interface?

Hi all,

As the title suggests, I was wondering if anyone knows the correct way to enforce conditions on the derivatives at an interface?

Currently I am enforcing

\frac{1}{\mu_1}\frac{1}{r}\frac{d(rA_1)}{dr} = \frac{1}{\mu_0}\frac{1}{r}\frac{d(rA_2)}{dr} \qquad \text{ on } \Gamma_{left \ interior} \\

as

dAdx = (x[0] * A).dx(0) / x[0]
dvdx = (x[0] * v).dx(0) / x[0]

a += inner(1 / mu1 * dAdx('+'), v('+')) * interfaces(left_interface)\
a += inner(1 / mu0 * dAdx('-'), v('+')) * interfaces(left_interface)

and

\frac{1}{\mu_0}\frac{1}{r}\left(\frac{d(rA_2)}{dr} -\frac{d(rA_3)}{dr}\right) = I \qquad \text{ on } \Gamma_{right\ interior}

as

a += inner(1 / mu0 * dAdx('+'), v('+')) * interfaces(right_interface)\
a += inner(1 / mu0 * dAdx('-'), v('+')) * interfaces(right_interface)

L += inner(fem.Constant(domain, ScalarType(I)),  v('+')) * interfaces(right_interface)

Is this the right way to do this?

A full description of the problem and a mwe can be found here. Apologies for the cross posting, I thought simplifying the question might make it easier for someone to answer.

Many thanks in advance,
Katie