Electrostatics Model¶
Introduction¶
The electrostatics model describes a static electric field \(\mathbf{E}\) in terms of the scalar electric potential \(\phi\) and solves the following equation:
where \(\varepsilon\) is the electric permittivity and \(\rho\) is the density of free electric charges. With appropriate boundary conditions, this equation determines the distribution of the electric potential \(\phi\) in the region of interest. So it gives the corresponding distribution of the static electric field \(\mathbf{E}\) from \(\mathbf{E}=-\nabla\phi\). The electrostatics model studies electrostatic phenomena that arise from the forces with which stationary electric charges act on each other. You can use it to study capacitors and their stored energy, the forces on charge distributions, and shielding effects such as Faraday cages. You can also use the model to study polarization in dielectrics and space charge distributions in semiconductors and insulators. This model is also very useful in field analysis to show field lines and equipotential surfaces.
Typical industrial applications include high-voltage insulator design, capacitor and MEMS-comb-drive characterisation, electrostatic shielding and Faraday-cage studies, semiconductor space-charge analysis, and electron-optics or ion-source modelling.
Model¶
The model is created and added to the simulation with
electrostatics_model = ElectrostaticsModel(
marker=electric_domain,
order=2,
)
sim.get_model_manager().add_model(electrostatics_model)
where
markerspecifies the domain on which the model is solved (defaults to the whole volume),orderis the polynomial order of the finite-element discretisation (default1),formulationselectsFormulation.Continuous(H1, default) orFormulation.Discontinuous(DG); the latter is useful for problems with strong material discontinuities.
Solver¶
The model owns a solver, obtained with get_solver():
See Solver for the available controls.
Mesh Refiner¶
The model owns an adaptive mesh refiner, obtained with get_mesh_refiner(),
which marks and refines the cells with the highest estimated error after each
solve:
from mufem.electromagnetics.electrostatics import RefinementStrategy
mesh_refiner = electrostatics_model.get_mesh_refiner()
mesh_refiner.set_refinement_strategy(RefinementStrategy.L2ZienkiewiczZhu)
mesh_refiner.set_refinement_fraction(0.8)
mesh_refiner.set_smooth_rt(True)
where
set_refinement_strategyselects the error estimator:RefinementStrategy.NoRefinement(default, refinement disabled),L2ZienkiewiczZhuandLSZienkiewiczZhu(Zienkiewicz–Zhu recovery estimators with L2 or least-squares flux smoothing), orKelly(the Kelly flux-jump estimator),set_refinement_fractionsets the fraction of cells, taken from the cells with the highest error, that are refined in each pass,set_smooth_rtselects the space for the smoothed flux in the Zienkiewicz–Zhu estimators (Truefor H(div),Falsefor H1).
Each setter has a matching getter (get_refinement_strategy,
get_refinement_fraction, get_smooth_rt).
Materials¶
In the most general case, the electric permittivity \(\varepsilon\) in the governing equation can be a spatially varying quantity. It can also depend on additional physical properties, such as temperature. To define \(\varepsilon\) as a function of all these parameters we use a corresponding material. A set of functions represents a material. These functions give \(\varepsilon\) as a function of various parameters in the form of analytic expressions, tabulated data, or external models. For more details, please refer to Electrostatics Material.
To simplify the setup of the electric permittivity \(\varepsilon\) for the most common cases, we provide a set of predefined material functions, listed below:
| Name | Description |
|---|---|
| Constant | Constant relative electric permittivity $\varepsilon_\text{usr}$: $$ \varepsilon = \varepsilon_0 \varepsilon_\text{usr}. $$ |
| Function | Spatially varying or field-dependent relative permittivity supplied through a scalar coefficient function (for inhomogeneous dielectrics or coupling with other models). |
Conditions¶
To solve the governing equation in a given region, it is necessary to specify boundary conditions at the boundaries of this region. You may also need to set a charge distribution or fix the potential at a point in the volume. For all these cases, we can use the following list of supported conditions:
| Name | Supported Entities | Description |
|---|---|---|
| Charge Density | Volume, Boundary | This condition specifies the distribution of charge density $\rho$ in a volume, on a surface, or along a line (wire). |
| Displacement Field | Boundary | This condition sets a specific value of the electric displacement field $\mathbf{D}$ at the selected boundary. |
| Electric Potential | Volume, Boundary | This condition establishes a fixed electric potential $\phi$ in the volume or at the boundary of the region of interest. |
| Floating Potential | Volume | This condition imposes a constraint on the electric potential $\phi$, requiring that its value in a given region be constant. |
| Potential Jump | Boundary | This condition defines a discontinuous electric potential $\phi$ with a given difference in value at the boundary of two contacting regions. |
| Single-Point Grounded | Point | Pins $\phi = 0$ at the origin. Use to fix the gauge in pure-Neumann (charge-density-only) problems where the potential is otherwise defined only up to an additive constant. |
Coefficients¶
The following functions are available in the electrostatics model for visualization or querying:
| Name | Field Type | Description |
|---|---|---|
| Electric Potential | Scalar | Electric potential: $~ \phi$ |
| Electric Field | Vector | Electric field vector: $~ \mathbf{E} = -\nabla \phi$ |
| Electric Displacement Field | Vector | Electric displacement field vector: $~ \mathbf{D} = \varepsilon \mathbf{E}$ |
| Electric Energy Density | Scalar | Electric energy density: $~ U = \frac{1}{2} \mathbf{E} \cdot \mathbf{D}$ |
| Electric Permittivity | Scalar | Electric permittivity $\varepsilon$ as evaluated from the material. |
| Electrostatics Model Order | Scalar | The degree of the polynomial that represents the electric potential within each element of the mesh. |