Hi Giulio,
The current version of Dedalus only supports up to one Chebyshev dimension in a problem, and the Chebyshev basis is the only one for which boundary conditions can be explicitly specified, so this is why there’s only “left” and “right” and no further distinction for which dimension the BC is being applied to.
In the multidimensional case, the other dimensions must either be Fourier or Sin/Cos series, and the corresponding boundary conditions are those implicitly tied to each of those bases. That is, a Fourier representation is for fields that are periodic in a given direction, a sine series is used for fields with odd parity around the endpoints, and a cosine series is used for fields with an even parity around the endpoints.
So the Sin/Cos basis allows you to do multidimensional problems with boundaries, but only if the boundary conditions are equations match up so that each field has definite parity in the Sin/Cos dimensions. Typically, without rotation, things work out so that you can do stress-free boundary conditions in the Sin/Cos direction using this setup, but not no-slip. Doing no-slip all the way around generally requires multiple Chebyshev basis, which is currently under development.
For forcing, if you can analytically write your forcing function as a function of say (x, y, z, t), then you can just write it in on the RHS of the relevant equation, e.g. “LHS = cos(x-t)”. If it’s more complicated than that, yes it’s probably easiest to use the GeneralFunction operator (see link below), which lets you write an arbitrary function specifying the local data of your forcing term, using the local data grids (as you do for initial conditions) and solver.sim_time, if necessary. See:
https://bitbucket.org/dedalus-project/dedalus/src/5278f1abfe16f578963c4e9ca8ac04c395c3a1f7/dedalus/core/operators.py?at=default&fileviewer=file-view-default#operators.py-165
Hope that helps, and definitely keep e-mailing if anything is still unclear.
Best,
-Keaton
> --
> You received this message because you are subscribed to the Google Groups "Dedalus Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to
dedalus-user...@googlegroups.com.
> To post to this group, send email to
dedalu...@googlegroups.com.
> To view this discussion on the web visit
https://groups.google.com/d/msgid/dedalus-users/f6e2268b-73b3-449e-8561-68ae24a7889a%40googlegroups.com.
> For more options, visit
https://groups.google.com/d/optout.