Use LinearImplicitSystem/LinearSolver with Nedelec_One variable type #3243
-
Hi, recently I tried to build model to calculate EM scattering problems using Libmesh. I used the Nedelec_One variable type, which resulted say x dofs and y number of nodes. I defined the system as Linear implicit system as I tried to solve the problem directly by assembling the system matrix K and rhs F and solving the matrix equation Kx=F. The results seem to be wrong and as I checked, I found the size of the solution vector to be 3*y, instead of x as I would expect. Would like to ask gurus here, if it is right to use linear implicit system to solve such problem with Nedelec_One variable type? Thanks a lot! |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 15 replies
-
|
Beta Was this translation helpful? Give feedback.
-
It would probably be most helpful if you could post or link to your code, but one comment is I think that TET10 HEX20 HEX27 Note that the HEX20 and HEX27 have the same number of DOFs. Is there any chance that you are calling all_second_order() to convert your Mesh, and the number of nodes is not what you were expecting? |
Beta Was this translation helpful? Give feedback.
-
Hi, sorry I am here again. After a full day debugging I am running out of leads, thus I want to ask for some further help here. I was trying to build a FEM model for mie scattering using libmesh. So basically it is about a y-polarized plane wave traveling in vacuum along x axis and scattered by a dielectric sphere with diameter 1/3 of the wavelength. The computation domain was truncated by a PML surrounding box. The governing equation is
I wonder whether there is any misuse of libmesh library or obvious errors (which my eyes were too blind to see) with this assembly procedure so that when I call |
Beta Was this translation helpful? Give feedback.
It would probably be most helpful if you could post or link to your code, but one comment is I think that
NEDELEC_ONE
has DOFs at mid-edge nodes but not vertices (?), so you have to use one of the second-order element types for your problem. For example, when I run vector_fe_ex4 I get these numbers:TET10
n_nodes()=2585
n_elem()=1536
n_dofs()=2156
HEX20
n_nodes()=425
n_elem()=64
n_dofs()=300
HEX27
n_nodes()=729
n_elem()=64
n_dofs()=300
Note that the HEX20 and HEX27 have the same number of DOFs. Is there any chance that you are calling all_second_order() to convert your Mesh, and the number of nodes is not what you were expecting?