-
Notifications
You must be signed in to change notification settings - Fork 35
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
Poisson problem with variable coefficients #357
Comments
After some discussions with @nfehn, we decided to start with a general implementation for the Laplace operator involving coefficients. The operator should be capable of handling:
The implementation is expected to be as generic as possible in terms of rank, but for example differentiate and optimize variable/constant coefficients. The special case of constant coefficients in space (like unit coefficients) is planned to maintain its own implementation, as some performance overhead is expected due to the flexibility of this generalized operator. Hopefully, all other use cases present or planned in ExaDG can be covered by this operator. |
Sounds like a good plan, I am in favor. As discussed offline with @nfehn (and with @peterrum in other occasions), for the base operator (constant coefficient) we need to figure out how precisely realize problem-specific optimizations for Poisson operators that are performance critical and that include our recent state of the art in terms of data locality optimizations, overhead-reductions, etc. and other things that were developed via the CEED BP benchmarks and other contexts. It is yet to be decided whether the right place for these optimizations is here in ExaDG or deal.II, but in either case this fits well with the given strategy of the operator. |
As we've agreed, I've been spending some time to create a generalized Laplace operator. I'd like to get your opinion on the matter of So far, operators have been using the So my question is where would be the best place to define the new Also, does it make sense at all to define boundary descriptor for a single operator, instead of a problem? I think this is also a design question, but currently the operators need to know about the boundary descriptor. If you have any opinions / suggestions about this, please let me know. If you want to check out the current state of the implemenation to get a better picture, you can find the branch here. |
I also thought about the problem with the |
with variable coefficients Closes exadg#357
Removes the diffusive operator and replaces it with the generalized Laplace operator Closes exadg#357
The derivation of the DG discretization does not take into account in my opinion that the coefficient can be discontinuous between elements, which needs some averaging/flux computation also for the diffusivity (harmonic mean vs. arithmetic mean). This can be extracted from the ExaDG code for the viscous operator in the |
It would be really nice to be able to solve the variable coefficient Poisson equation with ExaDG. Apart from being an interesting PDE in and of itself, it is for example relevant for an efficient preconditioning of the Darcy equations (analogous to block preconditioning for the coupled IncNS solver, just with a tensor-valued variable coefficient).
I wrote down a quick derivation of the DG discretization here, which I would like to implement into ExaDG. Please be welcome to look at it.
There are however some points that have to be discussed about the concrete implementation. I would use this issue to collect these points and discuss with the community to refer back to during the implementation.
Right now, work is ongoing for general support of tensor-valued variable coefficients.
Blocked by:
The text was updated successfully, but these errors were encountered: