-
Notifications
You must be signed in to change notification settings - Fork 472
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Current density function of a wire in LinearForm in electromagnetism #3953
Comments
A lot of time passed since I asked the question quoted. Since then I adopted the following approach: construct adaptive mesh such that a wire is represented by a set of edges, then put delta functions at the midpoints. |
Hi @Marshdweller That's what I did when not using MFEM: using a set of edges in the mesh, which makes things much easier. Could you elaborate more how you did this using MFEM functions ? Did you implement your own integrators ? I'm not particularly familiar with the details of FEM classes. Thanks ! |
I put VectorDeltaFunction (sorry if I misspell class names, cannot acess the docs atvthe moment) into the LinearForm. You need to specify coordinates of the edge midpoint and the dipole(s) orientation. This procedure activates the global DOF corresponding to that edge. This method is accurate provided you adapt the mesh to the wire. Other methods exist, such as injecting analitical solution into the RHS or replacing a wire with a nonsingular function. |
Thanks for the inputs @Marshdweller ! Is the class |
Sorry for typos in the previous message. This is the image I wanted to share. There are two wires in the mesh, each of which consists of many edges. |
|
@Marshdweller Nice picture, thanks ! I've done similar meshing with wire coincident with smaller edges. Could you elaborate how you handled the right-hand-size integration using MFEM functions ? |
Hi @mlstowell @tzanio Recently, I'm working with the same problem in solving Maxwell's equation:
Curl mu^{-1} Curl E - omega^2 epsilon E + i omega sigma E = - i omega J
with a tetrahedral mesh. The issue is how to correctly represent the current density function
J
above. Suppose its a loop wire transmitting a current with the amplitude of 1 Ampere (and with the frequency defined byomega
). In this case, the diameter of this physical wire is considered 0 when sigma /= 0 exists everywhere (i.e., diffusive EM field).Mathematically, the current density function
J
is only non-zero in the "line-segment" position in the space, as shown here in the attached picture (in 2-D view). In the 3-D space, this line loop will intersect with some tetrahedral cells in the mesh. I believe similar issues have been raised before (see the below quoted reply from Mark to issue #3707, and issues #648 and #632 ). Unfortunately, my question remains as to how best to do this in MFEM ...If we can somehow find all the intersection points between a line segment and the mesh, then in each of the intersected cells, the linear form of
<- i omega J, V>
(J and V are vector functions here, V is test function) will be non-zero. In all other cells, the linear form is zero. In this case (I'm not sure if MFEM has such capability to find all intersections), is there a way to construct a vector function forLinearForm
, and then use the "standard" way to do the integration (as in below) ?LinearForm J(fespace);
VectorFunctionCoefficient Jfunc(3, J_line); // This vector function would return -i omega J
J.AddDomainIntegrator(new VectorFEDomainLFIntegrator(Jfunc));
J.Assemble(); /// This step performs the integration you mentioned
Thanks !
CSEM_wire.pdf
The text was updated successfully, but these errors were encountered: