Writing a FEMAP neutral parser, I met some some quirks with the file generated by MYSTRAN (v12.1). This thread aims to collect them. Please tell me if I need to split this thread per subject or question!
I'll begin with this a simpleCBAR + CBUSH model. The attached archive provides the following files:
* "bulk_model_TC3.nas": the BULK file
* "mystran_00.NEU": the MYSTRAN output
* "FEMAP_v8.2.neu": the FEMAP v8.2 output
* "FEMAP_v2020-1-0.neu": the FEMAP v2020.1 output
First remark: Block451 is used by both MYSTRAN and FEMAP8.2 to collect results, but is deprecated in later versions in favor of block 1051.
Block451: titles used by MYSTRAN do not match FEMAP titles. This makes harder to write "solver-agnostic" parsers. From the uploaded files, here is the list with mismatch and missing :
That's all for now! thanks for reading and happy MYSTRANning !
Code:
| FEMAP vector Title | FEMAP vector ID | MYSTRAN vector Title | MYSTRAN vector ID |
|---------------------------+-----------------+--------------------------+-------------------|
| Total Translation | 1 | RSS translation | 10001 |
| T1 Translation | 2 | T1 translation | 10002 |
| T2 Translation | 3 | T2 translation | 10003 |
| T3 Translation | 4 | T3 translation | 10004 |
| Total Rotation | 5 | RSS rotation | 10005 |
| R1 Rotation | 6 | R1 rotation | 10006 |
| R2 Rotation | 7 | R2 rotation | 10007 |
| R3 Rotation | 8 | R3 rotation | 10008 |
| Total Applied Force | 41 | RSS applied force | 20001 |
| T1 Applied Force | 42 | T1 applied force | 20002 |
| T2 Applied Force | 43 | T2 applied force | 20003 |
| T3 Applied Force | 44 | T3 applied force | 20004 |
| Total Applied Moment | 45 | RSS applied moment | 20005 |
| R1 Applied Moment | 46 | R1 applied moment | 20006 |
| R2 Applied Moment | 47 | R2 applied moment | 20007 |
| R3 Applied Moment | 48 | R3 applied moment | 20008 |
| Total Constraint Force | 51 | RSS SPC force | 30001 |
| T1 Constraint Force | 52 | T1 SPC force | 30002 |
| T2 Constraint Force | 53 | T2 SPC force | 30003 |
| T3 Constraint Force | 54 | T3 SPC force | 30004 |
| Total Constraint Moment | 55 | RSS SPC moment | 30005 |
| R1 Constraint Moment | 56 | R1 SPC moment | 30006 |
| R2 Constraint Moment | 57 | R2 SPC moment | 30007 |
| R3 Constraint Moment | 58 | R3 SPC moment | 30008 |
| Total MultiPoint Force | 151 | na | na |
| T1 MultiPoint Force | 152 | na | na |
| T2 MultiPoint Force | 153 | na | na |
| T3 MultiPoint Force | 154 | na | na |
| Total MultiPoint Moment | 155 | na | na |
| R1 MultiPoint Moment | 156 | na | na |
| R2 MultiPoint Moment | 157 | na | na |
| R3 MultiPoint Moment | 158 | na | na |
| Total Summed GPForce | 161 | na | na |
| T1 Summed GPForce | 162 | na | na |
| T2 Summed GPForce | 163 | na | na |
| T3 Summed GPForce | 164 | na | na |
| Total Summed GPMoment | 165 | na | na |
| R1 Summed GPMoment | 166 | na | na |
| R2 Summed GPMoment | 167 | na | na |
| R3 Summed GPMoment | 168 | na | na |
| Total Applied GPForce | 171 | na | na |
| T1 Applied GPForce | 172 | na | na |
| T2 Applied GPForce | 173 | na | na |
| T3 Applied GPForce | 174 | na | na |
| Total Applied GPMoment | 175 | na | na |
| R1 Applied GPMoment | 176 | na | na |
| R2 Applied GPMoment | 177 | na | na |
| R3 Applied GPMoment | 178 | na | na |
| Total Constraint GPForce | 181 | na | na |
| T1 Constraint GPForce | 182 | na | na |
| T2 Constraint GPForce | 183 | na | na |
| T3 Constraint GPForce | 184 | na | na |
| Total Constraint GPMoment | 185 | na | na |
| R1 Constraint GPMoment | 186 | na | na |
| R2 Constraint GPMoment | 187 | na | na |
| R3 Constraint GPMoment | 188 | na | na |
| Bar EndA Plane1 Moment | 3000 | BAR EndA Plane1 Moment | 50201 |
| Bar EndA Plane2 Moment | 3001 | BAR EndA Plane2 Moment | 50203 |
| Bar EndB Plane1 Moment | 3002 | BAR EndB Plane1 Moment | 50202 |
| Bar EndB Plane2 Moment | 3003 | BAR EndB Plane2 Moment | 50204 |
| Bar EndA Pl1 Shear Force | 3004 | BAR EndA Pl1 Shear Force | 50205 |
| Bar EndA Pl2 Shear Force | 3005 | BAR EndA Pl2 Shear Force | 50207 |
| Bar EndA Axial Force | 3008 | BAR EndA Axial Force | 50209 |
| Bar EndA Torque | 3010 | BAR EndA Torque | 50211 |
| Bar EndA Pt1 Bend Stress | 3075 | BAR EndA Pt1 Comb Stress | 60301 |
| Bar EndA Pt2 Bend Stress | 3076 | BAR EndA Pt2 Comb Stress | 60303 |
| Bar EndA Pt3 Bend Stress | 3077 | BAR EndA Pt3 Comb Stress | 60305 |
| Bar EndA Pt4 Bend Stress | 3078 | BAR EndA Pt4 Comb Stress | 60307 |
| Bar EndB Pt1 Bend Stress | 3083 | BAR EndB Pt1 Comb Stress | 60302 |
| Bar EndB Pt2 Bend Stress | 3084 | BAR EndB Pt2 Comb Stress | 60304 |
| Bar EndB Pt3 Bend Stress | 3085 | BAR EndB Pt3 Comb Stress | 60306 |
| Bar EndB Pt4 Bend Stress | 3086 | BAR EndB Pt4 Comb Stress | 60308 |
| Bar EndA Axial Stress | 3107 | na | na |
| Bar EndA Max Comb Stress | 3109 | BAR EndA Max Stress | 60309 |
| Bar EndA Min Comb Stress | 3110 | BAR EndA Min Stress | 60311 |
| Bar EndB Max Comb Stress | 3111 | BAR EndB Max Stress | 60310 |
| Bar EndB Min Comb Stress | 3112 | BAR EndB Min Stress | 60312 |
| Bar Tension M.S. | 3113 | na | na |
| Bar Compression M.S. | 3114 | na | na |
| Bush X Force | 3774 | na | na |
| Bush Y Force | 3775 | na | na |
| Bush Z Force | 3776 | na | na |
| Bush X Moment | 3777 | na | na |
| Bush Y Moment | 3778 | na | na |
| Bush Z Moment | 3779 | na | na |
| Bush TX Stress | 3780 | na | na |
| Bush TY Stress | 3781 | na | na |
| Bush TZ Stress | 3782 | na | na |
| Bush RX Stress | 3783 | na | na |
| Bush RY Stress | 3784 | na | na |
| Bush RZ Stress | 3785 | na | na |
| Elem C1 T1 GPForce | 85000 | na | na |
| Elem C1 T2 GPForce | 85001 | na | na |
| Elem C1 T3 GPForce | 85002 | na | na |
| Elem C1 R1 GPMoment | 85003 | na | na |
| Elem C1 R2 GPMoment | 85004 | na | na |
| Elem C1 R3 GPMoment | 85005 | na | na |
| Elem C2 T1 GPForce | 85010 | na | na |
| Elem C2 T2 GPForce | 85011 | na | na |
| Elem C2 T3 GPForce | 85012 | na | na |
| Elem C2 R1 GPMoment | 85013 | na | na |
| Elem C2 R2 GPMoment | 85014 | na | na |
| Elem C2 R3 GPMoment | 85015 | na | na |
| na | na | BAR EndB Pl1 Shear Force | 50206 |
| na | na | BAR EndB Pl2 Shear Force | 50208 |
| na | na | BAR EndB Axial Force | 50210 |
| na | na | BAR EndB Torque | 50212 |
With aid from Bill, I've added a parameter to MYSTRAN called PARAM,DELBAN that deletes the bandit files from the home run directory. You can find the modified files in my respository here.
For future reference, the files needed (at the barest minimum to merely function) in order to add a parameter to MYSTRAN are
1.) Source/Interfaces/BD_PARAM_Interface.f90 where other subroutines can read the types of all parameter entities.
2.) Source/LK1/L1A-BD/BD_PARAM.f90 which processes the PARAM bulk data cards
3.) Source/Modlues/PARAMS.f90 where you define and comment the default value of your parameter, and describe what it does.
Otherwise, all that was needed for this parameter to be parsed was to add a conditional into Source/Modules/BANDIT/BANDIT_MODULE.f to deal set a close status flag to 'delete' instead of 'keep'. It's worth noting that my compiler was throwing a fit over my if statements for some reason here, I think that because this BANDIT subroutine contains some F77 legacy syntax, the newer compilers don't like some of the looser syntax available in the f90 and f95 scripts. Future tinker'ers beware.
Also I've added the bones of a README revision for the github page, as I really like the quality of Ceanwang and Bruno's works on documentation and I'd love to take it on myself to beautify them for publication in any way that you all think is best.
I am experimenting with Mystran with Femap and would like to share and have comments on the observations, and after all would appreciate help to adjust the settings correctly. These may be sometimes Femap related questions or issues but also Mystran related. I have only done one analysis and haven't checked the Mystran documentation very carefully so that these might be more of a rookie type questions/observations.
First of all I am impressed how well the key results are in line with Simcenter Nastran results without any adjustments at all. Here's what I've done:
- opened up a random FE model consisting of plate elements, some glue contacts, and few RBE2 elements. The analysis for this had been done earlier using Simcenter Nastran.
- exported the analysis model (without any adjustments, i.e. Simcenter Nastran version)
- run it with Mystran
- imported the Femap neu file
The few things that caught my eye comparing the results:
- The deformation looks very similar by eye
- the max total translation in Simcenter Nastran was 1.883 mm and RSS translation in Mystran 1.909 mm, so no big difference (1.4 %)
- the max vonMises bot stress differs quite a lot but this is difficult to compare. See next observations.
- the result scale (contour levels) is something odd. For these translations (max 1.909 mm) the scaling is from 0 to 1.826E+10 when it should be from 0 to 1.909. Of course I can change it manually but for automatic detection it seems to have some kind of scaling issue.
- the scaling issue seems to be the problem for dynamic rotation also. When tried to rotate the model even slightest of rotation will throw the model off the screen somewhere in the space and in practice the rotation can not be done.
- the element results are shown in transparent type of way in which it is difficult to observe which element is which when front and back and all in between are in a same spot. I couldn't figure out how to change this. This is not the same transparency as in Femap but something related to the results.
- the result vectors are numbered very differently from Nastran. There is also separated results for QUADs and TRIAs which is perhaps not very necessary but inconvenient sometimes
Has anyone any ideas how to improve the performance of Mystran results in Femap related to above mentioned observations? Can I adjust something somewhere?
Harry Schaeffer has created an improved version of NASTRAN-95 called ComLab. It was previously a commercial program, but he has now released it to the public and we are hosting it here. We are looking into adding the source code at a later date as well.