FESTIM
FESTIM copied to clipboard
Cylindrical and spherical versions of derived quantities
Following what was done in #689 we need an implementation of the cylindrical and spherical versions of
- [ ] TotalVolume
- [ ] TotalSurface
- [ ] AverageVolume #820
- [ ] AverageSurface #820
2D axisymmetric
In 2D axisymmetric, the surface element ds is
ds = r dr dtheta or ds = r dz dtheta
In both cases, in fenics integrating a function f is assemble(f * r * ds) where r is the radius.
dV = r dr dtheta dz
Integrating a function f in fenics is therefore assemble(f * r * dx) where r is the radius.
1D spherical
The surface element in 1D spherical is: dS_r = r^2 sin(theta) dtheta dphi The integral of f on a spherical surface is therefore integral(f dS_r) = integral(f r^2 sin(theta) dtheta dphi) = (phi2 - phi1) * (-cos(theta2) + cos(theta1)) * f r^2 The volume element is
dV = r^2 sin(theta) dr dtheta dphi the integral of f on a spherical volume is therefore
integral(f dV) = (phi2 - phi1) * (-cos(theta2) + cos(theta1)) * integral(f r^2 dr)
phi is the polar angle and theta is the azimuthal angle
This is going to be very useful, I'm planning to help soon
@gabriele-ferrero If you wanna do the TotalVolume and TotalSurface ones I can do the Average ones
@jhdark @gabriele-ferrero I "assigned" you to this issue. Let me know if you need help and if you want to have this in 1.3
I suppose, HydrogenFlux and ThermalFlux also require cylindrical/spherical versions.
@rekomodo is having a go at implementing the remaining classes