Metadata-Version: 2.1
Name: pf-simulation-modeler
Version: 0.1.1
Summary: Parflow Simulation modeler
Author: Kitware Inc.
License: Apache Software License
Keywords: Python,Interactive,Web,Application,Framework
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: JavaScript
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Description-Content-Type: text/markdown
License-File: LICENSE

# Parflow Simulation Modeler

## License

Free software: Apache Software License

## Installing

Create virtual environment

```bash
python -m venv .venv
source .venv/bin/activate
```

Build and install the Vue components

```bash
export NODE_OPTIONS=--openssl-legacy-provider
cd vue-components
npm i
npm run build
cd -
```

Install the application

```bash
pip install -e .
```

Run the application

```bash
pf-simulation-modeler --help
pf-simulation-modeler --server --port 1234 -D data/database/ -S data/share/ -O data/output/
```

## Documentation

- [Engine](docs/engine.md) Structure
  - [Snippets](docs/snippets.md)
- [UI](docs/ui.md) Structure
- Server [`state` and `ctrl`](docs/server.md) variables

## File Structure

```bash
- pf_simulation_modeler/
    - app/
        - engine/
            - model/    # Simput model/UI definitions
            - snippets/ # Logic for page code snippets
            - engine.py # Main logic handler
            - ...       # Logic components (generally specific to pages)

        - ui/
            - ui.py # Main UI handler
            - ...   # UI components (pages)

        - main.py # Entry point

    - module/  # Serves the compiled Vue components
    - widgets/ # Python wrapper around the Vue components

- vue-components/src/components/ # Custom Vue components
    - FileDatabase/ # FileDatabase Vue component
        - index.vue     # Vue component
        - script.js     # JS logic
        - template.html # HTML template

    - ... # Other Vue components

- data/ # Data files (used for cli args)
    - database/ # FileDatabase data
    - output/   # Project Output data
    - share/    # Shared data
```
