ALE
ALE
Special Arrangements for *ALE_MULTI-MATERIAL_GROUP Labels
Situation prior to Ansys LS-DYNA R13
Prior to Ansys LS-DYNA R13 the *ALE_MULTI-MATERIAL_GROUP keyword operated as follows:
- There was no explicit label on the card itself
- Yet other keywords (eg *ALE, *INITIAL, *DATABASE) referred to these cards by id.
In the absence of an explicit label the "id" of *ALE_MULTI-MATERIAL_GROUP cards was based on their "order of occurrence" in the input deck, meaning that the first definition read was id 1, the second was id 2, etc.
Therefore each row of <sid> <idtype> forms a new definition, and this definition has an internal label that is its order of occurrence in the input deck. Therefore when a model contains N definitions these will always have internal labels 1 to N, referred to as AMMGID on other cards. Here is an excerpt from the Ansys LS-DYNA user manual for this keyword that illustrates this:
This is a real hostage to fortune since any reference to a card by "id"
is vulnerable to anything which changes the order of input, for example changing
include file order or deleting prior definitions.
Situation from Ansys LS-DYNA R13 onwards (approx mid 2021)
To try to solve the problem a new card *ALE_STRUCTURED_MULTI-MATERIAL_GROUP has been introduced which introduces "names" for these definitions. The keyword format is:
| Variable | AMMGNM | MID | EOSID | PREF | ||||
| Type | A | I | I | F | ||||
| Default | none | none | none | 0.0 |
Where it can be seen that rather than a label each card has an ascii name AMMGNM which may be used to refer to it. However inside Ansys LS-DYNA it also gets an internal "id" based on its "order of occurrence" in the input deck, and it can be referred to on other cards either by its name or by its "id". This is necessary because these new _STRUCTURED cards and the original cards above all refer to the same multi-material group sequence of definitions inside Ansys LS-DYNA.
So we have the situation:
| Card format | Can be referred to by "id" AMMGID | Can be referred to by name AMMGDN |
| Old plain multi-material cards |
yes
|
no
|
| New Structured m-m cards |
yes
|
yes |
And for both old and new cards their numerical "id" is based on their order of appearance in the input deck. So if an input deck contained the following card sequence the numerical "id" values would be assigned as follows
|
Keyword |
Internal "id" |
|
*ALE_MULTI-MATERIAL_GROUP
SID IDTYPE SID IDTYPE |
1 2 |
|
*ALE_STRUCTURED_MULTI-MATERIAL_GROUP
AMMGNM MID EOSID AMMGNM MID EOSID |
3 4 |
|
*ALE_MULTI-MATERIAL_GROUP
SID IDTYPE SID IDTYPE |
5 6 |
How this situation is handled inside PRIMER
The following rules are applied:
-
"Order of occurrence" in the input file dictates the numerical
"id" as shown in the table above.
PRIMER will assign an internal numerical label in the range 1 to N for N definitions read from file.
-
If a definition is created interactively it will be given the next free
"id" number.
In the example above a newly created definition would be assigned the id 7.
In the case of a new _STRUCTURED definition it will also have a character label AMMGNM
If the model has include files creating a new definition in an include file may result in relabelling of definitions in other includes, see point (6) below.
-
If a definition is deleted then any definitions above it have their labels
adjusted downwards to maintain the "order of occurrence" sequence.
For example if a model contains four definitions #1 to #4 and definition #2 is deleted, then #3 will become #2 and #4 will become #3.
-
Latent definitions, that is those referred to but not defined, are given
the id by which they were referred to.
So if, for example, *INITIAL_HYDROSTATIC_ALE refers to definition 15 then a new latent definition with this internal label will be created.
This implicitly means that latent definitions will always have numerical labels higher than those explicitly created or read.
-
In editing panels and keyword output files
PRIMER
will always write the name AMMGNM (if defined) rather than the numerical label
in any data field which refers to a new _STRUCTURED definition.
- When a model contains include files the order of occurrence of ALMM definitions can become quite complex since the order in which include files are read will influence this order. PRIMER will perform an internal pseudo-keyout/keyin operation to determine this both when checking definitions and also when a new definition is created. This may result in internal numerical labels being reassigned in order to maintain the correct order of occurrence when the deck is written and then reread.
Therefore it is recommended that all new models use the new _STRUCTURED version of the keyword, and always refer to this keyword by name rather than numerical "id". This will eliminate the various ordering problems described above since "reference by name" is immune to problems with ordering. PRIMER will still try to enforce a consistent numerical order when _STRUCTURED definitions are used, just in case a card refers to them by numerical label.