Skip to content

Create uel_nlmech_pk1_Saint_Venant_Kirchhoff.for - #4

Open
jpvardasca wants to merge 1 commit into
bibekanandadatta:mainfrom
jpvardasca:main
Open

Create uel_nlmech_pk1_Saint_Venant_Kirchhoff.for#4
jpvardasca wants to merge 1 commit into
bibekanandadatta:mainfrom
jpvardasca:main

Conversation

@jpvardasca

Copy link
Copy Markdown

Summary

This pull request adds a Saint‑Venant–Kirchhoff (St. Venant) material model to the existing finite‑strain user element (UEL) framework for Abaqus/Standard. The new material routine (umatSaintVenant) replaces the previously hard‑coded Neo‑Hookean model and is selectable via the matID integer property.

Motivation

The Saint‑Venant–Kirchhoff model is a classical compressible hyperelastic model widely used for moderate strains. Including it alongside the existing Neo‑Hookean model expands the element library’s applicability, particularly for problems where a compressible, quadratic strain energy is appropriate.

Changes

  • New material subroutine umatSaintVenant:

    • Computes the second Piola‑Kirchhoff stress from the Green‑Lagrange strain tensor using Lamé parameters.
    • Returns the first Piola‑Kirchhoff stress and the material tangent dP/dF for the total Lagrangian formulation.
    • Supports both 3D and plane strain analyses.
  • Integration with existing UEL framework:

    • The element routine uelNLMech now calls umatSaintVenant when matID = 1.
    • The Neo‑Hookean material routine (mat_NeoHookean) remains available and is called when matID = 2.
    • The F‑bar volumetric locking treatment is fully compatible with the new material.
  • Code refactoring:

    • The element routine elem_nlmech and material module hyperelastic_material from the original file are retained; the new material is added to the user_element module.
    • No changes are made to the Abaqus UEL interface, post‑processing (UVARM), or external file I/O (UEXTERNALDB).

Notes for Reviewers

  • The new material routine expects three properties: Young’s modulus, Poisson’s ratio, and a locking stretch parameter (currently unused, reserved for future Arruda‑Boyce model).
  • The matID must be set to 1 in the JPROPS array to activate the Saint‑Venant model.
  • All post‑processed output (Cauchy stress, Eulerian strain) continues to be written to the global globalPostVars array for visualisation with overlay elements.

This contribution follows the existing code structure and documentation style. Feedback and suggestions are welcome.

User-defined element updated to implement the Saint Venant–Kirchhoff material model and to compute the element stiffness. Another routine implements the element mass matrix.
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