Replies: 1 comment 3 replies
-
ping: @psocratis, @cjvogl |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
Dear MFEM users/ Developers,
I recently started using MFEM to develop a forward solver for linear elastodynamics with PML. Due to the introduction of PML, I have two different element attributes (one for the medium and the other for the PML). The PML formulation is done in such a way that it leads to the introduction of auxiliary variables in the PML subdomain. The formulation is a displacement formulation, and I am using H1 parallel finite element spaces. Displacement is an active variable throughout the domain. Thus, it leads to cross terms between the displacement and auxiliary PML variables. PML variables themselves have mass matrices that are restricted to the PML. As I went through previous threads (#1729), developers suggested using the concept of sub-mesh and defining Fespaces for the variables in the PML and then generating bilinear forms using MixedBilinearForm with different spaces as input for the cross terms. My question is:
The examples show the utility of the MixedBilinearForm for variables defined on the single mesh, but, in my case, the Fespaces are defined on different parts of the mesh, with one mesh being the parent mesh. So, I am a bit confused about whether this approach will still work. Especially during the assembly process, as there will be elements(outside the PML, inside the elastic medium) where few fespaces do not exist.
Another idea that I came up with is to use the same space for every variable (as I have the same regularity assumptions on all the variables in the system) but use the element attribute array as an input to AddDomainIntegrator() so that assembly happens on required subdomains and then use EliminateRowsCols() for the padding up the zero diagonals for deactivated nodes with 1.
In this case, I can generate a dofs list that I need to remove on each processor using the element attribute, but this leads to shared dofs at the partition interface, and EliminateRowsCols() tends not to work and goes into a segfault (Obviously my code can have bugs)?
Hence, I would appreciate any help figuring out the best way to overcome this problem.
Thanks,
Ankit Chakraborty
Beta Was this translation helpful? Give feedback.
All reactions