-
Notifications
You must be signed in to change notification settings - Fork 32
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
Feature/support explicit laplace kernel #103
Feature/support explicit laplace kernel #103
Conversation
Not sure why the Julia nightly build fails. It does not seem to be related to my changes but some of the dependencies fail to compile. |
123f12c
to
d99479c
Compare
With this change, we can dispatch on Laplace-Type kernels as 'Nothing' is a distinct type (while gamma=0.0 could not be distinguished from a Yukawa-Type solution)
The public interfaces to the Helmholtz operators has been moved to a file helmholtz3d.jl resembling the maxwell.jl file. The right-hand sides now store gamma and not the wavenumber. They now correctly allow to discretize real-valued RHS if gamma is real-valued.
- Alpha factor was missing for double - By shifting some rhs constructors for HH3D into the Helmholtz3D submodule LinearAlgebra package needs to be reloaded
When linear maps are added via '+', a tuple is created. For large DirectProductSpaces, this results in prohibitively long compile times with little benefit since the cost for a matrix-vector product will dominate. Instead, LinearCombinations can be created with vectors and long compile times can be avoided.
d99479c
to
989f285
Compare
Shall I merge this? |
Thb not a big fan of exporting alpha beta gamma. These don't mean anything to most users I think. |
Thanks for catching this, I'll remove this. (Initially, I thought it was useful for the fast method development, but it is actually unnecessary in this context). |
I removed the export of alpha, beta, gamma and from my view, it is ready to be merged. |
Currently, it is not possible to detect static kernels at compile time.
This merge request allows that the gamma parameter of Helmholtz3D and Maxwell operators can be set to the value nothing.
Since the value "nothing" is of type Nothing, this allows to dispatch. This is both useful for the development of kernel-dependent fast methods as well as for a feature implementation of static 2D Laplace operators.
Potentially, such an approach is also useful if we want to handle more general kernels (see equation 3.3 in Sauter-Schwab to get an idea).
In addition, the RHS were changed such that the RHSs also use a gamma parameter. Thus, one can get consistent real-valued discretizations for static or Yukawa-type problems.