Parameter | Description |
This is referred to as the job information file. It contains all of the job information necessary to set up a fatigue analysis. All information filled out in a form in MSC Fatigue Pre & Post or MSC Patran for a MSC Fatigue analysis is contained in this file. This file is read by the PAT3FAT or FATTRANS translator to create the fatigue input file, jobname.fes. | |
This is not a file that most users will need to worry too much about. It is a UNIX shell script that controls the analysis when submitted directly from MSC Fatigue Pre & Post or MSC Patran. It can be edited and changed to customize the submittal process and is included here for completeness. A similar file is FatigueExecute which is also a UNIX shell script and is used when the user is submitting jobs via the MSC Patran Analysis Manager module. | |
This is referred to as the fatigue input file and is generally created by the PAT3FAT or FATTRANS translator. It is binary and is not an editable file, however, the format of this file is included in case someone desperately wishes to write their own. | |
This is the ASCII version of the fatigue input file and is created using FEFAT’s utility programs. It is fully editable and fully described in this section. | |
This is the pre-processed fatigue input file. It is binary and a description is included here in case a user desires to read this file for his own purposes. | |
This is the fatigue results file and is in a typical MSC Patran results file format which is also described in this section. It can also be output as a Universal file format by setting the keyword FEFTYPE to the value UNIVERSAL using the MSC Fatigue environment module MENM. See Modifying the MSC.Fatigue Environment (MENM), 1433. |
ANALYSIS TYPE = | This must be the first line of the file after the #3.4 line. It indicates the type of fatigue analysis to be performed. NOMINAL STRESS CRACK INITIATION CRACK GROWTH VIBRATION SPOT WELD MULTIAXIAL FOS MULTIAXIAL CI MAG WELD SEAM WELD |
FEA RESULTS LOCATION = | Identifies whether stress/strain results are to be found at nodes or element centroids. Also tells MSC Fatigue to expect nodal or elemental results files if external FEA results are under consideration. Calculated fatigue results will also be either nodal or elemental depending on the value of this parameter. Valid entries are: NODE ELEMENT CENTROID NODE AND ELEMENT (used for SPOT WELD analysis only) |
AVERAGING | Can be set to GLOBAL or GROUP. If set to GLOBAL all nodal stress or strain results will be averaged at the nodes for each contributing elemental node. GROUP refers to the current group With GROUP set, averaging will not take into account contributions of nodal results from elements that are not in the current group. The current group is always referred to on the title bar of the MSC Patran graphics window. |
TITLE = | This is a descriptive text string which will be passed on through the analysis and presented together with the results. It may be used to assist in the identification of the job. The maximum length is 80 characters. |
P3DATABASE | Refers to the MSC Patran database from which group information will be read and also stress or strain data. |
TENSOR TYPE = RESULTS TYPE = | This identifies the type of data retrieved from the FEA analysis. Valid values are STRESS, STRAIN or EPINPUT (for CRACK INITIATION or MULTIAXIAL CI). For SPOT WELD analysis, this parameter is RESULTS TYPE = FORCE. |
STRESS UNITS = FORCE UNITS = | If STRESS is chosen in the tensor type parameter, as seen above, the units of stress must be defined here. Acceptable values are: MPA (N/mm2 or MN/m2) PASCALS (N/m2) PSI KSI KG/M**2 For SPOT WELD analysis the FORCE UNITS can be: Nm Nmm lbfin kipin |
STRAIN TYPE = | TENSOR or ENGINEERING. The difference is whether the shear strains have been multiplied by two (2). If TENSOR is specified then the shear strains will be scaled. If ENGINEERING is specified it is assumed that the scaling has take place already. |
STRESS COMBINATION = | When strains are involved the parameter is STRAIN COMBINATION=. Selections marked with an asterisk (*) are not recommended and disabled from the MSC Fatigue setup forms. However, the jobname.fin file can be edited to use these combinations if necessary. MAX PRINCIPAL* MIN PRINCIPAL* MAX ABS PRINCIPAL VON MISES* TRESCA* SIGNED VON MISES SIGNED TRESCA SIGNED MAX SHEAR X NORMAL Y NORMAL Z NORMAL X-Y SHEAR Y-Z SHEAR Z-X SHEAR SURFACE |
!FOSTOGGLE = | This tells you whether or not a Factor of Safety run is going to be made. |
DESIGN CRITERION = | This is the probability of survival expressed as a percentage (valid numbers are in the range 0.1 to 99.9). |
MEAN STRESS CORRECTION = | NONE GOODMAN GERBER |
BIAXIALITY= | TRUE FALSE |
VIBRATION METHOD = | DIRLIK NARROW BAND ALL |
ANALYSIS METHOD = | NONE SMITH-WATSON-TOPPER MORROW |
DESIGN CRITERION = | This is the probability of survival expressed as a percentage (valid numbers are in the range 0.1 to 99.9). |
PLASTICITY= | NEUBER MERTENS-DITTMAN SEEGER-BESTE |
BIAXIALITY= | TRUE FALSE |
METHOD BIAXIAL= | This parameter is only written to the .fin file when the BIAXIALITY PARAMETER is set to TRUE. The possible values for this parameter are: NONE MATERIAL PARAMETER HOFFMAN-SEEGER |
CRACK LENGTH UNIT = | INCHES METERS MILLIMETERS MILLIINCHES |
CRACK LENGTH INITIAL = | Initial crack length in user's units. If zero the Kitagawa minimum crack theory will then be used to determine the minimum valid initial crack size for linear elastic fracture mechanics. |
CRACK LENGTH FINAL= | Final crack length in user's units. Must be larger than the initial crack length. |
COMPLIANCE FUNCTION = | The name of the file containing the data defining the K-solution or compliance function. This file must have a KSN extension. It is not necessary to input the extension. |
NOTCH DEPTH = | The depth of the notch in user’s units. This parameter may be set to zero in which case the next two parameters are ignored in the analysis. If the initial crack size is set to zero then a non-zero value for the notch depth must be entered. |
NOTCH RADIUS = | The radius of the notch in user's units. |
SHARP CRACK RADIUS = | The sharp crack tip radius in user's units. |
S-N DATA SET n= MATERIAL n = | The names of the materials datasets are held here where n is the material number being defined. Up to 100 materials may be defined, with each material name not exceeding 32 characters in length. Only one material (MATERIAL 1=) can be specified for crack growth. Also for crack growth, the environment must follow the material name as in the following example: MATERIAL 1 = BS4360-50D:seawater CP-850mV |
M_DIRECTORY= | CENTRAL LOCAL USERS |
FINISH= | Polished Ground Good Machined Ave. Machined Poor Machined Hot Rolled Forged Cast Water Coreoded Seawater Corr. User defined No Finished |
TREATMENT= | No Treatment Nitrided Shot Peened Cold Rolled |
KF= | A concentration factor. Can be any number greater than zero. Default is one. |
ALPHAP= | Shape factor for Mertens-Dittman and Seeger-Beste plasticity corrections. Any number greater than 1.0 is valid. Default is infinity which forces Neuber correction. |
REGION= | The MSC Patran group of nodes and/or elements to be used for this combination of material/surface finish and treatment. |
MULTIPLIER= | A multiplier value. Any real number is valid. Default is one. |
OFFSET= | An applied offset. Any real number is valid. Default is zero. |
WELD= | YES NO NA Valid for component S-N analyses only. |
ENVIRONMENT= | The name of the environment for crack growth jobs. |
S-N TYPE = | S-N curves can be MATERIAL or COMPONENT. The difference is explained in Component vs. Material S-N Curves, 130. |
SPOT WELD Analysis | The following two parameters are necessary for SPOT WELD analysis: DIAMETER and THICKNESS. Each group of spotwelds that share the same material parameters are grouped into 3’s. you may have up to 100 groups of 3’s. For example the first grouping will appear as: MATERIAL 1 = spot_nugget_generic M_DIRECTORY = CENTRAL DIAMETER = 1.0 THICKNESS = 1.0 MULTIPLIER = 1.0 REGION = spotwelds MATERIAL 2 = spot_sheet_generic . . . MATERIAL 3 = spot_sheet_generic . . . where the first material describes the nugget and the second two describe the top and bottom sheets. The next group will be MATERIAL 4, 5, and 6. |
DIAMETER = | Diameter of the spot weld nugget for a particular material for SPOT WELD analysis. This is only important for the first material in a group. |
THICKNESS = | Thickness of the sheet for a particular material for SPOT WELD analysis. This is only important for the second two materials in a group. |
FEA ANALYSIS TYPE = | STATIC TRANSIENT TRANSFER FUNCTION PSD |
FEA RESULTS TYPE = | The source of the FEA stress analysis results: DATABASE P3/FEA EXTERNAL (e.g., MSC Patran results files) XDB SDRC UNIVERSAL XDB and SDRC files can be read when the jobname.fin file is created using FEFTRN only. See FEFTRN, 89. |
TRANSFORMATION = | BASIC NONE |
EQUIVALENT UNITS = | This is used for calculating and reporting life in the user’s units. |
DATABASE = | The name of the MSC Patran database from which results will be extracted. |
RESULTS JOB NAME = | This is the results jobname of a MSC Patran FEA analysis. The name must correspond to the name of a jobname.res file created from a MSC Patran FEA analysis. It is not necessary to specify the .res suffix. It is also the name of the XDB or SDRC Universal file. |
RESULTS FILE NAME = | If the FEA results are from an external code other than the MSC Patran database or from MSC Patran FEA, then this parameter is used to specify the MSC Patran nodal or elemental results file names. These files are specified by placing a # character in the place of the subcase number (or time step number for a transient analysis). For example if the results files are sub1.nod, sub2.nod, sub3.nod, then the parameter should be specified as: RESULTS FILE NAME= sub#.dis |
RESULTS COLUMNS = | Used to define in which columns the various stress or strain tensors are located in the results files produced by the translator when using an external FEA code. All six component stresses or strains must be specified, separated by commas, even if one or more of these columns are zero due to the nature of the FE analysis. The columns must be specified in order (i.e., X,Y,Z,XY,YZ,ZX directional stresses/strains, respectively). The following example shows how they must be specified: RESULTS COLUMNS=1,2,3,18,19,20 where Column 1 points to X directional stress Column 2 points to Y directional stress Column 3 points to Z directional stress Column 18 points to XY directional stress Column 19 points to YZ directional stress Column 20 points to ZX directional stress |
SHELL SURFACE = | If the analysis is from MSC Patran FEA and there are stresses/strains from shell elements to be considered in the fatigue analysis, then top or bottom results must be specified. This is also true of results from the MSC Patran database regardless of element type. Top results will always be used if this parameter is not specified. TOP BOTTOM |
NUMBER OF TIME STEPS = NUMBER OF FREQUNCY STEPS = | An integer number specifying the number of time steps if the analysis is transient or the number of frequencies in a frequency response or random vibration analysis. For an external FE code, there must be the same number of results files as number of time steps specified. |
SCALE FACTOR = | A scale factor that may be applied to the results of a transient analysis. |
NUMBER OF LOAD CASES = NUMBER OF INPUT = | An integer number specifying the number of load cases. For an external FE code, there must be the same number of results files as number of load cases specified. For frequency response analysis this parameter is NUMBER OF INPUT = referring to the number of input PSD loads. |
LOAD CASE = INPUT ID = | An integer between 1 and 40. Must be sequential beginning with 1 and must be repeated for every load case. For frequency response analysis this parameter is INPUT ID = and can only range from 1 to 20. |
FEA LOAD CASE ID = FREQUENCY ID # = TIME STEP ID # = | An integer (or group of integers) specifying the load case ID as specified in the FE analysis or the internal IDs of the result in the database. When results are specified from the database, they are X.Y-A.B-C- where: X = Result Case ID Y = Subcase ID A = Primary Result B = Secondary Result C = Layer ID |
TIME HISTORY = LOAD FILE = | This is the name of the loading time history which describes the time variation of the loading for the load case under consideration. The loading time history must be defined in the time history database. For frequency response analysis this parameter is LOAD FILE = and is the input load psd name as also defined using the time history database which is really a loading database. |
TH_DIRECTORY= | The directory name where the time history files are located. |
SHIFT= | This is an offset value to be applied to the load case results. Can be any valid number. Default is zero. |
SCALE FACTOR= | This is a scale factor to be applied to the load case results. Can be any valid number. Default is one. |
LOAD MAGNITUDE = | This is the scalar magnitude of the loading applied in the FEA analysis for this load case (or the magnitude of a related quantity). The value must be in the units defined under LOAD UNIT= parameter below. |
LOAD TYPE = | The type of load. This number will correspond to the number allocated in the ltypes.ind file which is contained in the ptime central directory. When shipped, the index numbers are as follows: 0 ! Static 1 ! Force 2 ! Pressure 3 ! Temperature 4 ! Acceleration 6 ! Displacement 7 ! Rotational Velocity 8 ! Velocity 9 ! Uncalibrated 10 ! Scalar 11 ! Moment |
LOAD UNIT = | The load unit type as defined by the loading time history database. This number will correspond to the number allocated in the utypes.ind file which is contained in the PTIME central directory. When shipped, the index numbers are as follows: 0 ! Newtons 1 ! kNewtons 2 ! lbs force 3 ! Tons force 4 ! Tonnes force 10 ! Pascals 11 ! MPa 12 ! PSI 13 ! KSI 14 ! TSI 15 ! kgf/m^2 20 ! Degrees Kelvin 21 ! Degrees Celsius 22 ! Degrees Fahrenheit 30 ! m/s^2 31 ! g 32 ! feet/s^2 40 ! m 41 ! mm 42 ! inches 43 ! milliinches 44 ! microinches 50 ! rps 51 ! rpm 52 ! rph 53 ! rad/s 54 ! rad/min 60 ! m/s 61 ! mm/s 62 ! kph 63 ! ips 64 ! mph 70 ! undefined 80 ! none 81 ! % 82 ! levels 90 ! Nm 91 ! Ft lbs 92 ! Nmm |
Duty Cycle Parameters | |
!DCMETHOD = MULTI | Indicator that a Duty Cycle analysis is going to be run. |
!DCCFGFILE = | Specifies the directory and name of the .cfg file that will be read during the Duty Cycle run. |
CFG File Specific Parameters | |
TEMPLATE JOBNAME = | The jobname. |
NUMBER OF RESULTS ENTITIES PER JOB = | An integer number specifying the number of result entities in the analysis group. |
NUMBER_OF_SEQUENCES = | An integer number specifying the number of sequences that have been defined in the CFG file. |
SEQUENCE_NAME_# = | This lists the sequence number and the name of that Sequence. |
NUMBER OF REPEATS OF SEQUENCE_NAME_# = | An integer number specifying the number of repeats that are going to be applied to the current sequence. |
NUMBER OF EVENTS = | An integer number specifying the number of events in the current sequence. |
LAYER SELECTION = | Currently this card has two values BOTH and SINGLE. Note: This will change in future versions where the information will be extracted from the analysis group(s) and recorded here.) |
NUMBER OF JOBS REQUESTED = | An integer number specifying the number of jobs or .fin files that will be created. |
EVENT_NAME_# = | This lists the event number and the name of that event. |
NUMBER OF REPEATS OF EVENT_NAME_# = | An integer number specifying the number of repeats that are going to be applied to the current event. |
NUMBER OF TIME HISTORIES = | An integer number specifying the number of time histories that will be used for the current event. |
END EVENT_NAME_# | Signifies the end of the current event. |
END SEQUENCE_NAME_# | Signifies the end of the current sequence. |
#! /bin/sh
#set -x
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# FatigueSubmit
#
#
#
# Abstract:
# This procedure executes a MSC/FATIGUE analysis by running the the
# MSC/FATIGUE translator and solver in the proper order. This
# procedure is called from within MSC/PATRAN when the user submits a job
# for analysis.
#
#
# Arguments:
#
# -j jobname Analysis job name
#
# -a iat The analysis type: 1 = crack initiation
# 2 = spot weld
# 3 = crack growth
# 4 = nominal stress
# 44 = rotational analysis
# 5 = vibration fatigue
# 6 = Mag Weld
# 7 = Multiaxial CI
# 8 = Multiaxial FOS
#
# -p partial Partial Analysis Flag: 0 = full analysis
# 1 = pre-processor only
#
# -y plane Plane_stress: 0 = none
# 1 = plane stress correction
#
# -f fos_opt Safety factor option: 0 = none
# 1 = stress based
# 2 = life based
#
# -s str_life Stress reference or design life (actual value)
#
# -m max_fac Maximum factor to calculate (actual value)
#
# -c cut_off Use material cutoff: 0 = use cuttoff
# 1 = don’t use cutoff
#
# -z fast Fast analysis option: 0 = none
# 1 = gate
# 2 = points
# 3 = reduction
#
# -g pvx_gate Percentage gate to use in PV eXtraction for quick analysis
# or the number of points or reduction factor
#
# -n num_ents Number of entities to keep for fast analysis
#
# -t temp_dpnd Use temp dependent mats: 0 = no (default)
# 1 = yes
#
# -b mmean_mats Use multi-mean correction: 0 = no (default)
# 1 = yes
#
# -d spect_lod Use spectrum loading input: 0 = no (default)
# 1 = yes
#
# -e seamw_2004 Use seamw2004 solver: 0 = no (default)
# 1 = yes
#
#
# Modification History:
# 11/24/93 Initial Release
# 11/26/94 Update for 1.4
# 09/12/95 Update for 6.0
# 10/22/01 Update Multiaxial (ljd)
# 12/13/01 Fix femlf submit error (dt1)
#
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# DEFINE A LOCAL SHELL FUNCTION FOR DISPLAYING VALID PARAMS FOR THIS SCRIPT
abort_usage( ) {
cat 2>&1 <</
Usage: $Cmd -j jobname -a iat -p partial [optional flags]
flags: -v for verbose output
-j jobname to specify a jobname (required)
-a iat to specify analysis type:
1 = crack initiation (default)
2 = spot weld
3 = crack growth
4 = total life
44 = rotation
5 = vibration fatigue
6 = Mag Weld
7 = MultiCI
8 = MultiFOS
-p partial to specify full or partial analysis:
0 = full analysis (default)
1 = partial analysis (stops after rainflow)
-y plane to specify plane_stress correction:
0 = no (default (for crack
1 = yes growth only)
-f fos_opt to specify factor of safety option:
0 = none (default)
1 = stress based
2 = life based
-s str_life to specify reference stress or design life
(this is a factor of safety parameter)
-m max_fac to specify maximum stress factor
-c cut_off to specify material cutoff usage:
0 = use cutoff (default)(used for factor
1 = don’t use cutoff of safety only)
-z fast to specify fast analysis using PV eXtraction
0 = none (default (Not valid for
1 = percentage gate crack growth or
2 = number of points rainflow matrices )
3 = reduction factor
-g pvx_gate to specify actual percentage gate for PV eXtraction
or number of points or reduction factor
-n num_ents to specify number of FE entities for keep for
fast analysis
-t temp_dpnd Use temp dependent mats:
0 = no (default)
1 = yes
-b mmean_mats Use multi-mean correction:
0 = no (default)
1 = yes
-d spect_lod Use spectrum loading input:
0 = no (default)
1 = yes
-e seamw_2004 Use seamw2004 solver:
0 = no (default)
1 = yes
/
exit 1
}
# DEFINE A LOCAL SHELL FUNCTION FOR CHECKING STATUS
check_status( ) {
if [ -f $jobname.abo ] ; then
rm -f $Semaphore
rm -f $jobname.abo
echo "Abort detected ... aborting $Cmd"
exit 2
fi
if [ "$1" -ne 0 ] ; then
# trap "No damaging nodes" as a non-error
code=0
code=‘tail -5 $jobname.msg|grep -c "No damaging nodes"‘
if [code -ne 1] ; then
rm -f $Semaphore
echo "Error detected ... code is <$1> ... aborting $Cmd"
exit 2
fi
fi
}
# DEFINE A LOCAL SHELL FUNCTION FOR DOING A GENERAL-PURPOSE EXIT
exit_normal() {
rm -f $Semaphore
rm -f $jobname.rmn
echo "$Cmd complete"
exit 0
}
# DETERMINE THE COMMAND NAME OF THIS SCRIPT
Cmd=‘echo $0 | sed ’s;^.*/;;’‘
# SET UP PROPER PATHS TO THE EXECUTABLES
if [ -z "$p3fpath" ] ; then
if [ -z "$P3_HOME" ] ; then
ExecDir=/msc/patran75/mscfatigue_files/bin
FatDir=/msc/patran75/mscfatigue_files
else
ExecDir=$P3_HOME/mscfatigue_files/bin
FatDir=$P3_HOME/mscfatigue_files
fi
else
ExecDir=$p3fpath/bin
FatDir=$p3fpath
fi
if [ -z "$npath" ] ; then
NpathDir=$ExecDir
else
NpathDir=$npath/nsoft
fi
# set nCode environment variables
if [ -z "$SHLIB_PATH" ] ; then
SHLIB_PATH=$P3_HOME/mscfatigue_files/bin ; export SHLIB_PATH
else
SHLIB_PATH=$P3_HOME/mscfatigue_files/bin:$SHLIB_PATH ; export SHLIB_PATH
fi
# ASSIGN THE DEFAULT ARGUMENT PARAMETER VALUES
jobname=’’
Verbose=’’
iat=1
partial=0
plane=0
fos_opt=0
str_life=0
max_fac=100
cut_off=0
fast=0
pvx_gate=0
num_ents=0
temp_dpnd=0
mmean_mats=0
spect_lod=0
seamw_2004=0
Status=0
# PARSE THROUGH THE INPUT ARGUMENTS
while [ $# -ne 0 ] ; do
case "$1" in
-v) Verbose=yes ; shift ;;
-j) jobname=$2 ; shift 2 ;;
-a) iat=$2 ; shift 2 ;;
-p) partial=$2 ; shift 2 ;;
-y) plane=$2 ; shift 2 ;;
-f) fos_opt=$2 ; shift 2 ;;
-s) str_life=$2 ; shift 2 ;;
-m) max_fac=$2 ; shift 2 ;;
-c) cut_off=$2 ; shift 2 ;;
-z) fast=$2 ; shift 2 ;;
-g) pvx_gate=$2 ; shift 2 ;;
-n) num_ents=$2 ; shift 2 ;;
-t) temp_dpnd=$2 ; shift 2 ;;
-b) mmean_mats=$2 ; shift 2 ;;
-d) spect_lod=$2 ; shift 2 ;;
-e) seamw_2004=$2 ; shift 2 ;;
-*) abort_usage ;;
esac
done
# MAKE CERTAIN THAT A JOBNAME PARAMETER WAS SPECIFIED
if [ -z "$jobname" ] ; then
abort_usage
fi
# MAKE CERTAIN THAT AN ANALYSIS TYPE WAS SPECIFIED
if [ -z "$iat" ] ; then
abort_usage
fi
# DISPLAY VERBOSE INFORMATION DESCRIBING PARAMETERS IF REQUESTED TO DO SO
if [ ! -z "$Verbose" ] ; then
cat <</
$Cmd parameters ...
Jobname = $jobname
Analysis Type = $iat
Full(0)/Partial(1) = $partial
Plane Stress = $plane
Factor of Safety = $fos_opt
Ref. Stress/Life = $str_life
Use Cutoff = $cut_off
Fast Analysis = $fast
PVX % Gate = $pvx_gate
Num. FE Entities = $num_ents
Temperature dependent= $temp_dpnd
Multi-mean correction= $mmean_mats
Spectrum Load Input = $spect_lod
Use Seamw2004 = $seamw_2004
/
fi
# DELETE ANY OLD FILES OF THE SAME JOBNAME
rm -f $jobname.fpp
rm -f $jobname.fos
rm -f $jobname.fef
rm -f $jobname.fdf
rm -f $jobname.tcy
rm -f $jobname.crg
rm -f $jobname.rmn
rm -f $jobname.fos_tmpl
rm -f $jobname.fef_tmpl
rm -f $jobname.fdf_tmpl
# ASSERT THE SEMAPHORE FOR THIS JOB TO LET THE WORLD KNOW THAT WE’RE BUSY
Semaphore=$jobname.sta
StatusFile=$jobname.sta
echo "Job has begun execution" >$Semaphore
# ALSO SEND ALL LICENSE MESSAGES TO A LOG FILE
LogFile=$jobname.log
date >$LogFile
# DEFINE SOME USEFUL GLOBAL VARIABLES
PCRACK=$ExecDir/pcrack
PFPOST=$ExecDir/pfpost
FEFAT=$ExecDir/fefat
FATFE=$ExecDir/mfatfe
FEROT=$ExecDir/ferot
FEVIB=$ExecDir/fevib
FASTAN=$ExecDir/fastan
SPOTW=$ExecDir/spotw
SEAMW=$ExecDir/seamw
MULTI=$ExecDir/femlf
EntFile=’pfatigue.ents’
rm -f $EntFile
rm -f fastan.msg
# FUNCTION TO PERFORM THE ANALYSIS
SubmitAnalysis()
{
Semaphore=$jobname.fpr
echo "Executing MSC/FATIGUE job \"$jobname\"" >$Semaphore
# DO THE CRACK GROWTH ANALYSIS:
if [ $iat = 3 ] ; then
# PRE-PROCESS CRACK GROWTH:
$PCRACK /mscopt=p/INP=$jobname/OV=Y/\*=$jobname.msg >>$LogFile
check_status $?
if [ $partial = 0 ] ; then
# DO THE FULL ANALYSIS:
if [ -f $jobname.tcy ] ; then
if [ $plane = 1 ] ; then
# PLANE STRESS CORRECTION:
$PCRACK /mscopt=a/INP=$jobname/PLANE=Y \
/OV=Y/\*=$jobname.msg >>$LogFile
check_status $?
else
# NO PLANE STRESS CORRECTION:
$PCRACK /mscopt=a/INP=$jobname/OV=Y/\*=$jobname.msg >>$LogFile
check_status $?
fi
else
check_status 1
fi
fi
fi
# DO THE SPOT WELD ANALYSIS:
if [ $iat = 2 ] ; then
if [ -f $jobname.fes ] ; then
$SPOTW /OPT=e/INP=$jobname/OV=Y/\*=$jobname.msg >>$LogFile
check_status $?
else
check_status 1
fi
fi
# DO THE MAG WELD ANALYSIS:
if [ $iat = 6 ] ; then
if [ $seamw_2004 = 1 ] ; then
if [ -f $jobname.fes ] ; then
$SEAMW /OPT=e/INP=$jobname/OV=Y/\*=$jobname.msg >>$LogFile
check_status $?
else
check_status 1
fi
else
$FATFE /job=$jobname/ana=y/OV=Y/\*=$jobname.msg >>$LogFile
# Until fatfe solver writes status, use manual job-end message
echo "Job execution has ended" >$StatusFile
check_status $?
fi
fi
# CHECK FOR A pfatigue.ent FILE
if [ -f $EntFile ] ; then
location=@$EntFile
else
location=all
fi
# DO THE ROTATION ANALYSIS:
if [ $iat = 44 ] ; then
if [ $partial = 0 ] ; then
# DO FULL ANALYSIS
if [ -f $jobname.fes ] ; then
$FEROT /OPT=a/INP=$jobname/OV=Y/OPT=X/\*=$jobname.msg >>$LogFile
check_status $?
else
check_status 1
fi
fi
fi
# DO THE CRACK INITATION OR TOTAL LIFE ANALYSIS:
if [ $iat = 1 -o $iat = 4 ] ; then
# DO THE FAST ANALYSIS IF REQUESTED
if [ $fast != 0 ] ; then
if [ $fast = 1 ] ; then
type=GATE
fi
if [ $fast = 2 ] ; then
type=LEN
fi
if [ $fast = 3 ] ; then
type=REDUCT
fi
$FASTAN /JOB=$jobname/METHOD=$fast/$type=$pvx_gate \
/ENTS=$num_ents/\*=$jobname.msg >>$LogFile
cat fastan.msg >>$jobname.msg
rm -f fastan.msg
else
if [ $temp_dpnd = 1 -o $mmean_mats = 1 -o $spect_lod = 1 ] ; then
# DO FULL ANALYSIS
$FATFE /job=$jobname/opt=p/popt=a/dobax=n \
/ov=y/opt=a/ana=y/\*=$jobname.msg >>$LogFile
echo "Job execution has ended" >$StatusFile
check_status $?
else
# PRE-PROCESS FIRST:
$FEFAT /OPT=p/INP=$jobname/LOC=$location \
/OV=Y/ANAL=NO/\*=$jobname.msg >>$LogFile
check_status $?
if [ $partial = 0 ] ; then
# DO FULL ANALYSIS
if [ -f $jobname.fpp ] ; then
$FEFAT /OPT=f/INP=$jobname/OV=Y/\*=$jobname.msg >>$LogFile
check_status $?
else
check_status 1
fi
fi
fi
fi
fi
# DO THE FACTOR OF SAFETY ANALYSIS:
if [ $fos_opt != 0 ] ; then
if [ $temp_dpnd = 1 -o $mmean_mats = 1 -o $spect_lod = 1 ] ; then
if [ $partial = 0 ] ; then
# DO ONLY IF FULL ANALYSIS REQUESTED:
if [ -f $jobname.fpp ] ; then
echo "FOS calculation has started" >$StatusFile
if [ $fos_opt = 1 ] ; then
# REFERENCE STRESS BASED FACTOR OF SAFETY:
$FATFE /job=$jobname/opt=p/popt=a/dobax=n \
/ov=y/opt=a/saf=S/dlif=$str_life/\*=$jobname.msg >>$LogFile
echo "FOS calculation has ended" >$StatusFile
check_status $?
elif [ $fos_opt = 2 ] ; then
if [ $cut_off = 0 ] ; then
# DESIGN LIFE BASED FACTOR OF SAFETY W/ CUTOFF:
$FATFE/job=$jobname/opt=p/popt=a/dobax=n \
/MAXFAC=$max_fac/USECUT=Y/ov=y \
/opt=a/saf=L/dlif=$str_life/\*=$jobname.msg >>$LogFile
echo "FOS calculation has ended" >$StatusFile
check_status $?
else
# DESIGN LIFE BASED FACTOR OF SAFETY W/O CUTOFF:
$FATFE /job=$jobname/opt=p/popt=a/dobax=n \
/MAXFAC=$max_fac/USECUT=N/ov=y/opt=a/saf=L \
/dlif=$str_life/\*=$jobname.msg >>$LogFile
echo "FOS calculation has ended" >$StatusFile
check_status $?
fi
else
check_status 1
fi
fi
fi
else
if [ $partial = 0 ] ; then
# DO ONLY IF FULL ANALYSIS REQUESTED:
if [ -f $jobname.fpp ] ; then
if [ $fos_opt = 1 ] ; then
# REFERENCE STRESS BASED FACTOR OF SAFETY:
$FEFAT /OPT=s/INP=$jobname/ANAL=S/STRESS=$str_life \
/OV=Y \/*=$jobname.msg >>$LogFile
check_status $?
elif [ $fos_opt = 2 ] ; then
if [ $cut_off = 0 ] ; then
# DESIGN LIFE BASED FACTOR OF SAFETY W/ CUTOFF:
$FEFAT /OPT=s/INP=$jobname/ANAL=L/LIFE=$str_life/OV=Y \
/MAXFAC=$max_fac/USECUT=Y/\*=$jobname.msg >>$LogFile
check_status $?
else
# DESIGN LIFE BASED FACTOR OF SAFETY W/O CUTOFF:
$FEFAT /OPT=s/INP=$jobname/ANAL=L/LIFE=$str_life \
/OV=Y/MAXFAC=$max_fac/USECUT=N/\*=$jobname.msg >>$LogFile
check_status $?
fi
else
check_status 1
fi
fi
fi
fi
fi
# DO THE VIBRATION FATIGUE ANALYSIS:
if [ $iat = 5 ] ; then
# DO FULL ANALYSIS
if [ -f $jobname.fes ] ; then
$FEVIB /OPT=G/INP=$jobname/OV=Y/\*=$jobname.msg >>$LogFile
check_status $?
else
check_status 1
fi
fi
# DO THE MULTIAXIAL CI ANALYSIS:
if [ $iat = 7 ] ; then
if [ -f $jobname.fes ] ; then
# $MULTI /OPT=c/INP=$jobname/OV=Y/\*=$jobname.msg >>$LogFile # dt1
$MULTI /OPT=c/INP=$jobname/JOB=$jobname/OV=Y/\*=$jobname.msg >>$LogFile
check_status $?
else
check_status 1
fi
fi
# DO THE MULTIAXIAL FOS ANALYSIS:
if [ $iat = 8 ] ; then
if [ -f $jobname.fes ] ; then
# $MULTI /OPT=S/INP=$jobname/OV=Y/\*=$jobname.msg >>$LogFile # dt1
$MULTI /OPT=S/INP=$jobname/JOB=$jobname/OV=Y/\*=$jobname.msg >>$LogFile
check_status $?
else
check_status 1
fi
fi
}
eval SubmitAnalysis
# SUCCESSFUL EXIT OF SCRIPT
exit_normal
#! /bin/sh
#set -x
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# FatigueExecute
#
#
# Abstract:
# Script to submit MSC/FATIGUE to a local or remote host via the
# ANALYSIS MANAGER. This script will call FatigueSubmit on the
# appropriate host. All FatigueSubmit parameters are obtained from
# the jobname.job file.
#
# The current version does not move files from submit node to analysis node.
# This version handles file conversion & launching of FatigueSubmit.
#
# Limitations:
#
# Arguments:
#
# -j jobname Analysis job name
#
# -h remhost The of the submitting host (where the job originated).
#
# -d remdir The directory on the remote host where the job originated.
#
# Modification History:
# 08/30/04 Initial Release
#
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# DEFINE A FUNCTION FOR DISPLAYING VALID PARAMS FOR THIS SCRIPT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
abort_usage( ) {
cat 2>&1 <</
Usage: $Cmd -j jobname -h remhost -d remdir
flags: -v for verbose output
-j jobname to specify a jobname (required)
-h remhost to specify the remote hostname (required)
-d remdir to specify the remote directory (required)
-e exename to specify a solution type (optional)
/
exit 1
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# DEFINE A FUNCTION FOR CHECKING STATUS
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
check_status( ) {
Status=$1
if [ "$1" -ne 0 ] ; then
echo "Error detected ... aborting $Cmd"
exit 2
fi
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# DEFINE A FUNCTION FOR DOING A GENERAL PURPOSE EXIT
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
exit_normal( ) {
rm -f $jobname.fpr
echo "$Cmd complete"
exit 0
}
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# DETERMINE THE COMMAND NAME OF THIS SCRIPT
Cmd=‘echo $0 | sed ’s;^.*/;;’‘
# SET UP PROPER PATHS TO THE EXECUTABLES
if [ -z "$P3_HOME" ] ; then
echo "No path to fatigue executables"
check_status -1
else
ExecDir=$P3_HOME/bin
fi
# ASSIGN THE DEFAULT ARGUMENT PARAMETER VALUES
jobname=’’
exename=’’
remhost=${MSCP_FATIGUE_HOST:-LOCAL}
remdir=${MSCP_FATIGUE_SCRATCHDIR:-.}
Status=0
# PARSE THROUGH THE INPUT ARGUMENTS
if [ $# -lt 2 ] ; then
abort_usage
fi
while [ $# -ne 0 ] ; do
case "$1" in
-v) Verbose=yes ; shift ;;
-j) jobname=$2 ; shift 2 ;;
-h) remhost=$2 ; shift 2 ;;
-d) remdir=$2 ; shift 2 ;;
-e) exename=$2 ; shift 2 ;;
*) abort_usage ;;
esac
done
# MAKE CERTAIN THAT THERE IS A JOBNAME
if [ -z "$jobname" ] ; then
abort_usage
fi
if [ -z "$FAT_COMMAND_STR" ] ; then
echo "Env variables not being set from rcf file"
check_status -1
fi
if [ -z "$FAT_SUBHOST_TYPE" ] ; then
echo "Env variables not being set from rcf file"
check_status -1
fi
exename=$FAT_EXE_NAME
if [ -z "$exename" ] ; then
exename=FEFAT
fi
# DISPLAY VERBOSE INFORMATION DESCRIBING PARAMETERS IF REQUESTED TO DO SO
if [ ! -z "$Verbose" ] ; then
cat <</
$Cmd parameters ...
Exename = $exename
Jobname = $jobname
Remote Host = $remhost
Remote Directory = $remdir
/
fi
# Determine type of analysis machine;
# only two choices since this script only on these machines.
OsName=‘uname‘
case "$OsName" in
Linux)
AnalysisHostType="LINUX"
DestType=3
;;
*)
AnalysisHostType="UNIX"
DestType=12
;;
esac
# Determine type of submit machine;
# env FAT_SUBHOST_TYPE is defined in rcf file & exported to this machine
case "$FAT_SUBHOST_TYPE" in
WINNT)
SubmitHostType="WINNT"
SourceType=3
;;
LINUX)
SubmitHostType="LINUX"
SourceType=3
;;
*)
SubmitHostType="UNIX"
SourceType=12
;;
esac
LogFile=$jobname.log
date >$LogFile
CONFIL=$ExecDir/mconfil
FASTAN=$ExecDir/fastan
FATFE=$ExecDir/mfatfe
FEFAT=$ExecDir/fefat
FEROT=$ExecDir/ferot
FEVIB=$ExecDir/fevib
MULTI=$ExecDir/femlf
PCRACK=$ExecDir/pcrack
SEAMW=$ExecDir/seamw
SPOTW=$ExecDir/spotw
# convert ascii fes if needed
if [ "$AnalysisHostType" != "$SubmitHostType" ] ; then
case "$exename" in
FASTAN)
if [ -f $jobname.asc ] ; then
$FASTAN /OPT=u/UOPT=b/INP=$jobname \
/OUT=$jobname/OV=Y/\*=$jobname.msg >>$jobname.log
check_status $?
fi
;;
MFATFE)
if [ -f $jobname.asc ] ; then
$FATFE /OPT=u/UOPT=f/JOB=$jobname \
/OV=Y/\*=$jobname.msg >>$jobname.log
check_status $?
fi
;;
FEFAT)
if [ -f $jobname.asc ] ; then
$FEFAT /OPT=u/UOPT=b/INP=$jobname \
/OUT=$jobname/OV=Y/\*=$jobname.msg >>$jobname.log
check_status $?
fi
;;
FEROT)
if [ -f $jobname.asc ] ; then
$FEROT /OPT=u/UOPT=b/INP=$jobname/OUT=$jobname \
/OV=Y/\*=$jobname.msg >>$jobname.log
check_status $?
fi
;;
FEVIB)
if [ -f $jobname.asc ] ; then
$FEVIB /OPT=u/UOPT=b/INP=$jobname/OV=Y/\*=$jobname.msg >>$jobname.log
check_status $?
fi
;;
FEMLF)
if [ -f $jobname.asc ] ; then
$MULTI /OPT=u/UOPT=b/INP=$jobname/OV=Y/\*=$jobname.msg >>$jobname.log
check_status $?
fi
;;
PCRACK)
if [ -f $jobname.asc ] ; then
$PCRACK /MSCOPT=u/UOPT=b/INP=$jobname/OUT=$jobname \
/OV=Y/\*=$jobname.msg >>$jobname.log
check_status $?
fi
;;
SEAMW)
if [ -f $jobname.asc ] ; then
$SEAMW /OPT=u/UOPT=b/INP=$jobname/OV=Y/\*=$jobname.msg >>$jobname.log
check_status $?
fi
;;
SPOTW)
if [ -f $jobname.asc ] ; then
$SPOTW /OPT=u/UOPT=b/INP=$jobname/OV=Y/\*=$jobname.msg >>$jobname.log
check_status $?
fi
;;
*)
abort_usage
;;
esac
fi
# DETERMINE NUMBER OF SUPPORTING FILES USED
numdac=0
numpsd=0
numcyh=0
numksn=0
numspe=0
numlcs=0
nummdb=0
numhtd=0
nummnd=0
numdac=‘ls *.dac | wc -l‘ > /dev/null 2>&1
numpsd=‘ls *.psd | wc -l‘ > /dev/null 2>&1
numcyh=‘ls *.cyh | wc -l‘ > /dev/null 2>&1
numksn=‘ls *.ksn | wc -l‘ > /dev/null 2>&1
nummdb=‘ls *.mdb | wc -l‘ > /dev/null 2>&1
# DO CONVERSIONS IF THEY CAME FROM BINARY INCOMPATIBLE SYSTEMS
if [ "$AnalysisHostType" != "$SubmitHostType" ] ; then
if [ "$numdac" -ne 0 ] ; then
find . -name \*.dac -print | awk -F/ ’{print $2}’ > names
for i in ‘cat names‘
do
$CONFIL /INP=$i/TYP=11 - DAC/SOU=$SourceType \
/DES=$DestType/OV=Y/\*=$jobname.msg >>$jobname.log
done
rm -f names
fi
if [ "$numpsd" -ne 0 ] ; then
find . -name \*.psd -print | awk -F/ ’{print $2}’ > names
for i in ‘cat names‘
do
$CONFIL /INP=$i/TYP=11 - DAC/SOU=$SourceType \
/DES=$DestType/OV=Y/\*=$jobname.msg >>$jobname.log
done
rm -f names
fi
if [ "$numcyh" -ne 0 ] ; then
find . -name \*.cyh -print | awk -F/ ’{print $2}’ > names
for i in ‘cat names‘
do
$CONFIL /INP=$i/TYP=11 - DAC/SOU=$SourceType \
/DES=$DestType/OV=Y/\*=$jobname.msg >>$jobname.log
done
rm -f names
fi
if [ "$numksn" -ne 0 ] ; then
find . -name \*.ksn -print | awk -F/ ’{print $2}’ > names
for i in ‘cat names‘
do
$CONFIL /INP=$i/TYP=11 - DAC/SOU=$SourceType \
/DES=$DestType/OV=Y/\*=$jobname.msg >>$jobname.log
done
rm -f names
fi
if [ "$nummdb" -ne 0 ] ; then
find . -name \*.mdb -print | awk -F/ ’{print $2}’ > names
for i in ‘cat names‘
do
$CONFIL /INP=$i/TYP=74 - MDB/SOU=$SourceType \
/DES=$DestType/OV=Y/\*=$jobname.msg >>$jobname.log
done
rm -f names
fi
fi
# Perform the analysis;
# env FAT_COMMAND_STR is defined in rcf file & exported to this machine
$ExecDir/FatigueSubmit $FAT_COMMAND_STR ; check_status $?
# SUCCESSFUL EXIT OF SCRIPT
exit_normal
WORD | CONTENTS |
1-7 | Creation date (7xINTEGER) |
8-14 | Update date (7xINTEGER) |
15 | Operating system which created the file. (INTEGER), 2=VMS,10=DEC Unix,12=Other Unix, 101=Windows |
16 | File ID number (89=FES File) (INTEGER) |
17 | Major Revision level (3=Current level) (INTEGER) |
18 | Minor Revision level (5=Current level) (INTEGER) |
19-34 | Program name which last wrote the file (CHARACTER*32) |
35 | FES Type (Integer): 0=Full FES file, 1=Partial FES file |
36 | Data Source (Integer) 0 = MSC/PATRAN or MSC/FATIGUE 1 = Hypermesh 2 = SDRC 3 = Mechanica 4 = ANSYS 5 = NASTRAN OP2 6 = ABAQUS 7 = MEDINA 8 = FEDEM 9 = ADAMS |
37-50 | Unused |
51 | Record number containing load data LODREC (usually record 3) (INTEGER*4) |
53 | Record number containing group/mat. data (INTEGER*4) |
55 | Record number containing stress data (INTEGER*4) |
57 | Number of calculation points (nodes or elements) (INTEGER*4) |
59-256 | Unused |
WORD | CONTENTS |
1 | Fatigue Calculation Type (INTEGER): 1=Local Strain, 2=S-N, 3=Crack Growth, 4=Spot Weld, 5=Vibration analysis, 6=Seam Weld S-N, 7=Multiaxial E-N, 8=Multiaxial safety factor, 9=Multiple mean stress S-N |
2 | FE results type (INTEGER): 0=Linear Static, 1=Linear Time Step (Transient dynamic, etc.), 2=Transfer function, 3=PSD, 4=Elastic-plastic Time Step, 5=Rotating analysis (wheels) |
3 | Results Type (INTEGER): 0=Stress, 1=Strain (Local strain method only), 2=Forces (Spot weld only), 3=Stress and Strain (from Elastic-Plastic) |
4 | Results at (INTEGER): 0=Node, 1=Element centroid, 2=Node and element, 3=Element centroid and corners |
5 | Results co-ordinate system (INTEGER): 0=Full 3D, no defined co-ordinate system, 1=2D resolved to surface. |
6 | Results combination method (INTEGER): 1=Max. Principal, 2=Min. Principal, 3=Abs. Max. Principal (*), 4=Von Mises, 5=Max. Shear (stress) or Tresca (strain), 6=Signed Von Mises (*), 7= X component (*), 8=Y component (*), 9=Z component (*), 10=XY component (*), 11=YZ component (*), 12=ZX component (*), 19=Signed Max. Shear Stress (*), 20=Signed Tresca Strain(*), 21=Mid Principal, 22=Min. Abs. Principal, 23=Critical plane analysis (set for multiaxial, non-changeable). The (*) indicates approved options. |
7 | Number of load inputs (static) or time steps (time-step analyses) or load inputs (vibration) or load conditions (rotating analysis) (INTEGER). If number of time steps=-1, see offset in word 17. |
8 | Number of groups/materials (INTEGER) |
9 | Design Criterion, in % (REAL) |
11 | Stress units (INTEGER): 0=MPa, 1=Pascals, 2=PSI, 3=KSI, 4=kg/m^2 Force/length units (Spot Weld only): 0=Newtons/mm, 1=Newtons/m, 2=lbs/ins, 3=kips/in |
12 | Damage Model (INTEGER): Local Strain: 0=SWT, 1=Morrow, 2=Strain-Life; S-N: 0=No correction, 1=Goodman, 2=Gerber, 3=Interpolate (multiple mean stress only); Spot Weld: 0=only valid number; Seam Weld: 0=No mean stress correction, 1=Mean stress correction; Multiaxial E-N: 0=Normal strain, 1=SWT-Bannantine, 2=Shear stress, 3=Fatemi-Socie, 4=Wang-Brown, 5=Wang-Brown with Mean; Multiaxial safety factor: 0=Dang Van, 1=McDiaemid |
13 | Elastic-plastic correction (INTEGER): 0=Neuber, 1=Mertens/Dittmann, 2=Seeger/Beste, 3=None (for elastic-plastic results), 4=Glinka (not supported yet) |
14 | Biaxial correction method (INTEGER): 0=None, 1=Ratio, 2=Hoffmann-Seeger |
15 | S-N small cycle correction (INTEGER): 0=None, 1=Heibach relative Miner. |
16 | Vibration Analysis (INTEGER): 0=Dirlik, 1=Narrow Band, 2=All |
17 | Number of time steps (v3.2 or above) (INTEGER*4) |
19 | Temperature dependent (INTEGER): 0=No, 1=YES |
20 | Temperature units (INTEGER): 0=Celsius, 1=Fahrenheit, 2=Kelvin |
21 | Shell element data type (INTEGER): For FEMAP: 1=Element centroid Top+Bottom, 2=Element centroid top, 3=Element centroid bottom, 4=Element centroid & corners (top+bottom), 5=Element centroid & corners (top), 6=Element centroid & corners (bottom), 7=Nodial average top, 8=Nodal average bottom |
22 | Solid element data type (INTEGER): For FEMAP: 1=Nodal average (default), 2=Element corners |
23 | Critical plane angle increment (REAL) |
25 | Seam weld analyses - Miners sum (REAL) |
27 | Unused |
29 | Hardening Parameter for Dang Van (REAL) |
31 | Crack Growth Initial crack length (REAL) |
33 | Crack Growth Final crack length (REAL) |
35 | Crack Growth Sharp crack radius (REAL) |
37 | Crack Growth Notch length (REAL) |
39 | Crack Growth Notch root radius (REAL) |
41-56 | KSN filename (CHARACTER*32) |
57-68 | Unused |
69 | Vibration fatigue PSD data (INTEGER): 0=1 combined or directional PSD per node, 1=6 component PSD per node |
70 | Number of vibration frequency steps (INTEGER), maximum value 8192 |
71-86 | Vibration analysis - Load matrix filename (CHARACTER*32) |
87-100 | Unused |
101-140 | Job ID string 1 (CHARACTER*80) |
141-180 | Job ID string 2 (CHARACTER*80) |
181 | Number of equivalent units (REAL): Default 0.0; if 0.0, look in time histories extra details, or ignore if no time histories |
183 | Equivalent units (CHARACTER*80) |
223-256 | Unused |
WORD | CONTENTS |
1 | Load case index number (INTEGER) |
2-41 | Load case descriptor (CHARACTER*80) |
42 | Load case type (INTEGER): 1=constant amplitude, 0=static, >0=see value in LTYPES.IND |
43 | Load case units (INTEGER) |
44-103 | Load case time history name (static), Load case PSD input (vibration) (CHARACTER*120) |
104 | Channel number (for RPCIII input) (INTEGER) |
105 | Load case applied value (REAL) |
107 | Load case scaling factor (REAL) |
109 | Load case offset (REAL) |
111 | Constant amplitude type (INTEGER): 0=Peak-peak, 1=Zero-peak, 2=User Defined |
112 | Constant amplitude maximum value (REAL) |
114 | Constant amplitude minimum value (REAL) |
116 | Time history file type (INTEGER): 0=DAC, 1=RPC 111 (see word 104) |
117-128 | Unused |
129-256 | Load case #2, structure as in 1-128. |
WORD | CONTENTS |
1 | Load conditions index number (INTEGER) |
2-41 | Load condition descriptor (CHARACTER*80) |
42 | Number of wedges (INTEGER) |
43-104 | Unused |
105 | Design life (REAL) |
107 | Load condition scaling factor (REAL) |
109 | Load condition offset (REAL) |
111-128 | Unused |
129-256 | Load condition #2, structure as in 1-128 |
1-128 | Load case #3, etc. up to maximum of 200 load cases |
WORD | CONTENTS |
1 | Material source (INTEGER): 0=Database local/central, 1=Database external, 2=Generated, 3=In FES file (not supported), 4=External ASCII file, 6=No material (e.g. BS5400) |
2 | S-N analysis type (INTEGER): 0=Material based, 1=Component based, 2=BS5400 welded, 3=BS5400 non-welded, 4=Spot Weld, 5=Seam Weld |
3-42 | Database file name (CHARACTER*80) |
43-58 | Material name for Spot Weld, sheet material name (CHARACTER*32) |
59-74 | Sub name (e.g., for Spot Weld: nugget material name; for Crack growth: environment name) (CHARACTER*32) |
75 | Analysis code parameter (INTEGER). If analysis code=2 or 3, then the following codes are used to define the weld classes : 1 = B, 2 = C, 3 = D, 4 = E, 5 = F, 6 = F2, 7 = G, 8 = S, 9 = W |
76 | Type of material as per PFMAT codes (INTEGER) |
77 | UTS (REAL) |
79 | Young’s modulus (REAL) |
81 | Elastic Poisson’s Ratio (REAL) |
83 | Cutoff (REAL) |
85 | Standard error for generated data (REAL) |
87-128 | Space for 21 material params if option 3 (REAL x 21) |
129 | Surface finish ID (INTEGER): 1=No finish/Polished, 2=Ground, 3=Good Machined, 4=Average Machined, 5=Poor Machined, 6=Hot rolled, 7=Forged, 8=Cast, 9=Water corroded, 10=Seawater corroded |
130 | Surface treatment ID (INTEGER): 1=No treatment, 2=Nitrided, 3=Cold rolled, 4=Shot peened |
131 | Multiplier on stress (REAL) |
133 | Stress offset (REAL) |
135 | Fatigue limit reduction factor, kf (REAL) |
137 | Plastic stress conc. factor (REAL) |
139 | M1/M2 Ratio (Seam weld, v3.4 onwards) (REAL), must be >0.0 |
141 | Nugget diameter (Spot weld) (REAL), if 0.0, use the value in the data area. If -1.0, use the spotweld.sys file |
143 | Sheet thickness (Spot weld) (REAL), if 0.0, use the value in the data area |
145 | R-ratio transition ratio (Seam weld) (REAL), 0.0<=R-ratio <=1.0 |
147 | Materials data type (INTEGER): 0=standard, 1=isothermal |
148 | Unused |
149 | Temperature for this group(REAL) |
151-172 | Unused |
173-212 | Group name for reference (CHARACTER*80) |
213-256 | Unused |
WORD | CONTENTS |
1 | Node (INTEEGER*4) |
3 | Element (INTEGER*4). For “Node at element” either both may be set, or only one. If Node is set to 0, then the result is element only. |
5 | Pointer to group number (material etc.) (INTEGER) |
7 | Multiplier for this node (REAL) |
9 | Offset for this node (REAL) |
11 | Temperature @node (REAL) |
13 | For Spot Weld analyses - nugget diameter, for Seam weld analysis - element width (REAL) |
15 | For Spot Weld analyses - sheet thickness, for Seam weld analyses - element thickness (REAL) |
17 | Element type (INTEGER): 0=solid, 1=shell, 2=bar element (Spot Weld) |
18 | Element location if type=1 (INTEGER): 1=bottom, 2=mid, 3=top |
19-32 | Unused |
33-44 | X,Y,Z,XY,YZ,XZ stresses/strains for LC1 (6*REAL) and so on for other LCs. This block repeats for nodes/elements. For time step, LC=time step. For spot welds, these 6 values are used for the forces and moments: Fx, Fy, Fz, Mx, My, Mz. For a Spot Weld analysis, the element number must be the same for 3 consecutive entries (nugget, sheet1 and sheet2). The node number for the nugget must be zero. The node numbers for sheet1 and sheet2 correspond to the node numbers of the shell to which the spot weld beam is connected. For Seam welds analysis, the first 2 values are stress on top and bottom surface of shell respectively (the rest are assumed to be 0): S@ top, S@ bottom For vibration analysis, the six components of the transfer function (as complex numbers) must be stored for each frequency step, for each input. The order is as follows: Frequency step 1: Input 1: Sx1,Sx2,Sy1,Sy2,Sz1,Sz2,Sxy1,Sxy2,Syz1,Syz2,Sxz1, Sxz2 Input 2: …… ……. Frequency step 2 Input 1 : and so on where the frequency steps are in the order defined in the header. If the FE results type is PSD, there is only one load input. Since the value is load, not a transfer function there is only one value per frequency step, not twelve. For elastic-plastic results, each time step would also contain 12 results, the first six for strain and the next six for stress. For rotating analysis results, the six stresses for each load case for each wedge are stored as follows: Load case 1: Wedge 1: Sxx, Syy, Szz, Sxy, Syz, Sxz Wedge 2: ... Load case 2: Wedge 1: Sxx, Syy, Szz, Sxy, Syz, Sxz Wedge 2: .. and so on. Node/Element = -1 indicates end of file. It must be present even if the number of valid nodes is stored in the header. |
File revision= | Should be set to 3 (REAL) |
Fatigue code= | (INTEGER) Valid settings are 1 (Crack initiation), 2 (Component S-N), 3 (Crack growth), 4 (Spot weld S-N), 5 (Vibration), 6 (Seam weld S-N), 7 (Multiaxial E-N), 8 (Multiaxial safety factor), and 9 (Multiple menu stress S-N) |
FE results type= | FE results type (INTEGER): 0=Linear Static, 1=Linear Time Step (Transient dynamic, etc.) 2=Transfer function, 3=PSD, 4=Elastic-plastic time step, 5=Rotating analysis (wheels) |
Stress/strain= | Valid settings are 0 and 1 for stress or strain, respectively. |
Results location= | Results at (INTEGER): 0=Node, 1=Element Centroid, 2=Node and Element, 3=Element centroid and corners |
Results co-ordinate system= | Results co-ordinate system (INTEGER): 0=Full 3D, no defined co-ordinate system, 1=2D resolved to surface. |
Stress/strain combination= | Results combination method (INTEGER): 1=Max. Principal, 2=Min. Principal, 3=Abs. Max. Principal (*), 4=Von Mises, 5=Max. Shear (stress) or Tresca (strain), 6=Signed Von Mises (*), 7= X component (*), 8=Y component (*), 9=Z component (*), 10=XY component (*), 11=YZ component (*), 12=ZX component (*), 19=Signed Max. Shear Stress, 20=Signed Tresca Strain(*), 21=Mid Principal, 22=Min. Abs. Principal, 23=Critical plane analysis. The (*) indicates approved options. |
Number of load cases= Number of time steps= | Number of load cases or time steps (INTEGER) |
Number of materials= | Number of materials (INTEGER) |
Number of nodes= | Number of nodes with stress or strain results. Can refer to number of elements also if element based analysis (INTEGER) |
Stress units= | Stress units (INTEGER): 0=Mpa, 1=Pascals, 2=PSI, 3=KSI, 4=kg/m^2 |
Force units | Force units (INTEGER): 0=Nmm, 1=Nm, 2=lbs ins, 3=kip in |
Certainty of survival= | Design criterion in percentage (REAL). This must be 50 for crack initiation. |
Damage model= | Damage Model (INTEGER): Local Strain: 0=SWT, 1=Morrow, 2=Strain-Life; S-N: 0=No correction, 1=Goodman, 2=Gerber, 3=Interpolate (multiple mean stress only); Spot weld: 0=only valid number; Seam weld: 0=No menu stress correction, 1=Menu stress correction on; Multiaxial E-N: 0=Normal strain, 1=SWT-Bannantine, 2=Shear stress, 3=Fatemi-Socie, 4=Wang-Brown, 5=Wange-Brown with menu. |
Elastic-plastic correction= | Elastic-plastic correction (INTEGER): 0=Neuber, 1=Mertens/Dittmann, 2=Seeger/Beste, 3=None (not supported), 4=Glinka; for Multiaxial E-N: 0=Glinka, notch correction |
Biaxiality correction= | Biaxial correction method (INTEGER): 0=None, 1=Ratio, 2=Hoffmann-Seeger |
Initial crack length= | Crack Growth Initial crack length (REAL) |
Final crack length= | Crack Growth Final crack length (REAL) |
Sharp crack radius= | Crack Growth Sharp crack radius (REAL) |
Notch length= | Crack Growth Notch length (REAL) |
Notch root radius= | Crack Growth Notch root radius (REAL) |
K Solution filename= | KSN file name (CHARACTER*32) |
Load case number= | Load case index number (INTEGER) |
Description= | Load case descriptor (CHARACTER*80) |
Load type= | Load case type (INTEGER) See the description of the jobname.fin file for LOAD TYPE= |
Load units= | Load case units (INTEGER) See the description of the jobname.fin file for!! UNIT TYPE= |
Time history name= | Load case time history name (CHARACTER*32) |
Applied FE load= | Load case applied value (REAL) |
Scale factor= | Load case scaling factor (REAL) |
Offset= | Load case offset (REAL) |
Group ID number= | The group ID number which is the same as the material number (INTEGER) |
Material source= | Material source (INTEGER): 0=Database local/central, 1=Database external, 2=Generated, 3=In FES file (not supported), 4=External ASCII file, 6=No material (e.g. BS5400) |
Group description= | Group name for reference (CHARACTER*80) |
S-N Analysis type= | S-N analysis type (INTEGER): 0=Material based, 1=Component based, 2=BS5400 welded, 3=BS5400 non-welded, 4=Spot weld, 5=Seam weld |
Database name= | Database file name (CHARACTER*80) |
Material name= | Material name (CHARACTER*32) |
Sub-name= | Sub name (e.g. environment) (CHARACTER*32) |
Weld class= | Analysis code parameter (INTEGER). If analysis code=2 or 3, then the following codes are used to define the weld classes: 1 = B, 2 = C, 3 = D, 4 = E, 5 = F, 6 = F2, 7 = G, 8 = S, 9 = W |
Surface finish= | Surface finish ID (INTEGER) |
Surface treatment= | Surface treatment ID (INTEGER) |
Stress/strain raiser= | Multiplier on stress (REAL) |
Stress/strain offset= | Stress offset (REAL) |
Fatigue limit reduction (Kf)= | Fatigue limit reduction factor (REAL) |
Plastic stress concentration factor (Formzahl)= | Plastic stress conc. factor (REAL) |
Node number= Element number= | The node or element number. A node or element number of -1 indicates the end of the file (INTEGER) |
Group ID= | The group ID applied to the above node or element (INTEGER) |
Multiplier= | The scale factor to be applied to results values for the above node or element (REAL) |
Offset= | An offset to be applied to the results values for the above node or element (REAL) |
Temp.= | A temperature reference for the above (REAL). Not used. |
WORD | CONTENTS |
1-7 | Creation date (7xINTEGER) |
8-14 | Update date (7xINTEGER) |
15 | Operating system which created the file. (INTEGER): 7=SUN, 8=SGI, 9=IBM, 10=DECS, 11=HP700 |
16 | File ID number (88) (INTEGER) |
17 | Major Revision level (INTEGER) |
18 | Minor Revision level (INTEGER) |
19-34 | Program name which last wrote file (CHARACTER*32) |
35-50 | Unused |
51 | Pointer to record containing load data (INTEGER*4) |
53 | Pointer to record containing group/mat. data (INTEGER*4) |
55 | Pointer to first record containing stress data (INTEGER*4) |
57 | Number of nodes (INTEGER*4) |
59 | Bin size used in this file (INTEGER) |
60 | FPP file has been used (1) or not (0) (INTEGER) |
61-128 | Unused |
WORD | CONTENTS |
1 | Fatigue Calculation Type (INTEGER): 1=Local Strain, =Component S-N, 4=Material S-N |
2 | FE results type (INTEGER): 0=Linear Static, 1=Linear Time Step (Transient dynamic, etc.) |
3 | Results Type (INTEGER): 0=Stress, 1=Strain (Local strain method only) |
4 | Results at (INTEGER): 0=Node, 1=Element Centroid |
5 | Results co-ordinate system (INTEGER): 0=Full 3D no defined co-ordinate system, 1=2D resolved to surface. |
6 | Results combination method (INTEGER): 1=Max. Principal, 2=Min. Principal, 3=Abs. Max. Principal (*), 4=Von Mises, 5=Max. Shear (stress) or Tresca (strain), 6=Signed Von Mises (*), 7= X component (*), 8=Y component (*), =Z component (*), 10=XY component (*), 11=YZ component (*), 12=ZX component (*), 19=Signed Max. Shear Stress (*), 20=Signed Tresca Strain (*), 21=Mid Principal, 22=Min. Abs. Principal The (*) indicates approved options. |
7 | Number of load cases or time steps (INTEGER) |
8 | Number of groups/materials (INTEGER) |
9 | Design Criterion, in % (REAL) |
11 | Stress units (INTEGER), 0=MPa, 1=Pascals, 2=KSI, 3=PSI, 4=kg/m^2 |
12 | Damage Model (INTEGER): Local Strain: 0=SWT, 1=Morrow, 2=Strain-Life; S-N: 0=No correction, 1=Goodman, 2=Gerber |
13 | Elastic-plastic correction (INTEGER): 0=Neuber, 1=Mertens-Dittmann, 2=Seeger-Beste, 3=Glinka, 4=None |
14 | Biaxiality correction method (INTEGER): 0=None, 1=Ratio, 2=Hoffmann-Seeger |
15 | S-N small cycle correction (INTEGER): 0=None, 1=Heibach relative Miner |
16-29 | Unused |
30-69 | Job ID string 1 (CHARACTER*80) |
70-109 | Job ID string 2 (CHARCATER*80) |
110-128 | Unused |
1 | Number of Equivalent units (REAL) |
2-41 | Equivalent units string (CHARACTER*80) |
42-128 | Unused |
1 | Load case index number (INTEGER) |
2-41 | Load case descriptor (CHARACTER*80) |
42 | Load case type (INTEGER) |
43 | Load case units (INTEGER) |
44-103 | Load case time history name (CHARACTER*32) |
104 | Unused |
105 | Load case applied value (REAL) |
106 | Load case scaling factor (REAL) |
107 | Load case offset (REAL) |
108-128 | Unused |
1-128 | Load case #3, etc. up to maximum of 200 load cases |
WORD | CONTENTS |
1 | Material source (INTEGER): 0=Database local/central, 1=Database external, 2=Generated, 3=In FES file, 4=External ASCII file, 5=M/Vision, 6=No material (e.g. BS5400) |
2 | S-N analysis type(INTEGER): 0=Material based, 1=Component based, 2=BS5400 welded, 3=BS5400 non-welded |
3-42 | Database file name (CHARACTER*80) |
43-58 | Material name (CHARACTER*32) |
59-74 | Sub name (e.g. environment) (CHARACTER*32) |
75 | Analysis code parameter (INTEGER) |
76 | Type of material as per PFMAT codes (INTEGER) |
77 | UTS (REAL) |
79 | Young’s modulus (REAL) |
81 | Elastic Poisson’s Ratio (REAL) |
83 | Cutoff (REAL) |
85 | Standard error for generated data (REAL) |
87-128 | Space for 21 material params if option 3 (REALS) |
1 | Surface finish ID (INTEGER) |
2 | Surface treatment ID (INTEGER) |
3 | Multiplier on stress (REAL) |
5 | Stress offset (REAL) |
7 | Fatigue limit reduction factor (REAL) |
9 | Plastic stress conc. factor (REAL) |
11-44 | Unused |
45-84 | Group name for ref. (CHARACTER*80) |
85-128 | Unused |
WORD | CONTENTS |
1 | Node (INTEGER*4) |
3 | Element (INTEGER*4) Both may be present for node at element method. |
5 | Group number (material etc.) (INTEGER) |
6-10 | Unused |
11 | Temperature @node (REAL) |
13-16 | Unused |
17 | Minimum on mean axis (REAL) |
19 | Mean bin size (REAL) |
21 | Minimum on range axis (REAL) |
23 | Range bin size (REAL) |
25 | Stats are valid (1) or not present (0) (INTEGER) |
27 | Biaxiality ratio average (REAL) |
29 | Biaxiality standard deviation (REAL) |
31 | Most popular angle (REAL) |
32 | Angle spread (REAL) |
33 | Max. Stress Range (REAL) |
34 | Gate used in biaxiality analysis. (REAL) |
35-48 | Unused |
49 | Total number of cycles counted (INTEGER*4) |
51 | Pointer to next node/element block (INTEGER*4) |
53 | Range bin (INTEGER) |
54 | Mean bin (INTEGER) |
55 | Cycle count for bin (INTEGER*4) |
56-59 | Next cycle, etc. |
Column 1 | corresponds to Damage |
Column 2 | to Log of Damage |
Column 3 | to Life in Repeats |
Column 4 | to Log of Life in Repeats |
Column 5 | to Life in User-Defined Units (cycles in this case) |
Column 6 | to Log of Life in User-Defined Units (cycles in this case) |
Column 7 | to Mean of the Biaxiality Ratio |
Column 8 | to Standard Deviation of the Biaxiality Ratio |
Column 9 | to Angle Spread |
Column10 | to Most Popular Angle |
Column 11 | to Maximum Principal Stress Range |
Column 12 | to Gate in Stress Units |
Column 1 | to Factor of Safety |
Record 1: TITLE (80A1)
Record 2: NNODES,MAXNOD,DEFMAX,NDMAX,NWIDTH (2I9 E15.6, 2I9)
Record 3: SUBTITLE1 (80A1)
Record 4: SUBTITLE2 (80A1)
Record 5 to n+4: NODID, (DATA(J), J=1, NWIDTH) (I8, (5E13.7))
Parameter | Description |
TITLE | 80A1 title stored in an 80 word real or integer array |
SUBTITLE1 | Same format as TITLE |
SUBTITLE2 | Same format as TITLE |
NNODES | Number of nodes (integer) |
MAXNOD | Highest node ID number (integer) |
DEFMAX | Maximum absolute displacement (real) |
NDMAX | ID of node where maximum displacement occurs (integer) |
NWIDTH | Number of columns after NODID for nodal information (integer) |
NODID | Node ID number (integer) |
DATA | Result quantities organized by column index (real) |
Record 1: TITLE (80A1)
Record 2: NWIDTH (I5)
Record 3: SUBTITLE1 (80A1)
Record 4: SUBTITLE2 (80A1)
Record 5 To N+4: ID, NSHAPE, (DATA(J), J=1,NWIDTH) (2I8, /, (6E13.7))
Parameter | Description |
TITLE | 80A1 Title Stored In An 80 Word Real Or Integer Array |
SUBTITLE1 | Same format as TITLE |
SUBTITLE2 | Same format as TITLE |
NWIDTH | Number Of Columns Of Data Stored In The File (Integer) |
ID | Element Identification Number (Integer) |
NSHAPE | Essential Shape Code (Bar = 2, Tri = 3, Quad = 4, Tet = 5, Pyr = 6, Wedg = 7, Hex = 8; Integer) |
DATA | Result Quantities Organized By Column Index (Real) |