This is a cookiecutter template for creating new S4L simulator plugins based on the heat-conduction plugin structure.
- cookiecutter
- Python 3.11 or higher
-
Install cookiecutter:
pip install cookiecutter
-
Generate a new S4L plugin:
cookiecutter cookiecutter-s4l-plugin/
-
Follow the prompts to customize your plugin.
plugin_name
: Name of the plugin (e.g., "heat-conduction")package_name
: Python package name (automatically derived from plugin_name)plugin_display_name
: Display name for the plugin in the S4L interfaceplugin_description
: Description of the plugin's functionalityauthor_name
: Your nameauthor_email
: Your emailversion
: Initial version of your pluginpython_requires
: Python version requirements
The generated plugin will have the following structure:
plugin-name/
├── .gitignore
├── LICENSE
├── README.md
├── integration/
│ └── simulator_icon.png
├── manifest.json
├── setup.py
├── src/
│ └── package_name/
│ ├── __init__.py
│ ├── controller/
│ │ ├── __init__.py
│ │ ├── simulation_binding.py
│ │ └── simulation_manager.py
│ ├── model/
│ │ ├── __init__.py
│ │ ├── boundary_settings.py
│ │ ├── example_plots.py
│ │ ├── grid_settings.py
│ │ ├── material_settings.py
│ │ ├── setup_settings.py
│ │ ├── simulation.py
│ │ ├── simulation_extractor.py
│ │ ├── solver_settings.py
│ │ └── source_settings.py
│ ├── register.py
│ └── solver/
│ ├── __init__.py
│ └── driver/
│ ├── __init__.py
│ ├── api_models.py
│ └── main.py