bugpyFormex - Bugs: bug #52915, HYPERELASTIC, REDUCED POLYNOMIAL...


bug #52915: HYPERELASTIC, REDUCED POLYNOMIAL with N=4 (8 constants)

Submitter:  gianluca de santis <gianlucadesi>
Submitted:  Tue 16 Jan 2018 02:46:58 PM UTC
Category:  Plugins Severity:  3 - Normal
Item Group:  Functionality error Status:  In Progress
Privacy:  Public Assigned to:  bverheg
Open/Closed:  Open
* Mandatory Fields

Add a New Comment Rich Markup

Thu 18 Jan 2018 10:34:47 AM UTC, comment #2: 

A cleaner way to do this, and friendlier to the user, is to add an optional parameter temp=VALUE to specify the temperature. There is already an optional parameter order=N, which I recommend to use. However, currently the number of constants is not checked if you use it. So I propose two changes:

1. Always check the number of constants.
2. Always add the temperature to the supplied list of constants. Temperature should be specified with optional temp parameter. Default temperature is set to 0.0.

This way the number of constants will always be what Abaqus expects.

Benedict Verhegghe <bverheg>
Group administrator
Wed 17 Jan 2018 09:25:57 AM UTC, comment #1: 

The Abaqus manual for HYPERELASTIC, REDUCED POLYNOMIAL material states that for a given N, a total of 2*N+1 constants are required (the last being the temperature). Thus, for N=4, the user should specify 9 constants.

This is currently not possible, because our check of the number of constants does not include the temperature. We should fix that, not only for REDUCED POYNOMIAL, but for other HYPERELASTIC materials as well.

Users will then be forced to add the temperature to their data.

For compatibility reasons with older code, we might think about adding a default constant 0.0 (temperature) if the number of specified constants is one less than the expected.

Benedict Verhegghe <bverheg>
Group administrator
Tue 16 Jan 2018 02:46:58 PM UTC, original submission:  

I found a small bug in fe_abq.py:


When writing a HYPERELASTIC, REDUCED POLYNOMIAL material you need to have after the coefficients also the temperature, or omit it if not relevant.
If N=4, the first line is filled with 8 coefficients, so the temperature coefficient will go to the second line (max of 8 coefficients per line). If the temperature coefficient is omitted, an empty line should be left.

But in the current pyFormex code (or at least what I have on my laptop) the temperature is not written. Usually, this is not a problem (if N=1,2,3,5,6,7) but it is a problem if you have N = 4, because the temperature would require a new (empty) line.

This is the example on fe_abq.py:
    >>> intima = {
    ...      'name': 'intima',
    ...      'density': 0.1,
    ...      'elasticity':'hyperelastic',
    ...      'model':'reduced polynomial',
    ...      'constants': [6.79E-03, 5.40E-01, -1.11, 10.65, -7.27, 1.63, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
    ...      }
    >>> print(fmtMaterial(Attributes(intima)))
    *MATERIAL, NAME=intima
    0.00679, 0.54, -1.11, 10.65, -7.27, 1.63, 0.0, 0.0
    0.0, 0.0, 0.0, 0.0

This is correct because N=6 (temperature is omitted), but would fail with N=4, because the 8 constants would fill the entire line: [6.79E-03, 5.40E-01, -1.11, 10.65, -7.27, 1.63, 0.0, 0.0]

gianluca de santis <gianlucadesi>
Group Member


(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:

No files currently attached


Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by bverheg (Posted a comment)
  • -email is unavailable- added by gianlucadesi (Submitted the item)

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.


    Follows 1 latest change.

    Date Changed by Updated Field Previous Value => Replaced by
    2018-01-17 bverheg StatusNone In Progress

    Back to the top

    Powered by Savane 3.13-04b1.
    Corresponding source code