Skip to content

Comments

Refactor UMAT interface and updated doc#60

Open
chemiskyy wants to merge 18 commits intomasterfrom
documentation
Open

Refactor UMAT interface and updated doc#60
chemiskyy wants to merge 18 commits intomasterfrom
documentation

Conversation

@chemiskyy
Copy link
Member

No description provided.

Updated all mechanical UMAT function signatures to include a `const std::string &umat_name` parameter for model identification and symmetry selection. Removed the SMA_mono_cubic model and consolidated SMA cubic symmetry support into the SMA_mono model. Improved documentation for external UMAT plugin interface and SMA monocrystal model, and cleaned up legacy or redundant parameters in elasticity and plasticity UMATs.
Updated all UMAT function signatures to include a 'const std::string &umat_name' parameter and removed unused or redundant arguments such as sigma_in and solver_type. Adjusted corresponding implementation files to match the new interfaces and removed conditional logic based on solver_type, always computing the tangent modulus Lt. This change standardizes the UMAT API for easier extensibility and plugin integration.
Deleted the Mooney-Rivlin constitutive model source and header files from the codebase. This removes the finite strain UMAT implementation for Mooney-Rivlin materials, possibly due to deprecation or refactoring.
Refactored UMAT function pointer definitions and usage to use unified signatures that include the umat_name parameter. Updated all UMAT function calls in both the Python wrapper and core C++ code to pass umat_name as the first argument, simplifying the interface and improving consistency across small-strain and finite-strain UMATs.
The umat_neo_hookean_incomp function now takes a std::string umat_name parameter for improved interface consistency. All calls and definitions have been updated accordingly, and the parameter is marked as unused in the implementation.
Enhanced the data file search logic in hyperelastic_parameter_identification.py to support both direct execution and Sphinx-Gallery contexts, improving robustness. Updated the UMAT interface in umat_plugin_ext.cpp to add a umat_name argument, remove unused arguments, and simplify logic for setting Lt and sigma_in.
@chemiskyy chemiskyy changed the title Create hyperelastic_parameter_identification.py Refactor UMAT interface and updated doc Jan 29, 2026
@chemiskyy chemiskyy requested a review from pruliere February 2, 2026 23:01
Remove dedicated anisotropic SMA UMAT (aniso_T.hpp/.cpp) and extend the unified SMA UMAT interfaces and docs. The mechanical unified header now documents and supports four variants (SMADI, SMADC, SMAAI, SMAAC) with updated props/statev descriptions; the thermomechanical unified header adds includes, expands props/statev mapping (including DFA parameters) and renames/changes the thermomechanical function signature to umat_sma_unified_T_T with additional outputs. Python wrapper mappings were updated to register the new UMAT names and the aniso include/registration was removed. CMakeLists was updated to drop aniso_T.cpp from the build. Note: this is a breaking API change (removed aniso entry and altered unified thermomechanical function signature), callers and bindings must be adapted accordingly.
Replace occurrences of the unscoped sim_iota with the namespaced simcoon::iota in multiple UMAT plasticity CCP implementations (Ani_chaboche, DFA_chaboche, Generic_chaboche, Hill_chaboche, plastic_chaboche, plastic_isotropic, plastic_kin_iso). This standardizes the reference to the iota constant and avoids potential name-resolution/compilation issues.
with simcoon 1.10.X and earlier versions
Add ANSYS (UMANS) format mention and simplify/refactor the UMEXT plugin API and documentation. Key changes:

- Docs: list three plugin formats (UMEXT, UMABA, UMANS), update example filenames (UMAT_ABAQUS_ELASTIC.for -> .f), and change test build flag to -DSIMCOON_BUILD_TESTS=ON.
- API: add a material name parameter (umat_name) to the external UMAT callback, remove solver_type and sigma_in parameters from the signature and the solver-specific branching.
- Implementation: adapt umat_plugin_ext example to the new signature (mark umat_name unused), always set Lt = L, and clean up unused variables/whitespace.
- Header: prune and streamline the long comment block for external_umat.hpp, keeping concise documentation and references to plugin APIs.

These changes simplify the UMEXT interface, unify behavior across solver types, and bring documentation and examples in line with the updated API.
Replace terse triple-slash comments with comprehensive Doxygen block documentation in both Mechanical and Thermomechanical unified_T.hpp headers. Adds author/version, detailed parameter lists (props and statev) for SMADI/SMADC/SMAAI/SMAAC variants, usage notes, mathematical background, references, and doxygen group markers. Function signatures and APIs are unchanged; this commit only improves inline documentation and developer-facing header comments.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

1 participant