Potential.h file
Potential operator for computing potential fields from kernels.
This file defines the Potential class, which computes potential fields generated by source distributions through convolution with a kernel function. This is fundamental for integral equation methods and boundary element methods.
Mathematical Foundation
Given a kernel and source distribution , the potential at point is:
Common Kernels
- Laplace kernel (2D):
- Laplace kernel (3D):
- Helmholtz kernel:
- Heat kernel:
Applications
- Boundary element method (BEM)
- Electrostatics: computing electric potential from charge distribution
- Fluid dynamics: velocity potential from vorticity
- Acoustics: sound field from source distribution
- Potential theory and harmonic functions
Usage Example
// Electric potential from charge distribution auto kernel = [](const Point& x, const Point& y) { Real r = (x - y).norm(); return 1.0 / (4 * M_PI * r); // Coulomb kernel }; auto phi = Potential(kernel, rho); // φ(x) = ∫ K(x,y)ρ(y) dy
Namespaces
- namespace Rodin
- The Rodin library for Shape and Topology Optimization.
- namespace Rodin::FormLanguage
- Module for writing high level abstract expressions.
- namespace Rodin::Variational
- Module which provides the necessary tools for constructing variational problems.
Classes
-
template<class LHS, class RHSDerived>struct Rodin::FormLanguage::Traits<Variational::Potential<LHS, Variational::FunctionBase<RHSDerived>>>
- Traits for Potential operator.
-
template<class LHS, class RHSDerived, class FES, Variational::struct Rodin::FormLanguage::Traits<Variational::Potential<LHS, Variational::ShapeFunctionBase<Variational::ShapeFunction<RHSDerived, FES, Space>>>>
ShapeFunctionSpaceType Space> - Traits for Potential.
-
template<class LHS, class RHSDerived, class FES, ShapeFunctionSpaceType SpaceType>class Rodin::Variational::Potential<LHS, ShapeFunctionBase<ShapeFunction<RHSDerived, FES, SpaceType>, FES, SpaceType>>