That is, World captures invariant facts that are not changed by the evolution of the planet's fast or slow dynamics. DynamicModels operate in reference to an instance of a World, informing the model of e.g. gravity, the planet's rotation, the strength of the Sun, etc.
Behaviour
I can create a World with default primary and calculated parameters.
When I have a dictionary of values, I can create a World with those calculated parameters.
Notes
There is some notion of a WorldInstance in that a World is notional and it gets reified when attached to a DynamicModel
You first need a non-GD representation of a dictionary (std::map<string, variant>??)
You might want to write lots of unit tests for the various static data because they're like formulas. e.g. one for what's the reference state, one for calculating gas constant from species, etc.
For impl you can crib a lot from pan-gaia's PlanetInfo but don't copy that interface because it sucked
Implement the
World
class.Has subtasks #6, #7, #8.
What??
A World captures three things:
That is, World captures invariant facts that are not changed by the evolution of the planet's fast or slow dynamics. DynamicModels operate in reference to an instance of a World, informing the model of e.g. gravity, the planet's rotation, the strength of the Sun, etc.
Behaviour
World
with default primary and calculated parameters.World
with those calculated parameters.Notes
There is some notion of a
WorldInstance
in that aWorld
is notional and it gets reified when attached to aDynamicModel
You first need a non-GD representation of a dictionary (
std::map<string, variant>
??)You might want to write lots of unit tests for the various static data because they're like formulas. e.g. one for what's the reference state, one for calculating gas constant from species, etc.
For impl you can crib a lot from pan-gaia's
PlanetInfo
but don't copy that interface because it sucked