Skip to content
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

Package Design Discussions #15

Open
emptymalei opened this issue Feb 26, 2024 · 2 comments
Open

Package Design Discussions #15

emptymalei opened this issue Feb 26, 2024 · 2 comments
Labels

Comments

@emptymalei
Copy link
Member

emptymalei commented Feb 26, 2024

I am thinking about the high level design of this package and came up with this:

flowchart LR

subgraph "Models"

subgraph "Physics"


subgraph "Analytical"

harmonic_oscillator["Harmonic Oscillators"]

models_physics_more["..."]

end

subgraph "Numerical"

three_body["Three Body Problem"]

models_physics_numerical_more["..."]

end

end

subgraph "Statistics"

poison_process["Poison Process"]

models_statistics_more["..."]

end


end


subgraph "Combining Data (May not be important/urgent)"

adding["+ values in multiple datasets:\nmodel_1 + model_2"]

multiplying["* values in multiple datasets:\nmodel_1 * model_2"]

end


subgraph "Config"

config_for_model["Yaml config of model"]

pre_configged_models["Pre-configged models and \ngenerate dataset from config"]


end
Loading

I don't think we need to code everything by ourselves. We just need a few some representative examples.

Models

We create pandas dataframes (maybe series for 1d data?) as the output.

Physics (Analytical)

Physics models with analytical solutions are the easiest to build. We might just include some initial value problems and for that, we have three key components:

  • definition of the system
  • initial condition
  • solution

Physics (Numerical)

There might be models we want to build but they have no analytical solutions. We could simply apply scipy to solve some simple cases, for now.

Statistics

These are usually some iterative or repetitive processes. Sample or iterate to generate a series.

Combining Data

I ran into many situations that I need to combine different models to make the data useful. For example, I need to combine a harmonic oscillator and some Gaussian noise to test how my model reacts to noise.

Config

Starting from the first model #8 , we made it easy to create models using configs. This will be our core design principles.

In the end, we will create different sets of configs, be it yaml or json, to define datasets. Then we can easily rebuild and release datasets.

@cmp0xff
Copy link
Collaborator

cmp0xff commented Mar 25, 2024

I need a more explicit example for the diagram, e.g. for the yaml file. I cannot easily get the ideas as they are represented here.

@emptymalei
Copy link
Member Author

I need a more explicit example for the diagram, e.g. for the yaml file. I cannot easily get the ideas as they are represented here.

See #46 #47

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants