I've used NX9 advanced sim to setup a model with lots of superelements. I'm using an assmebly fem to swap out the fem parts with super elements.
After sucesfully running a bunch of trial cases on smaller models with ~10 superelements, I'm running into issues when scaling this approach up for larger models.
Issue 1: After about 25 ASSIGN INPUTT2= commands I get the following error in the f06 file.
$* NX SUPERELEMENT ID: 30
*** USER FATAL MESSAGE 740 (RDASGN)
UNIT NUMBER 56 HAS ALREADY BEEN ASSIGNED TO THE LOGICAL NAME F56
LOGICAL INPUTT2 HAS THE FOLLOWING ATTRIBUTES:
*UNIT NO. = REQUIRED *SIZE =NOT REQUIRED *RECL =NOT REQUIRED *STATUS = OLD
*FORM =UNFORMATTED *USER ASSIGNABLE = YES *DEFAULT = NO
UNIT 12 IS AUTOMATICALLY CREATED AND ALLOCATED TO AN OUTPUT2 FILE. THEREFORE, THE ASSIGN STATEMENT IS
NO LONGER REQUIRED UNLESS YOU WISH TO RENAME THE FILE OR REQUEST FORM=FORMATTED.
USER ACTION: MAKE ONE OF THE FOLLOWING MODIFICATIONS:
1. IF BINARY FORMAT (FORM=UNFORMATTED) IS DESIRED THEN
REMOVE THE ASSIGN STATEMENT.
2. CHANGE "ASSIGN OUTPUT2=..." TO "ASSIGN OP2=..."
3. CHANGE THE UNIT NUMBER ON THE ASSIGN STATEMENT AND IF THE UNIT IS BEGIN USED FOR
PARAM,POST,<0 THEN SPECIFIY PARAM,OUNIT2 WITH THE NEW UNIT NUMBER.
Issue 2: After 46 ASSIGN INPUTT2= commands I get the following in the f06 file:
*** USER FATAL MESSAGE 746 (FNDUNT)
THE MAXIMUM NUMBER OF LOGICALS THAT CAN BE ASSIGNED WITH THE ASSIGN COMMAND HAS BEEN EXCEEDED.
USER INFORMATION: THE MAXIMUM NUMBER ALLOWED IS 46
For issue 1, I've found the following statement in the quick reference guide:
Optionally use system cell 552 to change the FORTRAN unit
number from the default value of 56 to some other value.
I assumed that this meant that if I added NASTRAN SYSTEM (552) = 156 to the .dat file : (i.e. change the UNIT number for the 56 to 156 to move it out of the way) then that should solve my problem. Nothing happens. I think I can get around this by manually changing the UNIT number in the dat file before solving but this is a bit of a pain. Any suggestions? Am I missing something?
For issue 2, is 46 super elemtns a hard limit or is there some way of increasing it?
Any help/advice would be much appreciated,
Solved! Go to Solution.
There are many reserved unit numbers, particularly between 1 and 90. These are documented in Remark 9 of the ASSIGN statement in the QRG:
Not all of these are used in all solution sequences, so you may get away with using some of the reserved unit numbers.
In general, I would suggest starting your INPUTT2 unit numbering at 100 and going from there. If you have more than 50 superelements, skip 151-154.
As a follow up to this, there is a Fortran array in the code that organizes open file units that is size limited. This array was 50 long in NX Nastran 1. At some point the array limit was increased to 75.
In your case, if the error message is saying that you can't assign any more than 46 inpuitt2 units, that means that there are 29 units in use by the program. These are units listed in Remark 9 (.log file, .f04 file, .f06 file, etc.). There is not much you can do to work around this at this point.
For NX Nastran 11.0.2, the size of this Fortran array is being increased from 75 to 512.
Thanks JimB, that's very useful information.
For issue 1, as you suggest, just changing the unit number in the .dat file to something other than 56 worked. If I run into this problem more I will write a script to check to see if NX CAE has assigned a unit number to a reserved value and swap it for something else. It's slightly annoying that the preprocessor doesn't avoid writing to resereved units.
Anyway, thanks again.