Skip to content

Extend quadrature types and improve interpolation interfaces - #338

Merged
vickysharma0812 merged 12 commits into
devfrom
vikas-dev
Jul 14, 2026
Merged

Extend quadrature types and improve interpolation interfaces#338
vickysharma0812 merged 12 commits into
devfrom
vikas-dev

Conversation

@vickysharma0812

Copy link
Copy Markdown
Member

This pull request introduces several significant changes to the codebase, focusing on refactoring and modularization, particularly for convergence options and interpolation utilities. It removes the IterationData module and related types, introduces a new ConvergenceOptUtility module, and makes various improvements and cleanups in interpolation methods and type definitions.

The most important changes are:

Convergence Options Refactoring

  • Added a new module ConvergenceOptUtility with utility functions for converting between convergence types, convergence-in types, and norm types (character/integer/string), and included it in the build system. [1] [2] [3]
  • Extended the ConvergenceOpt_ and QuadratureOpt_ types to support new options such as NormL1, NormInfinity, and Center. [1] [2]

Iteration Data Removal

  • Removed the IterationData_ type and all associated interfaces, methods, and build system references, simplifying the codebase and removing now-unneeded functionality. [1] [2] [3] [4]

Interpolation and Quadrature Improvements

  • Improved the handling of interpolation point names and values, adding support for "CENTER" in InterpolationPoint_ToInteger and InterpolationPoint_ToChar functions, and fixing case-sensitivity and naming consistency. [1] [2]
  • Refactored USE statements in BaseInterpolation_Method for clarity and maintainability.

Type and Interface Cleanups

  • Moved and reordered member variables in the DOF_ and RealVector_ types for clarity and consistency (e.g., val instead of Val), and adjusted related code accordingly. [1] [2] [3]
  • Cleaned up and clarified interfaces in ElemshapeData_InterpolMethods, fixing documentation and interface definitions for interpolation methods. [1] [2] [3] [4] [5]

Miscellaneous

  • Added new constants (three, minus_three) to BaseType for mathematical convenience.

These changes collectively improve modularity, maintainability, and extendability of the codebase, especially in convergence and interpolation handling.

Expose the new `CenterQP` quadrature option through `BaseType`, add `three` and `minus_three` constants to `MathOpt_`, and update related type declarations for consistency. The DOF metadata fields are moved ahead of allocatable members, and `RealVector_` now uses the lowercase `val` component name.
Adds a new quadrature point type constant `CenterQP = 0` to the GlobalData module, alongside the existing QP type parameters.
Update `BaseInterpolation_Method` to recognize the `CENTER` interpolation point in both string-to-enum and enum-to-string conversions, and reformat the `BaseType` imports to follow the project's one-symbol-per-line `USE, ONLY` style.
Refactor USE statement to import FEVariable_ and TypeFEVariableOpt on separate lines, following the project style guide requiring one import per line.
Name the `ConditionNo` and `GetInvMat` interface blocks directly instead of declaring separate `MODULE PROCEDURE` bindings. This cleans up the generic interface definitions in `GE_CompRoutineMethods.F90` and also tightens the related routine documentation formatting.
Extend triangle interpolation utilities to handle `ipopt%Center` by returning the triangle centroid for both default and mapped coordinates. The update also aligns the file with project conventions by using `TypeMathOpt` constants, improving debug assertions, and cleaning up formatting and dead commented code.
Adds a new `QuadratureVariable` overload (`Quadrature_Vector_Constant2`) for creating constant vector quadrature variables with typed `rank` and `vartype` arguments, wiring it through both the module interface and submodule implementation. Also includes minor formatting cleanup in FEVariable method files.
Refactor the USE statement in ElemshapeData_InterpolMethods to follow the project's code style convention where each item imported from the same module should be on its own line, rather than comma-separated on a single line.
Rework the `ElemshapeData` interpolation interface blocks so each generic interface wraps its module procedures directly, and tidy the `FEVariable` imports to match the project’s one-item-per-`USE` style.
Refactors the interpolation methods submodule to use `TypeMathOpt` for shared constants, split `FEVariable_Method` imports onto separate lines, and add default branches in the select blocks for clearer control flow.
Removes the old `IterationData` module/type wiring from BaseType, BaseMethod, and CMake, and introduces a new `ConvergenceOpt` module/submodule with utility conversions between integer and string forms for convergence type, convergence target, and norm type. `ConvergenceOpt_` is extended with norm constants (`L1`, `L2`, `Infinity`) to support these mappings, and build lists are updated to compile the new module. Also includes a minor spacing fix in `BaseMethods.md`.
@vickysharma0812 vickysharma0812 self-assigned this Jul 14, 2026
@vickysharma0812
vickysharma0812 merged commit 5a1b977 into dev Jul 14, 2026
1 check failed
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.

1 participant