1#ifndef PHYTH_CHARGE_SOURCE_HPP
2#define PHYTH_CHARGE_SOURCE_HPP
Abstract base class for all charge distributions.
virtual Quantity< Volt > GetElectricPotentialAt(const Vector3< Quantity< Meter > > &point) const =0
Compute the electric potential at a point.
virtual Vector3< Quantity< NewtonPerCoulomb > > GetElectricFieldAt(const Vector3< Quantity< Meter > > &point) const =0
Compute the electric field at a point.
virtual ~ChargeSource()=default
virtual Quantity< Coulomb > GetTotalChargeValue() const =0
Get the total charge of this source.
virtual Quantity< CoulombPerCubicMeter > GetChargeDensityAt(const Vector3< Quantity< Meter > > &point) const
Get the charge density at a point.
virtual Quantity< Meter > GetMinimumDistanceTo(const Vector3< Quantity< Meter > > &point) const =0
Get the minimum distance from a point to this charge source.
constexpr bool is_charge_source_v
Type trait to check if a type is a ChargeSource.
Physical quantity with a value and a compile-time unit.
3D vector with Quantity components