Skip to content

Latest commit

 

History

History
37 lines (24 loc) · 1.4 KB

File metadata and controls

37 lines (24 loc) · 1.4 KB

Agent instructions for OpenGeoSys-6

Project: Scientific THMC simulation framework in modern C++. See README.md for overview.

Mandatory code standards

C++: C++23 standard (required). Use ranges-v3 (not std::ranges), Eigen (not raw loops). Follow style guide.

CMake: 3.31+, target-based commands, no global variables.

Python: black-based formatting. ruff check linter.

Documentation: British English spelling (colour, behaviour).

Architecture layers

Foundation: BaseLib → MathLib → NumLib Geometry: GeoLib, MeshLib, MeshGeoToolsLib, MeshToolsLib Materials: MaterialLib (MPL), ParameterLib Processes: ProcessLib (20+ process implementations) Apps: CLI, ApplicationsLib, FileIO, Utils, DataExplorer(Qt)

Process implementation pattern (REQUIRED)

Every process must have:

  1. {Name}Process.h - Inherits Process, manages assembly/timestepping
  2. {Name}ProcessData.h - Material properties, parameters, solver configuration
  3. {Name}LocalAssembler.h - Element-level assembly (M, K, b matrices)
  4. Create{Name}Process.h - Factory from XML configuration

Testing & validation

  • Unit tests: Tests/{LibName}/ (Google Test)
  • Integration tests: Tests/Data/{ProcessName}/ (.prj files with reference outputs)
  • Always run ctests from release build.
  • Check .clang-format, .clang-tidy for linting rules