Files

127 lines
4.9 KiB
Markdown
Raw Permalink Normal View History

2026-01-23 16:20:29 +01:00
# Repository Map
This document provides an overview of the ResInsight repository structure and key file locations.
## Top-Level Directory Structure
```
ResInsight/
├── ApplicationExeCode/ # Main executable entry points
│ └── RiaMain.cpp # Application entry point
├── ApplicationLibCode/ # Domain-specific functionality
│ ├── Commands/ # Command framework implementations
│ ├── ResultStatisticsCache/
│ └── GeoMech/ # Geomechanics modules
├── Fwk/ # Framework libraries
│ ├── VizFwk/ # Visualization framework (Qt/OpenGL)
│ │ ├── LibCore
│ │ ├── LibGeometry
│ │ ├── LibRender
│ │ ├── LibViewing
│ │ └── LibGuiQt
│ └── AppFwk/ # Application framework
│ ├── PDM system # Project Data Model for serialization
│ ├── Command framework # Undo/redo operations
│ └── UI components # Qt-based user interface
├── GrpcInterface/ # gRPC integration
│ └── Python/ # Python API
│ └── rips/ # Python package
├── ThirdParty/ # Third-party dependencies (git submodules)
│ └── vcpkg/ # vcpkg package manager
├── TestModels/ # Test data and models
├── cmake/ # CMake modules and utilities
├── docs/ # Documentation
│ ├── agents/ # Agent-specific documentation
│ └── class-diagrams/ # PlantUML class diagrams
├── scripts/ # Build and utility scripts
├── tooling/ # Development tools
├── CMakeLists.txt # Main CMake configuration
├── CMakePresets.json # CMake build presets
├── ResInsightVersion.cmake # Version information
└── vcpkg.json # vcpkg dependencies
```
## Key Files
### Build Configuration
- `CMakeLists.txt` - Main CMake configuration
- `CMakePresets.json` - Predefined build configurations
- `CMakeUserPresets-example-linux.json` - Example user presets for Linux
- `CMakeUserPresets-example-windows.json` - Example user presets for Windows
- `vcpkg.json` - vcpkg dependency manifest
- `vcpkg-configuration.json` - vcpkg configuration
### Version and Documentation
- `ResInsightVersion.cmake` - Version definitions (2025.04.4-dev)
- `README.md` - Project overview and getting started
- `COPYING` - License information
- `docs/agents/` - Agent documentation
- `core.md` - Core agent guidelines
- `build.md` - Build system documentation
- `coding-style.md` - Coding style guidelines
- `repo-map.md` - This file
### Code Formatting
- `.clang-format` - clang-format configuration for C++ code
- `.codespellrc` - codespell configuration
- `.codespell-ignore` - codespell ignore list
- `.misspell-fixer.ignore` - misspell-fixer ignore list
### Source Code Organization
#### Visualization Framework (Fwk/VizFwk/)
Core 3D rendering using Qt/OpenGL with libraries for:
- Geometry processing
- Rendering pipeline
- View management
- Qt GUI integration
#### Application Framework (Fwk/AppFwk/)
- **PDM System**: Project Data Model for:
- Object serialization
- UI generation
- Field validation
- **Command Framework**: Undo/redo operations
- **UI Components**: Qt-based widgets and dialogs
#### Application Code (ApplicationLibCode/)
Domain-specific functionality including:
- Eclipse file format integration
- ODB (ABAQUS) support
- Well path and completion management
- Grid and geometry processing
- Result statistics and caching
Scripting-related folders:
- `ProjectDataModelCommands/` - `Rimc*` object methods exposed to Python (`caf::PdmObjectMethod`).
This is where new scriptable functionality goes.
- `CommandFileInterface/` - legacy `Ricf*` command file commands. Thin id-to-object forwarders to
the `Rimc*` methods; see `RicfCommandForwarding.h`. Keywords are frozen for backward compatibility.
2026-01-23 16:20:29 +01:00
#### Python Integration (GrpcInterface/Python/)
- gRPC server implementation
- Python API (rips package)
- Generated Python classes from PDM objects
- Test suite for Python API
## Data File Formats
ResInsight supports various reservoir simulation file formats:
- Eclipse binary: `*.GRID`, `*.EGRID`, `*.INIT`, `*.XNNN`, `*.UNRST`
- ABAQUS ODB files (when `RESINSIGHT_ODB_API_DIR` configured)
- OpenVDS seismic data
- Well and completion data formats
## Build Outputs
Build artifacts are placed in:
- Linux: `build/` directory (or preset-specific directory)
- Windows: `build/RelWithDebInfo/`, `build/Debug/`, etc.
- Python generated classes: `build/Python/rips/generated/generated_classes.py`
## Testing
- Unit tests: Various test executables
- Integration tests: CTest-based test suites
- Python tests: `GrpcInterface/Python/rips/tests/`
- Test data: `TestModels/` directory