Feature/teefie verify#3
Closed
surzks wants to merge 686 commits into
Closed
Conversation
…funs Higher order basis funs
…handler Add explicit static case
Due to the change from 'nothing' to Val{0} using to denote
a static operator (gamma = 0), this fixup is necessary to correctly
compute the scalartype.
Currently, mixed discretizations, at least with the scalar primal and dual functions for Helmholtz-type operators are not working due to wrong hardcoded loop boundaries. This is now fixed by using the number of shape functions.
The new strace formulation supports a 2D mesh as input that comes from parts of the boundary of a 3D body. It is implemented in the same way as the ntrace formulation.
We add Lippmann-Schwinger VIE in two flavors - with one partial integration (hhvolume & hhboundary functions in vie.jl) - no partial integration (one derivative on the Green's function) (hhvolumegradG) In addition, the function hhvolumek0 is needed for k != 0 in the Helmholtz equation. Note that more flavors exist, which yet need to be implemented. For example, the one described in Bleszynski, E., M. Bleszynski, and T. Jaroszewicz. “Fast Volumetric Integral-Equation Solver for Acoustic Wave Propagation through Inhomogeneous Media.” The Journal of the Acoustical Society of America 124, no. 1 (July 1, 2008): 396–408. https://doi.org/10.1121/1.2924203. where one derivative is moved onto the contrast function. TODO: Add unit test for accoustic version (once it is available in SphericalScattering. So far only the electrostatic version is tested)
These can be useful for mixed discretization of Helmholtz3D type of integral equations.
Overall, the observed error is comparable to the standard discretizations. Note, however, that it might be useful (TODO) adding unit tests for individual matrix element assemblies.
This commit enables support of primal piecewise linear and primal piecewise constant RHSs TODO: Probably, either an extension or a rewrite of DofInterpolate is advisable for the LagrangeBasis (for example, also dealing with higher-order functions and dual functions)
- Make latest RKCQ version suitable for Julia 1.9 - Only neccesary changes - No further improvements and adjustments
Second derivative of Gaussian added to enable the usage of the derivative of the Gaussian as a right hand side. This has the advantage that the right hand side does not contain DC information. Added inverse Fourier transform to solve time-domain problem by inverse Fourier transforming the frequency-domain problem.
RKCQ uses now the ConvolutionOperators interface that is used by Space-Time-Galerkin MOT. To this end, all information required for RKCQ is contained in the StagedTimeStep type, which is used for building the SpaceTimeBasis. Moreover, the bilinear form can now be build with retarded potentials.
We compare against Space-Time-Galerkin MOT Alternatively one could compare the individual frequencies against EFIE frequency solutions. However, this results in a considerably longer run time.
…mholtz_Discretizations Feature/enable mixed helmholtz discretizations
fixup: return correct scalartype for static operators
…lmholtz_rhs Add interpolation support for Helmholtz RHS
Add Lippmann-Schwinger volume integral equation (HH3D VIE)
Reactivate Runge Kutta Convolution Quadrature
…2025-05-10-00-55-01-144-03609611608 CompatHelper: bump compat for SauterSchwab3D to 0.2, (keep existing compat)
Volume Surface Integral Operators and more (incl. fixes for higher order basis)
Remove DoF reordering Repair interface to SauterSchwab3D Repair handling of 5D integrals Update the integrands
The interface now follows the example of the Helmholtz3D code. With this change, we are now in the position to define Yukawa (modified Helmholtz equation solution) and Laplace equation solution. This, however, is work yet to be done.
Most textbooks formulate the 2D TM-MFIE and the 2D TE-EFIE using the tangential trace of the magnetic and eletric field, respectively. A tangent trace is added to allow following textbooks more closely. Moreover, the potential operators lead to gradient fields instead of curls. By providing access to ẑ x, those 2D-gradients can be conveniently rotated into curls. Lastly, an integration test with respect to the Mie series is included. It also shows and tests the alpha and beta parameter of the operators as well as certain right-hand side operations. Moreover, some cleanup was performed removing unnecessary functions of the Helmholtz 2D excitations.
Previously, there was no way to define alpha and beta parameters as for the actual operators. This made a consistent usage difficult. Moreover, the hypersingular operator now only has a weak singularity.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adding curlHH2DMonopole to hh2dexc.jl