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

Add the homogenised Laplace operator #86

Merged
merged 40 commits into from
Feb 14, 2024

Conversation

removr
Copy link
Contributor

@removr removr commented Feb 13, 2024

Implements the homogenised Laplace operator with the help of solid spherical harmonics. The coefficients of the expansion are calculated with Eigen.

remo added 30 commits January 3, 2023 15:47
@mx-nlte mx-nlte self-assigned this Feb 13, 2024
@mx-nlte mx-nlte self-requested a review February 13, 2024 12:16
Copy link
Member

@mx-nlte mx-nlte left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I like your Doxygen comments

#include <Eigen/Dense>

#if !defined pi
#define pi 3.1415926535897932385
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We have a macro BEMBEL_PI define in "Bembel/src/util/Macros.hpp". Please exchange

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

double z1[2], z2[2], z3[2], z1_start[2];
double r, fac, rootTimesZ, root_2, root_3;

assert(abs(x.norm() - 1) < 1e-14);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use Constants::generic_tolerance instead of a hard coded tolerance.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -17,6 +17,8 @@ set(CIFILES
LaplaceSingleLayerH2
HelmholtzSingleLayerFull
HelmholtzSingleLayerH2
HomogenisedLaplaceSingleLayerFull
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please align with the other file names.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

Eigen::Vector3d dr;
double fac, rootTimesZ, root_2, root_3;

assert(abs(x.norm() - 1) < 1e-14);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use Constants::generic_tolerance instead of a hard coded tolerance.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

// implementation of the kernel evaluation, which may be based on the
// information available from the superSpace

private:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(optional) private members are at the bottom of the class definition in Bembel.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

#include <iostream>
#include <functional>

#include "./Test.hpp"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

replace '.' with 'tests'

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -0,0 +1,25 @@
// This file is part of Bembel, the higher order C++ boundary element library.
// It was written as part of a cooperation of J. Doelz, H. Harbrecht, S. Kurz,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Replace with new header including the copy right.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

#endif

#ifndef PI
#define PI M_PI
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please use M_PI directly.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

HomogenisedLaplaceSingleLayerOperator> {
// implementation of the kernel evaluation, which may be based on the
// information available from the superSpace
private:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here are the same points as in the SingleLayerPotential.hpp


#include <iostream>

#include "./Data.hpp"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same as in the other example

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@mx-nlte
Copy link
Member

mx-nlte commented Feb 13, 2024

We should add one line in the examples/CMakeFile.txt to copy the geometry.

@mx-nlte mx-nlte merged commit cc1aa71 into temf:master Feb 14, 2024
4 checks passed
@removr removr deleted the homogenisationUpdate branch February 14, 2024 14:25
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