You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Beginning with PR #341, Enzo-E is in the process of refactoring the way that parameters from the parameters file are retrieved and used to configure various classes of objects throughout the Cello and Enzo layers.
The new approach for configuring instances of subclasses of Method and Initial is described here in more detail.
We need help with this process. This would be an excellent way for first time contributors to contribute to Enzo-E.
What Needs to Be Done:
Time permitting, I would love to add more details about the specifics of completing this process. But for now the following 2 links show examples of what needs to be done.
2 Existing Pull Requests exist that demonstrate how this is done.
Guidelines: please have each pull request perform this refactoring on just a single class (that way this is easy to review). A number of classes have already been refactored. Please pick from the list down below (and maybe leave a comment down below so we can make sure nobody duplicates your efforts).
Quick tip: if you encounter an initializer that expects gamma (adiabatic index), you should access it with double gamma = enzo::fluid_props()->gamma();
Cases that need to be addressed:
At the moment, this is a somewhat incomplete list (but I plan to update it -- I definitely need to add Method classes). I've tried to sort in terms of which will be easier/more straightforward and which will be more difficult (but, I only took a quick glance so my sorting may be wrong).
EnzoInitialImplosion2 (especially easy: just make ParameterGroup* an argument of the constructor; it doesn't need to access any parameter) -- reserved by @jakereinheimer
EnzoInitialPpmlTest (especially easy: just replace the EnzoConfig* constructor argument with ParameterGroup. It doesn't actually need to access any parameters) -- reserved by @jakereinheimer
EnzoInitialBurkertBodenheimer (need to remove internal usage of EnzoConfig)
EnzoInitialCosmology
EnzoInitialMergeSinksTest
EnzoInitialPm (this is marked as difficult just because of the use std::shared_ptr and the Mask class which may be a little tricky if you haven't done much C++ in the past)
EnzoInitialIsolatedGalaxy
EnzoInitialSedovArray2, EnzoInitialSedovArray3, EnzoInitialSedovRandom (I vaguely recall that the parameter access code is currently very interrelated between these objects)
EnzoInitialTurbulence (I think a pending PR might make this a little more complicated)
Cases from the Cello Layer: (these don't perfectly follow the above template)
InitialTrace (should actually be fairly easy to address)
InitialValue -- reserved by @mabruzzo (happy to let someone else tackle this, but it's very tricky)
Beginning with PR #341, Enzo-E is in the process of refactoring the way that parameters from the parameters file are retrieved and used to configure various classes of objects throughout the Cello and Enzo layers.
The new approach for configuring instances of subclasses of
Method
andInitial
is described here in more detail.We need help with this process. This would be an excellent way for first time contributors to contribute to Enzo-E.
What Needs to Be Done:
Time permitting, I would love to add more details about the specifics of completing this process. But for now the following 2 links show examples of what needs to be done.
2 Existing Pull Requests exist that demonstrate how this is done.
EnzoInitiailCloud
into constructor #379 illustrates a fairly straight-forward exampleEnzoInitiailFeedbackTest
into constructor #378 shows a more involved example. It demonstrates that we don't want our refactored classes to access the contents ofEnzoConfig
, which can be accomplished withenzo::config()
(we also don't want them to accessConfig
, which can be retrieved withcello::config()
)Guidelines: please have each pull request perform this refactoring on just a single class (that way this is easy to review). A number of classes have already been refactored. Please pick from the list down below (and maybe leave a comment down below so we can make sure nobody duplicates your efforts).
Quick tip: if you encounter an initializer that expects
gamma
(adiabatic index), you should access it withdouble gamma = enzo::fluid_props()->gamma();
Cases that need to be addressed:
At the moment, this is a somewhat incomplete list (but I plan to update it -- I definitely need to add
Method
classes). I've tried to sort in terms of which will be easier/more straightforward and which will be more difficult (but, I only took a quick glance so my sorting may be wrong).More straight-forward cases:
EnzoInitialAccretionTest
-- reserved by @jakereinheimerEnzoInitialBBTest
-- reserved by @jakereinheimerEnzoInitialCollapse
EnzoInitialImplosion2
(especially easy: just makeParameterGroup*
an argument of the constructor; it doesn't need to access any parameter) -- reserved by @jakereinheimerEnzoInitialPpmlTest
(especially easy: just replace theEnzoConfig*
constructor argument withParameterGroup
. It doesn't actually need to access any parameters) -- reserved by @jakereinheimerRelatively more difficult cases:
EnzoInitialBCenter
-- reserved by @mabruzzoEnzoInitialBurkertBodenheimer
(need to remove internal usage ofEnzoConfig
)EnzoInitialCosmology
EnzoInitialMergeSinksTest
EnzoInitialPm
(this is marked as difficult just because of the usestd::shared_ptr
and theMask
class which may be a little tricky if you haven't done much C++ in the past)EnzoInitialIsolatedGalaxy
EnzoInitialSedovArray2
,EnzoInitialSedovArray3
,EnzoInitialSedovRandom
(I vaguely recall that the parameter access code is currently very interrelated between these objects)EnzoInitialTurbulence
(I think a pending PR might make this a little more complicated)Cases from the Cello Layer: (these don't perfectly follow the above template)
InitialTrace
(should actually be fairly easy to address)InitialValue
-- reserved by @mabruzzo (happy to let someone else tackle this, but it's very tricky)Addressed cases awaiting review:
EnzoInitialShuCollapse
EnzoInitialShuCollapse parameter refactorization #388EnzoInitialGrackleTest
(CleanupEnzoInitialGrackleTest
and port parameter retrieval #406 -- the PR does other things to this class too)Completed Cases:
EnzoInitialSoup
EnzoInitialSoup parameter refactorization #387EnzoInitialCloud
Migrate Parameter Parsing: moved configuration ofEnzoInitiailCloud
into constructor #379EnzoInitialFeedbackTest
Migrate Parameter Parsing: moved configuration ofEnzoInitiailFeedbackTest
into constructor #378EnzoInitialInclinedWave
EnzoInitialShockTube
The text was updated successfully, but these errors were encountered: