Boundary condition for specific l,m in shell basis

24 views
Skip to first unread message

Neil Lewis

unread,
Sep 26, 2025, 11:43:23 AM (9 days ago) Sep 26
to Dedalus Users
Hi All, 

I'd like to modify, e.g., Ben Brown's dynamo benchmark to run a magnetoconvection experiment with an imposed exterior field. Specifically, I'd like to implement something similar to this: https://www.sciencedirect.com/science/article/pii/S0012821X15001314#se0140 

In that paper, the authors replace the insulating boundary condition at l=1, m=0 with a condition that P_10 = B_0, where P_10 is the l=1 m=0 coefficient in the expansion of the poloidal field, and B_0 is a constant. This results in a field with a prescribed axial dipole component. 

For a problem defined in terms of the vector potential A, defined by B = curl(A) (as in Ben's code), I think the equivalent condition is to set A = (0,0,A_0 sin(theta)) for l=1, m=0. 

I presume there is a way to do this in dedalus? For example, I've encountered problems before that place conditions on specific 'ntheta', but unsure how to access the l's and m's. 

A brief response on 'how to apply a boundary condition to a specific (l,m)' would be greatly appreciated :) 

NB: This is related to this question: https://groups.google.com/g/dedalus-users/c/pTGSJG8pbi0/m/67xnxh-GBgAJ 

However, there, the poster says they want their alternate boundary condition on l=1, m=0, but as far as I can tell, they only check for whether l=1 (i.e., the modified condition is used for all m). 

Thanks, 

Neil 
Reply all
Reply to author
Forward
0 new messages