Logbook  (07-04-2025)
Static problems
1.1.10 Axisymmetric - floating conductor (flc-axi/)

Classes:

1) BatchFLCAXI
2) SolverFLCAXI
3) ExactSolutionFLCAXI_PHI
4) SettingsFLCAXI

Files:

1) flc-axi/src/main.cpp
2) flc-axi/include/solver.hpp
3) flc-axi/src/solver.cpp
4) flc-axi/include/exact_solution.hpp
5) flc-axi/src/exact_solution.cpp
6) flc-axi/src/static_scalar_input.cpp
7) flc-axi/include/settings.hpp

List of all shared classes


Introduction

In this numerical experiment we will test if the StaticScalarSolver::Solver class template can solve axisymmetric problems that involve floating conductors. To do so, we will solve the two problems of the Floating conductor (flc/) numerical experiment on axisymmetric problem domains. We expect that the electrostatic potential calculated in this numerical experiment will be identical to the electrostatic potential calculated in the Floating conductor (flc/) numerical experiment.

Implementation

In this numerical experiment we will reuse the two textbook problems of the Floating conductor (flc/) numerical experiment. This time, however, these two textbook problems will be solved on two-dimensional axisymmetric domains.

The first problem

We convert the first problem into an axisymmetric problem domain as shown in the figure below.

We remove the first and the second conductors from the problem domain and model them by setting up Dirichlet boundary conditions on the surfaces that delineate them. We replace the third conductor, i.e., the floating conductor, with a dielectric of a high permittivity. Consequently, the problem domain consists of three strips made of dissimilar dielectric materials with Dirichlet conditions applied on the boundaries horizontal boundaries. Due to the cylindrical symmetry in the initial three-dimensional problem we can predict that the electrostatic field will be directed radially from the axis of rotation, i.e., will be aligned with the vertical boundaries of the axisymmetric domain. For this reason, we apply the homogeneous Neumann boundary conditions on the two vertical boundaries.

The second problem

We convert the second problem into an axisymmetric problem domain as shown in the figure below.

We remove the first and the second conductors from the problem domain and model them by setting up Dirichlet boundary conditions on the surfaces that delineate them. We replace the third conductor, i.e., the floating conductor, with a dielectric of a high permittivity. Consequently, the problem domain consists of three half-rings made of dissimilar dielectric materials with Dirichlet conditions applied on the curved boundaries. Due to the spherical symmetry in the initial three-dimensional problem we can predict that the electrostatic field will be directed radially from the center of the spheres, i.e., will be aligned with the vertical boundaries of the axisymmetric domain. For this reason, we apply the homogeneous Neumann boundary conditions on the two straight segments of the boundary.

The boundary value problem

This numerical experiment solves the following boundary value problem.

\begin{equation} \begin{array}{lrcll} \text{ }&- \vec{\nabla} \cdot \big( \epsilon \vec{\nabla} \Phi \big)= 0 & \text{in} & \Omega & \text{(i)},\\ \text{(e)} &\Phi = \Phi_0 & \text{on} & \Gamma_{D1} & \text{(ii)},\\ \text{(e)} &\Phi = 0 & \text{on} & \Gamma_{D2} & \text{(iii)},\\ \text{(n)} & \epsilon \hat{n} \cdot \vec{\nabla} \Phi = 0 & \text{on} & \Gamma_{R1} & \text{(iv)},\\ \text{(e)} &\Phi_{+} = \Phi_{-} & \text{on} & \Gamma_{I1} & \text{(v)},\\ \text{(n)}&\epsilon_{+}\hat{n}\cdot\vec{\nabla}\Phi_{+}-\epsilon_{-}\hat{n} \cdot\vec{\nabla}\Phi_{-}=0&\text{on}&\Gamma_{I1}&\text{(vi)},\\ \text{(e)} &\Phi_{+} = \Phi_{-} & \text{on} & \Gamma_{I2} & \text{(vii)},\\ \text{(n)}&\epsilon_{+}\hat{n}\cdot\vec{\nabla}\Phi_{+}-\epsilon_{-}\hat{n} \cdot\vec{\nabla}\Phi_{-}=0&\text{on}&\Gamma_{I2}&\text{(iix)}. \end{array} \end{equation}

This boundary value problem is a special case of the general static scalar boundary value problem.

The program

This experiment is implemented in accordance with the base code structure. The build process generates two executable files: flc-axi-cylinder and flc-axi-sphere. That is, one executable file for the first problem above and one for the second. To rebuild them change into flc-axi/build/Release directory and execute the following:

user@computer .../flc-axi/build/Release$ ./clean
user@computer .../flc-axi/build/Release$ ./build

Then all executable files must be executed again. This can be done by changing into the flc-axi/bin/Release directory and executing run-all script there,

user@computer .../flc-axi/build/Release$ cd ../../bin/Release
user@computer .../flc-axi/bin/Release$ ./run-all

This will generate various files in the flc-axi/bin/Release/Data directory. Among the generated files there are vtu files that can be viewed with a help of ParaView software package of the Kitware, Inc. The data files in tex and txt format contain the convergence tables.

Note that executable files require a set of meshes to be present in the flc-axi/gmsh/data directory. If they are missing, they can be generated anew. This can be done by changing into flc-axi/gmsh directory and executing the following:

user@computer .../flc-axi/gmsh$ ./clean
user@computer .../flc-axi/gmsh$ ./build

This will generate a set of globally refined meshes in flc-axi/gmsh/data.

The SettingsFLCAXI class allows switching on three useful features: printing time tables on the computer screen, logging convergence data of the conjugate gradient solver, and saving the exact solution into the vtu files next to the numerical solution.

The program invokes first- and second-order mapping of the FE_Q finite elements when solving the first and the second problems, respectively.

Simulation results

Both problems above were solved numerically with the following settings (see SettingsFLCAXI): \(a = 0.4[m]\), \(b=1.0[m]\), \(d_1=0.6[m]\), \(d_2 = 0.8[m]\), \(\epsilon_1 = 32\epsilon_0\big[\frac{C^2}{Nm^2}\big]\), \(\epsilon_2 = 4\epsilon_0\big[\frac{C^2}{Nm^2}\big]\), and \(\epsilon_3 = 10^9 \epsilon_0\big[\frac{C^2}{Nm^2}\big]\).

Electrostatic scalar potential

The first problem

The figures below illustrate the numerically calculated electrostatic potential. As expected, the potential is continuous on the interfaces, i.e., at \(x = 0.6[m]\) and at \(x = 0.8[m]\). The potential within the floating conductor is constant. The plot on the right allows a comparison between the results obtained on the two-dimensional planar domain (flc/ numerical experiment) and on the two-dimensional axisymmetric domain (flc-axi/ numerical experiment).

The corresponding convergence table is shown below.

p r cells dofs \(\|e\|_{L^2}\) \(\alpha_{L^2}\) \(\|e\|_{H^1}\) \(\alpha_{H^1}\)
1 3 12 21 9.63e-04 - 2.88e-02 -
1 4 27 40 4.30e-04 1.99 1.92e-02 0.99
1 5 48 65 2.42e-04 1.99 1.44e-02 1.00
1 6 75 96 1.55e-04 2.00 1.15e-02 1.00
2 3 12 65 1.52e-05 - 9.85e-04 -
2 4 27 133 4.55e-06 2.98 4.42e-04 1.98
2 5 48 225 1.92e-06 2.99 2.49e-04 1.99
2 6 75 341 9.86e-07 2.99 1.60e-04 1.99
3 3 12 133 4.25e-07 - 3.99e-05 -
3 4 27 280 8.81e-08 3.88 1.21e-05 2.94
3 5 48 481 2.82e-08 3.96 5.15e-06 2.97
3 6 75 736 1.45e-07 -7.34 2.76e-06 2.79

The following notations were used in the table header:

  • p - the degree of the interpolating Lagrange polynomials that constitute the shape functions.
  • r - the number of nodes on transfinite lines, see discussion in here.
  • cells - the total amount of active cells.
  • dofs - the amount of degrees of freedom in the active cells.
  • \(\|e\|_{L^2}\) - the \(L^2\) error norm.
  • \(\|e\|_{H^1}\) - the \(H^1\) error norm.
  • \(\alpha_{L^2}\) - the order of convergence of the \(L^2\) error norm.
  • \(\alpha_{H^1}\) - the order of convergence of the \(H^1\) error norm.

The second problem

The figures below illustrate the numerically calculated electrostatic potential. As expected, the potential is continuous on the interfaces, i.e., at \(x = 0.6[m]\) and at \(x = 0.8[m]\). The potential within the floating conductor is constant. The plot on the right allows a comparison between the results obtained in the three-dimensional domain (flc/ numerical experiment) and in the two-dimensional axisymmetric domain (flc-axi/ numerical experiment).

The corresponding convergence table is shown below.

p r cells dofs \(\|e\|_{L^2}\) \(\alpha_{L^2}\) \(\|e\|_{H^1}\) \(\alpha_{H^1}\)
1 3 48 63 7.39e-03 - 2.00e-01 -
1 4 108 130 3.33e-03 1.97 1.33e-01 0.99
1 5 192 221 1.88e-03 1.98 1.00e-01 1.00
1 6 300 336 1.20e-03 1.99 8.02e-02 1.00
2 3 48 221 1.84e-04 - 1.13e-02 -
2 4 108 475 5.34e-05 3.05 5.06e-03 1.98
2 5 192 825 2.24e-05 3.03 2.85e-03 1.99
2 6 300 1271 1.14e-05 3.02 1.83e-03 1.99
3 3 48 475 7.49e-05 - 1.92e-03 -
3 4 108 1036 1.52e-05 3.93 5.58e-04 3.05
3 5 192 1813 4.92e-06 3.93 2.32e-04 3.05
3 6 300 2806 2.07e-06 3.87 1.18e-04 3.05

The following notations were used in the table header:

  • p - the degree of the interpolating Lagrange polynomials that constitute the shape functions.
  • r - the number of nodes on transfinite lines, see discussion in here.
  • cells - the total amount of active cells.
  • dofs - the amount of degrees of freedom in the active cells.
  • \(\|e\|_{L^2}\) - the \(L^2\) error norm.
  • \(\|e\|_{H^1}\) - the \(H^1\) error norm.
  • \(\alpha_{L^2}\) - the order of convergence of the \(L^2\) error norm.
  • \(\alpha_{H^1}\) - the order of convergence of the \(H^1\) error norm.