Metadata-Version: 2.1
Name: aerosim-cfdmod
Version: 1.1.2
Summary: Tools for analysis of CFD cases
Home-page: https://github.com/AeroSim-CFD/cfdmod
License: Apache-2.0
Author: Waine Oliveira Jr
Author-email: waine@aerosim.io
Requires-Python: >=3.10,<4.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Provides-Extra: docs
Provides-Extra: geometry
Provides-Extra: lnas
Provides-Extra: notebook
Provides-Extra: vtk
Requires-Dist: aerosim-lnas (>=0.6.0,<0.7.0)
Requires-Dist: colorama (>=0.4.6,<0.5.0)
Requires-Dist: ipykernel (>=6.25.2,<7.0.0) ; extra == "notebook"
Requires-Dist: ipython (>=8.15.0,<9.0.0) ; extra == "notebook"
Requires-Dist: jupyter (>=1.0.0,<2.0.0) ; extra == "notebook"
Requires-Dist: matplotlib (>=3.7.3,<4.0.0)
Requires-Dist: myst-parser (>=2.0.0,<3.0.0) ; extra == "docs"
Requires-Dist: nbsphinx (>=0.9.3,<0.10.0) ; extra == "docs"
Requires-Dist: numpy (>=1.26.0,<2.0.0)
Requires-Dist: pandas (>=2.1.0,<3.0.0)
Requires-Dist: pyarrow (>=15.0.0,<16.0.0)
Requires-Dist: pydantic (>=2.3,<3.0)
Requires-Dist: pymeshlab (>=2023,<2024) ; extra == "geometry"
Requires-Dist: pyvista (>=0.43.1,<0.44.0) ; extra == "vtk"
Requires-Dist: ruamel-yaml (>=0.18.5,<0.19.0)
Requires-Dist: scipy (>=1.11.2,<2.0.0)
Requires-Dist: sphinx-autobuild (>=2021.3.14,<2022.0.0) ; extra == "docs"
Requires-Dist: sphinx-book-theme (>=1.0.1,<2.0.0) ; extra == "docs"
Requires-Dist: sphinxcontrib-bibtex (>=2.6.1,<3.0.0) ; extra == "docs"
Requires-Dist: tables (>=3.9.1,<4.0.0)
Requires-Dist: trimesh (>=3.23.5,<4.0.0) ; extra == "geometry"
Requires-Dist: vtk (>=9.2.6,<10.0.0) ; extra == "vtk"
Project-URL: Repository, https://github.com/AeroSim-CFD/cfdmod
Description-Content-Type: text/markdown

# cfdmod

[![Testing Pipeline](https://github.com/AeroSim-CFD/cfdmod/actions/workflows/testing.yaml/badge.svg)](https://github.com/AeroSim-CFD/cfdmod/actions/workflows/testing.yaml)
[![Docs Deploy](https://github.com/AeroSim-CFD/cfdmod/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/AeroSim-CFD/cfdmod/actions/workflows/pages/pages-build-deployment)
[![Linting Workflow](https://github.com/AeroSim-CFD/cfdmod/actions/workflows/linting.yaml/badge.svg)](https://github.com/AeroSim-CFD/cfdmod/actions/workflows/linting.yaml)
[![Release artifacts](https://github.com/AeroSim-CFD/cfdmod/actions/workflows/build_and_deploy_artifacts.yaml/badge.svg)](https://github.com/AeroSim-CFD/cfdmod/actions/workflows/build_and_deploy_artifacts.yaml)

Package to provide analysis and processing tools for CFD cases

## Tests

This codebase uses Pytest framework and it features tests for loft, cp, s1profile, config_models and altimetry modules. To run the tests via CLI:

```bash
poetry run pytest <path/to/tests>
```

The tests can also be automated to run in different environments, and include dist build commands using <a href="https://tox.wiki/en/stable/" target="_blank">tox</a>:

```bash
poetry run tox
```

## Memory usage profiling

In order to check memory usage, _memory-profiler_ library is used.
First, install memory-profiler:

```bash
pip install -U memory-profiler
```

And activate the poetry virtual environment:

```bash
poetry shell
```

Then, run:

```bash
mprof run -C -M python path_to_script.py
mprof plot
```

That will plot the latest profiling data.

## Generating schemas

Schema files serve as a guide to fill config files.
To generate a schema file for every config model, use the following command:

```bash
poetry run python -m scripts.generate_schemas
```

In order to setup the schema in VSCode, edit `settings.json`, or the workspace file, to include:

```bash
"yaml.schemas": {
    "file:///path/to/cfdmod/output/schema-cfdmod.json": "**/cfdmod/**/\*.yaml"
}
```

