-
-
Notifications
You must be signed in to change notification settings - Fork 9
Add comprehensive Doxygen documentation throughout the codebase #111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add comprehensive Doxygen documentation throughout the codebase #111
Conversation
Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com>
Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com>
Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com>
|
@copilot Please add more documentation. |
…l, Geometry, and Context modules Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com>
I've added comprehensive documentation to additional core modules including FormLanguage, Assembly, Variational, Geometry, and Context modules. The documentation includes:
Key additions in commit 88a3625:
The documentation maintains consistency with existing patterns while significantly expanding API coverage and mathematical rigor expected in finite element software. |
…omponents Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com>
Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com>
|
@copilot The copy() method Copyable does not necessarily perform a deep copy. It's used so that we can have polymorphic copy behaviour. Please reflect this. Also document more classes. |
…ility modules Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com>
I've updated the Copyable documentation to clarify that the copy() method provides polymorphic copy behavior rather than necessarily deep copying, as you requested. The documentation now correctly states that the copy semantics depend on the concrete implementation. I've also added comprehensive documentation to additional modules including:
All additions follow the established Doxygen patterns with @defgroup organization, detailed @param/@return documentation, and usage examples. Changes committed in 3666332. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## develop #111 +/- ##
===========================================
- Coverage 63.74% 63.73% -0.01%
===========================================
Files 134 135 +1
Lines 7161 7162 +1
===========================================
Hits 4565 4565
- Misses 2596 2597 +1 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
* Update * Update. * CI * CI * Update * Update * Refactor * Switch to OpenMP for multithreading * Remove thread pool * CI * Refactor * CI * CI * Workon MPI Poisson example * Will refactor GridFunction * Refactor * Update * Update * Small include error * Ownership and ghost * Fix * Fix * Update * GridFunction refactor (#102) PETSc * CI * CI * CI * CI * CI * CI * Refactor projection (#103) * Update * Refactor project and getValue * CI * CI * Add Release test build into matrix * Remove boost::bimap and fix tests * CI * CI * CI * CI * CI * cI * CI * Add comprehensive unit tests for Rodin Variational mathematical operations (#105) * Initial plan * Add comprehensive unit tests for core Rodin Variational classes Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Add comprehensive unit tests for additional core Rodin Variational classes Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Complete comprehensive unit test suite for Rodin Variational classes Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Remove any mention of RangeShape * Remove RangeShape references from DotTest, DivTest, and ComponentTest Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Remove all remaining RangeShape references from Rodin Variational test files Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Fix Copilot code * Add comprehensive unit tests for fundamental mathematical operations in Rodin Variational Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Add comprehensive unit tests for advanced mathematical operations in Rodin Variational Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Add tests * CI * CI * CI * CI --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> Co-authored-by: Carlos Brito <carlos.brito524@gmail.com> * Add comprehensive Doxygen documentation throughout the codebase (#111) * Initial plan * Add Doxygen documentation to Math, QF, IO, Solver modules and core types Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Add documentation to QF, Models, MPI, and Test modules Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Add documentation to core utility classes - Moveable and GeometryIndexed Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Add comprehensive documentation to FormLanguage, Assembly, Variational, Geometry, and Context modules Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Add documentation to additional Variational, Geometry, and Assembly components Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Complete documentation coverage with FiniteElementSpace and Plot modules Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Fix Copyable documentation and add comprehensive docs to Alert and Utility modules Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Fix build --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> Co-authored-by: Carlos Brito <carlos.brito524@gmail.com> * Add Helmholtz manufactured test * Add comprehensive unit tests for all major Rodin modules and classes (#112) * Initial plan * Initial assessment: Identify missing unit tests for src/Rodin classes Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Add unit tests for Copyable, Moveable, FlatSet, Types, and Cast classes Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Fix * Add unit tests for Utility, Alert, and QF classes Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Put the QF tests inside their own folder * Split QF tests into separate files by class Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Add comprehensive unit tests for Math, Test, and FormLanguage modules Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Add comprehensive unit tests for Plot, Models, Solver, and Assembly modules Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Fix tests * Split Alert tests into separate files by class in Alert directory Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Add comprehensive unit tests for Math module classes Unit, Rad, Traits, and LinearSystem Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Update README with logo * Fix tests * Update logo * Revert submodules to match develop branch state Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Remove QF abstract base class from tests * Fix GaussLegendre * Add comprehensive unit tests for GaussLegendre class Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> * Fix tests --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com> Co-authored-by: Carlos Brito <carlos.brito524@gmail.com> --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: cbritopacheco <6352283+cbritopacheco@users.noreply.github.com>
This PR addresses the missing and incomplete Doxygen documentation throughout the Rodin codebase by adding comprehensive API documentation following established patterns and best practices.
Documentation Coverage Added
Core Mathematical Infrastructure
LinearSystem.hwith mathematical notation for @f$ Ax = b @f$ interfaceQF1P1.h,QF2P1.h, andGaussLegendre.hwith mathematical foundationsFinite Element Framework
Problem.h: Core problem classes with weak formulation theory @f$ a(u,v) = l(v) @f$BilinearForm.h: Bilinear forms @f$ a(u,v) : V \times V \to \mathbb{R} @f$LinearForm.h: Linear forms @f$ l(v) : V \to \mathbb{R} @f$Function.h: Function representations with CRTP design patternsGridFunction.h: Discrete functions @f$ u_h = \sum_i u_i \phi_i @f$FiniteElementSpace.h: Finite element spaces with DOF managementAssembly Infrastructure
AssemblyBase.h: Template base classes for bilinear and linear form assemblySequential.h: Single-threaded deterministic assembly implementationOpenMP.h: Parallel assembly using OpenMP with thread-safe triplet accumulationGeometric Infrastructure
Mesh.h: Core mesh data structures with connectivity managementPolytope.h: Element definitions covering simplicial and tensor-product geometriesPoint.h: Spatial point representationsForm Language System
Base.h: Foundation class with UUID management and object lifetime handlingExecution Contexts
Base.h: Abstract context interface with serialization supportLocal.h: Single-machine execution contextAlert and Messaging System
Exception.h: Exception handling with formatted output and program terminationInfo.h: Informational messages with blue-colored formattingSuccess.h: Success notifications with green-colored formattingText.h: Rich text formatting with colors, attributes, and terminal effectsTemplate Metaprogramming Utilities
Extract.h: Type transformation utilities for tuple manipulationMake.h: Perfect forwarding factory template for object constructionOverloaded.h: Visitor pattern helper for lambda overloading with std::variantParameterPack.h: Compile-time parameter pack access and validationThread-Safe Containers
Unsafe.h: Debug-mode concurrent access detectionMutable.h: Thread-safe mutable wrapper with lock managementShared.h: Reader-writer lock wrapper for shared resourcesVisualization and I/O
Core Infrastructure
Types.hwith @defgroup organizationCopyable.h: Polymorphic copy interface with clarified semantics (not necessarily deep copy)Moveable.h: Move semantics interface with ownership transfer documentationArray.h,Tuple.h,Pair.h, andFlatSet.hwith comprehensive API documentationCast.hDocumentation Standards Applied
Key Fixes and Clarifications
copy()provides polymorphic copy behavior rather than guaranteeing deep copyingImpact
This documentation enhancement significantly improves:
The Rodin finite element library now features comprehensive documentation covering 60+ major classes with the mathematical rigor and technical depth expected in computational science software.
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.