Skip to content
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

Merged

Conversation

sbadrian
Copy link
Contributor

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.

@sbadrian
Copy link
Contributor Author

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.

@sbadrian sbadrian force-pushed the feature/support_explicit_laplace_kernel branch from 123f12c to d99479c Compare August 18, 2023 06:51
@sbadrian sbadrian mentioned this pull request Aug 18, 2023
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.
@sbadrian sbadrian force-pushed the feature/support_explicit_laplace_kernel branch from d99479c to 989f285 Compare August 18, 2023 07:13
@krcools
Copy link
Owner

krcools commented Aug 18, 2023

Shall I merge this?

@krcools
Copy link
Owner

krcools commented Aug 18, 2023

Thb not a big fan of exporting alpha beta gamma. These don't mean anything to most users I think.

@sbadrian
Copy link
Contributor Author

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).

@sbadrian
Copy link
Contributor Author

Shall I merge this?

I removed the export of alpha, beta, gamma and from my view, it is ready to be merged.

@krcools krcools merged commit 5918ebd into krcools:master Aug 22, 2023
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants