# CarbonDrift Blueprint

The diagram above outlines the terminal simulation implementation.

1. First we can provide a number of inputs into run_simulation() from say a .txt file (see Terminal Simulation).

1. The seeding data is provided from a pickle file, which can be constructed from the Seed class.

2. The run_simulation() method then preforms some preprocessing.

1. First it classifies inputs into groups in the Parameters class.
2. Next it reads the seed-data in the SeedFromFile class.

3. Next, it reads the simulation type. If sim is set to grid, the GridRun class is accessed, which runs the normal simulation splitfactor times with less particles.
4. Next, based on the decaytype parameter, a CarbonDrift object is initialized either from models.massdecay.carbondrift or models.areadecay.carbondrift for mass-dependent decay or surface-dependent decay, respectively.
5. The chosen model is then ran for st simulation steps, where the main methods that are called in the update() method are shown.
6. Finally, the simulation is saved to a netCDF outfile.