
On 06/04/2012 04:48 PM, steve wrote:
Thanks Robert,
Or DiffusionTerm (LaplaceTerm is just a very simple subclass of that). The
name could be DiffusionCylindricalTerm (dw_diffusion_cyl ?) so that it stays next to the original term in the term table. Anyway, it would be great if you could give it a shot. Here are some comments:
- Do you already have the equations written in the weak form? If not, start with that, I would like to see them. Maybe more than one term would be needed/better.
Well... the equations are embarrassingly simple, but as I'm completely new to the FEM I've zero experience converting to weak form, but I'll give it a go. For the electrostatics part it's just Laplace's equation in the interior with Dirichlet BCs on the domain boundary. For the electrostatics then it's just:
\nabla^2 u = 0
subject to u(r)=v(r) on the boundary. u is the scaler potential and v(r) is just it's value on the boundary of the cavity.
Which I guess in weak form would look like:
\int_\Omega \vec{\nabla} u \cdot \vec{\nabla} s \, dV + \int_\Gamma s v(\Gamma) d\Gamma = 0 ;\, \forall s
The acoustics problem is an eigenvalue problem (looking for normal modes) in a cylindrically symmetric enclosure, so it's more like:
\nabla^2 u + k^2 u = 0
subject to \hat{n}\cdot \vec{\nabla}u = 0, on the boundary. u in this case is the velocity potential and k is the wavenumber. So.. in my naive world the weak form of this one would be something like:
\int_\Omega \vec{\nabla} u \cdot \vec{\nabla} s \, dV + k^2 \int_\Omega s u dV + BT = 0 \forall s
Where "BT" is some kind of boundary term, that I haven't sorted out yet. Since it's a Neumann BC I'm not sure how it gets incorporated into the weak form statement.
Yes, those are simple and standard. But I meant the weak form of the equations in the cylindrical (and other) coordinates :). (With all those 1/r and other stuff.)
As far as C+Cython, I've used those before with numpy in other contexts, so that's not too scary, I'll see what I can do!
Cool, I am glad to hear that!
r.