-
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
GH+CCE for a gauge wave #4271
GH+CCE for a gauge wave #4271
Conversation
058b9e5
to
f48ba9f
Compare
/// a TimeStepId. | ||
template <typename CceEvolutionComponent, bool DuringSelfStart> | ||
template <typename CceEvolutionComponent, bool DuringSelfStart, bool LTS> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see why you had to add the extra template, but DuringSelfStart
and LTS
serve the same purpose here so could you combine them somehow? Maybe name it NeedsInterfaceManager
? Then whatever calls this is responsible for passing the correct bool.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd think both DuringSelfStart
and LTS
are wanted because we need to distinguish self-start from evolution even when the interface manager is used (Cce::Actions::ReceiveGhWorldtubeData
takes DuringSelfStart
other than NeedsInterfaceManager
).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ahh I see, then I think this LTS
template is ok.
template <typename InitialData> | ||
constexpr auto make_default_phase_order() { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Capitalize reorder
in the commit message please.
template <typename Metavariables> | ||
class CProxy_ConstGlobalCache; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is this? We don't have a ConstGlobalCache
|
||
template <bool DuringSelfStart, bool LTS> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you make the above change about the LTS
template to SendGhWorldtubeData
, I don't think you need this LTS
template. Just use the local_time_stepping
member that's defined at the top of the metavariables.
For the SendGhWorldtubeData
template, I think you can use tmpl::or_v<DuringSelfStart, local_time_stepping>
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I still think you can get rid of this LTS
template. Just use the local_time_stepping
bool directly inside the target.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done!
# Executable: EvolveGhCceGaugeWave | ||
# Check: parse;execute | ||
# Timeout: 8 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'd remove the execute
part. This takes a while. Parsing should be ok for now
f48ba9f
to
ac8186e
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok all changes look good! Please squash and rebase.
Seems like GCC 9 is still running out of memory on CI...not much I think we can do about that at the moment. One idea could be, for the time being, to just not include this target when building the tests
ff7bd41
to
5f1d85f
Compare
@Sizheng-Ma Once #4299 has been merged, you'll have to rebase and fix the |
@Sizheng-Ma This needs a rebase on develop. Several things have changed over the past month or so. In order to have CI actually pass and not run out of memory trying to build this executable, please remove the input file you have. If there isn't an input file in the test directory, then it won't build the executable. Please make sure this executable builds on your own branch before pushing. I'll also check that it will build in a couple places before I approve. This will just be a temporary fix until we can reduce the memory usage during compile time. |
7a81a6f
to
deecf2b
Compare
I've updated the branch and removed the input file. @knelli2 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is still dependent on #4466, but I've built both of these executables locally on this branch and after rebasing on the current develop, so looks good!
deecf2b
to
967ef2b
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can squash immediately. Also please rebase on the latest develop to make sure you have some recent changes to the GH system
@@ -41,7 +42,7 @@ namespace callbacks { | |||
/// \note This callback requires the temporal ID in an InterpolationTargetTag be | |||
/// a TimeStepId. | |||
template <typename CceEvolutionComponent, typename InterpolationTargetTag, | |||
bool DuringSelfStart> | |||
bool DuringSelfStart, bool LTS> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LTS
-> LocalTimeStepping
@@ -28,7 +29,7 @@ | |||
|
|||
namespace { | |||
|
|||
template <typename InterpolationTargetTag> | |||
template <typename InterpolationTargetTag, bool LTS> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LTS
-> LocalTimeStepping
using with_these_simple_actions = tmpl::list<test_receive_gh_data>; | ||
using chare_type = ActionTesting::MockArrayChare; | ||
using array_index = size_t; | ||
using phase_dependent_action_list = tmpl::list< | ||
Parallel::PhaseActions<Parallel::Phase::Initialization, tmpl::list<>>>; | ||
}; | ||
|
||
template <bool LTS> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LTS
-> LocalTimeStepping
"Unit.NumericalAlgorithms.Interpolation.SendGhWorldtubeDataCallback", | ||
"[Unit][Cce]") { | ||
MAKE_GENERATOR(gen); | ||
template <bool LTS, typename Generator> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LTS
-> LocalTimeStepping
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done! Cheers.
967ef2b
to
de3ee71
Compare
Proposed changes
This PR adds a GH+CCE executable for a gauge wave (without horizons). It lays the foundation for CCM. The system is not compatible with the local time stepping.
Upgrade instructions
I add one more template to
SendGhWorldtubeData
so that it can distinguish betweenLTS
andGTS
. Please remember to update yourCceWorldtubeTarget
@knelli2Code review checklist
make doc
to generate the documentation locally intoBUILD_DIR/docs/html
.Then open
index.html
.code review guide.
bugfix
ornew feature
if appropriate.Further comments