Test3d28.dat, 28th 'test' file for CPO3DS

Neumann boundary conditions in a spherical system


Care must be taken in setting up neumann simulations, so it is very important to read the guidance, particularly the notes at the end on the neumann version.

In a Neumann boundary condition the field at a surface is specified, instead of the potential (in the more usual Dirichlet boundary condition). More exactly, in the neumann version of CPO3D, the component of the electric field normal to the surface is specified.


Here the outer sphere (in 2 hemispheres) is conducting and has a radius of 1mm.   The potential of the outer sphere is 1V (in fact more than one voltage number is used so that a voltage gradient can be applied later, see below).

The inner sphere is designated as a neumann interface and the field at the surface of it is set to 4V/mm.

Put potential = V(r) = a + b/r, where r is the radial distance, therefore field = E(r) = -dV/dr = b/r^2.

Here V(1) = 1, E(0.5) = 4, therefore a = 0, b = 1, V(0.5) = 2.

So we expect that the potential of the inner sphere should be 2V. In fact the program finds that the potential at the centre is 2.003, giving an error of 0.15%.


In a more interesting example we put a uniform field on the outer sphere, which is achieved by putting the applied voltages V1, V2, V3 = 1, 0, -1. We then put a zero field at the inner sphere, which is achieved by putting the field magnitude V4 = 0. We see that the field inside the inner sphere is then uniform, with a magnitude 1.41. If the radius of the inner sphere is reduced to 0.01 the inner field becomes 1.5008.

The shapes of the potential contours are similar to those seen in test3d24. In fact the condition that the normal component of the field should be zero at the surface of the inner sphere is reproduced by putting the dielectric constant K of the surrounding medium at infinity. Then using the equation given in test3d24:

E_cavity = E_ext*3*K/(2*K + 1)

we see that the inner field should be 1.5. The error in the present example is therefore 0.05%.


The default value in CPO3D for the inaccuracy used in calculating the Neumann field is 0.001, but it might sometimes be better to change this to 0.0001 (at the bottom of the 'tracing accuracy' sheet).