A Python package for analyzing solubility and acid formation behavior in Carbon Capture and Storage (CCS) systems
Project description
SolubilityCCS
A Python package for analyzing solubility and acid formation behavior in Carbon Capture and Storage (CCS) systems.
Installation
From PyPI (Recommended)
pip install solubilityCCS
From Source
git clone <repository-url>
cd SolubilityCCS
pip install -e .
Quick Start
from solubilityCCS import Fluid
# Create a fluid system
fluid = Fluid()
fluid.add_component("CO2", 0.999)
fluid.add_component("H2SO4", 10e-6) # 10 ppm
fluid.add_component("H2O", 10e-6) # 10 ppm
# Set conditions
fluid.set_temperature(275.15) # 2°C
fluid.set_pressure(60.0) # 60 bara
# Perform calculations
fluid.calc_vapour_pressure()
fluid.flash_activity()
# Analyze results
print(f"Gas phase fraction: {fluid.betta}")
print(f"Number of phases: {len(fluid.phases)}")
Features
- Fluid property calculations for CO2-acid-water systems
- Phase behavior analysis using NeqSim
- Acid formation risk assessment
- Support for various acids (H2SO4, HNO3, etc.)
- Comprehensive testing suite
Development Setup
Prerequisites
- Python 3.8 or higher
- Git
Quick Start
-
Clone the repository:
git clone <repository-url> cd SolubilityCCS
-
Install dependencies:
make install-dev -
Set up pre-commit hooks (REQUIRED):
make setup-pre-commit -
Run tests:
make test
Pre-commit Hooks
This project uses pre-commit hooks to ensure code quality. All commits must pass pre-commit checks.
Pre-commit hooks include:
- Code formatting (black, isort)
- Linting (flake8)
- Type checking (mypy)
- Security scanning (bandit)
- Documentation style (pydocstyle)
- General code quality checks
To run pre-commit manually:
pre-commit run --all-files
Development Commands
# Install dependencies
make install-dev
# Set up pre-commit hooks
make setup-pre-commit
# Format code
make format
# Run linting
make lint
# Run type checking
make type-check
# Run security checks
make security-check
# Run tests
make test
make test-coverage
make test-unit
make test-integration
# Clean up artifacts
make clean
Usage
Basic Example
from fluid import Fluid
# Create a fluid with CO2, acid, and water
fluid = Fluid()
fluid.add_component("CO2", 0.999)
fluid.add_component("H2SO4", 10e-6) # 10 ppm
fluid.add_component("H2O", 10e-6) # 10 ppm
# Set conditions
fluid.set_temperature(275.15) # 2°C
fluid.set_pressure(60.0) # 60 bara
# Perform calculations
fluid.calc_vapour_pressure()
fluid.flash_activity()
# Analyze results
print(f"Gas phase fraction: {fluid.betta}")
print(f"Number of phases: {len(fluid.phases)}")
Contributing
Please see CONTRIBUTING.md for detailed contribution guidelines.
Important: Pre-commit hooks are required for all contributions. Make sure to run make setup-pre-commit after cloning the repository.
License
See LICENSE for license information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file solubilityccs-0.1.0.tar.gz.
File metadata
- Download URL: solubilityccs-0.1.0.tar.gz
- Upload date:
- Size: 103.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5c906390c9b687cb23e22f43c9f8dd4b16f40b8f6379dd64c1b6a0dcf0a663f0
|
|
| MD5 |
583aceb957761bd3b3a641aab3cd4fa5
|
|
| BLAKE2b-256 |
2519abeff8c7a881a8daffe252f84662d924034c7ad6a9494b3526ffbc6f519a
|
File details
Details for the file solubilityccs-0.1.0-py3-none-any.whl.
File metadata
- Download URL: solubilityccs-0.1.0-py3-none-any.whl
- Upload date:
- Size: 42.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
947e1220b2e2654df0153705e75d9bcce50045487ac7c19422f4209718b710dc
|
|
| MD5 |
50eac1b4c80803ecde2793f6d2c4b4ba
|
|
| BLAKE2b-256 |
8ca82186ee99bc8157b17745b86f1515ffa0aa0dd9c0fa7d820a19871d7f2caa
|