-
Notifications
You must be signed in to change notification settings - Fork 161
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
BUG: Getri throws nonzero info when inverting a tensor with SLATE for DQ-2 #4021
Comments
This is the expected behavior, as the laplacian with Neumann boundary conditions is singular. |
We should be throwing this error for any degree |
Why do you need DG? You could use SLATE to solve Poisson with Continuous Lagrange elements. This is standard static condensation, where the cell problems are posed on the interior with Dirichlet Boundary conditions on the facets, see this example: https://github.com/firedrakeproject/firedrake/blob/master/tests/firedrake/slate/test_cg_poisson.py |
Oh good point! I am trying to invert the block diagonals of a DQ discretization. I tried to stabilize the form using Nitsche boundary conditions, but I am still getting the same problem n = fd.FacetNormal(mesh)
h = fd.CellSize(mesh)
alpha = fd.Constant(1e4 * k**2)
u_b = fd.Constant((0, 0))
F = (
inner(grad(u), grad(v)) * dx
- inner(dot(grad(u), n), v) * fd.ds # Consistency term
- inner(u, dot(grad(v), n)) * fd.ds # Symmetry term
+ alpha / h * inner(u, v) * fd.ds # Penalty term
)
F += (
inner(u_b, dot(grad(v), n)) * fd.ds # Symmetry term for BC
- alpha / h * inner(u_b, v) * fd.ds # Penalty term for BC
) I think that because I am lacking the facet terms, the boundary conditions are not propagated to the element's interiors. Doesn't the HDG method do something along these lines? Do I need to impose boundary conditions on the elements somehow? |
I guess you are using IPDG to precondition a pressure Laplacian?
|
Yes, I want to use the IPDG to precondition a pressure Laplacian (I think). The SIMPLE method uses the inverse of the matrix diagonal as an approximation of the inverse of the original matrix. I want to use the element-block diagonal instead. Do you have a reference on using IPDG to precondition a pressure Laplacian? I could not find much |
Describe the bug
I am trying to invert a block-diagonal matrix using Slate's infrastructure. It works great for simple mass matrix and for a grad-grad matrix in most cases except for DQ-2.
Steps to Reproduce
Expected behavior
No errors
Error message
Getri throws nonzero info.[1] 31916 abort
Environment:
firedrake-status
The text was updated successfully, but these errors were encountered: