-
Notifications
You must be signed in to change notification settings - Fork 192
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
Remove dependence of ParallelInterpolation on higher-level libs #3561
Comments
@markscheel Do you agree with this? Would you be willing to do the |
Here is my suggestion for ApparentHorizons:
|
Sounds good to me!
|
|
AH surely depends on GR, domain etc. My question above is if we need the StrahlkorperGr functions also for non-AH things like excision surfaces. Therefore:
|
|
This is part of issue sxs-collaboration#3561. Strahlkorper, StrahlkorperFunctions, and ChangeCenterOfStrahlkorper have been moved to NumericalAlgorithms/SphericalHarmonics. Similar for the associated tests. There are no code changes except renaming/reordering includes, and changes to CMakeFiles.
I was planning on moving |
1. NumericalAlgorithms/SphericalHarmonics/Tags.hpp gets all the tags that are associated with StrahlkorperFunctions. 2. ApparentHorizons/Tags.hpp still has StrahlkorperGr tags and tags for the AH finder. Those will be split in a later PR. NumericalAlgorithms/SphericalHarmonics/TagsDeclarations.hpp and ApparentHorizons/TagsDeclarations.hpp match the corresponding Tags.hpp files. Test_Tags.cpp has been split in the same way. ApparentHorizons/TagsTypeAliases.hpp has been moved to NumericalAlgorithms/SphericalHarmonics. This is part of sxs-collaboration#3561.
@knelli2 I think something like |
I agree that |
This is part of sxs-collaboration#3561. 1. NumericalAlgorithms/SphericalHarmonics/Tags.hpp gets all the tags that used to be in ApparentHorizons/Tags.hpp and that are associated with StrahlkorperFunctions. 2. ApparentHorizons/Tags.hpp still has StrahlkorperGr tags and tags for the AH finder. Those will be split again in a later PR that moves StrahlkorperGr tags elsewhere. Note: * NumericalAlgorithms/SphericalHarmonics/TagsDeclarations.hpp and ApparentHorizons/TagsDeclarations.hpp were split in the same way as the corresponding Tags.hpp files. * Test_Tags.cpp has also been split in the same way. * ApparentHorizons/TagsTypeAliases.hpp has been moved to NumericalAlgorithms/SphericalHarmonics.
Sure, what I mean is that we don't have to try hard to share these tiny structs; they don't incur any code duplication. I have often found it easier to define these label structs per-executable so I can give them the names I want for their context, and where they show up in input files. Of course the label structs can still be shared where it helps. |
The annoyance isn't duplicating the enums/structs, but adding the code to handle them generically. Everything dealing with the objects now needs more template parameters, which have to be forwarded to other functions and classes correctly. It would mean that anything tied to the binary objects would have to be moved out of cpp files into hpp files. |
I see your point @wthrowe. My proposal is then: We do a simple move of ObjectLabel to a new |
This is part of sxs-collaboration#3561. 1. NumericalAlgorithms/SphericalHarmonics/Tags.hpp gets all the tags that used to be in ApparentHorizons/Tags.hpp and that are associated with StrahlkorperFunctions. 2. ApparentHorizons/Tags.hpp still has StrahlkorperGr tags and tags for the AH finder. Those will be split again in a later PR that moves StrahlkorperGr tags elsewhere. Note: * NumericalAlgorithms/SphericalHarmonics/TagsDeclarations.hpp and ApparentHorizons/TagsDeclarations.hpp were split in the same way as the corresponding Tags.hpp files. * Test_Tags.cpp has also been split in the same way. * ApparentHorizons/TagsTypeAliases.hpp has been moved to NumericalAlgorithms/SphericalHarmonics.
Sorry, not a hydro guy. What is the "BNS force balance equation"? |
Eq. (5.2) in https://arxiv.org/pdf/1408.4136.pdf. On a branch I currently have these functions in an |
That's probably OK. I'm just worried about grouping this with too much other stuff because I expect it to be used in at least one of Domain or DomainCreators to identify excision surfaces, and we don't want that adding any major dependencies. |
I See. Maybe it's |
This isn't urgent at the moment so maybe we hold off moving it to |
The
ParallelInterpolation
library currently depends on a bunch of libraries likeApparentHorizon
, that are really using the interpolation framework, not the other way round. My suggestion is to disentangle these dependencies one-by-one, so we end up with a generalParallelInterpolation
framework that other parallel algorithms can use. These are the libraries that theParallelInterpolation
library currently depend on, but shouldn't (not all of them are listed in theCMakeLists.txt
):ApparentHorizons
(TheApparentHorizons
lib should move toParallelAlgorithms/
and depend onParallelInterpolation
. I suggest naming itApparentHorizonFinder
, because later we want to factor out Strahlkorper/Ylm-related things.) Edit: partially addressed in Fix ApparentHorizon dependencies #5267.Cce
andGeneralizedHarmonic
(TheSendGhWorldtubeData
and friends should move to the CCE lib)GeneralRelativity
(TheKerrHorizon
interpolation target depends on this. I'm not sure what to do with this one, maybe just leave it for now.)DgSubcell
. Edit: Done in Remove DgSubcell from ParallelInterpolation #5274.Time
. Edit: Done in Remove Time from ParallelInterpolation #5275.The text was updated successfully, but these errors were encountered: