Applying a Dirac Neumann BC on a variable lying on a boundary part in a multifield problem
- Dominant language
- Julia
- Stars
- 879
- Forks
- 119
- Avg merge
- 6d 3h
- Merged PRs (30d)
- 4
Description
Here is the description of the problem
I consider a (normalized with no physical unit) electrical ohmic problem on a square with uniform conductivity such that the top line is made of a very high conductive material (infinite conductivity on a thickness tending to 0 such that the product conductivity by thickness is finite ). Thus the top line can be considered as a "lineic material" with its own potential field which is related to the potential of the same point in the square by a linear relationship existing between the local normal flux and the local difference of potentials. In addition I consider a Dirichlet boundary condition at the bottom line and an injection point (Neumann Dirac) at the top left point. At this point there are two choices of injection since two material points coincide on the same node (one of the lineic material and one of the bulk material)
1. If the Dirac is applied on the bulk material there is no problem (except an error message "MultiFieldFEFunction():ERROR: AssertionError: A check failed") which does not seem to hinder the calculation).
2. If the Dirac is applied on the lineic variablen then the following error is raised
> ERROR: AssertionError:
> Your are trying to integrate a CellField using a CellQuadrature defined on incompatible
> triangulations. Verify that either the two objects are defined in the same triangulation
> or that the triangulaiton of the CellField is the background triangulation of the CellQuadrature.
This problem is mathematically well-posed and correctly solved by other tools but I have problems to make it work with Gridap.
I attach an example (in .jl.txt to be renamed in .jl).
[test_multi_dirac.jl.txt](https://github.com/gridap/Gridap.jl/files/11926548/test_multi_dirac.jl.txt)
Contributor guide
Research direction
Start with the attached test_multi_dirac.jl.txt example, renaming it to .jl as described, and reproduce the assertion when applying the Neumann Dirac to the lineic variable. Read the multifield and boundary-condition paths involved in that run. Done means the example executes without the incompatible-triangulation assertion and preserves the intended result.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- julia
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100