Skip to content

Conversation

@chemiskyy
Copy link
Member

This pull request significantly enhances the documentation build system by integrating C++ API documentation generation with Doxygen and Breathe, updating the Sphinx configuration, and improving the Makefile and CI workflow for a more robust and user-friendly experience. It also introduces new and expanded documentation pages for various modules and functions.

Documentation Build System Integration and Improvements:

  • Doxygen and Breathe Integration:

    • Adds a Doxyfile for C++ API documentation generation and configures Sphinx to use Breathe for rendering Doxygen XML output. This enables seamless integration of C++ API docs into the Sphinx-generated documentation. [1] [2]
    • Updates the Makefile to automate Doxygen generation, provide new targets (e.g., doxygen, html, html-only, clean-doxy, rebuild, serve, open), and improve developer experience with detailed help output. [1] [2]
    • Modifies the Sphinx configuration (conf.py) to run Doxygen automatically if needed, set up Breathe, and suppress specific warnings for smoother builds. [1] [2] [3]
  • CI Workflow Enhancements:

    • Updates the GitHub Actions workflow to install Doxygen, generate Doxygen XML before building Sphinx docs, and cache both Sphinx and Doxygen outputs for faster builds. [1] [2]
    • Adjusts build and deployment paths to use the new _build directory structure, ensuring consistency across local and CI builds. [1] [2] [3]

Expanded and New Documentation:

  • C++ API Documentation:

    • Adds new reStructuredText files in docs/cpp_api/continuum_mechanics/functions/ for key C++ headers (constitutive.hpp, contimech.hpp, criteria.hpp, damage.hpp) with overviews and links to Doxygen-generated API references. [1] [2] [3] [4]
  • Python API Documentation:

    • Introduces new or expanded function reference pages for hyperelasticity, recovery of elastic properties, stress conversions, and Voigt/matrix transfer helpers, improving discoverability and usability of the Python API. [1] [2] [3] [4]

Other Improvements:

  • Updates Sphinx-Gallery configuration for better compatibility and maintainability.

Most important changes:

Documentation build system & CI integration:

  • Added Doxyfile and integrated Doxygen with Sphinx via Breathe for automated C++ API documentation, including configuration in both the Makefile and conf.py. [1] [2] [3] [4]
  • Updated the GitHub Actions workflow to install Doxygen, generate XML, and cache _build outputs, ensuring consistent and efficient documentation builds and deployments. [1] [2] [3] [4]

Expanded documentation content:

  • Added new C++ API documentation pages with overviews and Doxygen group references for constitutive.hpp, contimech.hpp, criteria.hpp, and damage.hpp. [1] [2] [3] [4]
  • Introduced or expanded Python API documentation for hyperelasticity, elastic property recovery, stress conversions, and Voigt/matrix transfer helpers. [1] [2] [3] [4]

Developer experience improvements:

  • Enhanced the documentation Makefile with new targets, improved help output, and streamlined workflows for local development and CI. [1] [2]
  • Updated Sphinx-Gallery configuration to avoid unpicklable objects and improve reliability.

Added Doxygen and Breathe support for C++ API documentation. Updated the GitHub Actions workflow, Makefile, and Sphinx configuration to automate Doxygen XML generation and integrate it with Sphinx via Breathe. Improved Makefile usability with new targets and enhanced documentation build process.
Introduces comprehensive Doxygen-based C++ API documentation integrated with Sphinx, including module and function references for continuum mechanics, simulation, homogenization, and UMATs. Adds detailed guides and examples for developing external user material plugins in native, Abaqus, and Ansys formats. Updates external.rst with plugin interface documentation and build instructions.
Deleted the entire doxdocs directory, including Doxyfile, Makefile, Sphinx configuration, and related documentation sources. This removes Doxygen and Sphinx-based documentation generation from the project.
Changed the documentation deployment workflow to deploy to simcoon-docs/main only for the main branch and to simcoon-docs/PRXX for each pull request. Updated branch checks and deployment settings accordingly.
Updated function and constructor signatures across multiple headers to use explicit parameter names, improving code readability and maintainability. Added a new 'umat_plugin_ans_api' interface for ANSYS UMAT plugins. Also standardized friend stream operator signatures and removed redundant nested class definitions.
Introduces a comprehensive overview document for the Continuum Mechanics C++ API, detailing module organization, mathematical foundations, usage patterns, design philosophy, and references. This serves as a guide for users and developers to understand the structure and capabilities of the continuum mechanics components.
Introduces a comprehensive overview of the Simulation module, detailing its architecture, key components, workflows, and advanced features. This documentation serves as a reference for users and developers to understand simulation execution, phase management, parameter identification, mathematical utilities, and geometric primitives.
Enhanced the header documentation for the compressible Neo-Hookean hyperelastic constitutive model, providing detailed mathematical formulation, parameter descriptions, usage example, and references. The function signature was updated for clarity, but no functional code changes were made.
Expanded and standardized Doxygen-style documentation for damage, elasticity, and plasticity UMAT header files. The updates provide comprehensive descriptions of model equations, parameters, state variables, usage examples, and references, improving clarity and usability for developers and users.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants