Skip to content

ChemicalEvolutionInterface #1283

Description

@elkogerville

With the addition of chemical evolution codes like Krome and Uclchem, an interface to unify them is needed.
The ChemicalEvolutionInterface interface should live in src/amuse/community/interface along with the other interfaces like GravitationalDynamicsInterface, etc..

  • Create chem.py in src/amuse/community/interface
  • Identify the common setters and getters between Krome and Uclchem
    • Core AMUSE methods (evolve model, commit_particles)
    • Chem specific methods (set_abundances, get_firstlast_species_index)
  • Create the ChemicalEvolutionInterface Class
    • Add setters and getters as legacy / remote functions
  • Create the ChemicalEvolution class
    • Add the methods defined in the ChemicalEvolutionInterface as either methods, properties, or parameters
    • Define particle sets
    • Define state model
  • Create a set of Mixins to differentiate between chemistry codes that use temperature + number density and codes that use internal energy + density, mimic the naming convention found in gd.py
    • Create ChemDensityInternalEnergyInterface and ChemDensityInternalEnergy
    • Create ChemNumberDensityTemperatureInterface and ChemNumberDensityTemperature
  • Vectorize retrieving and setting abundances due to large overhead when doing this sequentially
  • Refactor Krome to use these interfaces
  • Refactor Uclchem to use these interfaces

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

kind: feature requestThe issue requests a feature that AMUSE does not currently have

Type

No type

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions