I am using NGSolve to solve Maxwell’s equations in time-harmonic form. I created a finite element space as:
fes = HCurl(mesh, order=3, type1=True, dirichlet=“outer")
which is the Nedelec space of first type of order 3.
Based on Nedelec’s definition of the first kind elements, the number of DOF is given by:
N_DOF=(Edges *3)+(Faces 6)+(Cells3).
In the initial mesh, I got an identical number of the DOF, but when I refine the mesh the resulted DOF number doesn’t match the number calculated by the above formula.
Here is the outputs:
Initial mesh:
#nedge= 19
#nface= 18
#ne= 6
fes.ndof = 183
calculated_ndof = 183
calculated_ndof-fes_ndof = 0
First refinement:
#nedge= 117
#nface= 138
#ne= 48
fes.ndof = 1177
calculated_ndof = 1323
calculated_ndof-fes_ndof = 146
Second refinement:
#nedge= 721
#nface= 1002
#ne= 384
fes.ndof = 8265
calculated_ndof = 9327
calculated_ndof-fes_ndof = 1062
I am grateful for any explanation
Find attached my python script.
Attachment: DOF_Check.py