Licensing & Installation
Can I Run My FLEXnet License Server From My Desktop Machine?
There is nothing preventing you from installing and running both ESRD software products and FLEXnet License Manager on the same computer. You should, however, run the FLEXnet License Manager on a computer that is not shutdown or rebooted often so that the floating license keys are accessible to all users when the user requests them. The FLEXnet License Manager requires very little computer resources but the Service needs to be on a computer that remains running when users expect to use ESRD software products.
How Do I Control Which Users Can Access License Features?
The FLEXnet administrator can control access and permissions of specific FLEXnet licensing features based on user, node or group. This is performed by creating a FLEXnet Options file (.opt) and placing this file in the root directory of your FLEXnet installation.
From Chapter 11, “Managing the Options File” in the FLEXnet v11.5 License Administration Guide:
For concurrent (floating) licenses, the license administrator can:
 Allow the use of features
 Deny the use of features
 Reserve licenses
The concurrent licenses can be held either in license files or in fulfillment records within trusted storage.
For activatable licenses, the license administrator can:
 Allow activation of licenses in a specific fulfillment record
 Deny activation of licenses in a specific fulfillment record
For all licenses, the license administrator can:
 Restrict the number of licenses available
 Control the amount of information logged about license usage
 Enable a report log file
Options files allow you, as the license administrator, to be as secure or open with licenses as you like. Lines in the options file are limited to 2048 characters. The \ character is a continuation character in options file lines.
Creating an Options File
 Use the appropriate options listed in Options File Syntax to create the options file for a vendor daemon using any text editor.
 Locate the options file anywhere; however, it is recommended that the options file be placed in the same directory as the license file.
 Add the path to the options file in the license file as the fourth field on the VENDOR line for the application’s vendor daemon.
 For example: VENDOR sampled /etc/sampled \[options=]/sample_app/sampled/licenses/sampled.opt enables the sampled vendor daemon to look at the specified options file.
If the path is omitted, the vendor daemon automatically looks for a file according to the following criteria:
 the name of the file is vendor.opt, where vendor is the vendor daemon name
 the directory that contains the license file used by lmgrd
The above means that if the name of the vendor daemon (i.e. esrd2.exe) is the same as the options file (esrd2.opt), there is no need to add the path to the options file in the license file. It will be found automatically.
Options File Syntax Examples
 EXCLUDE – Deny a user access to a feature.
 Usage: EXCLUDE feature[:keyword=value] type {name  group_name}
 Excludes a user or predefined group of users from the list of who is allowed to use the feature.
 EXCLUDE supersedes INCLUDE; conflicts between the EXCLUDE list and the INCLUDE list are resolved by the EXCLUDE taking precedence.
 To exclude the user hank from the list of users able to use feature f1:
 EXCLUDE f1 USER hank
 GROUP – Define a group of users for use with any options.
 Usage: GROUP group_name user_list
 Defines a group of users for use in INCLUDE, INCLUDEALL, INCLUDE_ENTITLEMENT, EXCLUDE, EXCLUDEALL, EXCLUDE_ENTITLEMENT, and RESERVE option lines.
 Multiple GROUP lines for the same group name add all the specified users into the group. To define the group Hackers consisting of bob, howard, and james:
 GROUP Hackers bob howard james
 To specify a list of users or hosts, first define the list using the GROUP or HOST_GROUP option lines,
then use the GROUP or HOST_GROUP type to specify the group name. For example:
 GROUP stars joe barbara susan
 EXCLUDE coolsoft GROUP stars
 INCLUDE – Allow a user to use a feature.
 Usage: INCLUDE feature[:keyword=value] type {name  group_name}
 Includes a user or predefined group of users in the list of who is allowed to use licenses for this feature.
 Anyone not in an INCLUDE statement is not allowed to use that feature. EXCLUDE supersedes INCLUDE; conflicts between the EXCLUDE list and the INCLUDE list are resolved by the EXCLUDE taking precedence.
 To include user bob in the list of users able to use feature f1:
 INCLUDE f1 USER bob
 RESERVE – Reserves licenses for a user or group of users/hosts.
 Usage: RESERVE num_lic feature[:keyword=value] type {name  group_name}
 To reserve one license of feature f1 for user mel:
 RESERVE 1 f1 USER mel
 If you want to reserve a license for each of several users or groups, you must use a separate RESERVE
line for each user or group. If a package name is specified, all components that comprise the package are
reserved.
Simple Options File Example (Sampled.opt)
GROUP ESRDEngs matt eric andrew
GROUP ESRDDevs kristen dave meng
RESERVE 2 SC10_WIN_SC_Ref3D GROUP ESRDEngs
RESERVE 1 SC10_WIN_SC_Ref3D GROUP ESRDDevs
EXCLUDE SC10_WIN_SC_Ref3D USER lori
NOLOG QUEUED
This options file restricts the use of concurrent licenses as follows:
 Defines a group called ESRDEngs and lists users matt, eric and andrew.
 Defines a group called ESRDDevs and lists users kristen, dave and meng.
 Reserves two licenses for the feature SC10_WIN_SC_Ref3D for the group ESRDEngs.
 Reserves one license for the feature SC10_WIN_SC_Ref3D for the group ESRDDevs.
 Prevents the user lori from using the SC10_WIN_SC_Ref3D feature on any system on the network.
 Causes QUEUED messages to be omitted from the debug log file.
The sum total of the licenses reserved must be less than or equal to the number of licenses specified in the FEATURE line. In the example above, there must be a minimum of three licenses on the SC10_WIN_SC_Ref3D FEATURE line. If fewer licenses are available, only the first set of reservations (up to the license limit) is used.
For more details go to: FLEXnet v11.5 License Administration Guide
How Do I Find My HOST ID For ESRD Software Product Licensing?
There are several ways to obtain this information, described in Tip #2 on our Installation and Licensing page.
However, if requesting a Trial Evaluation of ESRD software products for a desktop machine, it is best to open a command line, type “vol” and hit Enter. Copy the 8digit alphanumeric Disk Volume Serial Number into the “Message” field of Request ESRD Support, fill out the rest of the form and Submit.
How Do I Install A New FLEXnet License Server Dedicated To Providing ESRD Software Licensing?
ESRD uses Flexera’s FLEXnet v11 License Manager to manage client requests for ESRD software product features via a local network license server. Follow the below steps to get started with setting up a new FLEXnet License Manager for concurrent (floating) license management of ESRD software products.
Installing ESRD’s FLEXnet v11 License Manager
Note: you must have Administrative privileges in order to properly install FLEXnet.
 Follow the instructions to install FLEXnet 11 on your server machine.
Note: if you have already sent your FLEXnet server’s HOST ID to ESRD Support, you may skip steps to obtain the server HOST ID.
 After installation, run the Flexera LMtools utility (lmtools.exe) from the \FLEXnet_11\FLEXnet\program files\FLEXnet folder:
Flexera’s LMTools Utility.
Note: FLEXnet v11.5 is a legacy version of Flexera license management software, and recent Windows Server operating systems may prevent the LMTools.exe included in FLEXnet v11.5 from launching directly (e.g. via doubleclick of LMTools.exe or running LMTools.exe from the Start menu). In this case, launching LMTools.exe must be performed via command line by rightclicking cmd.exe and selecting “Run as administrator”, navigating to the FLEXnet installation folder containing LMTools.exe (e.g. “cd C:\Program Files (x86)\FLEXnet”) and running “lmtools.exe” by command line.
Setting Up a New FLEXnet License Service for ESRD Software Products
 Follow Tip #2 in our Installation and Licensing page to obtain the FLEXnet server’s HOST ID and send to ESRD Support.
 When you receive your floating license file from ESRD Support, copy it to the FLEXnet folder and rename it “license.dat”. Make certain that the true file extension is not hidden from view by Windows Explorer.
 Run LMtools and select the Configuration using Services bubble in the Service/License File tab.
 Select the Start/Stop/Reread tab and click Stop Server.
 Select the Config Services tab. If the paths shown for “lmgrd.exe”, “License File”, and “Debug Log File” are not correct, use the corresponding “Browse” buttons to correct each path as necessary.
 Activate the switches for “Use Services” and “Start Server at PowerUp”. Click Save Service.
 Select the Start/Stop/Reread tab and select Start Server.
 Verify that the ESRD product software license FEATURES are available by selecting the Server Status tab and selecting the “Perform Status Enquiry” button.
 The FLEXnet license server is configured and running. You should be able to access this license server and run the licensed ESRD software product(s) on any computer within your company local area network. Exit LMTools.
Distribution of ESRD Software Product Licenses and Features
 Place a copy of the license file named “license.dat” (unedited and including the “SERVER” line(s)) onto each client machine that you have installed the ESRD software. How can I limit usage of certain features?
Note: if the system administrator prefers to have the client provide a port number and server name, instead of using a copy of the license.dat, this is also supported by setting the environment variable ESRD2_LICENSE_FILE.
For more details: FLEXnet v11.5 License Administration Guide
How Do I Install ESRD Software Licenses On An Existing FLEXnet License Server?
If a FLEXnet 11 License Manager is already serving floating (concurrent) licenses for other software products, or the version of FLEXnet v11 available on the ESRD Resource Library is not the preferred version of FLEXnet, support for ESRD software product licensing is confirmed through FlexNet Publisher 11.16.2.1 build 245043 (64bit). Follow the below steps to get started with setting up an existing FLEXnet License Manager for concurrent (floating) license management of ESRD software products.
Installing ESRD’s Software Product Vendor Daemons
 Download the FLEXnet 11 License Manager package from the ESRD Resource Library. This is required to obtain the ESRD vendor daemons necessary to serve ESRD software product licenses.
 Unzip the package, and navigate to the \FLEXnet_11\FLEXnet\program files\FLEXnet folder.
 Copy the esrd.exe and esrd2.exe vendor daemons from this folder and paste to the existing FLEXnet 11 License Manager installation folder containing lmgrd.exe (e.g. C:\Program Files (x86)\FLEXnet).
 After the copy/paste operation, run the FLEX LMtools utility (lmtools.exe) from your existing installation of FLEXnet 11.
Note: This operation requires administrative privileges. If you have already sent your FLEXnet server’s HOST ID to ESRD Support, you may skip steps to obtain the server HOST ID.
Updating the Existing FLEXnet License Service for ESRD Software Products
 Follow Tip #2 in our Installation and Licensing page to obtain the FLEXnet server’s HOST ID and send to ESRD Support.
 If applicable, save a backup copy of your current FLEXnet license file that is serving other applications and then append the content of the new license file sent to you from your ESRD Support representative to the end of your current license file.
 Remove the “SERVER” lines from the newly copied information so that you do not have these duplicated within the license file, leaving the original “SERVER” lines at the top of the resulting license file.
 Move the “VENDOR esrd” and “VENDOR esrd2” lines from the copied information under the “SERVER” lines.
 The resulting license file should be in a format similar to the following lines:
SERVER 12345abcdef 111222333444 28518
VENDOR esrd
VENDOR esrd2
#Existing features
FEATURE OTHERSOFTWARE companyvendordaemon …
#ESRD software product features
FEATURE SC_WIN_SC_Ref3D esrd2 …
Note: it may be required to update the port number on the SERVER line. By default, ESRD produces license files which use port 29731 but it may be necessary to use a different port (e.g. 28518).
 If not already running, run the FLEX LMtools utility (lmtools.exe), and go to the “Start/Stop/Reread” tab.
 DO NOT stop the license server, as this may interrupt licensing for other software products. Click “ReRead License File”.
 Verify that the ESRD software licenses are available by selecting the Server Status tab and selecting the “Perform Status Enquiry” button. The status report should display the same license keys that are contained in the license file including those for the ESRD software that you just appended.
Distribution of ESRD Software Product Licenses and Features
 Place a copy of the license file named “license.dat” (unedited and including the “SERVER” line(s)) onto each client machine that you have installed the ESRD software. How can I limit usage of certain features?
Note: if the system administrator prefers to have the client provide a port number and server name, instead of using a copy of the license.dat, this is also supported by setting the environment variable ESRD2_LICENSE_FILE.
For more details: FLEXnet v11.5 License Administration Guide
How Do I Install ESRD Software Products On A Desktop Machine?
Installing ESRD software products is as simple as doubleclicking the MSI and following the instructions. Read Tip #1 on our Installation and Licensing page for more information.
How Do I Perform A Silent Installation Of ESRD Software Products?
Windows does support a silent installation option for all .msi files. Msiexec is the program that “interprets packages and installs products” (see links below) and can be run from the command line. Please note that any command line installation must occur from a command line being run as an administrator.
To run command line as administrator: Click on the start menu. In the search box, type cmd. Wait while Windows searches. In the list of found programs, right click on cmd (or cmd.exe) and choose “Run as administrator.”
Some condensed notes about installation options:
 To specify the .msi package to be installed, use: /i [path to the .msi file]
 To specify the silent installation option, use: /q
 Note that using a completely silent option will not provide any feedback about the success, failure, or completion of the installer. To determine that the process has completed, it is possible to look in the Windows Task Manager Processes tab and watch “msiexec.exe” in the process list. When msiexec disappears from the list, the installer has finished; however, success or failure of a silent installation will not be reported. Alternatively, several other “quiet” options are available. For example, to specify no feedback should occur until the installation ends, at which time a modal dialog box should appear to report the status, use: /qn+
 To specify a property value, use the syntax: PROPERTY=VALUE
 For StressCheck^{®} 10.1 and higher, the property INSTALLLEVEL can be set to 5 to indicate all features should be installed (a “Complete” installation). If INSTALLLEVEL is not specified, StressCheck^{®} will default to a “Typical” installation.
The following example, when executed from an administrative command line, will perform a silent installation of all features (“Complete” option in the GUI) in the StressCheck^{®} 10.1 installation package located on user Kristen’s desktop:
msiexec /i “C:\Users\Kristen\Desktop\StressCheck^{®}PE_10.1_x64.msi” /q INSTALLLEVEL=5
More information about msiexec commandline options:
How Do I Point to a New License File or Server?
You will need to create the environment variable “ESRD2_LICENSE_FILE” and set the value of this to be the new license path or PORT@SERVER. See the below:
In System properties, go to Advanced system settings, then “Environment Variables…” Then, click “New…” and set the variable name to “ESRD2_LICENSE_FILE” and the variable value to the license path or PORT@SERVER. Then click OK.
For example, if the new license file is located in “C:\My Documents\license.dat”, you will need to set the value to this. If the license server is “29731@server” (as in the above capture), you will need to set the value to this.
When you start an ESRD product, it should use the “ESRD2_LICENSE_FILE” value.
How Do I Query the Path to My Current License File or Server?
The quickest way to find the path to the StressCheck^{®} license file or license server is to open a command prompt (cmd.exe) and copy/paste the following text:
REG QUERY "HKCU\Software\FLEXlm License Manager" /v ESRD2_LICENSE_FILE
Note: to paste, right click in the command prompt window, and then click “Paste”
Hit “Enter”, and the path to the license file and/or license server will be returned.
More information:
How Do I Remove References To ESRD Software License Pointers?
To change the references to ESRD software product license points, you must change the registry. The registry keys which control where the license points are as follows:
 “LicenseFile” from HKEY_CURRENT_USER\Software\ESRD\StressCheck^{®}\01000
 “ESRD2_LICENSE_FILE” from HKEY_CURRENT_USER\Software\FLEXlm License Manager
It is best to delete these registry values, and then start StressCheck^{®}. When the license finder appears, simply point to the server.
One can always define the Environment Variable “ESRD2_LICENSE_FILE” and provide the path to the appropriate license file.
Note: An option for floating licenses is to unplug your Ethernet cable, and start StressCheck^{®}. This will also cause the license finder to appear.
How Do I Replace ESRD Software Licenses On A FLEXnet License Server?
In order to replace an ESRD software license file currently in use on a FLEXnet license server, for example if expired or upgraded, the following steps are recommended:
 Rename the new license file to the SAME name as the current license file in use on the FLEXnet license server.
 Replace the current license file with the new license file.
 Ensure the license server name on the SERVER line of the new license file matches the name of the FLEXnet license server machine.
 Start LMTools, navigate to the “Start/Stop/Reread” tab, and click “ReRead License File”.
 Verify that the ESRD software product license FEATURES are available by selecting the Server Status tab and selecting the “Perform Status Enquiry” button. The new license file FEATURES should now be seen by the FLEXnet license manager and available for clients.
Flexera’s LMTools, Start/Stop/Reread tab.
For more information: FLEXnet v11.5 License Administration Guide
How Do I Specify My ESRD Software Product License File Or License Server
If running StressCheck^{®} Professional or another ESRD software product for the first time (or after having removed all ESRD software product licensing references), you will be prompted with the ‘Specify StressCheck^{®} License Path’ dialogue. Here you can specify a local license file or point to a license server. Read Tip #4 on our Installation and Licensing page for more information.
How Often Do ESRD Software Products Check Licensing?
StressCheck^{®} Core License
The StressCheck^{®} Core license remains checked out while StressCheck^{®} is open. Once StressCheck^{®} is closed, the license will be released back to the server after a few minutes.
StressCheck^{®} Solver Licenses
Typically, a solver license is released “in session”, meaning users should not have to close down StressCheck^{®} to release this license once the solver completes or fails.
Once the solver completes or fails, the solver license will be released back to the server after a few minutes.
StressCheck^{®} Advanced Module Licenses
StressCheck^{®} Advanced modules, such as Fracture Mechanics, StressCheck^{®} Composites, SRS and BRS, may remain checked out once requested during the session. For example, extracting a stress intensity factor (SIF) during a session will result in a Fracture Mechanics module license being checked out. The Fracture Mechanics license will then be returned to the license server once that session is terminated.
The MeshSim Advanced module, which is commonly used to generate boundary layer automeshes around 3D cracks, will be checked in shortly after usage.
Is StressCheck MultiThreaded? And How Are CPU Cores Allocated?
Threading and Processing
Much of the current StressCheck^{®} Professional code base is singlethreaded, though over time ESRD is working to improve as much of the code as possible to be multithreaded. Therefore, the current release of StressCheck^{®} is more multithreaded than previous releases, and less multithreaded than it will be in future releases.
Additionally, the current release of StressCheck^{®} does not yet support parallel/multicore processing.
CPU Core Allocation
Regarding the number of cores, the Windows OS handles all the core allocation for StressCheck^{®} processes. It is possible to set processor affinity for specific applications such as StressCheck^{®}: https://www.tekrevue.com/tip/restrictappscpucoresprocessoraffinity/
Is There A LicenseFree Version Of StressCheck I Can Install?
ESRD has created a Student Version of StressCheck^{®} v9.2 that you are free to download and use, with no expiration date. It is a great way to learn the basics of StressCheck^{®}. The Student Version StressCheck^{®} has the following features and limitations:
 StressCheck^{®} Student Edition supports 2D analyses for planar, plate bending, and axisymmetric models.
 Elasticity and Heat Transfer theories are supported.
 Linear & Modal analysis types are supported.
 Fracture Mechanics extractions are supported.
 The maximum model size is limited to 15,000 degrees of freedom.
 Advanced meshing tools, StressCheck^{®} Composites module, and CAD translators are not available.
 COM API (via StressCheck^{®} Application 2.0 Object Library) is supported.
 Full HTML and PDF documentation is included.
Download Software
On Which Operating Systems are ESRD Software Products Supported?
StressCheck^{®} Professional and StressCheck^{®}Powered Apps are designed and certified by ESRD to install and run on Windows 7 and Windows 8 64bit.
StressCheck^{®} Professional v10.3 and v10.4 have been tested to meet all of the technical requirements to be Windows 10 compatible.
Minimum hardware and software configuration requirements can be found here.
What Can Affect Model Performance and Integrity?
Some StressCheck^{®} users may experience decreased model performance and/or integrity in certain situations. The following may be considered as potential reasons:
Scratch Directory and File I/O Issues
Path to Scratch Directory Pointer
Is your “Path to Scratch Directory” option pointing locally or to a network location? If your scratch directory (i.e. a temporary directory automatically created for StressCheck^{®}related session files and solution data) is pointing to a network path, this can drastically slow down model loading and solution times, and even affect the data integrity.
Check the scratch directory path by opening StressCheck^{®} and clicking File > Options, and verify that the “Path to Scratch Directory” value is pointing locally (e.g. C:\Users\…..\AppData\Local\Temp”, which is the default), and is not pointing to a restricted area on your machine (e.g. C:\Program Files\ESRD\StressCheck^{®} PE 10).
NonEssential Temporary Directories
It is recommended to keep the scratch directory path relatively clean of old/discarded StressCheck^{®} temporary directories (dataset folders) as well as other nonessential temporary folders to reduce overhead. These temporary directories have the format of “datasetxxxxxxxxxxxxxxxxx”, with these directories (and their contents) normally removed after StressCheck^{®} sessions are closed by the user.
However, if StressCheck^{®} sessions exit abnormally, these directories may remain. It is recommended to remove any unwanted temporary directories in the scratch directory path.
Reading/Writing StressCheck^{®} Project and Work (SCP or SCW) Files
It is recommended to read (open) and write (save) StressCheck^{®} files locally instead of relying on a network connection. This ensures the packing/unpacking procedure is allowed to complete uninterrupted. Additionally, the local directory should not be a system or restricted folder requiring additional write permissions.
Opening a StressCheck^{®} file from a mail client, such as Outlook, may cause unpacking issues. Therefore, StressCheck^{®} file attachments should be saved locally before opening.
Adhering to these recommendations will ensure that the integrity of StressCheck^{®}‘s files are preserved, and there are no interruptions during the file read/write that can cause corruptions.
Disk Space Availability and Hard Drive Speed
Ideally, the scratch directory path would have plenty of disk space (i.e. > 1 GB), otherwise larger models will almost certainly load and solve at slower rates due to limited disk availability.
Also, there is much file I/O occurring during model loading and solving (especially during stiffness matrix inversion), which can be further limited by your hard drive’s read/write speed.
Ideally, the hard drive would be a steady state hard drive (SSD) or at least a highRPM mechanical hard disk drive (HDD). If your hard drive is quite fragmented, near capacity and/or has a slower RPM mechanical hard disk drive, model performance may be slowed.
Learn more about ESRD Software Product System Requirements.
Firewall and Network Security Considerations
Are you running a nodelocked or floating license configuration? For nodelocked (i.e. machinespecific) licenses, firewalls/network security slowdowns typically are not an issue as there is no network communication involved.
However, for floating (serverbased) licenses, communication through a restrictive network firewall to/from the license server’s FLEXnet license manager can cause significant slowdowns in model performance. This communication is required in order to obtain/return StressCheck^{®} license features and check the license server’s “heartbeat” (i.e. determine if the license server is still capable of serving licenses).
Check with your system administrator to determine if your StressCheck^{®} license server communicates through a highersecurity, firewallenabled network that limits/prevents network communication or specific ports. If this is the case, slowdowns may also be observed for other software products which need to communicate with the same license server.
Graphics Processor
Ideally, the graphics processor for StressCheck^{®} (and all ESRD products) should be set to your video card’s highperformance graphics processing unit (GPU) instead of integrated graphics (e.g. Intel onboard). Some examples of video card manufacturers include Nvidia and AMD, which design dedicated GPU’s for highperformance graphics acceleration and rendering.
For additional information on ensuring you are using your video card’s highperformance GPU (such as Nvidia or AMD) for StressCheck^{®}: https://www.techadvisor.co.uk/howto/pccomponents/howsetdefaultgraphicscard3612668/
Processor Affinity
Has processor affinity (i.e. the specific declaration of CPU cores to be used for an application) been set? Learn more: https://www.tekrevue.com/tip/restrictappscpucoresprocessoraffinity/
What If ESRD Products Fail To Open With A Valid NodeLocked License?
Are you connecting to a computer via remote desktop? ESRD products will not run on a physical or virtual machine using a nodelocked license when accessed via remote desktop. This is due to the design security of our license manager, FLEXnet. If you would like to run ESRD products on a computer remotely, please contact ESRD Support to upgrade to a floating license.
What If My Desktop Machine Gets “Cannot Connect To License Server System” Error?
When attempting to obtain a license from a license server, StressCheck^{®} does not appear to be able to communicate with the license server even though the client machine is on the network. Checking LMTools server status returns error message “lmgrd is not running: Cannot connect to license server system. The license server manager (lmgrd) has not been started yet, the wrong port@host or license file is being used, or the port or hostname in the license file has been changed.”
The firewall on the server machine is blocking incoming requests or the license server has been stopped. Disable the firewall, make sure the license server is running and try again.
To diagnose on the server machine, ensure that lmgrd.exe can run from a command line on the server machine.
What’s the Difference Between the SCW and SCP File?
The SCW, or StressCheck^{®} Work File, is a binary file containing ONLY StressCheck^{®} model information (e.g. geometry, mesh, boundary conditions, etc.) It does not contain any information about a saved session, or any solution information for postprocessing. It is written by clicking File>Export (or the Export icon), and selecting the SCW type (default). It is opened by clicking File>Open, and selecting the SCW file.
The SCP, or StressCheck^{®} Project File, is a binary file containing ALL session information, including model information, log files, solution information, etc. If you were working in a previously unsaved StressCheck^{®} session, and clicked File>Save (or the diskette icon), you would be able to save the entire session to a new SCP file. If you were working in a previously saved StressCheck^{®} session, and clicked File>Save, the previous SCP would be overwritten with the updated session. The SCP file will not be modified unless you click File>Save” to overwrite it. File>Save As may be used to write a NEW SCP file, independent of the previous SCP file.
General Solvers
Are Element Distortion Effects Lessened at Higher PLevels?
Element distortion refers to the difference between the shape of a standard element (a perfect cube in the case of a hexahedral element for example) and the shape of the element in the mesh. The transformation between the standard element and the element in the mesh is called mapping. Mapping functions (Q) establish a relationship between the global coordinates of the element in the mesh (x,y,z) and the local coordinates of the standard element (ξ,η,ζ). For example, the image below shows how a tetrahedral element in the mesh (right) is mapped from its standard shape (left):
In traditional FEA packages, where low order (e.g. p=1 or 2) approximations of the displacement field are used, the effect of distorted elements (or more specifically, distorted tetrahedral elements) is discouraged due to the negative impact of distortion on the quality of the finite element solution. Lowerorder implementations are very susceptible to element distortions; as a result, meshes are typically dense.
The implementation of the finite element method in StressCheck^{®} is less susceptible to element distortion because the mapping functions and the functions used for the approximation of the displacements are independent. In practice, the elements implemented in StressCheck^{®} can be reasonably distorted (e.g. vertex angles in the range 5 ≤ θ ≤ 175, where θ is the solid angle at each corner of the element) and still be acceptable for detailed analysis. Thus, observation of element distortion should not automatically prompt the user to refine the mesh.
However, if the element is too distorted, such as a tetrahedral element with a vanishing angle, the mapping function Q becomes illconditioned and its negative impact on solution quality is only partially compensated by the higher polynomial order of approximation of the displacement functions. Since it is not possible to know apriori the effect of distortion on the quality of the approximation, StressCheck^{®} provides for the extraction of every engineering quantity of interest as a function of the number of degrees of freedom (DOF) to check for convergence. Please refer to this article for the recommended quality control procedures in StressCheck^{®}.
The examples below demonstrate how automeshed tetrahedral elements with reasonable distortion may be used in StressCheck^{®} to perform 3D highquality detailed stress analyses:
StressCheck Demo: Aircraft Keel Beam Stress Analysis
StressCheck Demo: 3D Tie Rod Stress Concentration Factor Study
Note: In 3D the use of hexahedral or pentahedral elements is always preferred over tetrahedral elements, as they are more computationally efficient. A user may handmesh any part (or automatically mesh constant thickness parts by extrusion) with geometrically mapped hexahedral or pentahedral elements if automesh generated tetrahedral elements are too distorted and convergence checks following pextension indicate that the errors are larger than what is considered acceptable. For reference, many 3D examples in the StressCheck^{®} Handbook folders (Edit > Handbook, click Activate Open File Dialogue to browse the Handbook library) are handmeshed with hexahedral and/or pentahedral elements.
For complex geometry where the use of automatic mesh generation is the only practical option, local mesh refinement must be used to eliminate highly distorted elements in the regions of primary interest.
Can I Connect Elements of Different References (i.e. 2D to 3D)?
Although one can connect elements of different references, elements of different references should not be connected (e.g. 1D Beams—>2D Quads or 2D Tris—>3D Pentas) without extreme care. This is because the theory of elasticity requires consistent references (1D, 2D, or 3D) for exact elasticity solutions.
Allowing elements of different references to be connected (via nodes, edges or faces) introduces modeling errors. This practice is known as finite element modeling.
From Dr. Barna Szabó:
Practitioners of finite element modeling are called upon to balance two very large errors: (a) Errors stemming from fact that the finite element model may not have an underlying exact solution and/or the elements chosen my not satisfy the requirements of stability and consistency, and (b) errors of discretization (not enough DOF to represent the exact solution).
In contrast, numerical simulation has a solid scientific foundation. There has to be an underlying exact solution, the finite elements must satisfy the conditions of stability and consistency, and the errors of discretization must be shown to be small. This is why we say that democratization has to be based on numerical simulation, not finite element modelling.
Can I Solve Models with Mixed Element Mapping?
What is Mixed Mapping?
In StressCheck^{®}, mixed mapping refers to the situation where isoparametric (i.e. quadratic function) and geometric (high order blended function) element mappings coexist within the same mesh. Mixed element mapping will result when the user attempts to convert the element mapping from quadratic to geometric via Tools > Convert Element Mapping (All Elements) or Convert Element Mapping (Active Contact Zones Only), and one or more elements fails to convert.
In these cases, neighboring elements of the elements failing to convert will have geometric mapping functions across the shared element boundaries, while the elements failing to convert will remain quadratically mapped.
How Do I Find Regions of Mixed Mapping?
When one or more elements fails to convert mapping to geometric, an element set _CONVERT_FAIL is automatically generated. This set may then be selected/isolated, and the user can determine where these elements are located in the mesh.
How Do I Use Sets to Select and View Groups of Elements and Other Objects?
In some cases, refining the mesh in these regions may be necessary if the elements failing to convert are in regions of primary interest. Then, the user may attempt to convert the mapping of the refined elements to geometric.
Can I Solve Models with Mixed Mapping?
Meshes with mixed element mappings can still be solved; they should cause no errors or prevent the solution from running. In fact, when StressCheck^{®} computes multibody contact solutions, the solver automatically attempts to convert the mapping of elements in active contact zones to geometric, while leaving all other element mappings quadratic.
Care should be taken on the upper limit of the plevel used for solving meshes with mixed mapping however.
Why Is There a Recommended Maximum Plevel for Isopar Automeshes?
What is the Influence of Mixed Mappings on Results?
When mixed mapping is present, there is a possibility that the issues arising from poor geometry approximation may be exacerbated at the transition between geometric and quadratic mapping (i.e. element boundaries). Elements that fail conversion are often located in areas of interest; the reason for failing is that the mapped element becomes too distorted during conversion.
If extractions are to be performed away from the areas where these elements are present then it is OK to use a mixed mesh and extend the plevel all the way to p = 8. As previously mentioned, after conversion you may receive a warning if some elements cannot be converted to geometric mapping and a set (_CONVERT_FAIL) should be available to verify that those elements are outside the areas of interest.
Helpful Hints and Tips: Case Study on the Influence of Element Mapping and pDiscretization
How Can I Improve MultiBody Contact Efficiency?
When compared to a singlepart analysis, a multibody contact analysis of the same degrees of freedom (DOF) is more computationally demanding. This increase in computational time is due to the nonlinear iterations required to accurately depict highgradient pressure distributions between complex parts, especially if the part count (and by extension the number of contact pairs) is high.
If a multibody contact analysis is required, there are several approaches to potentially reduce solver time without significantly affecting the data of interest or the load transfer.
Optimizing Contact Surfaces
Although it is not required to have a 1:1 correspondence of element faces between contacting parts (our contact algorithm is very flexible regarding mesh differences between contacting parts), it is more efficient to have close to a 1:1 correspondence between surface areas in contact.
An additional benefit is that splitting surfaces for contact assignment improves local mesh refinement. This is discussed in the following document:
Helpful Hints and Tips: Optimization of a Simple 3D Contact Problem
Reducing MultiBody Contact Iterations
By default, multibody contact solutions require 40 iterations to complete, unless the maximum contact pressure error is <0.01%. In order to change the number of iterations, create the parameter _contact_iter and set this to a value between 10 and 100.
Note: it is not recommended to reduce the number of iterations unless the maximum contact pressure error is <2% and load transfer is >95% at lower iterations.
Note: for some classes of problems, reducing the number of iterations may not affect the multibody contact solution. For example, close contact problems with very high loads in which the pressure distributions are very smooth. However, some classes of problems may require a high number of iterations in order to properly represent the contact pressures (and therefore load transfer) between parts.
HandMeshing and Copying Simple Parts
If a part or parts in multibody contact are relatively simple to manually (hand) mesh, such as simple fasteners and bushings, this approach can potentially reduce computational time:
StressCheck Tutorial: Copy Mesh Objects and Merge
For example, if a fastener body is to be repeated in multiple holes, it is possible to create/import the solid representing the fastener body, create the mesh/contact zones for the fastener body, and then copy this fastener body to multiple holes.
The below document provides several case studies on reducing the number of contact iterations and handmeshing/copying fasteners:
Helpful Hints and Tips: Improving MultiBody Contact Efficiency
Boundary Layer Refinement and/or PDiscretization in Contact Regions
In cases where higher accuracy of load transfer and pressures is required, it is useful to increase the polynomial level of the surfaces in contact independently from the rest of the model via pDiscretization. For example, surfaces in contact may be fixed at p=6 (or higher) while all other elements outside the selected surfaces are solved at p=5 (or lower).
Additionally, boundary layer refinement around bores in multibody contact aids in the full conversion to geometric mapping and allows the polynomial order of the elements in contact to be increased to p=8. This strategy is demonstrated below:
StressCheck Tutorial: Boundary Layer Refinement and PDiscretization in Contact Regions
The model in the tutorial was solved for three cases:
Case 1: Default automesh, 40 contact iterations
Case 2: Boundary layer refinement in holes of middle plate, pDiscretization of p=8 in holes of middle plate, 20 contact iterations
Case 3: Default automesh, pDiscretization of p=8 in holes of middle plate, 20 contact iterations
The time savings between Case 1 and Case 2 was about 19%, and Case 1 and Case 3 about 42%, without significantly affecting the results in the middle plate holes:
Case 1: Default automesh, 40 contact iterations
Case 2: Boundary layer refinement in holes of middle plate, pDiscretization of p=8 in holes of middle plate, 20 contact iterations
Case 3: Default automesh, pDiscretization of p=8 in holes of middle plate, 20 contact iterations
General Improvements to Solution Efficiency
Additionally, general improvements to solution efficiency without significantly affecting the data of interest are described in the below helpful hints document:
Helpful Hints and Tips: Improving Solution Efficiency
Is StressCheck MultiThreaded? And How Are CPU Cores Allocated?
Threading and Processing
Much of the current StressCheck^{®} Professional code base is singlethreaded, though over time ESRD is working to improve as much of the code as possible to be multithreaded. Therefore, the current release of StressCheck^{®} is more multithreaded than previous releases, and less multithreaded than it will be in future releases.
Additionally, the current release of StressCheck^{®} does not yet support parallel/multicore processing.
CPU Core Allocation
Regarding the number of cores, the Windows OS handles all the core allocation for StressCheck^{®} processes. It is possible to set processor affinity for specific applications such as StressCheck^{®}: https://www.tekrevue.com/tip/restrictappscpucoresprocessoraffinity/
What Can Affect Model Performance and Integrity?
Some StressCheck^{®} users may experience decreased model performance and/or integrity in certain situations. The following may be considered as potential reasons:
Scratch Directory and File I/O Issues
Path to Scratch Directory Pointer
Is your “Path to Scratch Directory” option pointing locally or to a network location? If your scratch directory (i.e. a temporary directory automatically created for StressCheck^{®}related session files and solution data) is pointing to a network path, this can drastically slow down model loading and solution times, and even affect the data integrity.
Check the scratch directory path by opening StressCheck^{®} and clicking File > Options, and verify that the “Path to Scratch Directory” value is pointing locally (e.g. C:\Users\…..\AppData\Local\Temp”, which is the default), and is not pointing to a restricted area on your machine (e.g. C:\Program Files\ESRD\StressCheck^{®} PE 10).
NonEssential Temporary Directories
It is recommended to keep the scratch directory path relatively clean of old/discarded StressCheck^{®} temporary directories (dataset folders) as well as other nonessential temporary folders to reduce overhead. These temporary directories have the format of “datasetxxxxxxxxxxxxxxxxx”, with these directories (and their contents) normally removed after StressCheck^{®} sessions are closed by the user.
However, if StressCheck^{®} sessions exit abnormally, these directories may remain. It is recommended to remove any unwanted temporary directories in the scratch directory path.
Reading/Writing StressCheck^{®} Project and Work (SCP or SCW) Files
It is recommended to read (open) and write (save) StressCheck^{®} files locally instead of relying on a network connection. This ensures the packing/unpacking procedure is allowed to complete uninterrupted. Additionally, the local directory should not be a system or restricted folder requiring additional write permissions.
Opening a StressCheck^{®} file from a mail client, such as Outlook, may cause unpacking issues. Therefore, StressCheck^{®} file attachments should be saved locally before opening.
Adhering to these recommendations will ensure that the integrity of StressCheck^{®}‘s files are preserved, and there are no interruptions during the file read/write that can cause corruptions.
Disk Space Availability and Hard Drive Speed
Ideally, the scratch directory path would have plenty of disk space (i.e. > 1 GB), otherwise larger models will almost certainly load and solve at slower rates due to limited disk availability.
Also, there is much file I/O occurring during model loading and solving (especially during stiffness matrix inversion), which can be further limited by your hard drive’s read/write speed.
Ideally, the hard drive would be a steady state hard drive (SSD) or at least a highRPM mechanical hard disk drive (HDD). If your hard drive is quite fragmented, near capacity and/or has a slower RPM mechanical hard disk drive, model performance may be slowed.
Learn more about ESRD Software Product System Requirements.
Firewall and Network Security Considerations
Are you running a nodelocked or floating license configuration? For nodelocked (i.e. machinespecific) licenses, firewalls/network security slowdowns typically are not an issue as there is no network communication involved.
However, for floating (serverbased) licenses, communication through a restrictive network firewall to/from the license server’s FLEXnet license manager can cause significant slowdowns in model performance. This communication is required in order to obtain/return StressCheck^{®} license features and check the license server’s “heartbeat” (i.e. determine if the license server is still capable of serving licenses).
Check with your system administrator to determine if your StressCheck^{®} license server communicates through a highersecurity, firewallenabled network that limits/prevents network communication or specific ports. If this is the case, slowdowns may also be observed for other software products which need to communicate with the same license server.
Graphics Processor
Ideally, the graphics processor for StressCheck^{®} (and all ESRD products) should be set to your video card’s highperformance graphics processing unit (GPU) instead of integrated graphics (e.g. Intel onboard). Some examples of video card manufacturers include Nvidia and AMD, which design dedicated GPU’s for highperformance graphics acceleration and rendering.
For additional information on ensuring you are using your video card’s highperformance GPU (such as Nvidia or AMD) for StressCheck^{®}: https://www.techadvisor.co.uk/howto/pccomponents/howsetdefaultgraphicscard3612668/
Processor Affinity
Has processor affinity (i.e. the specific declaration of CPU cores to be used for an application) been set? Learn more: https://www.tekrevue.com/tip/restrictappscpucoresprocessoraffinity/
What Does Isopar Mean?
Before we explore the answer to this question, let’s review a two important definitions regarding finite element method implementations:
 Mapping: Within the finite element method (FEM), mapping is the process of transforming the shape of the standard element to fill (part of) the domain of the body (i.e., surface in 2D and volume in 3D).
 Isoparametric elements: When the same functions are used for both geometric (mapping) and solution (displacements) approximation for a set of elements, we call the elements isoparametric. These elements are typically implemented using linear or quadratic nodalbased shape functions (constructed by means of Lagrange polynomials).
Traditional isoparametric elements
There are several historical reasons for using isoparametric mapping in conventional implementations of the finite element method (FEM), such as the advantage of decoupling the solid model from the mesh. However, advancements in computational power have not only rendered these perceived advantages obsolete, but also shown significant drawbacks of the nodal based approach.
In StressCheck^{®}, however, the order of the element mapping is independent from the polynomial order of the shape functions used for approximating the finite element solution, or solver plevels. The main reason to separate the two is to allow for the computation of a hierarchic set of solutions used to compute error estimates and convergence on the data of interest.
In this context, the term geometric mapping is used to indicate that the mapping of the elements is performed using highorder polynomials with optimal collocation points so that the representation of the geometry is almost exact. This mapping allows for large, highlycurved elements with high aspect ratios, and is especially useful as fewer elements are needed to obtain a good approximation of the solution when using highorder functions (i.e. pextension).
Therefore, StressCheck^{®} allows two types of mapping: secondorder, nodalbased (midsidenoded elements) referred to as “isoparametric” or “Isopar”, and highorder polynomials with optimal collocation points referred to as “geometric”.
Geometrically Mapped Elements Generated by Connecting Nodes.
Isoparametric Elements Generated by the MeshSim Automesher.
Geometric mapping is the default for manually generated elements (i.e. elements created by specifying nodes). When using the automesher (Create > Mesh > Auto), there is a checkbox option next to the “Isopar” field activated by default. The main reason for the default being set on “Isopar” is that the automesher implemented in StressCheck^{®} is most successful in generating midsidenoded tetrahedral elements.
However, the mapping for automeshed elements can be converted to geometric (Tools > Convert Element Mapping > Geometric…) provided some conditions are satisfied (e.g., the resulting mapping not having either crossover edges/faces or vanishing (zero) vertex angles). As the automesher optimizes filling the volume with as few elements as possible, the resulting mesh may have some elements with high aspect ratios and/or vanishing angles for which converting the mesh to geometric mapping is not always successful.
Note: for sufficiently refined automeshes, the difference between isoparametric and geometric mapping is typically not significant.
Why Is There a Recommended Maximum Plevel for Isopar Automeshes?
What Does the LAPACK Solver Error Typically Mean?
The following error may occur when performing a solution:
This error typically occurs because of the following correctible issues.
Problem: Not Enough Constraints
If constraints do not prevent all free rigid body motion (zerostrain translations and/or rotations) then the model is underconstrained and cannot be solved.
 In 2D, three rigid body motions must be prevented: two translations and one rotation about the globalZ axis.
 In 3D, six rigid body motions must be prevented: three translations and three rotations.
Solution for SelfEquilibrated Models
If the model is selfequilibrated under the applied loads, then the Rigid Body Constraint method may be used (Constraint tab, Select > Node/Point > Rigid Body). No other constraints are required.
 In 2D, two nodes/points must be selected, and the rigid body constraints will be automatically computed.
 In 3D, three noncollinear nodes/points must be selected, and the rigid body constraints will be automatically computed.
Note: For the model to be selfequlibrated under the applied loads, the load check must return relatively small forces/moments (Load tab, Check > All Elements > Selection, enter the load ID and click Accept). The computed total forces/moments may not be exactly zero due to accumulation of small numerical errors.
Solution for NonSelfEquilibrated Models
If the model is NOT selfequilibrated under the applied loads, other constraints must exist that provide reactions for the applied loads (e.g. Symmetry Constraints or Spring Constraints). Such constraints may be used to provide a reaction and prevent rigid body motion in one direction or in all directions. For example, if the applied resultant forces are in equilibrium in the X direction but not the Y direction, then an additional constraint should only be used to react the Y direction force; one or more Nodal Constraints may be used to prevent any remaining rigid by motions (Constraint tab, Select > Node/Point > Node).
 In this case, check the direction(s) of the rigid body motion(s) to be cancelled, select an appropriate point/node, and click Accept.
 Cancellation depends on the node/point location and the selected direction relative to the applied loads.
 In 2D membrane and 3D solid elements, nodes only have translation components (Ux, Uy and Uz). Rotations must be cancelled with care by selecting the appropriate node and direction.
 The Rotation components in the Nodal Constraint method only are for Beam elements.
Note: in 2D/3D elasticity, nodes and points should NOT react load! They should only be used to prevent rigid body motion, thus setting a reference for the elasticity solution. Weak normal or tangent springs may also be used if a node or point location is not appropriate for cancellation of rigid body motion.
Problem: Rejected Element(s)
The solution can also fail due to rejected elements, where the volume/Jacobian of the elements cannot be computed and therefore the stiffness is negative or zero. To check the Properties of the mesh:
 Mesh tab, Check > Mesh > Properties, click Accept. An element summary will appear.
 Make sure no errors occur after this check, and that the area (in 2D) or volume (in 3D) can be computed for the mesh.
 If an error occurs, a set called “_DISTORT_FAIL” will be created with these element numbers, and it can be viewed (Sets tab, Select > Any Element > Selection, select the set from the list and the elements will highlight).
 Local refinement near distorted elements may be necessary in order to solve the model — smaller elements are less likely to be distorted.
 Alternatively if the area is not a region of primary interest, the parameter “_solve_distort” can be created which allows the rejected/distorted elements to be ignored.
The distortion of the mesh should not cause the solver to fail.
Problem: Disconnected Element(s)
It can occur that elements are not fully connected at the vertices/nodes, and the mesh is discontinuous.
Solution for HandMeshed Elements
Typically, disconnected elements occur because of free edges or faces and redundant nodes.
 Mesh tab, Check > Edge > Free Edge. Free edges will highlight red.
 Note if there are any free edges in the interior of the model that should not be there.
 Click the “Merge” button on the Mesh tab to merge redudant nodes that may be causing the problem.
Note: If there is still an issue, it is likely that there is an associativity problem between neighboring nodes on one or more element edges/faces and geometry. This can occur when one node on an element edge or face belongs to one curve or surface, and the other node on the same element edge or face belongs to another curve or surface. Contact ESRD Support if this appears to be the case.
Solution for Automeshed Elements
Typically, disconnected elements occur because of a problem with the automesher mesh generation. It is best in this case to delete all elements (Mesh tab, Select > All Elements, click Delete) and all nodes (Mesh tab, Select > Node, marquee select all nodes, click Delete), and export an SCW file. Then, open this SCW file and automesh again.
What is a PExtension?
The term “pextension” refers to the process of systematically and hierarchically increasing the polynomial order of the element shape functions on a fixed mesh, thereby increasing simulation degrees of freedom (DOF) and representing more complex displacement fields for the mesh. Conversely, traditional FEA implementations require successive mesh refinements on elements of fixed polynomials, or hextensions, to demonstrate convergence.
While both pextensions and hextensions are capable of converging to the exact solution of a mathematical problem solved by the finite element method, pextensions will achieve convergence with less computational burden. Via the Wikipedia article on pFEM:
The theoretical foundations of the pversion were established in a paper published Babuška, Szabó and Katz in 1981^{[2]} where it was shown that for a large class of problems the asymptotic rate of convergence of the pversion in energy norm is at least twice that of the hversion, assuming that quasiuniform meshes are used. Additional computational results and evidence of faster convergence of the pversion were presented by Babuška and Szabó in 1982.^{[3]}
StressCheck^{®} is capable of automatically performing pextensions during the linear solution process, as shown in the below Linear solver tab:
Pextension from p=2 to 8
Note: it is not always necessary to solve to the maximum polynomial level, p=8. Convergence may be assessed after three (3) hierarchically increasing polynomial levels to determine if continuing the pextension is necessary to achieve the desired solution quality.
This feature makes it very easy to verify convergence of any data of interest, as all runs of increasing DOF are stored for live dynamic extractions of results:
Key Quality Check #4: Peak Stress Convergence (courtesy StressCheck^{®} Professional)
For more information and examples of pextensions in practice:
Why Is There a Recommended Maximum Plevel for Isopar Automeshes?
In general, it is recommended not to exceed a polynomial level (plevel) of p = 5 when solving a model with isoparametric elements.
The reason for the recommended maximum plevel relates to how well the elements approximate the geometry via mapping functions. For isoparametric elements, the approximation is performed using secondorder shape functions, while geometric elements use highorder regional collocation points. For complex geometric details, such as 3D blends, holes and fillets, more isoparametric elements may be required for a sufficient geometric approximation.
Why Is There a Recommended Maximum Plevel for Isopar Automeshes?
In some cases, the automesher may generate too few elements to accurately approximate those geometric details. When that is the case, solving at plevels that exceed the polynomial level of the mapping may cause mathematical artifacts (in the form of spurious strains/stresses) to appear as the solution will be capturing discontinuities across the elements that are not present in the actual geometry. These artifacts simply mean a lower maximum plevel should be used so the order of the solution approximation is closer to the mapping approximation.
How do I evaluate whether the geometry is wellapproximated by isoparametric elements?
There are several ways to check the quality of the geometric approximation of isoparametric elements:
 Check the Error Log for notices on nodes moved after meshing. Moved nodes are typically OK but it means that the node is not lying in the geometry within a prescribed tolerance. This may happen in areas of interest so looking for their location may be a good idea.
 If nodes were moved within the regions of interest, then limit the plevel to 5 or less.
 If nodes are moved within the regions of interest, remeshing is recommended.
 Check for slope continuity using a Face Surface selection. Continuous surfaces should be selectable with a 0 degree tolerance (Select > Face Surface > Locate).
 If some element faces that are part of a continuous surface are not selected then you should not exceed a plevel larger than 5.
 Check for strain or stress jumps across elements. This is more of an indirect check as jumps can also be due to a lack of approximation of the solution. However if the jumps are around all edges of the elements, it is a good indication that the geometry approximation is not great and that the plevel for the solution used for extraction is higher than it should be.
 If you still observe this for lower plevels (say within 2 to 4) remeshing is required.
Can I attempt to convert isoparametric elements to geometricallymapped elements?
Yes. This conversion step can be done either by going to Tools (in the main menu bar at the top of the StressCheck^{®} window) > Convert Element Mapping > Geometric (All Elements) or by unchecking the “Isopar” option on the global mesh record before generating the automesh.
Note: the latter is not recommended for more complex geometries as often the mesh conversion fails for some elements during mesh generation. Also note that the mapping conversion for all elements is a computationally intensive operation.
Converting the entire mesh to geometric mapping will allow for unrestricted plevel extension (i.e. all the way to p = 8). However, as mentioned previously, converting the entire mesh is not always successful. Elements that are too distorted may not be converted to geometric mapping, indicated by a warning message after converting the mesh. An element set will be automatically generated with the elements that failed conversion (_CONVERT_FAIL).
Remark: While the mesh can be modified to eliminate elements that fail to convert, the resulting mesh tends to be good enough to generate good results at low plevels. Note that when some elements fail to convert to geometric, the model can still be solved with mixed mapping. In fact, when StressCheck^{®} computes multibody contact solutions, the solver automatically attempts to convert the mapping of elements in active contact zones to geometric. Elsewhere the mapping remains isoparametric.
Does this mean a mesh with mixed mapping is always better than 100% isoparametric mapping?
Not necessarily. When mixed mapping is present, there is a possibility that the issues arising from poor geometry approximation may be exacerbated at the transition between geometric and isoparametric mapping (i.e. element boundaries). Elements that fail conversion are often located in areas of interest; the reason for failing is that the mapped element becomes too distorted.
If extractions are to be performed away from the areas where these elements are present then it is OK to use a mixed mesh and extend the plevel all the way to p = 8. As previously mentioned, after conversion you may receive a warning if some elements cannot be converted to geometric mapping and a set (_CONVERT_FAIL) should be available to verify that those elements are outside the areas of interest.
Contact ESRD Support if you require additional assistance with the above guidelines.
Meshing
Are Element Distortion Effects Lessened at Higher PLevels?
Element distortion refers to the difference between the shape of a standard element (a perfect cube in the case of a hexahedral element for example) and the shape of the element in the mesh. The transformation between the standard element and the element in the mesh is called mapping. Mapping functions (Q) establish a relationship between the global coordinates of the element in the mesh (x,y,z) and the local coordinates of the standard element (ξ,η,ζ). For example, the image below shows how a tetrahedral element in the mesh (right) is mapped from its standard shape (left):
In traditional FEA packages, where low order (e.g. p=1 or 2) approximations of the displacement field are used, the effect of distorted elements (or more specifically, distorted tetrahedral elements) is discouraged due to the negative impact of distortion on the quality of the finite element solution. Lowerorder implementations are very susceptible to element distortions; as a result, meshes are typically dense.
The implementation of the finite element method in StressCheck^{®} is less susceptible to element distortion because the mapping functions and the functions used for the approximation of the displacements are independent. In practice, the elements implemented in StressCheck^{®} can be reasonably distorted (e.g. vertex angles in the range 5 ≤ θ ≤ 175, where θ is the solid angle at each corner of the element) and still be acceptable for detailed analysis. Thus, observation of element distortion should not automatically prompt the user to refine the mesh.
However, if the element is too distorted, such as a tetrahedral element with a vanishing angle, the mapping function Q becomes illconditioned and its negative impact on solution quality is only partially compensated by the higher polynomial order of approximation of the displacement functions. Since it is not possible to know apriori the effect of distortion on the quality of the approximation, StressCheck^{®} provides for the extraction of every engineering quantity of interest as a function of the number of degrees of freedom (DOF) to check for convergence. Please refer to this article for the recommended quality control procedures in StressCheck^{®}.
The examples below demonstrate how automeshed tetrahedral elements with reasonable distortion may be used in StressCheck^{®} to perform 3D highquality detailed stress analyses:
StressCheck Demo: Aircraft Keel Beam Stress Analysis
StressCheck Demo: 3D Tie Rod Stress Concentration Factor Study
Note: In 3D the use of hexahedral or pentahedral elements is always preferred over tetrahedral elements, as they are more computationally efficient. A user may handmesh any part (or automatically mesh constant thickness parts by extrusion) with geometrically mapped hexahedral or pentahedral elements if automesh generated tetrahedral elements are too distorted and convergence checks following pextension indicate that the errors are larger than what is considered acceptable. For reference, many 3D examples in the StressCheck^{®} Handbook folders (Edit > Handbook, click Activate Open File Dialogue to browse the Handbook library) are handmeshed with hexahedral and/or pentahedral elements.
For complex geometry where the use of automatic mesh generation is the only practical option, local mesh refinement must be used to eliminate highly distorted elements in the regions of primary interest.
Can I Delete An Automesh Without Deleting the Global Mesh Record?
To delete all automesh objects (elements and nodes) without deleting a global automesh record:
 Mesh tab, Select > Mesh > Auto.
 Click the “Delete” button.
All elements and nodes associated with automeshes will be removed, but all mesh records preserved.
Note: deleting a global mesh record will delete only the elements and nodes associated with the global mesh record.
StressCheck Tutorial: Automeshing Tips
How Can I Improve MultiBody Contact Efficiency?
When compared to a singlepart analysis, a multibody contact analysis of the same degrees of freedom (DOF) is more computationally demanding. This increase in computational time is due to the nonlinear iterations required to accurately depict highgradient pressure distributions between complex parts, especially if the part count (and by extension the number of contact pairs) is high.
If a multibody contact analysis is required, there are several approaches to potentially reduce solver time without significantly affecting the data of interest or the load transfer.
Optimizing Contact Surfaces
Although it is not required to have a 1:1 correspondence of element faces between contacting parts (our contact algorithm is very flexible regarding mesh differences between contacting parts), it is more efficient to have close to a 1:1 correspondence between surface areas in contact.
An additional benefit is that splitting surfaces for contact assignment improves local mesh refinement. This is discussed in the following document:
Helpful Hints and Tips: Optimization of a Simple 3D Contact Problem
Reducing MultiBody Contact Iterations
By default, multibody contact solutions require 40 iterations to complete, unless the maximum contact pressure error is <0.01%. In order to change the number of iterations, create the parameter _contact_iter and set this to a value between 10 and 100.
Note: it is not recommended to reduce the number of iterations unless the maximum contact pressure error is <2% and load transfer is >95% at lower iterations.
Note: for some classes of problems, reducing the number of iterations may not affect the multibody contact solution. For example, close contact problems with very high loads in which the pressure distributions are very smooth. However, some classes of problems may require a high number of iterations in order to properly represent the contact pressures (and therefore load transfer) between parts.
HandMeshing and Copying Simple Parts
If a part or parts in multibody contact are relatively simple to manually (hand) mesh, such as simple fasteners and bushings, this approach can potentially reduce computational time:
StressCheck Tutorial: Copy Mesh Objects and Merge
For example, if a fastener body is to be repeated in multiple holes, it is possible to create/import the solid representing the fastener body, create the mesh/contact zones for the fastener body, and then copy this fastener body to multiple holes.
The below document provides several case studies on reducing the number of contact iterations and handmeshing/copying fasteners:
Helpful Hints and Tips: Improving MultiBody Contact Efficiency
Boundary Layer Refinement and/or PDiscretization in Contact Regions
In cases where higher accuracy of load transfer and pressures is required, it is useful to increase the polynomial level of the surfaces in contact independently from the rest of the model via pDiscretization. For example, surfaces in contact may be fixed at p=6 (or higher) while all other elements outside the selected surfaces are solved at p=5 (or lower).
Additionally, boundary layer refinement around bores in multibody contact aids in the full conversion to geometric mapping and allows the polynomial order of the elements in contact to be increased to p=8. This strategy is demonstrated below:
StressCheck Tutorial: Boundary Layer Refinement and PDiscretization in Contact Regions
The model in the tutorial was solved for three cases:
Case 1: Default automesh, 40 contact iterations
Case 2: Boundary layer refinement in holes of middle plate, pDiscretization of p=8 in holes of middle plate, 20 contact iterations
Case 3: Default automesh, pDiscretization of p=8 in holes of middle plate, 20 contact iterations
The time savings between Case 1 and Case 2 was about 19%, and Case 1 and Case 3 about 42%, without significantly affecting the results in the middle plate holes:
Case 1: Default automesh, 40 contact iterations
Case 2: Boundary layer refinement in holes of middle plate, pDiscretization of p=8 in holes of middle plate, 20 contact iterations
Case 3: Default automesh, pDiscretization of p=8 in holes of middle plate, 20 contact iterations
General Improvements to Solution Efficiency
Additionally, general improvements to solution efficiency without significantly affecting the data of interest are described in the below helpful hints document:
Helpful Hints and Tips: Improving Solution Efficiency
How Do I Debug Problem Meshing Face Error Messages?
In some cases, the MeshSim automesher may fail and provide the following error message (or similar):
“MeshSim meshing error. Problem meshing face 1464095 at (0.059494844831943255, 0.14298635089067505, 0.011241197933960261)”
Convert Location to Session Units
The face number (in this case 1464095) is an internal designation and will need to be identified by the corresponding location. The location returned is in the Parasolid default (meters), therefore these units may need to be converted to the session units (e.g. inches or millimeters).
 If inches, the X, Y, Z values need to be multiplied by 39.3701
 If millimeters, the X, Y, Z values need to be multiplied by 1000
Create a Locate Set Based on Location
Once the location is converted to the session units, it is helpful to create a Locate set to select the problem region based on the location.
 Go to the Sets tab, and “Select > Any Object > Locate”, enter the converted X, Y, Z location and a pick box tolerance (e.g. 0.01 inches).
 Clicking Accept will create an object set based on the location and tolerance.
 Select the set name from the dropdown, and the problem region should highlight and indicate what needs to be corrected. The _ms_suppress parameter may help in this case if there is a sliver surface.
Note: if Parasolid’s Workshop .NET product is available, the face number returned by MeshSim may be useful for debugging. Contact ESRD Support for more information.
How Do I Troubleshoot SmallFeature Automeshes?
When CAD files imported into StressCheck^{®} have very small geometric features, these are sometimes suppressed by the MeshSim automesher, resulting in elements not associated with the geometric surfaces in regions near the small features. Some indicators of this are:
1) Loads/constraints applied to geometric surfaces are not applied to element faces
2) MeshSim warnings regarding parasolid error
3) Warning message regarding significant node displacement
To ensure the small geometric features are not suppressed by MeshSim, define the parameter _ms_suppress in the Model Info Parameters tab and set it to less than 5e5 (relative feature size) and try remeshing. Conversely, if you wish to suppress small features from automeshing, you may set the value to be the minimum feature size. MeshSim will skip the meshing of these features.
How Much Difference in Mesh Density Across a Contact Region is Acceptable?
StressCheck^{®}‘s multibody contact algorithm does not require mesh conformity or a 1:1 ratio between contacting element faces. In fact, the element face distribution across assigned contact zones can be quite dissimilar in most practical applications.
However, the resolution of the gap between bodies for calculation of contact pressures is related to the number of collocation points used for each element face of the assigned contact pairs. By default, 196 points per element face in the contact pair are used for calculating the gap function.
The contact gap/penetration is determined by sampling from one contact zone to the other. If the ratio between the number of element faces in the assigned contact pairs is large (for example, 100:1 meaning that there are about 100 more element faces on one side of the declared contact pair than on the other), then the gap function is evaluated at many more locations on one side than on the other. This means that the approximation of the gap function has a different resolution which can induce oscillation during the nonlinear multibody contact solution.
Therefore, it is recommended that the ratio between the number of element faces in the assigned contact pairs be kept close to 1:1. Numerical studies have shown that ratios not exceeding 10:1 are in general satisfactory. A comparison between a 100:1 and the more reasonable 10:1 contacting element face ratio is provided below.
In this case, multibody contact between a lug, clevis and pin was solved. The pin contact zone surrounded 24 element faces, while the number of element faces in the lug was either ~100 or ~10 times more refined. The von Mises stresses were then plotted for the lug in the same stress ranges:
Pin element faces (24 in contact zone)
100:1 ratio between lug and pin contacting element faces
10:1 ratio between lug and pin contacting element faces
As shown in the example, oscillation of the stress distribution is a clear indication that the ratio between contacting element faces is too large.
While regular and similar meshes across contact zones are preferable, there is flexibility to have higher ratios when multiple discretization strategies result in dissimilar element counts across contact pairs. Because the situation is problemdependent, it is not possible to have a fixed rule to define by how much it can deviate from the optimal 1:1 ratio for all cases, so it is very important to check for oscillations in the results of interest along the contacting surfaces during the postprocessing of a contact analysis.
What Do the MeshSim Global Automeshing Parameter Inputs Affect?
When using Mesh tab, Create > Mesh > Auto, the following parameter inputs are available:
The most important inputs for controlling mesh density and distribution are: Ratio, D/H, MinLen and Trans.
Ratio
The user may specify the ratio of the length of the longest desired element edge in the body (L1) relative to the longest length of the smallest coordinate aligned bounding box which surrounds the body (L2). MeshSim will attempt to minimize the largest element length based on the given Ratio.
D/H
The ratio of the distance from the chord formed by an element edge and its associated curve (D) or surface, relative to the length of the element edge (H). Implies that for low D/H values, MeshSim will attempt to increase refinement along areas of higher curvature. For curvature only, will not affect straight regions.
MinLen
The minimum length of any element edge in the mesh (in model units). If MinLen is active, MeshSim will attempt to regulate the minimum lengths of the elements. For curvature only, will not affect straight regions.
Trans
Rate of transition from small elements in a local region to larger elements in a global region. A value of zero (0.0) indicates that elements will remain small in both the local and global region. A value of one (1.0) indicates that elements will transition rapidly from a small size in the local region to a larger size in the global region. A value in between will indicate a more gradual transition between local and global mesh regions. Default in 2D and 3D is 1.0 and 0.0, respectively.
When the Default option is checked, it will use the latest MeshSim algorithms. When the Legacy option is checked, it will use legacy (prev10.3) MeshSim algorithms.
Resources
What Does Isopar Mean?
Before we explore the answer to this question, let’s review a two important definitions regarding finite element method implementations:
 Mapping: Within the finite element method (FEM), mapping is the process of transforming the shape of the standard element to fill (part of) the domain of the body (i.e., surface in 2D and volume in 3D).
 Isoparametric elements: When the same functions are used for both geometric (mapping) and solution (displacements) approximation for a set of elements, we call the elements isoparametric. These elements are typically implemented using linear or quadratic nodalbased shape functions (constructed by means of Lagrange polynomials).
Traditional isoparametric elements
There are several historical reasons for using isoparametric mapping in conventional implementations of the finite element method (FEM), such as the advantage of decoupling the solid model from the mesh. However, advancements in computational power have not only rendered these perceived advantages obsolete, but also shown significant drawbacks of the nodal based approach.
In StressCheck^{®}, however, the order of the element mapping is independent from the polynomial order of the shape functions used for approximating the finite element solution, or solver plevels. The main reason to separate the two is to allow for the computation of a hierarchic set of solutions used to compute error estimates and convergence on the data of interest.
In this context, the term geometric mapping is used to indicate that the mapping of the elements is performed using highorder polynomials with optimal collocation points so that the representation of the geometry is almost exact. This mapping allows for large, highlycurved elements with high aspect ratios, and is especially useful as fewer elements are needed to obtain a good approximation of the solution when using highorder functions (i.e. pextension).
Therefore, StressCheck^{®} allows two types of mapping: secondorder, nodalbased (midsidenoded elements) referred to as “isoparametric” or “Isopar”, and highorder polynomials with optimal collocation points referred to as “geometric”.
Geometrically Mapped Elements Generated by Connecting Nodes.
Isoparametric Elements Generated by the MeshSim Automesher.
Geometric mapping is the default for manually generated elements (i.e. elements created by specifying nodes). When using the automesher (Create > Mesh > Auto), there is a checkbox option next to the “Isopar” field activated by default. The main reason for the default being set on “Isopar” is that the automesher implemented in StressCheck^{®} is most successful in generating midsidenoded tetrahedral elements.
However, the mapping for automeshed elements can be converted to geometric (Tools > Convert Element Mapping > Geometric…) provided some conditions are satisfied (e.g., the resulting mapping not having either crossover edges/faces or vanishing (zero) vertex angles). As the automesher optimizes filling the volume with as few elements as possible, the resulting mesh may have some elements with high aspect ratios and/or vanishing angles for which converting the mesh to geometric mapping is not always successful.
Note: for sufficiently refined automeshes, the difference between isoparametric and geometric mapping is typically not significant.
Why Is There a Recommended Maximum Plevel for Isopar Automeshes?
What Is The General Automeshing Strategy For A 3D StressCheck Part?
For global mesh records (Create > Mesh > Auto):
Typically, the regions of interest are curved surfaces or lines (holes, fillets, etc.), so modifying ‘D/H’ to control the amount of elements in those areas is usually the first thing to try. In general setting ‘Trans’ to a low value to start (0 – 0.1) and then increasing the value slightly (it’s very sensitive) after an appropriate mesh density is achieved in the areas of interest is a good idea as well. If you notice that ‘D/H’ is not having any affect or the elements stop reducing in size at a certain value of D/H, you likely will need to modify the value of ‘MinLen’ to allow for smaller elements in the mesh. ‘Ratio’ is only used to keep all of the elements in the entire mesh under a certain size. Generally, most uncracked geometries can be meshed adequately using only a single global mesh record.
In cases where refinement for specific features is required:
The most used method for local refinement is Create > Mesh > Curve. Select a surface or curve and set the ‘Ratio’ value to something smaller in order to force all of the elements to stay under a certain size associated to the surface or curve. Again, you may need to adjust the ‘MinLen’ param to allow the elements to be small enough.
What is the Size Input for Local Automeshing?
The “Size” parameter is typically the absolute size of the elements in the assigned curve/surface after Local automeshing (Create > Mesh > Local). The surface type can be checked by using Select > Any Surface, and clicking on the surface. In the case of splines (BSplines and PSplines), the “Size” parameter must be scaled relative to the size of the part itself. Therefore, it will typically be a larger value than the desired element size.
Cylindrical Surface
Spline Surface
Why Do I Have Duplicate Geometry or Mesh Objects?
When using the “Create” action in the Geometry or Mesh tab, there are multiple ways to create new objects:
 Clicking “Accept” on the Model Input window
 Hitting Enter on the keyboard
 Leftclicking on the Model Viewing window
It’s possible more than one of these actions was invoked during an object creation. Note: leftclick of the mouse in the Model Viewing window will always perform the current action in the “Action” combo (e.g. Create, Select, Edit).
Avoid LeftClicking in Model Viewing Window After Object Creation
As a best practice, if focus is required in the Model Viewing window, and a new object creation is NOT desired, it is recommended to rightclick in the Model Viewing window to establish the window’s focus such that the model can be rotated, zoomed, etc. This can help with reducing duplication of geometry and mesh objects.
Removing Duplicates
If you suspect there are duplicate geometry and/or mesh objects, changing the combos to “Select > Any Object” and clicking on the “Index” subtab within the Geometry or Mesh tabs will display a list of the objects in the model:
If there are duplicates, you may simply select the object(s) from the Index list and click the “Delete” button, or simply click the “DeLast” button if the last object created was a duplicate.
Note: if nodes are duplicated, clicking the Mesh tab’s “Merge” button will attempt to merge duplicated nodes.
Why Is There a Recommended Maximum Plevel for Isopar Automeshes?
In general, it is recommended not to exceed a polynomial level (plevel) of p = 5 when solving a model with isoparametric elements.
The reason for the recommended maximum plevel relates to how well the elements approximate the geometry via mapping functions. For isoparametric elements, the approximation is performed using secondorder shape functions, while geometric elements use highorder regional collocation points. For complex geometric details, such as 3D blends, holes and fillets, more isoparametric elements may be required for a sufficient geometric approximation.
Why Is There a Recommended Maximum Plevel for Isopar Automeshes?
In some cases, the automesher may generate too few elements to accurately approximate those geometric details. When that is the case, solving at plevels that exceed the polynomial level of the mapping may cause mathematical artifacts (in the form of spurious strains/stresses) to appear as the solution will be capturing discontinuities across the elements that are not present in the actual geometry. These artifacts simply mean a lower maximum plevel should be used so the order of the solution approximation is closer to the mapping approximation.
How do I evaluate whether the geometry is wellapproximated by isoparametric elements?
There are several ways to check the quality of the geometric approximation of isoparametric elements:
 Check the Error Log for notices on nodes moved after meshing. Moved nodes are typically OK but it means that the node is not lying in the geometry within a prescribed tolerance. This may happen in areas of interest so looking for their location may be a good idea.
 If nodes were moved within the regions of interest, then limit the plevel to 5 or less.
 If nodes are moved within the regions of interest, remeshing is recommended.
 Check for slope continuity using a Face Surface selection. Continuous surfaces should be selectable with a 0 degree tolerance (Select > Face Surface > Locate).
 If some element faces that are part of a continuous surface are not selected then you should not exceed a plevel larger than 5.
 Check for strain or stress jumps across elements. This is more of an indirect check as jumps can also be due to a lack of approximation of the solution. However if the jumps are around all edges of the elements, it is a good indication that the geometry approximation is not great and that the plevel for the solution used for extraction is higher than it should be.
 If you still observe this for lower plevels (say within 2 to 4) remeshing is required.
Can I attempt to convert isoparametric elements to geometricallymapped elements?
Yes. This conversion step can be done either by going to Tools (in the main menu bar at the top of the StressCheck^{®} window) > Convert Element Mapping > Geometric (All Elements) or by unchecking the “Isopar” option on the global mesh record before generating the automesh.
Note: the latter is not recommended for more complex geometries as often the mesh conversion fails for some elements during mesh generation. Also note that the mapping conversion for all elements is a computationally intensive operation.
Converting the entire mesh to geometric mapping will allow for unrestricted plevel extension (i.e. all the way to p = 8). However, as mentioned previously, converting the entire mesh is not always successful. Elements that are too distorted may not be converted to geometric mapping, indicated by a warning message after converting the mesh. An element set will be automatically generated with the elements that failed conversion (_CONVERT_FAIL).
Remark: While the mesh can be modified to eliminate elements that fail to convert, the resulting mesh tends to be good enough to generate good results at low plevels. Note that when some elements fail to convert to geometric, the model can still be solved with mixed mapping. In fact, when StressCheck^{®} computes multibody contact solutions, the solver automatically attempts to convert the mapping of elements in active contact zones to geometric. Elsewhere the mapping remains isoparametric.
Does this mean a mesh with mixed mapping is always better than 100% isoparametric mapping?
Not necessarily. When mixed mapping is present, there is a possibility that the issues arising from poor geometry approximation may be exacerbated at the transition between geometric and isoparametric mapping (i.e. element boundaries). Elements that fail conversion are often located in areas of interest; the reason for failing is that the mapped element becomes too distorted.
If extractions are to be performed away from the areas where these elements are present then it is OK to use a mixed mesh and extend the plevel all the way to p = 8. As previously mentioned, after conversion you may receive a warning if some elements cannot be converted to geometric mapping and a set (_CONVERT_FAIL) should be available to verify that those elements are outside the areas of interest.
Contact ESRD Support if you require additional assistance with the above guidelines.
Material Assignment
Can I Assign Material Properties to Bodies/Parts Directly?
With the StressCheck^{®} v10.5 release, there is now a feature to allow assignment of material properties directly to bodies/parts (sheet or solid). This is accomplished by going to the Material tab, Assign subtab, and setting the AOM to Select > Any Body > Selection. Then, select the desired material ID, select a body from the screen or select a body set from the Set: dropdown, and then click Accept.
The Any Body > Selection method assigns the desired material ID to all elements associated with the selected body/part, and supports both manually generated or automatically generated elements. Note: the current functionality supports one body selection per assignment. To assign material properties to a different body, simply repeat the process.
The below tutorial demonstrates an example of using the Any Body > Selection method to assign material properties to one or more bodies:
StressCheck Tutorial: Fitting + IBeam MultiBody Contact Analysis
How Do I Ensure My Model Assignments Persist?
When assigning material properties, boundary conditions or other model attributes, it is best to assign to geometric entities (points, curves or surfaces) instead of mesh entities (nodes, element edges or element faces). This is because StressCheck^{®}‘s elements are designed to inherit assignments to geometry through associativity. Automeshed elements are always geometrically associative, while handmeshed elements will be geometrically associative if the nodes are explicitly associated to the geometry by the user.
In this way, if a model is remeshed, and the elements are renumbed, any assignment to the geometry will persist and be automatically applied to the new mesh. Here’s an example of using geometric association to persist model assignments:
StressCheck Tutorial: Associative Hand Meshing for a Cylindrical Part
Sets/Parts
Can I Assign Material Properties to Bodies/Parts Directly?
With the StressCheck^{®} v10.5 release, there is now a feature to allow assignment of material properties directly to bodies/parts (sheet or solid). This is accomplished by going to the Material tab, Assign subtab, and setting the AOM to Select > Any Body > Selection. Then, select the desired material ID, select a body from the screen or select a body set from the Set: dropdown, and then click Accept.
The Any Body > Selection method assigns the desired material ID to all elements associated with the selected body/part, and supports both manually generated or automatically generated elements. Note: the current functionality supports one body selection per assignment. To assign material properties to a different body, simply repeat the process.
The below tutorial demonstrates an example of using the Any Body > Selection method to assign material properties to one or more bodies:
StressCheck Tutorial: Fitting + IBeam MultiBody Contact Analysis
How Can I Update All Model Sets?
Sometimes, it may be required to update set lists to reflect changes in the model. This is especially true for sets created by the Locate method, in which the pick coordinates and box tolerance will determine which objects will be added to the set.
When set information must be updated, rather than manually replacing each set it is helpful to define a “dummy” parameter to force all sets and assignments to be updated.
For example, we can create a parameter called “dummy” and enter “1+1” in the Expression field. Click Accept, and all model sets will be automatically updated:
More information on Locate sets:
How Do I Ensure My Model Assignments Persist?
When assigning material properties, boundary conditions or other model attributes, it is best to assign to geometric entities (points, curves or surfaces) instead of mesh entities (nodes, element edges or element faces). This is because StressCheck^{®}‘s elements are designed to inherit assignments to geometry through associativity. Automeshed elements are always geometrically associative, while handmeshed elements will be geometrically associative if the nodes are explicitly associated to the geometry by the user.
In this way, if a model is remeshed, and the elements are renumbed, any assignment to the geometry will persist and be automatically applied to the new mesh. Here’s an example of using geometric association to persist model assignments:
StressCheck Tutorial: Associative Hand Meshing for a Cylindrical Part
How Do I Select Internal Surfaces for Locate Sets?
In order for internal surfaces to be selected when creating Locate Sets (i.e. Sets tab, Select > Any Surface > Locate), the Shaded mode MUST be active (blue box):
In order to better visualize internal surfaces, the Geometry Transparency option may be useful:
Here is an example of using the Locate method to select an internal crack surface:
Additional links:
How Do I Use Sets to Select and View Groups of Elements and Other Objects?
In StressCheck^{®}, sets are used to group objects by type (such as elements). This is similar to the Group concept used in other FEA. Sets are designed to allow you to view model input and results limited to a group of objects instead of viewing all objects of that particular type.
If a set of elements exists (i.e. Model Input, Sets tab, Select>Any Element, view list items), it can be selected and changed:
 Select the set from the dropdown list in the Sets tab by using Select>Any Element and clicking on the item in the list. It will highlight all the elements in the set.
 To include more elements in the set, hold SHIFT and pick the additional elements, then click “Replace”.
 To remove elements from the set, hold CTRL and pick the elements to be removed, then click “Replace”.
To select a set of elements from the model display, hold CTRL+SHIFT and select an element in the set. The Sets Browser will appear, with the Candidate sets including the element set in the list (in this case, the Selection is set to Any Element):
To display only this element set, click Display>Objects… and “Sets” tab. Check the “Elements” box, select the element set from the list, then click “Draw” to display only this element set:
This tutorial video shows how to manipulate element displays using automesh and usergenerated sets: https://www.esrd.com/product/stresschecktutorialusingsets/
What Are Some Tips & Tricks for Using Parts and Solution Configurations?
What are Parts and Solution Configurations?
Using StressCheck^{®} Parts in tandem with Solution Configurations is a great way to analyze different modeling configurations in the same StressCheck^{®} session, as well as quickly switch between different groups of objects for visualization, results extraction and more.
From the StressCheck^{®} Master Guide:
StressCheck^{®} provides a facility for organizing the components of a particular model into parts. Parts are just a generalization of the more familiar set definition in StressCheck^{®}. While the members of a StressCheck^{®} “Set” must be of the same type, for example a set of nodes or a set of boundaries, a “Part” is a set of geometric or mesh objects of any type. This facility is particularly handy when working with complex models where it is helpful to be able to activate and deactivate subsets of the model during construction or during postprocessing. Parts are also essential to the definition of Solution Configurations, i.e. the definition of multiple model configurations for the purpose of investigating model variations that are topologically different.
Parts may be defined in the Parts input class. FIGURE 61 illustrates the user interface for the definition of parts. The first step in creating a new part is to make sure the objects of interest are in view in the model display window. Next, select the desired objects using the Select action, combined with an appropriate Object selection. When you are finished selecting objects, you may enter a name to identify this collection of objects as a Part, and supply a description to further identify the part. Click the Accept button when you are ready to save the new part definition. You will see the name appear in the scrolling list in the Parts interface. If you wish to review the definition of any part, simply select the part from the scrolling list. The objects it contains will be highlighted on the screen. You are then free to cancel individual objects that define the part, or to select additional objects that you wish to add to the part. Click the Replace button to change the definition of the selected part, or click Accept to create a new part (after supplying a new part name and description).
Once parts have been defined, they may be chosen for selective viewing using the combo box in the Part Toolbar that may be activated from the View menu in the Main menu bar. The Part combo lists all available parts in the model, and the option All Objects and All Parts. As mentioned earlier, Parts are useful for controlling the contents of the model window during model construction and postprocessing. The other use of parts is to define two or more variations of a model that each represent a complete and valid model that may be solved and postprocessed by StressCheck^{®}.
After defining the solution configurations, you are ready to solve your model variations. You may choose whether to analyze all available solution configurations, or to select a particular solution configuration for analysis. Since each configuration uses a unique solution ID, you can save solutions for all model variations in the same database if you choose All, and postprocess them all without having to solve them separately and postprocess them separately. This makes comparison of model variations more convenient.
Parts and Solution Configurations: Tips and Tricks
Demonstrated in the below tutorials and PDF’s are selected tips, tricks and best practices for how StressCheck^{®} Parts may be defined and utilized in collaboration with Solution Configurations:
StressCheck Tutorial: Parts and Solution Configurations Part 1 – Planar + Hand Mesh
StressCheck Tutorial: Parts and Solution Configurations Part 2 – 3D + Automesh
Some key takeaways from the video tutorials:
Tip #1: When a Part is selected for display from the Parts selector, creating new objects will automatically be appended to the Part definition
This allows new objects intended for an existing Part definition to be added without needing to switch to the Parts tab, select the Part name from the list, select the new objects and click Replace.
If it is NOT desired to add new objects to an existing Part definition, then the Parts selector should be set to “All Objects” before creating any new objects. Additionally, if a solid modeling operation is performed on a body referenced in a Part definition, it may be necessary to update the Part definition with the new body number.
Tip #2: If planning to automesh bodies, and it is desired for automeshed objects (i.e. elements/nodes) to be appended to existing Part(s), then “Any Body” should be used when defining the Part(s)
The most efficient way to ensure automesh objects are stored with a Part definition is to define the Part using object type “Any Body” before the automesher is executed (see above screen capture and the Part 2 tutorial video). Once the automesher is executed, the automesh objects will automatically be appended to each Part definition with references to the bodies automeshed.
Note: if an automesh already exists before the Part has been defined, defining the Part with “Any Body” and then reprocessing the automesh will result in the automesh objects being added to the Part definition.
Selecting the Part in the Parts selector will now display both the body and the automesh objects:
Note: updating parameters associated with a Part’s automeshed body will result in the new automesh objects automatically replacing the current automesh objects in the Part definition.
Tip #3: When plotting and extracting results for multiple bodies, especially for multibody contact solutions, Parts are very useful for efficient visualization
This tip, along with tips for using Parts to create contact zones, is demonstrated in detail in the below tutorial video:
StressCheck Tutorial: MultiBody Contact with Defined Parts
Tip #4: Results from different Solution Configurations may be combined in the StressCheck^{®} Calculator
Any solution may be combined in the StressCheck^{®} Calculator, including those defined in Solution Configurations. Superposition of two solution ID’s is demonstrated in the below tutorial and in the Part 1 tutorial video:
StressCheck Tutorial: Superposition of Axial and Bending Load Case Results
Tip #5: Solution Configurations are applicable for when there are significant changes in model configuration, and not when there are only changes in boundary conditions
If multiple load and constraint cases need to be solved for the same model definition, multiple solution ID’s may be defined and solved (as shown in Tip #4).
However, if there are significant changes in model configuration, such as comparing a filled hole vs. open hole case, then Solution Configurations are quite powerful.
For more hints and tips on Solution Configurations:
Helpful Hints and Tips: Solution Configurations
Why Are Certain Objects in a Model Not Displayed?
Using the Parts class to organize objects into a single named entity is very useful for preprocessing and postprocessing tasks, as well as defining solution configurations and organizing object displays.
However, if a certain Part is selected in the Parts selector at the time of saving a project file (SCP) or workfile (SCW), objects not included in the selected Part will not be displayed when opening the file:
If certain objects are not in the display, first check to ensure each object type is enabled for display.
After opening the file, first check to ensure all object displays are activated (see above). If certain objects are still not displayed, check to see if a Part name is selected in the Parts selector. The Part may have only certain model objects in it, meaning all other model objects will not be displayed.
To remedy the display of all model objects, change the Parts selector from the current Part name to “All Objects”:
All model entities (i.e. elements, nodes, systems, points, etc.) should be displayed. It is then recommended to save the project or workfile in this configuration:
For more information about Parts:
General Modeling & Preprocessing
Can I Connect Elements of Different References (i.e. 2D to 3D)?
Although one can connect elements of different references, elements of different references should not be connected (e.g. 1D Beams—>2D Quads or 2D Tris—>3D Pentas) without extreme care. This is because the theory of elasticity requires consistent references (1D, 2D, or 3D) for exact elasticity solutions.
Allowing elements of different references to be connected (via nodes, edges or faces) introduces modeling errors. This practice is known as finite element modeling.
From Dr. Barna Szabó:
Practitioners of finite element modeling are called upon to balance two very large errors: (a) Errors stemming from fact that the finite element model may not have an underlying exact solution and/or the elements chosen my not satisfy the requirements of stability and consistency, and (b) errors of discretization (not enough DOF to represent the exact solution).
In contrast, numerical simulation has a solid scientific foundation. There has to be an underlying exact solution, the finite elements must satisfy the conditions of stability and consistency, and the errors of discretization must be shown to be small. This is why we say that democratization has to be based on numerical simulation, not finite element modelling.
How Can I Change My Display Format?
The display format is in Clanguage, which is described in detail here: https://www.cprogramming.com/tutorial/printfformatstrings.html
Model Input
The model input display format can be accessed and changed by clicking Display>View Controls… and entering a new “Display Format:”
This will be reflected in all model inputs, including parameter values. By default, the display format is %11.4e, which means a maximum length of 11 digits, a precision of 4 digits and exponential. For example, 11,012.54 will be displayed as “1.1013e5”. To change to a floating format, simply replace the “e” with an “f”.
Once a SCW or SCP file is saved, it will store your current model input display format. To change the default model input display format so that every StressCheck^{®} session uses the same display format, click File>Options and modify the Display Format (below). Then click “OK”:
The differences in model input between the default (%11.4e, top) format and floating point (%11.4f, bottom) are below:
Results
The model results display format can be modified by changing the “Format:” input in the Results tabs. The formatting is the same as described above.
The differences in model results between the default (%11.3e) format and floating point (%11.3f) are below:
How Can I Perform a Compression Only Spring Analysis?
If all that is required is to simulate load transfer to holes or a compressiononly reaction is desired for a single part, thereby reducing the computational time required for multibody contact, normal springs combined with a Material or General Nonlinear analysis may be an efficient workflow.
This “poor man’s contact” form of load transfer may be represented by applying normal springs to element edges or curves (Planar) or element faces or surfaces (3D), applying the appropriate material properties, and solving a Material or General Nonlinear analysis:
Assigning Normal Spring Constraints
Normal springs may be assigned in the Constraints tab, using Select > Edge/Edge Curve/Any Curve (Planar) or Face/Face Surface/Any Surface (3D) > Spring Coeff:
 Change “Direction” from XYZ to Norm./Tan.
 Enter a value in the Normal box (in units of F/L^3).
 Select an object or objects.
 Click Accept.
Note: if a fastener radial spring stiffness is to be approximated, the below expression for Kr may be useful:
Defining & Assigning Material Properties
Because a General Nonlinear analysis is more computationally expensive than a Material Nonlinear analysis, it may be desired to run an analysis that simulates normal springs in compression only. This requires specifying a nonlinear material with either a representative yield stress (if the linear von Mises stresses call for plasticity to be computed), or an artificial yield stress to force the material nonlinear algorithm to release normal springs that are in tension but otherwise keep the stresses linear.
Representative vs. Artificial Yield Stress
 If plasticity is to be incorporated in the analysis, the material properties should be defined using a representative nonlinear material stressstrain curve and yield stress.
 For example, if the material is steel and the units are US Customary, then a representative value for the nonlinear material’s elasticplastic “Sy” may be 50 ksi.
 The nonlinear material property can be assigned to a set of elements or all elements.
 If plasticity is NOT to be incorporated in the analysis, then an elasticperfectlyplastic (Type: Elastoplas.) material curve with a yield stress (Sy) of an “unreachable” value may be specified.
 For example, “Sy” may be set to 1e6 ksi, such that plasticity is not computed.
 The nonlinear material property may be assigned to only the surfaces assigned normal springs in order to make the material nonlinear analysis more efficient, or to a set of elements or all elements.
Material Nonlinear Analysis (NL Mat)
After a linear analysis is available, a Material Nonlinear analysis (Type: Material (NL Mat)) may be executed to compute plasticity + represent compressiononly normal springs, or simply represent compressiononly normal springs.
 In the case of compressiononly normal springs, the “Convergence:” must be set to Energy.
 In the case of plasticity + compressiononly normal springs, the “Convergence:” may be set to either Energy or Stress.
General Nonlinear Analysis (NL Gen)
If a General Nonlinear analysis is required to account for large displacements and/or rotations, and equilibrium must be solved in the deformed configuration, then the solution should use Type: General (NL Gen). Normal springs will always be compressiononly in a General Nonlinear analysis.
Note: nonlinear material properties do not need to be assigned to any elements in order to solve a General Nonlinear analysis.
For more information:
How Do I Display Object Numbering?
To display the object numbering for visualization, click on Display>Objects…
Then, check the Label box next to the object numbering you want to visualize and click “Draw”. For example, if we want to visualize the element numbers, we can check the Label box next to “Elements” and click “Draw”:
To turn of the element numbering, uncheck the Label box and click “Draw”.
How Do I Use Sets to Select and View Groups of Elements and Other Objects?
In StressCheck^{®}, sets are used to group objects by type (such as elements). This is similar to the Group concept used in other FEA. Sets are designed to allow you to view model input and results limited to a group of objects instead of viewing all objects of that particular type.
If a set of elements exists (i.e. Model Input, Sets tab, Select>Any Element, view list items), it can be selected and changed:
 Select the set from the dropdown list in the Sets tab by using Select>Any Element and clicking on the item in the list. It will highlight all the elements in the set.
 To include more elements in the set, hold SHIFT and pick the additional elements, then click “Replace”.
 To remove elements from the set, hold CTRL and pick the elements to be removed, then click “Replace”.
To select a set of elements from the model display, hold CTRL+SHIFT and select an element in the set. The Sets Browser will appear, with the Candidate sets including the element set in the list (in this case, the Selection is set to Any Element):
To display only this element set, click Display>Objects… and “Sets” tab. Check the “Elements” box, select the element set from the list, then click “Draw” to display only this element set:
This tutorial video shows how to manipulate element displays using automesh and usergenerated sets: https://www.esrd.com/product/stresschecktutorialusingsets/
How Do I Use the Edit Toolbar to Select, DeSelect, Blank and Unblank Objects?
The Edit Toolbar enables object selection/cancellation (by object type or any object), inverting object selections, object blanking (by object type or any object), object unblanking (by object type or any object), visualizing blanked objects, picking only visible objects and more.
This tutorial video explains the details of the Edit Toolbar:
StressCheck^{®} Tutorial: Using Edit Toolbar for Object Selection and Visualization
What CAD Formats And Versions Are Supported in StressCheck Professional?
StressCheck^{®} Professional can natively import Parasolid files of versions ranging 10.0 to 26.0.151. Other CAD formats require licensed translators.
The following CAD formats and versions are supported in StressCheck^{®} Professional’s 3D Interop R25 translators:
Formats 
File Formats 
Product Structure 
Graphical 
Geometry 
Semantic PMI 
3DXML 
.3dxml 
v4.3 
v4.3 


ACIS 
.sat, .sab, .asat, .asab 
R1 – R24 
R1 – R24 (Generated from Geometry) 
R1 – R24 
N/A 
CATIA V4 
.model, .exp, .session 
4.1.9 – 4.2.4 
4.1.9 – 4.2.4 (Generated from Geometry) 
4.1.9 – 4.2.4 
N/A 
CATIA V5 
.CATPart, .CATProduct, .CGR 
R8 – R24 (V5–6R2014) 
R8 – R24 (V5–6R2014) 
R8 – R24 (V5–6R2014) 
R8 – R24 (V5–6R2014) 
CATIA V6 
.CATPart, .CATProduct, .CGR 
V6R2014x 
V6R2014x 
V6R2014x 
V6R2014x 
DXF/DWG 
.dxf, .dwg 
2.5 – 2014 
2.5 – 2014 (Generated from Geometry) 
2.5 – 2014 
N/A 
IGES 
.igs, .iges 
Up to 5.3 
Up to 5.3 (Generated from Geometry) 
Up to 5.3 
N/A 
Inventor 
.ipt (V6 – V2015)
.iam (V11 – V2015) 
V11 – 2015 
V7 – 2015
V6 (Generated from Geometry) 
V6 – V2015 
N/A 
NX 
.prt 
11 – NX 9 
NX 6 – NX 9
11 – NX 5 (Generated from Geometry) 
11 – NX 9 
11 – NX 9 
NX Direct 
.prt 
NX 1 – NX 9 
NX 6 – NX 9
NX 1 – NX 5 (Generated from Geometry) 
NX 1 – NX 9 
NX 1 – NX 9 
Parasolid 
.x_t, .xmt_txt, .x_b, .xmt_bin 
10.0 – 26.0.151 
10.0 – 26.0.151 (Generated from Geometry) 
10.0 – 26.0.151 
N/A 
Parasolid Direct 
.x_t, .xmt_txt, .x_b, .xmt_bin 
10.0 – 26.01.211 
10.0 – 26.01.211 (Generated from Geometry) 
10.0 – 26.01.211 
N/A 
Pro/E / Creo 
.prt, .prt.*, .asm, .asm.* 
16 – Creo 2.0 
WF3 – Creo 2.0
16 – WF2 (Generated from Geometry) 
16 – Creo 2.0 
16 – Creo 2.0 
Solid Edge 
.par, .asm, .psm 
V18 – ST6 
ST– ST6
V18 – V20 (Generated from Geometry) 
V18 – ST6 
N/A 
Solid Edge Direct 
.par, .asm, .psm 
V18 – ST6 
ST– ST6
V18 – V20 (Generated from Geometry) 
V18 – ST6 
N/A 
SolidWorks 
.sldprt, .sldasm 
98 – 2014 
98 – 2014 
98 – 2014 
N/A 
SolidWorks Direct 
.sldprt, .sldasm 
2003 – 2014 
2003 – 2014 
2003 – 2014 
N/A 
STEP 
.stp, .step 
203, 214 
203, 214 (Generated from Geometry) 
203, 214 
N/A 
STL 
.stl 
N/A 
All 
N/A 
N/A 
VDAFS 
.vda 
1.0 – 2.0 
N/A 
1.0 – 2.0 
N/A 
XCGM 
R2012 – R2014x 
R2012 – R2014x 
R2012 – R2014x 
R2012 – R2014x 

Note: CATPart files created in V5R1 that have been opened and resaved in a later version of CATIA V5 are not supported for 3D InterOp Graphical and 3D InterOp CGM.
Note: CATIA V6 users should export their database objects as CATIA V5 CATParts, CATProducts, XCGM, or as 3D XML, which can then be imported into applications using InterOp.
Note: NX .prt extensions must be changed to .ug to avoid conflict with ProE files.
What Does StressCheck Professional Use As Its CAD Kernel?
StressCheck^{®} uses Parasolid as its native CAD kernel. The native format is .x_t, or the Parasolid Transmit format. StressCheck^{®} integrates multiple CAD translator options to convert from IGES, CATIA, Pro/E and others to Parasolid format. These modules are sold separately.
What Does the Object Resolution in View Controls Do?
The Object Resolution input in Display>View Controls… allows you to change the rendering resolution of the displayed surfaces. The default is 21, and the range is 1100 (with 100 being the maximum Object Resolution).
Mesh Region Assignments
When Mesh Region is used for assignment of attributes, such as material properties, some elements within the mesh region may not be selected. This may happen because the value of the Object Resolution in the View Controls interface (21 by default), is not large enough to represent the shell accurately enough. From the Main Menu select Display > View Controls and change Object Resolution to 40 or higher (upper bound is 100). Increase this value until all elements have been properly assigned the attributes. To store this value with the file for future StressCheck^{®} sessions, create a parameter with the name _object_res with a value equal to the desired object resolution. Then, save the file to store this object resolution.
Changing the Surface Resolution
The difference between an elliptical surface for an Object Resolution of 21 and 100 is below:
What Is the Midsides Input, and What Does It Control?
The Midsides input field affects both the resolution of the display of element edges in the model, and the resolution of results extraction. It is also found when performing hDiscretization to describe how many times an element will be “split”.
Results
When in the Plot or Min/Max tab, the Midsides input will control the resolution of the plot grid/search grid:
Plot
For plotting purposes, each element is subdivided into a data extraction mesh which depends on the number of “Midsides”, that is, the number of grid points along each side not including the end points. The desired data are then computed in the grid points of the data mesh. The higher the number of midsides, the more accurate the display, and the longer the required computer time. In general, using 5 to 10 midsides is sufficient.
The difference in fringe plots between a Midsides of 2 (upper) and 10 (lower) is shown below:
Min/Max
For Min/Max purposes, specify the data mesh, which is characterized by the number of “Midsides”. The specified function will be computed in the grid points of the data mesh. The data mesh determines the set on which the minimum and maximum will be sought. For a typical pversion mesh, between 8 and 12 midsides should be used. For an automesh, between 5 and 10 midsides should be used.
The difference in maximum stress searches between a Midsides of 3 (upper) and 12 (lower) is shown below:
In the above, more than 3 Midsides were necessary to locate the maximum.
Model Display
In the display of the model, the Midsides/Edge Resolution input controls the resolution of the element edges/faces to allow for smoother/coarser rendering. It has no influence on the model’s solution. It can be accessed and changed in Display>View Controls… under “Edge Resolution”:
The Edge Resolution/Midsides is set to 5 in the above. By default, the number of element edge midsides is 2. This means each element edge will be displayed as N+1 segments, where N=2 (3 segments in this case). However, when solved the element edge is represented by higherorder polynomial functions.
The default for Edge Resolution/Midsides display can be changed for future sessions under File>Options:
The difference in the element edge display between an Edge Resolution of 2 (upper) and 5 (lower) is shown below:
Note that the number of segments in “Edge Resolution: 2” is 3 for each element edge, while in “Edge Resolution: 5” it is 6 for each element edge. Also, note that the number of symbols for the boundary conditions (i.e. loads/constraints) is equal to the number of segments.
What’s the Difference Between DeLast and Undo?
Both DeLast and Undo commands remove previously successful operations from StressCheck^{®} sessions. However, there are important differences as they relate to the model.
DeLast
DeLast is found in the Geometry/Mesh tabs, and is intended to delete the last object (e.g. node, box, contact zone) created in the model, independent of session. For example, if you load a StressCheck^{®} model and click DeLast, it will delete the last object created in the model.
Undo
Undo is also found in under Edit in the main menu bar (or CTRL+Z), and will simply revert the session back to the previous state before the last successful operation (e.g. creation of a mesh, assignment of a boundary condition). For example, if a load was applied to a surface, clicking Undo will reverse the assignment.
Undo only works for the current session. If a file is loaded into a new session, the Undo function will be reset.
When Can I Use Rigid Body or Node Constraints?
Constraining/fixing a point or node should ONLY be used when the model still has a free rigid body mode (i.e. translation or rotation). Equilibrium of the model under the applied loads must be considered before constraining/fixing a point or node.
No node constraints needed (symmetry on three orthogonal sides)
Fixed Zdirection node constraint needed (rigid body translation for Zaxis)
Rigid body constraints needed (selfequilibrated load)
Note: If constraints do not prevent all free rigid body motion (zerostrain translations and/or rotations) then the model is underconstrained and cannot be solved.
 In 2D, three rigid body motions must be prevented: two translations and one rotation about the globalZ axis.
 In 3D, six rigid body motions must be prevented: three translations and three rotations.
Note: contact constraints are simply normal, grounded distributed springs (in units of F/L/L^2) within the assigned contact zones. Therefore, a single multibody contact assignment in 3D controls up to 4 rigid body modes per part:
 If a flat contact zone: 3 controlled, 1 translation and 2 rotations.
 If a curved contact zone: 4 controlled, 2 translations and 2 rotations.
Free rigid body modes must be controlled by tangent springs.
SelfEquilibrated Models
If the model is selfequilibrated under the applied loads, then the Rigid Body Constraint method may be used (Constraint tab, Select > Node/Point > Rigid Body). No other constraints are required.
 In 2D, two nodes/points must be selected, and the rigid body constraints will be automatically computed.
 In 3D, three noncollinear nodes/points must be selected, and the rigid body constraints will be automatically computed.
Note: For the model to be selfequlibrated under the applied loads, the load check must return relatively small forces/moments (Load tab, Check > All Elements > Selection, enter the load ID and click Accept). The computed total forces/moments may not be exactly zero due to accumulation of small numerical errors.
NonSelfEquilibrated Models
If the model is NOT selfequilibrated under the applied loads, other constraints must exist that provide reactions for the applied loads (e.g. Symmetry Constraints or Spring Constraints). Such constraints may be used to provide a reaction and prevent rigid body motion in one direction or in all directions. For example, if the applied resultant forces are in equilibrium in the X direction but not the Y direction, then an additional constraint should only be used to react the Y direction force; one or more Nodal Constraints may be used to prevent any remaining rigid by motions (Constraint tab, Select > Node/Point > Node).
 In this case, check the direction(s) of the rigid body motion(s) to be cancelled, select an appropriate point/node, and click Accept.
 Cancellation depends on the node/point location and the selected direction relative to the applied loads.
 In 2D membrane and 3D solid elements, nodes only have translation components (Ux, Uy and Uz). Rotations must be cancelled with care by selecting the appropriate node and direction.
 The Rotation components in the Nodal Constraint method only are for Beam elements.
Note: in 2D/3D elasticity, nodes and points should NOT react load! They should only be used to prevent rigid body motion, thus setting a reference for the elasticity solution. Weak normal or tangent springs may also be used if a node or point location is not appropriate for cancellation of rigid body motion.
Why Do I Have Duplicate Geometry or Mesh Objects?
When using the “Create” action in the Geometry or Mesh tab, there are multiple ways to create new objects:
 Clicking “Accept” on the Model Input window
 Hitting Enter on the keyboard
 Leftclicking on the Model Viewing window
It’s possible more than one of these actions was invoked during an object creation. Note: leftclick of the mouse in the Model Viewing window will always perform the current action in the “Action” combo (e.g. Create, Select, Edit).
Avoid LeftClicking in Model Viewing Window After Object Creation
As a best practice, if focus is required in the Model Viewing window, and a new object creation is NOT desired, it is recommended to rightclick in the Model Viewing window to establish the window’s focus such that the model can be rotated, zoomed, etc. This can help with reducing duplication of geometry and mesh objects.
Removing Duplicates
If you suspect there are duplicate geometry and/or mesh objects, changing the combos to “Select > Any Object” and clicking on the “Index” subtab within the Geometry or Mesh tabs will display a list of the objects in the model:
If there are duplicates, you may simply select the object(s) from the Index list and click the “Delete” button, or simply click the “DeLast” button if the last object created was a duplicate.
Note: if nodes are duplicated, clicking the Mesh tab’s “Merge” button will attempt to merge duplicated nodes.
Why Do I Receive An Error Message About Associativity When Creating or Deleting Geometry?
The error message likely occurred because of an Explicit Associativity in the model. This is a dependency created by the user in which an object definition references another object or objects in the model.
These messages typically occur when attempting to perform a modeling operation such as a BooleanUnion/Subtraction, ClipBack/Front, Blend Edge, Imprint, Spin or Thicken.
What Caused the Explicity Associativity?
An Explicit Associativity will exist if one or more objects (e.g. points, systems, nodes) are created by an associative method (e.g. Offset, Intersection, Projection) via a userdefined reference to the target geometry. Examples are creating a node by the Offset method on the geometry’s curve, or creating a system by 3Pt. Plane method using points at the geometry’s intersections (vertices).
Types of Associativity
There are two types of Associativity: Implict and Explicit. They are described in the following:
Implicit Associativity – The result of a boolean or blend operation is a collection of trimmed surfaces, trimmed curves and points. The trimmed curves represent the intersections between neighboring surfaces. The points represent the intersections between trimmed curves.
 Since these relationships are automatically created by the modeling operations, their relationship (associativity) is implicit and the user can make changes to the solid body without regard to the resulting changes in the implicit associative relationships.
Explicit Associativity – It is sometimes necessary to create new explicit associative relationships in a model.
 For example, attaching a point or node to an existing solid body (surface or curve) as an offset, a midoffset, projection or intersection.
 This explicit associativity will prevent the future application of a Boolean or blend operation to a solid body.
 As a consequence, explicit associative relationships should not be added to a body unless you are certain that no future boolean or blend operations will be performed on the body.
 Explicit associative relationships between points, systems and lines and the model may be removed with “Disassoc.”
Benefits of Associativity
Associativity is extremely valuable because it allows for fully parametric modeling, object inheritance (i.e. surface to element face communication) and highly curved elements (mapping).
The importance of Implicit and Explicity Associativity, and how to determine object associativities and even disassociate points and systems from geometries, is explained in the following tutorial:
StressCheck^{®} Tutorial: Object Associativity
Formulae
Can I Use Formulaic Expressions for Results Processing?
Yes, it is very simple to define formulae for live results processing purposes. Formulae may involve expressions of StressCheck^{®}‘s standard engineering functions, such as Sx, Sy, Ex, etc. as well as formula subexpressions (i.e. formula names contained within {} characters) and parameter names.
To perform plots or extractions for a particular formulaic expression, the user simply selects the “Fmla” option under “Functions:” and then selecting the name of the formula:
Useful Formulaic Expressions:
The following are examples of useful formulaic expressions which may be used for results processing of stresses (credit to Randall Pauley, NAVAIR for submitting many of these to ESRD). Feel free to copy/paste as formula expressions, keeping the formula names exactly as they appear:
Stress Invariants:
 I1 = Sx+Sy+Sz
 I2 = Sx*Sy+Sy*Sz+Sz*SxTxy^2Tyz^2Txz^2
 I3 = Sx*Sy*SzSx*Tyz^2Sy*Txz^2Sz*Txy^2+2*Txy*Tyz*Txz
2D Max Principal Stress (by Plane):
 S1_2D_XY = ((Sx+Sy)/2)+sqrt(((SxSy)^2/4)+Txy^2)
 S1_2D_YZ = ((Sy+Sz)/2)+sqrt(((SySz)^2/4)+Tyz^2)
 S1_2D_ZX = ((Sz+Sx)/2)+sqrt(((SzSx)^2/4)+Txz^2)
 S2_2D_XY = ((Sx+Sy)/2)sqrt(((SxSy)^2/4)+Txy^2)
 S2_2D_YZ = ((Sy+Sz)/2)sqrt(((SySz)^2/4)+Tyz^2)
 S2_2D_ZX = ((Sz+Sx)/2)sqrt(((SzSx)^2/4)+Txz^2)
2D Von Mises Stress (by Plane):
 SEQ_2D_XY = sqrt({S1_2D_XY}^2{S1_2D_XY}*{S2_2D_XY}+{S2_2D_XY}^2)
 SEQ_2D_YZ = sqrt({S1_2D_YZ}^2{S1_2D_YZ}*{S2_2D_YZ}+{S2_2D_YZ}^2)
 SEQ_2D_ZX = sqrt({S1_2D_ZX}^2{S1_2D_ZX}*{S2_2D_ZX}+{S2_2D_ZX}^2)
2D Max Shear Stress (by Plane):
 TMAX_2D_XY = ({S1_2D_XY}{S2_2D_XY})/2
 TMAX_2D_YZ = ({S1_2D_YZ}{S2_2D_YZ})/2
 TMAX_2D_ZX = ({S1_2D_ZX}{S2_2D_ZX})/2
2D Principal Stress Magnitude Max/Min (Highest Absolute Value):
 S_PRIN2D_XY = if(abs({S1_2D_XY})>abs({S2_2D_XY});{S1_2D_XY};{S2_2D_XY})
 S_PRIN2D_YZ = if(abs({S1_2D_YZ})>abs({S2_2D_YZ});{S1_2D_YZ};{S2_2D_YZ})
 S_PRIN2D_ZX = if(abs({S1_2D_ZX})>abs({S2_2D_ZX});{S1_2D_ZX};{S2_2D_ZX})
2D Directional Stress Magnitude Max/Min (Highest Absolute Value):
 SX_SY_MAG = if(abs(Sx)>abs(Sy);Sx;Sy)
 SX_SZ_MAG = if(abs(Sy)>abs(Sz);Sy;Sz)
 SZ_SX_MAG = if(abs(Sz)>abs(Sx);Sz;Sx)
3D Principal Stresses:
 PHI = 1/3*ACOS((2*{I1}^39*{I1}*{I2}+27*{I3})/(2*({I1}^23*{I2})^(3/2)))
 S1_3D = {I1}/3+2/3*SQRT({I1}^23*{I2})*cos({PHI})
 S2_3D = {I1}/3+2/3*SQRT({I1}^23*{I2})*cos({PHI}2*PI/3)
 S3_3D = {I1}/3+2/3*SQRT({I1}^23*{I2})*cos({PHI}4*PI/3)
3D von Mises Stress:
 SEQ_3D = SQRT(1/2*(({S1_3D}{S2_3D})^2+({S2_3D}{S3_3D})^2+({S3_3D}{S1_3D})^2))
3D Principal Stress Magnitude Max/Min (Highest Absolute Value):
 S_PRIN_3D = if(abs(S1)>abs(S3);S1;S3)
Hydrostatic Normal Stress (Octahedral Normal Stress):
Hydrostatic Shear Stress (Octahedral Shear Stress):
 T_OCTA_HYDRO = sqrt((SxSy)^2+(SySz)^2+(SzSx)^2+6*(Txy^2+Tyz^2+Txz^2))/3
Additional Resources:
A formula file (.PAR) with many of the above stress transformation expressions is available for import:
Helpful Hints and Tips: Stress Transformation Formulae for Results Processing
Here is an example tutorial of plotting with formulaic expressions:
StressCheck Tutorial: Plotting Formulae Fringes
And here is an example of the TsaiHill failure criteria for laminated composite analysis:
Helpful Hints and Tips: Tsai Hill Failure Criterion
General Results & PostProcessing
Can I Use Formulaic Expressions for Results Processing?
Yes, it is very simple to define formulae for live results processing purposes. Formulae may involve expressions of StressCheck^{®}‘s standard engineering functions, such as Sx, Sy, Ex, etc. as well as formula subexpressions (i.e. formula names contained within {} characters) and parameter names.
To perform plots or extractions for a particular formulaic expression, the user simply selects the “Fmla” option under “Functions:” and then selecting the name of the formula:
Useful Formulaic Expressions:
The following are examples of useful formulaic expressions which may be used for results processing of stresses (credit to Randall Pauley, NAVAIR for submitting many of these to ESRD). Feel free to copy/paste as formula expressions, keeping the formula names exactly as they appear:
Stress Invariants:
 I1 = Sx+Sy+Sz
 I2 = Sx*Sy+Sy*Sz+Sz*SxTxy^2Tyz^2Txz^2
 I3 = Sx*Sy*SzSx*Tyz^2Sy*Txz^2Sz*Txy^2+2*Txy*Tyz*Txz
2D Max Principal Stress (by Plane):
 S1_2D_XY = ((Sx+Sy)/2)+sqrt(((SxSy)^2/4)+Txy^2)
 S1_2D_YZ = ((Sy+Sz)/2)+sqrt(((SySz)^2/4)+Tyz^2)
 S1_2D_ZX = ((Sz+Sx)/2)+sqrt(((SzSx)^2/4)+Txz^2)
 S2_2D_XY = ((Sx+Sy)/2)sqrt(((SxSy)^2/4)+Txy^2)
 S2_2D_YZ = ((Sy+Sz)/2)sqrt(((SySz)^2/4)+Tyz^2)
 S2_2D_ZX = ((Sz+Sx)/2)sqrt(((SzSx)^2/4)+Txz^2)
2D Von Mises Stress (by Plane):
 SEQ_2D_XY = sqrt({S1_2D_XY}^2{S1_2D_XY}*{S2_2D_XY}+{S2_2D_XY}^2)
 SEQ_2D_YZ = sqrt({S1_2D_YZ}^2{S1_2D_YZ}*{S2_2D_YZ}+{S2_2D_YZ}^2)
 SEQ_2D_ZX = sqrt({S1_2D_ZX}^2{S1_2D_ZX}*{S2_2D_ZX}+{S2_2D_ZX}^2)
2D Max Shear Stress (by Plane):
 TMAX_2D_XY = ({S1_2D_XY}{S2_2D_XY})/2
 TMAX_2D_YZ = ({S1_2D_YZ}{S2_2D_YZ})/2
 TMAX_2D_ZX = ({S1_2D_ZX}{S2_2D_ZX})/2
2D Principal Stress Magnitude Max/Min (Highest Absolute Value):
 S_PRIN2D_XY = if(abs({S1_2D_XY})>abs({S2_2D_XY});{S1_2D_XY};{S2_2D_XY})
 S_PRIN2D_YZ = if(abs({S1_2D_YZ})>abs({S2_2D_YZ});{S1_2D_YZ};{S2_2D_YZ})
 S_PRIN2D_ZX = if(abs({S1_2D_ZX})>abs({S2_2D_ZX});{S1_2D_ZX};{S2_2D_ZX})
2D Directional Stress Magnitude Max/Min (Highest Absolute Value):
 SX_SY_MAG = if(abs(Sx)>abs(Sy);Sx;Sy)
 SX_SZ_MAG = if(abs(Sy)>abs(Sz);Sy;Sz)
 SZ_SX_MAG = if(abs(Sz)>abs(Sx);Sz;Sx)
3D Principal Stresses:
 PHI = 1/3*ACOS((2*{I1}^39*{I1}*{I2}+27*{I3})/(2*({I1}^23*{I2})^(3/2)))
 S1_3D = {I1}/3+2/3*SQRT({I1}^23*{I2})*cos({PHI})
 S2_3D = {I1}/3+2/3*SQRT({I1}^23*{I2})*cos({PHI}2*PI/3)
 S3_3D = {I1}/3+2/3*SQRT({I1}^23*{I2})*cos({PHI}4*PI/3)
3D von Mises Stress:
 SEQ_3D = SQRT(1/2*(({S1_3D}{S2_3D})^2+({S2_3D}{S3_3D})^2+({S3_3D}{S1_3D})^2))
3D Principal Stress Magnitude Max/Min (Highest Absolute Value):
 S_PRIN_3D = if(abs(S1)>abs(S3);S1;S3)
Hydrostatic Normal Stress (Octahedral Normal Stress):
Hydrostatic Shear Stress (Octahedral Shear Stress):
 T_OCTA_HYDRO = sqrt((SxSy)^2+(SySz)^2+(SzSx)^2+6*(Txy^2+Tyz^2+Txz^2))/3
Additional Resources:
A formula file (.PAR) with many of the above stress transformation expressions is available for import:
Helpful Hints and Tips: Stress Transformation Formulae for Results Processing
Here is an example tutorial of plotting with formulaic expressions:
StressCheck Tutorial: Plotting Formulae Fringes
And here is an example of the TsaiHill failure criteria for laminated composite analysis:
Helpful Hints and Tips: Tsai Hill Failure Criterion
Can the Principal Stresses Be Greater Than the Maximum von Mises Stress for a Material Nonlinear Analysis?
The von Mises yield criterion (also known as the Maximum Distortion Energy Theory of Failure) is a pure shear based criterion (i.e. plasticity occurs as the crystals shear across lattices). Therefore part of the assumption implies that the hydrostatic component of the stress tensor (which cause no shear) are completely ignored.
Hence, you could have an infinite pressure (i.e., S1=S2=S3=+/ infinity, Si being the principal stress components) that would cause no yield whatsoever. Therefore, individual stress components can be really large even without exceeding the input yield stress. This means that plotting and extracting the von Mises stress (Seq) or strain (Eeq) is the best measure of the amount of plasticity in the model.
Note: the input yield stress is the yield value for the pristine material, sometimes chosen as the elastic limit (the stresses are linearly elastic up to this value). However, once the material plasticizes this value changes depending on the hardening criteria, and can be higher (typical case for isotropic hardening theories) or lower than the reference initial value.
How Can I Change My Display Format?
The display format is in Clanguage, which is described in detail here: https://www.cprogramming.com/tutorial/printfformatstrings.html
Model Input
The model input display format can be accessed and changed by clicking Display>View Controls… and entering a new “Display Format:”
This will be reflected in all model inputs, including parameter values. By default, the display format is %11.4e, which means a maximum length of 11 digits, a precision of 4 digits and exponential. For example, 11,012.54 will be displayed as “1.1013e5”. To change to a floating format, simply replace the “e” with an “f”.
Once a SCW or SCP file is saved, it will store your current model input display format. To change the default model input display format so that every StressCheck^{®} session uses the same display format, click File>Options and modify the Display Format (below). Then click “OK”:
The differences in model input between the default (%11.4e, top) format and floating point (%11.4f, bottom) are below:
Results
The model results display format can be modified by changing the “Format:” input in the Results tabs. The formatting is the same as described above.
The differences in model results between the default (%11.3e) format and floating point (%11.3f) are below:
How Do I Combine Load Cases in Results?
Each Solution ID requires a unique Load ID and Constraint ID. Some users wish to combine the results of two or more load cases together, such as axial/bending or mechanical/thermal load cases, and this may be accomplished via the StressCheck^{®} Calculator (Functions: Calc):
The StressCheck^{®} Calculator can be accessed in the Plot, Min/Max and Points tabs under “Functions: Calc”.
Up to five different solutions may be combined, each “Solution:” representing a Solution ID of a Load ID/Constraint ID. The Operand allows the Solution ID and Run to be converted into an integer specification.
A formula may be entered to represent the superposition of displacements, stresses or strains. For example, the above represents the addition of the stresses in the global Xdir for the 8th runs of Solution ID’s “SOLAXIAL” and “SOLBENDING”.
Here are some examples of combining load case results in the StressCheck^{®} Calculator:
How Do I Display Object Numbering?
To display the object numbering for visualization, click on Display>Objects…
Then, check the Label box next to the object numbering you want to visualize and click “Draw”. For example, if we want to visualize the element numbers, we can check the Label box next to “Elements” and click “Draw”:
To turn of the element numbering, uncheck the Label box and click “Draw”.
How Do I Report the Final PLevel of Each Solved Element?
After the solution is complete, the final plevel of each solved element may be displayed/tabulated:
 Enable “Display Plevel” in the Attributes toolbar (Display > Attributes > pLevel):

 This should cause the final solved plevels for all elements to display (in this case p=6 for all elements):
 Generate a list of all plevels by extracting the strain energy (Results > Error tab > Select > All Elements > Selection):
 Select the solution ID (Run numbers arbitrary)
 Enable “Indicate” and enter a Criteria:0
 Click Accept
 Click on the “p” column in the graph and set to “Dependent Variable”
 Click on the “Indicator” column in the graph and disable “Dependent Variable”
If pDiscretization has been assigned to one or more sets of elements (for example, a fixed plevel of p=2 to the element list in SET24 and p=6 to the other elements in the model), the table will indicate the distribution of mixed plevels:
How Do I View Radial and Hoop Stresses/Strains?
The default for plotting/extractions is Cartesian coordinates (X, Y, Z). However, StressCheck^{®} supports the plotting/extraction of results in Cylindrical coordinates (R, T, Z):
 Create a coordinate system of Data Type: Cylindrical
 When plotting/extracting results, select this coordinate system in the “System:” dropdown
 The evaluations are as follows:
 X–>R (radial)
 Y–>T (hoop/tangential)
 Z–>Z
Here is a short tutorial of plotting radial and hoop stress: https://www.esrd.com/product/resultsincylindricalcoords/
What Does the Object Resolution in View Controls Do?
The Object Resolution input in Display>View Controls… allows you to change the rendering resolution of the displayed surfaces. The default is 21, and the range is 1100 (with 100 being the maximum Object Resolution).
Mesh Region Assignments
When Mesh Region is used for assignment of attributes, such as material properties, some elements within the mesh region may not be selected. This may happen because the value of the Object Resolution in the View Controls interface (21 by default), is not large enough to represent the shell accurately enough. From the Main Menu select Display > View Controls and change Object Resolution to 40 or higher (upper bound is 100). Increase this value until all elements have been properly assigned the attributes. To store this value with the file for future StressCheck^{®} sessions, create a parameter with the name _object_res with a value equal to the desired object resolution. Then, save the file to store this object resolution.
Changing the Surface Resolution
The difference between an elliptical surface for an Object Resolution of 21 and 100 is below:
What Is the Midsides Input, and What Does It Control?
The Midsides input field affects both the resolution of the display of element edges in the model, and the resolution of results extraction. It is also found when performing hDiscretization to describe how many times an element will be “split”.
Results
When in the Plot or Min/Max tab, the Midsides input will control the resolution of the plot grid/search grid:
Plot
For plotting purposes, each element is subdivided into a data extraction mesh which depends on the number of “Midsides”, that is, the number of grid points along each side not including the end points. The desired data are then computed in the grid points of the data mesh. The higher the number of midsides, the more accurate the display, and the longer the required computer time. In general, using 5 to 10 midsides is sufficient.
The difference in fringe plots between a Midsides of 2 (upper) and 10 (lower) is shown below:
Min/Max
For Min/Max purposes, specify the data mesh, which is characterized by the number of “Midsides”. The specified function will be computed in the grid points of the data mesh. The data mesh determines the set on which the minimum and maximum will be sought. For a typical pversion mesh, between 8 and 12 midsides should be used. For an automesh, between 5 and 10 midsides should be used.
The difference in maximum stress searches between a Midsides of 3 (upper) and 12 (lower) is shown below:
In the above, more than 3 Midsides were necessary to locate the maximum.
Model Display
In the display of the model, the Midsides/Edge Resolution input controls the resolution of the element edges/faces to allow for smoother/coarser rendering. It has no influence on the model’s solution. It can be accessed and changed in Display>View Controls… under “Edge Resolution”:
The Edge Resolution/Midsides is set to 5 in the above. By default, the number of element edge midsides is 2. This means each element edge will be displayed as N+1 segments, where N=2 (3 segments in this case). However, when solved the element edge is represented by higherorder polynomial functions.
The default for Edge Resolution/Midsides display can be changed for future sessions under File>Options:
The difference in the element edge display between an Edge Resolution of 2 (upper) and 5 (lower) is shown below:
Note that the number of segments in “Edge Resolution: 2” is 3 for each element edge, while in “Edge Resolution: 5” it is 6 for each element edge. Also, note that the number of symbols for the boundary conditions (i.e. loads/constraints) is equal to the number of segments.
COM API
Modal & Buckling Solver
Can the Modal/Buckling Solver Be Combined with MultiBody Contact?
No, the Modal/Buckling solver cannot currently be combined with multibody contact analysis. The Modal/Buckling solver is for eigenvalue/eigenmode analysis for single parts.
Modal analysis is available for planar, plate bending and threedimensional problems, while Buckling analysis is available only for threedimensional problems.
What Is the Interpretation of the Buckling Load Factor in an Eigenvalue Buckling Analysis?
In eigenvalue buckling analysis, the goal is to compute the buckling load factor (BLF) and the corresponding buckling mode shape. The BLF is the multiplier of the applied loads to the component to produce the first buckling mode. Note: checking the values of strains/stresses from the eigenvalue buckling solution is not meaningful because the buckling mode shape is known only to an arbitrary constant.
Therefore the linear solution multiplied by the BLF is the reference for when buckling will initiate. That means the stresses corresponding to the linear solution multiplied by the BLF are the stresses that will be developing at the time instability occurs (paired with the corresponding mode shape determined by the buckling analysis). Note: a linear analysis of the model is computed during an eigenvalue buckling analysis, and is available for results processing once the eigenvalue buckling solution is available.
For More Information:
MultiBody Contact
Can the Modal/Buckling Solver Be Combined with MultiBody Contact?
No, the Modal/Buckling solver cannot currently be combined with multibody contact analysis. The Modal/Buckling solver is for eigenvalue/eigenmode analysis for single parts.
Modal analysis is available for planar, plate bending and threedimensional problems, while Buckling analysis is available only for threedimensional problems.
Do I Need the Nonlinear Solver for MultiBody Contact?
When elasticplastic effects do not need to be considered in a multibody contact analysis (i.e. the converged maximum von Mises stress in the parts is below the yield stress of the materials), only the Linear Elasticity solver is required.
This is because for each multibody contact iteration, StressCheck^{®} only needs to update the righthand side of the equation (i.e. load vector/pressures) and not the lefthand side of the equation (i.e. stiffness matrix). StressCheck^{®} currently accounts for smallstrain, smalldeformation solutions (linear or elasticplastic materials) in multibody contact analysis.
The Nonlinear Solver is required when the stiffness matrix needs to be updated due to a change in stressstrain relationship or a change in geometric configuration. Additionally, if normal springs have been assigned to element faces which contain elasticplastic material assignments, the normal springs will release in tension.
StressCheck^{®} currently does not account for changes in geometric configuration for multibody contact analysis.
More Resources:
How Can I Improve MultiBody Contact Efficiency?
When compared to a singlepart analysis, a multibody contact analysis of the same degrees of freedom (DOF) is more computationally demanding. This increase in computational time is due to the nonlinear iterations required to accurately depict highgradient pressure distributions between complex parts, especially if the part count (and by extension the number of contact pairs) is high.
If a multibody contact analysis is required, there are several approaches to potentially reduce solver time without significantly affecting the data of interest or the load transfer.
Optimizing Contact Surfaces
Although it is not required to have a 1:1 correspondence of element faces between contacting parts (our contact algorithm is very flexible regarding mesh differences between contacting parts), it is more efficient to have close to a 1:1 correspondence between surface areas in contact.
An additional benefit is that splitting surfaces for contact assignment improves local mesh refinement. This is discussed in the following document:
Helpful Hints and Tips: Optimization of a Simple 3D Contact Problem
Reducing MultiBody Contact Iterations
By default, multibody contact solutions require 40 iterations to complete, unless the maximum contact pressure error is <0.01%. In order to change the number of iterations, create the parameter _contact_iter and set this to a value between 10 and 100.
Note: it is not recommended to reduce the number of iterations unless the maximum contact pressure error is <2% and load transfer is >95% at lower iterations.
Note: for some classes of problems, reducing the number of iterations may not affect the multibody contact solution. For example, close contact problems with very high loads in which the pressure distributions are very smooth. However, some classes of problems may require a high number of iterations in order to properly represent the contact pressures (and therefore load transfer) between parts.
HandMeshing and Copying Simple Parts
If a part or parts in multibody contact are relatively simple to manually (hand) mesh, such as simple fasteners and bushings, this approach can potentially reduce computational time:
StressCheck Tutorial: Copy Mesh Objects and Merge
For example, if a fastener body is to be repeated in multiple holes, it is possible to create/import the solid representing the fastener body, create the mesh/contact zones for the fastener body, and then copy this fastener body to multiple holes.
The below document provides several case studies on reducing the number of contact iterations and handmeshing/copying fasteners:
Helpful Hints and Tips: Improving MultiBody Contact Efficiency
Boundary Layer Refinement and/or PDiscretization in Contact Regions
In cases where higher accuracy of load transfer and pressures is required, it is useful to increase the polynomial level of the surfaces in contact independently from the rest of the model via pDiscretization. For example, surfaces in contact may be fixed at p=6 (or higher) while all other elements outside the selected surfaces are solved at p=5 (or lower).
Additionally, boundary layer refinement around bores in multibody contact aids in the full conversion to geometric mapping and allows the polynomial order of the elements in contact to be increased to p=8. This strategy is demonstrated below:
StressCheck Tutorial: Boundary Layer Refinement and PDiscretization in Contact Regions
The model in the tutorial was solved for three cases:
Case 1: Default automesh, 40 contact iterations
Case 2: Boundary layer refinement in holes of middle plate, pDiscretization of p=8 in holes of middle plate, 20 contact iterations
Case 3: Default automesh, pDiscretization of p=8 in holes of middle plate, 20 contact iterations
The time savings between Case 1 and Case 2 was about 19%, and Case 1 and Case 3 about 42%, without significantly affecting the results in the middle plate holes:
Case 1: Default automesh, 40 contact iterations
Case 2: Boundary layer refinement in holes of middle plate, pDiscretization of p=8 in holes of middle plate, 20 contact iterations
Case 3: Default automesh, pDiscretization of p=8 in holes of middle plate, 20 contact iterations
General Improvements to Solution Efficiency
Additionally, general improvements to solution efficiency without significantly affecting the data of interest are described in the below helpful hints document:
Helpful Hints and Tips: Improving Solution Efficiency
How Do I Select Contact Constant For MultiBody Contact?
In general, the contact constant should be selected based on the moduli of elasticity of the materials in contact, in such a way that its value is between 0.1 and 1.0 times the value of the smallest modulus of elasticity (0.1Emin < Kc < Emin) when using US units (psi), and between 0.004 and 0.04 times the value of the smallest modulus of elasticity (0.004Emin < Kc < 0.04Emin) when using SI units (MPa). The units for the contact constant are [F/L/L^2].
For aluminum or steel, this is usually 110 million psi/in or so, assuming significant operational loads.
Helpful Hints and Tips: MultiBody Contact Overview and General Recommendations
Some other guidelines:
 In our experience, the contact constant should not exceed a couple orders of magnitude more than the applied loads, especially if it’s a loose fit fastened connection. If it’s too high, most of the energy will be absorbed by the springs and the loads won’t be transferred to the parts. If it’s too low, then there will be too much penetration and the zero gap condition won’t be reached.
 Penetration can be detected by plotting deformations at a 1:1 scale and checking to ensure the areas in contact show as little “crossover” as possible between parts.
 For example, if a 40 kip (4e4 lbf) load is to be transferred, the contact constant can initially be around 1e6 psi/in (2 orders of magnitude). If the load is changed, the contact constant should be updated relative to the load.
 Since the units of the contact constant include the area of the application, if the area is very small, and the applied load is very high, then the contact constant will need to be increased to reflect the higher pressure. This is analogous for large areas in contact.
It’s best to use a parameter for the contact constant, so it can be updated based on the applied load magnitude. The idea is that if the applied loads produce significant stress, the contact constant should be increased relative to the load. If the applied loads don’t produce significant stress, the contact constant should be lowered.
When using the Frictionless Augmented Lagrangian Method (StressCheck^{®}‘s contact algorithm), the contact constant is multiplied by the gap function to determine the change in contact pressures, which are then added to the previous iteration’s pressures, so it should not be a small value (relative to the loads/material). It would then take many iterations to stabilize the contact pressures.
From the blog article: https://www.simscale.com/blog/2016/09/contactmechanicsfriction/
Augmented Lagrange Method was formulated to bring the good of both penalty and Lagrange multiplier. It does not demonstrate an oscillatory behavior and has minimal interpenetration. The change in energy contribution for a small change in gap can be given as:
(previous pressure + contact coefficient * gap) x change in gap
How Much Difference in Mesh Density Across a Contact Region is Acceptable?
StressCheck^{®}‘s multibody contact algorithm does not require mesh conformity or a 1:1 ratio between contacting element faces. In fact, the element face distribution across assigned contact zones can be quite dissimilar in most practical applications.
However, the resolution of the gap between bodies for calculation of contact pressures is related to the number of collocation points used for each element face of the assigned contact pairs. By default, 196 points per element face in the contact pair are used for calculating the gap function.
The contact gap/penetration is determined by sampling from one contact zone to the other. If the ratio between the number of element faces in the assigned contact pairs is large (for example, 100:1 meaning that there are about 100 more element faces on one side of the declared contact pair than on the other), then the gap function is evaluated at many more locations on one side than on the other. This means that the approximation of the gap function has a different resolution which can induce oscillation during the nonlinear multibody contact solution.
Therefore, it is recommended that the ratio between the number of element faces in the assigned contact pairs be kept close to 1:1. Numerical studies have shown that ratios not exceeding 10:1 are in general satisfactory. A comparison between a 100:1 and the more reasonable 10:1 contacting element face ratio is provided below.
In this case, multibody contact between a lug, clevis and pin was solved. The pin contact zone surrounded 24 element faces, while the number of element faces in the lug was either ~100 or ~10 times more refined. The von Mises stresses were then plotted for the lug in the same stress ranges:
Pin element faces (24 in contact zone)
100:1 ratio between lug and pin contacting element faces
10:1 ratio between lug and pin contacting element faces
As shown in the example, oscillation of the stress distribution is a clear indication that the ratio between contacting element faces is too large.
While regular and similar meshes across contact zones are preferable, there is flexibility to have higher ratios when multiple discretization strategies result in dissimilar element counts across contact pairs. Because the situation is problemdependent, it is not possible to have a fixed rule to define by how much it can deviate from the optimal 1:1 ratio for all cases, so it is very important to check for oscillations in the results of interest along the contacting surfaces during the postprocessing of a contact analysis.
What Are Some Common MultiBody Contact Issues?
Stress resultant computation at selected element faces.
When performing a multibody contact analysis, unexpected part deformations, contact stress distributions and/or contact pair load transfer checks may be caused by one or more of the following common issues:
Significant penetration between contact zones.

 A contact spring coefficient that is too high can result in insufficient energy transfer between the elastic bodies in contact, usually detected by significantly lower than expected stress resultants between contact pairs.
 A contact spring coefficient that is too low can result in significant penetration (overlapping space) between the elastic bodies in contact, usually detected by plotting the deformed shape using a 1:1 scale. Note: to increase the number of contact iterations in order to reduce penetration, create the parameter _contact_iter and set this to a value >40 and <=100.
 Ideally, the stress resultants (Results, Resultant tab) between contact pairs (or the element faces associated with the contact pairs) should not be more than a few % above/below the expected load transfer (typically 25%).
 Read more about selecting the contact spring value.
 “Knife edge effects” and other geometric discontinuities leading to stress singularities in contact regions
“Knife edge” effects at lug termination.

 Is there an abrupt termination of contact pressures on a surface? The singularity caused by the sharp transition in the pressure distribution will affect (bleed into) the elements nearby the contact region.
 The term “bleeding” means that the tractions associated with the contact pressures may not be zero out of the contact region on their way to zero traction. This can affect the calculation of stress resultants, and therefore the load transfer feedback.
 Selecting only the element faces inside the contact zone, or the contact zone itself, may not be sufficient to represent the full stress resultant associated with the contact pressure.
 Jumps in the highest stresses indicates the need for localized mesh refinement to account for the local singularity resulting from the sudden jump in the pressure distribution at the edge of the contact zone.
 Insufficiently constrained rigid body translations and/or rotations for one or more parts
 Contact constraints are simply normal, grounded distributed springs (in units of F/L/L^2) within the assigned contact zones. Therefore, a single multibody contact assignment in 3D controls up to 4 rigid body modes per part:
 If a flat contact zone: 3 controlled, 1 translation and 2 rotations.
 If a curved contact zone: 4 controlled, 2 translations and 2 rotations.
 Each part must be sufficiently constrained for multibody contact analysis or a LAPACK error may occur during the solution.
 Significant sliding or rotation in the deformed shape at a fixed scale of 1:1 indicates insufficient constraints. For example, a pin missing rigid body rotation constraints may appear to spin and grow/shrink.
 Free rigid body modes may be controlled by “light” tangent springs (e.g. 10 lbf/in^3) or nodal constraints.
 Incorrectly measured gap at one or more locations between contact pairs
For cases where the initial gap is numerically zero, the projected ray from one zone to another may not find the proper location.

 If “pinching” effects are observed (i.e. one or more points between contact zones appears to be displacing in an unexpected magnitude/direction), especially between fastened joints, the parameter _contact_raytol may need to be introduced to limit the search in the contact pair gap measurements.
 From the Master Guide: “…in the case of a pin inside a hole, there are two possible neighbors on the pin for each point on the hole. Defining the value of _contact_raytol to be smaller than the diameter of the pin will limit the search only to the closest point.”
A Note on Stress Singularities in Contact Regions
If singularities are causing the poor multibody contact load transfer, “boundary layers” of refinement may be added in the contact regions to improve the errors. The stresses will still have jumps due to the discontinuous pressure distribution, but the influence is lessened on the overall resultant check.
Also, the Resultant check should include element faces surrounding the contact zone in order to capture the “bleed” of contact pressure:
StressCheck Tutorial: Influence of Stress Singularities On MultiBody Contact Resultant Calculations
More Resources:
What are the Nonlinear Solver Limitations with MultiBody Contact?
Currently, there is not a capability to combine incremental plasticity (Type: Material (NL Mat) with Technique: Incremental) or general/geometric nonlinear (Type: General (NL Gen)) solutions with multibody contact.
Multibody contact may be combined with deformation theory of plasticity, however, to represent elasticplastic material nonlinearities (Type: Material (NL Mat) with Technique: Deformation) in the case of limit load analysis.
Here is the appropriate Nonlinear Solver window for deformation theory of plasticity with multibody contact:
Here is an example of how to combine multibody contact with deformation theory of plasticity: https://www.esrd.com/product/helpfulhintstipsconvertinglinearelasticcontactelasticplasticcontact/
If a 3D coldworking operation is desired, the effects of mandrel insertion/removal may be represented with the following processes.
Nonlinear Solver
Can the Principal Stresses Be Greater Than the Maximum von Mises Stress for a Material Nonlinear Analysis?
The von Mises yield criterion (also known as the Maximum Distortion Energy Theory of Failure) is a pure shear based criterion (i.e. plasticity occurs as the crystals shear across lattices). Therefore part of the assumption implies that the hydrostatic component of the stress tensor (which cause no shear) are completely ignored.
Hence, you could have an infinite pressure (i.e., S1=S2=S3=+/ infinity, Si being the principal stress components) that would cause no yield whatsoever. Therefore, individual stress components can be really large even without exceeding the input yield stress. This means that plotting and extracting the von Mises stress (Seq) or strain (Eeq) is the best measure of the amount of plasticity in the model.
Note: the input yield stress is the yield value for the pristine material, sometimes chosen as the elastic limit (the stresses are linearly elastic up to this value). However, once the material plasticizes this value changes depending on the hardening criteria, and can be higher (typical case for isotropic hardening theories) or lower than the reference initial value.
Do I Need the Nonlinear Solver for MultiBody Contact?
When elasticplastic effects do not need to be considered in a multibody contact analysis (i.e. the converged maximum von Mises stress in the parts is below the yield stress of the materials), only the Linear Elasticity solver is required.
This is because for each multibody contact iteration, StressCheck^{®} only needs to update the righthand side of the equation (i.e. load vector/pressures) and not the lefthand side of the equation (i.e. stiffness matrix). StressCheck^{®} currently accounts for smallstrain, smalldeformation solutions (linear or elasticplastic materials) in multibody contact analysis.
The Nonlinear Solver is required when the stiffness matrix needs to be updated due to a change in stressstrain relationship or a change in geometric configuration. Additionally, if normal springs have been assigned to element faces which contain elasticplastic material assignments, the normal springs will release in tension.
StressCheck^{®} currently does not account for changes in geometric configuration for multibody contact analysis.
More Resources:
How Can I Perform a Compression Only Spring Analysis?
If all that is required is to simulate load transfer to holes or a compressiononly reaction is desired for a single part, thereby reducing the computational time required for multibody contact, normal springs combined with a Material or General Nonlinear analysis may be an efficient workflow.
This “poor man’s contact” form of load transfer may be represented by applying normal springs to element edges or curves (Planar) or element faces or surfaces (3D), applying the appropriate material properties, and solving a Material or General Nonlinear analysis:
Assigning Normal Spring Constraints
Normal springs may be assigned in the Constraints tab, using Select > Edge/Edge Curve/Any Curve (Planar) or Face/Face Surface/Any Surface (3D) > Spring Coeff:
 Change “Direction” from XYZ to Norm./Tan.
 Enter a value in the Normal box (in units of F/L^3).
 Select an object or objects.
 Click Accept.
Note: if a fastener radial spring stiffness is to be approximated, the below expression for Kr may be useful:
Defining & Assigning Material Properties
Because a General Nonlinear analysis is more computationally expensive than a Material Nonlinear analysis, it may be desired to run an analysis that simulates normal springs in compression only. This requires specifying a nonlinear material with either a representative yield stress (if the linear von Mises stresses call for plasticity to be computed), or an artificial yield stress to force the material nonlinear algorithm to release normal springs that are in tension but otherwise keep the stresses linear.
Representative vs. Artificial Yield Stress
 If plasticity is to be incorporated in the analysis, the material properties should be defined using a representative nonlinear material stressstrain curve and yield stress.
 For example, if the material is steel and the units are US Customary, then a representative value for the nonlinear material’s elasticplastic “Sy” may be 50 ksi.
 The nonlinear material property can be assigned to a set of elements or all elements.
 If plasticity is NOT to be incorporated in the analysis, then an elasticperfectlyplastic (Type: Elastoplas.) material curve with a yield stress (Sy) of an “unreachable” value may be specified.
 For example, “Sy” may be set to 1e6 ksi, such that plasticity is not computed.
 The nonlinear material property may be assigned to only the surfaces assigned normal springs in order to make the material nonlinear analysis more efficient, or to a set of elements or all elements.
Material Nonlinear Analysis (NL Mat)
After a linear analysis is available, a Material Nonlinear analysis (Type: Material (NL Mat)) may be executed to compute plasticity + represent compressiononly normal springs, or simply represent compressiononly normal springs.
 In the case of compressiononly normal springs, the “Convergence:” must be set to Energy.
 In the case of plasticity + compressiononly normal springs, the “Convergence:” may be set to either Energy or Stress.
General Nonlinear Analysis (NL Gen)
If a General Nonlinear analysis is required to account for large displacements and/or rotations, and equilibrium must be solved in the deformed configuration, then the solution should use Type: General (NL Gen). Normal springs will always be compressiononly in a General Nonlinear analysis.
Note: nonlinear material properties do not need to be assigned to any elements in order to solve a General Nonlinear analysis.
For more information:
How Do I Increase the Nonlinear Material StressStrain Plot Resolution?
The stressstrain curve can be plotted for nonlinear materials in the Material tab, Assign subtab by clicking Plot:
By default, 24 points are displayed for the stressstrain curve fitting, which may not be sufficient for some nonlinear material curves.
You can increase the points generated in the stressstrain curve by defining two underscore parameters:
 _NL_COUNT for the number of desired points
 _NL_MAX to set the upper xlimit of the plot
For example, set _NL_COUNT to 100 and _NL_MAX to 0.1, and the curve will be plotted using 100 points in the strain range from 0 to 0.1. However, note that these parameters have no effect on the solution itself.
Note: This technique also increases the # points displayed in the property vs temperature material curve for TemperatureDependent materials.
What are the Nonlinear Solver Limitations with MultiBody Contact?
Currently, there is not a capability to combine incremental plasticity (Type: Material (NL Mat) with Technique: Incremental) or general/geometric nonlinear (Type: General (NL Gen)) solutions with multibody contact.
Multibody contact may be combined with deformation theory of plasticity, however, to represent elasticplastic material nonlinearities (Type: Material (NL Mat) with Technique: Deformation) in the case of limit load analysis.
Here is the appropriate Nonlinear Solver window for deformation theory of plasticity with multibody contact:
Here is an example of how to combine multibody contact with deformation theory of plasticity: https://www.esrd.com/product/helpfulhintstipsconvertinglinearelasticcontactelasticplasticcontact/
If a 3D coldworking operation is desired, the effects of mandrel insertion/removal may be represented with the following processes.
What is Required in a Fastener Element Analysis?
From the StressCheck^{®} Master Guide:
A Fastener is a special element that can be attached to circular boundaries. It consists of a rigid core with two degrees of freedom connected to the planar body by a distributed radial (normal) spring. The rigid core can be connected to the rigid core of other fasteners directly or using a link element, it can be fixed in one or both directions, or it can be loaded by a force or an imposed displacement.
The spring coefficient (Kr) is determined from the elastic solution of a disc under radial compression (planestrain condition), as the ratio between the applied pressure and the radial displacement. In order to properly account for the effects of the Fastener element, it is necessary to run both a Linear AND a Nonlinear solution. This is because the normal springs must release in tension, and this requires a Nonlinear solution. The type of Nonlinear solution required depends on the following:
 Are any nonlinear materials assigned to at least one element in the model?
 Are the effects of geometric nonlinearities important?
No Nonlinear Materials Assigned
If no nonlinear materials have been assigned to any elements in the model, then it is necessary to run a Type: General (NL Gen):
Geometric Nonlinearities Not Important
If nonlinear materials have been assigned to at least one element in the model, and geometric nonlinearities are not important, then a Type: Material (NL Mat) is recommended:
Geometric + Material Nonlinearities
If the effects of material AND geometric nonlinearities are important, then a Type: General (NL Gen) is recommended.
StressCheck^{®} Tutorial: Fastener Element and General Nonlinear Analysis
When Is Incremental Plasticity Theory (IPT) a Viable Option?
In order to determine the applicability and viability of representing loading/unloading events via Incremental plasticity theory (IPT), it is important to conduct presolution checks before performing potentially timeconsuming nonlinear analyses.
Note: these guidelines and recommendations to determine if IPT is an option for the current model inputs are a complement to the technical documentation on StressCheck^{®}‘s implementation of IPT found here:
Checks once linear solution is available
After performing a pextension of at least three linear runs (e.g. p=2 to 4 or p=6 to 8), we should explore the model’s linear solution to assess the following characteristics:
Convergence and relative error in the energy norm
 Reported post solution in the SOLVE! window.
 In 2D, ideally less than 2%.
 In 3D, ideally less than 5%.
 The above error bounds assume the stresses in the linear solution are smooth on the whole domain.
 If there are intentional model stress singularities (such as assigned point loads, TLAPTractions or cracks) the energy norm error may be higher. Note: any errors due to singularities will only be magnified and propagated in nonlinear analysis.
Plot deformed shape at scale 1:1
 If the deformation is excessive (even if the strains are small) the small deformation assumption for the applicability of the ITP may not be satisfied.
 A rule of thumb is that the deformed configuration should be small enough that is practically undistinguishable from the undeformed configuration.
 For a quantitative check, a geometric nonlinear solution (Nonlinear Solver tab, Type: NLGen, linearelastic materials assigned) can be run. This will account for changes in the geometric configuration due to loading, and will solve for equilibrium in the deformed configuration.
 Ideally the difference between the NLGen and linear solutions in terms of the quantities of interest should be very small. Note: when normal tractions are employed (follower loads), the difference between the two solutions can be significant.
StressCheck Tutorial: Directional vs Follower Loads in Geometric Nonlinear Analysis
Plot/extract von Mises stress and strains (including max value convergence checks)
Additional checks before/after running a material nonlinear solution
 Selection and appropriate material input definitions for the Nonlinear Material type (Elastoplas., Bilinear, 5parameter or RambergOsgood).
 In order for the solution to be meaningful, an appropriate yield stress for the material must be specified before running any material nonlinear analysis. Note: nonlinear solutions cannot be scaled like linear solutions.
 Material selection has an impact on how plasticity evolves (particularly for unloading) and how stable is the solution (i.e., there may be a portion of the material that could have unbounded strains causing the solver to fail for large loads).
 This is particularly an issue for elasticperfectlyplastic materials, Bilinear materials with relatively small tangent moduli (Et), and RambergOsgood materials with large “n” values.
 Make sure the constraints will always account for rigid body modes, otherwise the solver will fail.
 Important consideration when nonlinear springs are used or when solving a general nonlinear analysis (NLGen) with selfequilibrated loads.
 Consider subsequent loads/unloads and the end goal(s) of the computation (e.g. displacements, stresses, strains, etc.).
 The initial mesh/polynomial degree of elements may not be appropriate to capture gradients caused from loads that appear on subsequent evens/steps.
 This is particularly the case when interested in residual stresses resulting from loading/unloading events represented with ITP, assuming the checks herein passed.
 Time permitting, compare the material nonlinear analysis stress/strains/displacements with a general nonlinear analysis (which uses DTP + geometric nonlinear).
StressCheck Tutorial: Linear vs Nonlinear Results for a Single Lap Joint
Checks before/after running an ITP solution
 Check to ensure loading is not displacementcontrolled (within ITP these are only allowed for the initial event and cannot longer be changed).
 Spring displacements may be applied on spring coefficient boundary conditions instead.
 Convergence in the ITP solution is expected to be monotonic and quadratic (e.g., 100%, 10%, 1%, 0.1% and so on).
 If convergence oscillates or the error takes too long to be reduced it may be an indication that something is wrong with the solutions (e.g., very large load increment, unstable boundary conditions involving nonlinear springs).
 Evaluate solutions continuity (contour plot), particularly when a message indicating the fitting error (3D only) exceeds 2% is issued.
 In addition to contour plotting, line extractions can also be used to check for “jumps” in the stresses across elements.
 Additional refinement may be necessary to reduce fitting errors for those elements.
Case Study
StressCheck Tutorial: Checking ITP Viability for Solving Nonlinear Events
Other Examples of ITP solutions
Which Nonlinear Solution Type (i.e. Material or General) Should I Choose?
The Nonlinear solver enables two types: Material (NL Mat) or General (NL Gen). The Nonlinear solver interface is below:
Note: to solve a nonlinear problem, a linear problem must be solved first and selected as the initial step in the nonlinear analysis. Additionally a Fastener Element requires a Nonlinear solution.
StressCheck Tutorial: Linear vs Nonlinear Results for a Single Lap Joint
Material Nonlinear
Material Nonlinear (NL Mat) accounts for nonlinearities associated with changes in material properties. Stresses and strains are related by a straindependent matrix, and strains are not known in advance.
An elasticplastic stressstrain relationship (e.g. RambergOsgood or elastoplastic) must be defined and assigned to at least one element in the model for the Material Nonlinear algorithm to succeed.
There are two techniques/plasticity theories associated with Material Nonlinear: Deformation and Incremental. The capabilities are described below:
 Deformation theory is capable of representing single overload events efficiently (i.e. unloading events are not important) and may be combined with multibody contact.
 Incremental theory is capable of representing cyclic loading/unloading (e.g. coldworking), hardening behavior of typical engineering materials and reverse plasticity but may not be combined with geometric nonlinearities or multibody contact.
Note: Details of both plasticity theories can be found in the Master Guide. A note on the hardening models for incremental plasticity can be found here. A note on the implementation of Deformation theory can be found here.
The scope of Material Nonlinear analysis is as follows:
Smallstrain, smalldisplacement, with elasticplastic and nonlinearelastic material characterization for planestress, plane strain, axisymmetric and threedimensional problems. Springs will remain attached to the boundary only under compression if defined in the normal direction.
Here are some examples of Material Nonlinear analysis:
General Nonlinear
General Nonlinear (NL Gen) accounts for nonlinearities associated with changes in configuration, as in large deflections of a slender elastic beam, as well as accounting for elasticplastic material properties (if assigned to any element).
The General Nonlinear implementation is based on the Spatial/Eulerian formulation satisfying equilibrium in the deformed configuration (accounts for changes in geometry). It includes nonlinear strains (Almansi) and large deformations with the material description being linearelastic or elasticplastic. For elasticplastic materials the von Mises yield criterion is used together with the Deformation theory of plasticity. A note on the General Nonlinear implementation can be found here.
There are two integration techniques associated with General Nonlinear: Direct and NewtonRaphson.
 Direct integration is the default algorithm, is faster and applicable for most situations.
 NewtonRaphson integration is more expensive but applicable for cases where there is a strong coupling between membrane and bending effects when analyzing thin domains (such as bonded lap joints).
If a General Nonlinear analysis fails for Direct integration, NewtonRaphson integration is recommended.
The scope of General Nonlinear analysis is as follows:
Materials
 For linear materials, the general nonlinear analysis will account only for changes in geometry (geometric nonlinearities).
 For elasticplastic materials, the analysis will account for geometric and material nonlinearities.
Loads
 Specify loads in Normal/Tangent for ‘follower loads’.
 Specify loads in Global/Local system for fixed load direction.
StressCheck Tutorial: Directional vs Follower Loads in Geometric Nonlinear Analysis
Constraints
 Rigid body constraints may not be meaningful for geometric nonlinear problems. Bodies originally in equilibrium may become nonequilibrated due to deformation.
 Symmetry and antisymmetry conditions may not be preserved under large deformations.
 When springs are specified on element edges or faces, they will remain ‘attached’ to the boundaries whether under tension or compression if defined in Global/Local direction.
 Springs will remain attached to the boundary only under compression if defined in the normal direction.
Here are some examples of General Nonlinear analysis:
Why is a Nonlinear Solution Failing?
Ideally, the error in the linear solution should be small before running a nonlinear (Material or General) solution. From the Master Guide:
Having entered the input data, execute a Linear analysis. It is recommended that you obtain a sequence of solutions and estimate the relative error in the energy norm. At least one of the solutions in the sequence should have a small relative error (typically under 1% for 2Dproblems and under 5% for 3Dproblems). If this were not the case, then either refine the mesh or switch to the product space (or both) and repeat the Linear analysis. In general, you should expect the accuracy of the nonlinear solution to be somewhat lower than the accuracy of the linear solution. In the case of plane strain, axisymmetric, and 3D problems, for example, the plastic strain is subject to the incompressibility constraint, which is not present in the case of the linear solution.
Assuming the discretization error was small in the linear solution, the following may cause the Material or General Nonlinear algorithm to fail, producing a LAPACK, element stiffness generation, or some other error:
Applied load or displacement is generating too much plastic strain and/or deformation
In some cases, the applied load/displacement causes such high stresses/strains in the linear solution that the nonlinear algorithm has difficulty projecting from the linear solution to the elasticplastic material stress/strain curve. This can result in the algorithm exiting prematurely or failing.
Possible solution: Use load stepping to increment the applied load/displacement from a smaller % of the target value to the target value:
 Define a parameter to control the value of the load/displacement, and set the initial parameter value to a % of the target value (typically based on the relative difference between the linear solution’s maximum von Mises stress and the elasticplastic curve yield stress).
 Replace the record(s) controlling the applied load/displacement with the parameter name.
 Resolve the linear solution.
 Activate Load Steps on the Nonlinear tab, enter the number of desired steps, select the parameter name, and enter the target value as Load Max.
 Solve the nonlinear solution. The initial value (Load Min) will increment to the target value (Load Max) over the desired steps.
If the final value is still too large for convergence to be achieved in the nonlinear algorithm, the desired analysis may be outside the scope of implementation. From the Master Guide:
In general, it is good practice to use the linear solution to estimate the level of loading which will not cause extensive plastic flow, the treatment of which would lie outside of the scope of small strain models.
In general, the largest strain of the linear solution will become even larger for the nonlinear solution. The spread of the plastic zone can be anticipated by examining the equivalent stress (Seq) contour plot of the linear solution. The size of the plastic zone will be larger than the region for which Seq > Syield.
Elements are too distorted for General Nonlinear analysis
If there are “sliver” elements in the mesh, meaning the solid angles of some elements are extremely small (<1 degree) or extremely large (>179 degrees), these elements may fail during General Nonlinear analysis as the volume of the element cannot be computed in the deformed configuration. The curvature and/or aspect ratios of the elements must be improved in order to address this issue.
Possible solution: Additional mesh refinement may be required, or the geometry may need to be modified in order to accommodate elements with improved solid angles and mapping (i.e. curvature).
Not enough constraints assigned after normal springs released
Normal springs will always release in tension for a General Nonlinear analysis, and for a Material Nonlinear analysis if the normal springs are attached to elements with elasticplastic materials. This means that if normal springs were used to keep the model in equilibrium, additional constraints or directional springs may be necessary.
Possible solution: Check to determine if the normal springs can be replaced by different boundary conditions, or by directional (XYZ) springs (which will not release in tension).
Additionally, determine if the model can be selfequilibrated by applying balancing loads instead of normal springs.
Plastic material not contained by elastic material (e.g. simulating a ligament failure)
In order for the Material Nonlinear algorithm to proceed, there must be enough elastic material (i.e. no permanent plastic strains) surrounding regions of plastified material (i.e. permanent plastic strains). From the Master Guide, on Deformation Theory of Plasticity:
The effects of a single overload event on structures made of ductile materials are of substantial practical importance. Such effects can be well represented by mathematical models based on the deformation theory of plasticity provided that the plastic flow is contained, that is, the plastic zone is surrounded by elastic material.
Make sure that the applied load or imposed displacement will not cause excessive plastic strains, except in the immediate vicinity of singular points. Remember that the small strain, small displacement theory is used. The plastic zone should be completely confined by an elastic zone.
Possible solution: Incorporate load stepping to incrementally plastify the material, and ensure that the region becoming plastified has a low discretization error in the linear solution and is confined by an elastic zone.
Nonlinear material properties must be assigned to at least one element
An error occurs similar to “no nonlinear material properties were assigned to any elements”.
Possible solution: Assign at least one element elasticplastic material properties in order to solve a Material Nonlinear analysis.
No nonlinear strains detected in Material Nonlinear analysis
The linear solution’s maximum von Mises stress never exceeded the yield stress of the elasticplastic material assignment, and the Material Nonlinear algorithm exits.
Possible solution: If it is expected that plasticity occur based on the model inputs, check the model and make sure the inputs are appropriate. Otherwise, a Material Nonlinear analysis is not required.
Elasticplastic material curve has incorrect yield stress or tangent modulus
The Material Nonlinear algorithm is sensitive to the elasticplastic material curve inputs, so it is very important that the yield stress, tangent moduli and other material curve inputs are consistent.
Possible solution: Check the elasticplastic material curve inputs and ensure the inputs are correct and in consistent units.
Additional information:
Model Display
How Can I Change My Display Format?
The display format is in Clanguage, which is described in detail here: https://www.cprogramming.com/tutorial/printfformatstrings.html
Model Input
The model input display format can be accessed and changed by clicking Display>View Controls… and entering a new “Display Format:”
This will be reflected in all model inputs, including parameter values. By default, the display format is %11.4e, which means a maximum length of 11 digits, a precision of 4 digits and exponential. For example, 11,012.54 will be displayed as “1.1013e5”. To change to a floating format, simply replace the “e” with an “f”.
Once a SCW or SCP file is saved, it will store your current model input display format. To change the default model input display format so that every StressCheck^{®} session uses the same display format, click File>Options and modify the Display Format (below). Then click “OK”:
The differences in model input between the default (%11.4e, top) format and floating point (%11.4f, bottom) are below:
Results
The model results display format can be modified by changing the “Format:” input in the Results tabs. The formatting is the same as described above.
The differences in model results between the default (%11.3e) format and floating point (%11.3f) are below:
How Do I Control the Display of Load Arrows?
By default, displaying the load arrows for a selected load ID will display the load arrows for every load record within the load ID. Additionally, the load arrows will be scaled automatically to appropriate sizes based on the current model view, and the relative lengths of the load arrows will be with respect to the applied load magnitudes in the load records.
The below provides tips and tricks for displaying load arrows for a selected load ID.
Switching Between Load ID Displays
If multiple load ID’s are defined in the model, and we wish to view a particular load ID, we can use the “Display Loads/Flux” drop down (above image). The current load ID will have a blue circle.
This is the easiest way to quickly cycle between the load arrow displays of each load ID in the model.
Load Arrow Display Scaling
The relative sizes of the load arrow displays for the selected load ID records are controlled via the “Scale” box in the Load tab. The “Scale” value can be automatically generated (default) or userdefined.
 If the “Scale” check box is not checked, the load arrows will be automatically scaled based on the current model view (top image, 5.168e1 shown).
 If the model view is updated (e.g. zoom out), clicking the Display Reset button will automatically regenerate the load arrows in a new scale.
 If the “Scale” check box is checked, the load arrows will be drawn based on a userdefined scale (bottom image, 1.0 shown).
 After checking the “Scale” check box and entering “1.0”, clicking the Display Reset button will regenerate the load arrows.
 Special case: if the “Scale” check box is checked, and “0.0” is entered for the “Scale” box, all load arrows will have the same size.
Note: the “Scale” value has no effect on the magnitudes of the applied loads.
Display A Single Load Record for a Load ID
A model may contain multiple load records within a load ID, and we may want to display only one load record within the load ID to display its load arrow magnitudes and directions.
To only display the load arrows for a single load record, we recommend the following:
 Select the load record you would like to display.
 Change the load ID of the record to a temporary name (i.e. “temp”).
 Click Replace.
 Check the ID box or select the “Display Load/Flux” drop down load ID to display the load arrows for “temp”.
 The load arrows for only this load record should display.
 Select the same load record such that the Replace button is available.
 Change the load ID back to the original load ID.
 Click Replace.
This process ensures that the load arrow displays for an assignment can be isolated for easier viewing.
How Do I Display Object Numbering?
To display the object numbering for visualization, click on Display>Objects…
Then, check the Label box next to the object numbering you want to visualize and click “Draw”. For example, if we want to visualize the element numbers, we can check the Label box next to “Elements” and click “Draw”:
To turn of the element numbering, uncheck the Label box and click “Draw”.
How Do I Use Sets to Select and View Groups of Elements and Other Objects?
In StressCheck^{®}, sets are used to group objects by type (such as elements). This is similar to the Group concept used in other FEA. Sets are designed to allow you to view model input and results limited to a group of objects instead of viewing all objects of that particular type.
If a set of elements exists (i.e. Model Input, Sets tab, Select>Any Element, view list items), it can be selected and changed:
 Select the set from the dropdown list in the Sets tab by using Select>Any Element and clicking on the item in the list. It will highlight all the elements in the set.
 To include more elements in the set, hold SHIFT and pick the additional elements, then click “Replace”.
 To remove elements from the set, hold CTRL and pick the elements to be removed, then click “Replace”.
To select a set of elements from the model display, hold CTRL+SHIFT and select an element in the set. The Sets Browser will appear, with the Candidate sets including the element set in the list (in this case, the Selection is set to Any Element):
To display only this element set, click Display>Objects… and “Sets” tab. Check the “Elements” box, select the element set from the list, then click “Draw” to display only this element set:
This tutorial video shows how to manipulate element displays using automesh and usergenerated sets: https://www.esrd.com/product/stresschecktutorialusingsets/
How Do I Use the Edit Toolbar to Select, DeSelect, Blank and Unblank Objects?
The Edit Toolbar enables object selection/cancellation (by object type or any object), inverting object selections, object blanking (by object type or any object), object unblanking (by object type or any object), visualizing blanked objects, picking only visible objects and more.
This tutorial video explains the details of the Edit Toolbar:
StressCheck^{®} Tutorial: Using Edit Toolbar for Object Selection and Visualization
What Can Affect Fringe Plot Rendering Rates?
There are a number of variables that may affect fringe plot rendering rates, especially if the cutting planes option is enabled. Though, models with large numbers of elements and/or solution degrees of freedom (DOF) will cause the rendering to perform slower in general.
Fringe plot rendering time can be drastically altered depending on user inputs
Here are a few suggestions that might help reduce the fringe plot rendering time when using the Plot tab with the Contour: Fringe option enabled:
 Make sure the wetted faces display button is enabled so that the program is not rendering the plot on internal faces.
 Plot using Select > Any Face and marquee select the subset of element faces you are interested in.
 This will be much faster than plotting on all elements.
 Make sure you are not simultaneously plotting the deformed shape (i.e. set Shape: Undef. before clicking Plot).
 Reduce the # midsides to 5 (3D) or 10 (2D) and then increment the midsides until the fringe plot contours are unchanged.
 Oftentimes, the difference between 10 and 20 midsides is negligible in terms of displayed stresses, while it is drastic in terms of rendering time.
More information on plotting:
What Can Affect Model Performance and Integrity?
Some StressCheck^{®} users may experience decreased model performance and/or integrity in certain situations. The following may be considered as potential reasons:
Scratch Directory and File I/O Issues
Path to Scratch Directory Pointer
Is your “Path to Scratch Directory” option pointing locally or to a network location? If your scratch directory (i.e. a temporary directory automatically created for StressCheck^{®}related session files and solution data) is pointing to a network path, this can drastically slow down model loading and solution times, and even affect the data integrity.
Check the scratch directory path by opening StressCheck^{®} and clicking File > Options, and verify that the “Path to Scratch Directory” value is pointing locally (e.g. C:\Users\…..\AppData\Local\Temp”, which is the default), and is not pointing to a restricted area on your machine (e.g. C:\Program Files\ESRD\StressCheck^{®} PE 10).
NonEssential Temporary Directories
It is recommended to keep the scratch directory path relatively clean of old/discarded StressCheck^{®} temporary directories (dataset folders) as well as other nonessential temporary folders to reduce overhead. These temporary directories have the format of “datasetxxxxxxxxxxxxxxxxx”, with these directories (and their contents) normally removed after StressCheck^{®} sessions are closed by the user.
However, if StressCheck^{®} sessions exit abnormally, these directories may remain. It is recommended to remove any unwanted temporary directories in the scratch directory path.
Reading/Writing StressCheck^{®} Project and Work (SCP or SCW) Files
It is recommended to read (open) and write (save) StressCheck^{®} files locally instead of relying on a network connection. This ensures the packing/unpacking procedure is allowed to complete uninterrupted. Additionally, the local directory should not be a system or restricted folder requiring additional write permissions.
Opening a StressCheck^{®} file from a mail client, such as Outlook, may cause unpacking issues. Therefore, StressCheck^{®} file attachments should be saved locally before opening.
Adhering to these recommendations will ensure that the integrity of StressCheck^{®}‘s files are preserved, and there are no interruptions during the file read/write that can cause corruptions.
Disk Space Availability and Hard Drive Speed
Ideally, the scratch directory path would have plenty of disk space (i.e. > 1 GB), otherwise larger models will almost certainly load and solve at slower rates due to limited disk availability.
Also, there is much file I/O occurring during model loading and solving (especially during stiffness matrix inversion), which can be further limited by your hard drive’s read/write speed.
Ideally, the hard drive would be a steady state hard drive (SSD) or at least a highRPM mechanical hard disk drive (HDD). If your hard drive is quite fragmented, near capacity and/or has a slower RPM mechanical hard disk drive, model performance may be slowed.
Learn more about ESRD Software Product System Requirements.
Firewall and Network Security Considerations
Are you running a nodelocked or floating license configuration? For nodelocked (i.e. machinespecific) licenses, firewalls/network security slowdowns typically are not an issue as there is no network communication involved.
However, for floating (serverbased) licenses, communication through a restrictive network firewall to/from the license server’s FLEXnet license manager can cause significant slowdowns in model performance. This communication is required in order to obtain/return StressCheck^{®} license features and check the license server’s “heartbeat” (i.e. determine if the license server is still capable of serving licenses).
Check with your system administrator to determine if your StressCheck^{®} license server communicates through a highersecurity, firewallenabled network that limits/prevents network communication or specific ports. If this is the case, slowdowns may also be observed for other software products which need to communicate with the same license server.
Graphics Processor
Ideally, the graphics processor for StressCheck^{®} (and all ESRD products) should be set to your video card’s highperformance graphics processing unit (GPU) instead of integrated graphics (e.g. Intel onboard). Some examples of video card manufacturers include Nvidia and AMD, which design dedicated GPU’s for highperformance graphics acceleration and rendering.
For additional information on ensuring you are using your video card’s highperformance GPU (such as Nvidia or AMD) for StressCheck^{®}: https://www.techadvisor.co.uk/howto/pccomponents/howsetdefaultgraphicscard3612668/
Processor Affinity
Has processor affinity (i.e. the specific declaration of CPU cores to be used for an application) been set? Learn more: https://www.tekrevue.com/tip/restrictappscpucoresprocessoraffinity/
What Does the Object Resolution in View Controls Do?
The Object Resolution input in Display>View Controls… allows you to change the rendering resolution of the displayed surfaces. The default is 21, and the range is 1100 (with 100 being the maximum Object Resolution).
Mesh Region Assignments
When Mesh Region is used for assignment of attributes, such as material properties, some elements within the mesh region may not be selected. This may happen because the value of the Object Resolution in the View Controls interface (21 by default), is not large enough to represent the shell accurately enough. From the Main Menu select Display > View Controls and change Object Resolution to 40 or higher (upper bound is 100). Increase this value until all elements have been properly assigned the attributes. To store this value with the file for future StressCheck^{®} sessions, create a parameter with the name _object_res with a value equal to the desired object resolution. Then, save the file to store this object resolution.
Changing the Surface Resolution
The difference between an elliptical surface for an Object Resolution of 21 and 100 is below:
What Is the Midsides Input, and What Does It Control?
The Midsides input field affects both the resolution of the display of element edges in the model, and the resolution of results extraction. It is also found when performing hDiscretization to describe how many times an element will be “split”.
Results
When in the Plot or Min/Max tab, the Midsides input will control the resolution of the plot grid/search grid:
Plot
For plotting purposes, each element is subdivided into a data extraction mesh which depends on the number of “Midsides”, that is, the number of grid points along each side not including the end points. The desired data are then computed in the grid points of the data mesh. The higher the number of midsides, the more accurate the display, and the longer the required computer time. In general, using 5 to 10 midsides is sufficient.
The difference in fringe plots between a Midsides of 2 (upper) and 10 (lower) is shown below:
Min/Max
For Min/Max purposes, specify the data mesh, which is characterized by the number of “Midsides”. The specified function will be computed in the grid points of the data mesh. The data mesh determines the set on which the minimum and maximum will be sought. For a typical pversion mesh, between 8 and 12 midsides should be used. For an automesh, between 5 and 10 midsides should be used.
The difference in maximum stress searches between a Midsides of 3 (upper) and 12 (lower) is shown below:
In the above, more than 3 Midsides were necessary to locate the maximum.
Model Display
In the display of the model, the Midsides/Edge Resolution input controls the resolution of the element edges/faces to allow for smoother/coarser rendering. It has no influence on the model’s solution. It can be accessed and changed in Display>View Controls… under “Edge Resolution”:
The Edge Resolution/Midsides is set to 5 in the above. By default, the number of element edge midsides is 2. This means each element edge will be displayed as N+1 segments, where N=2 (3 segments in this case). However, when solved the element edge is represented by higherorder polynomial functions.
The default for Edge Resolution/Midsides display can be changed for future sessions under File>Options:
The difference in the element edge display between an Edge Resolution of 2 (upper) and 5 (lower) is shown below:
Note that the number of segments in “Edge Resolution: 2” is 3 for each element edge, while in “Edge Resolution: 5” it is 6 for each element edge. Also, note that the number of symbols for the boundary conditions (i.e. loads/constraints) is equal to the number of segments.
Why Are Certain Objects in a Model Not Displayed?
Using the Parts class to organize objects into a single named entity is very useful for preprocessing and postprocessing tasks, as well as defining solution configurations and organizing object displays.
However, if a certain Part is selected in the Parts selector at the time of saving a project file (SCP) or workfile (SCW), objects not included in the selected Part will not be displayed when opening the file:
If certain objects are not in the display, first check to ensure each object type is enabled for display.
After opening the file, first check to ensure all object displays are activated (see above). If certain objects are still not displayed, check to see if a Part name is selected in the Parts selector. The Part may have only certain model objects in it, meaning all other model objects will not be displayed.
To remedy the display of all model objects, change the Parts selector from the current Part name to “All Objects”:
All model entities (i.e. elements, nodes, systems, points, etc.) should be displayed. It is then recommended to save the project or workfile in this configuration:
For more information about Parts:
Why Do I Have Duplicate Geometry or Mesh Objects?
When using the “Create” action in the Geometry or Mesh tab, there are multiple ways to create new objects:
 Clicking “Accept” on the Model Input window
 Hitting Enter on the keyboard
 Leftclicking on the Model Viewing window
It’s possible more than one of these actions was invoked during an object creation. Note: leftclick of the mouse in the Model Viewing window will always perform the current action in the “Action” combo (e.g. Create, Select, Edit).
Avoid LeftClicking in Model Viewing Window After Object Creation
As a best practice, if focus is required in the Model Viewing window, and a new object creation is NOT desired, it is recommended to rightclick in the Model Viewing window to establish the window’s focus such that the model can be rotated, zoomed, etc. This can help with reducing duplication of geometry and mesh objects.
Removing Duplicates
If you suspect there are duplicate geometry and/or mesh objects, changing the combos to “Select > Any Object” and clicking on the “Index” subtab within the Geometry or Mesh tabs will display a list of the objects in the model:
If there are duplicates, you may simply select the object(s) from the Index list and click the “Delete” button, or simply click the “DeLast” button if the last object created was a duplicate.
Note: if nodes are duplicated, clicking the Mesh tab’s “Merge” button will attempt to merge duplicated nodes.
Why Do Small Features Sometimes Appear Distorted?
For models located many units away from the Global origin (0,0,0), or in general when multiple length scales (e.g. 0.01>1000 units) in the model display are rendered, small features such as Booleanunioned crack surface meshes may appear to be distorted or “wavy”. This small feature distortion is simply an artifact of singleprecision object rendering by StressCheck^{®}‘s visualization utility (HOOPS by TechSoft 3D), and is not related to the doubleprecision computation of element stiffnesses, mappings, solution data, etc. Therefore, results will not be affected.
In the below example, a plate with a hole and 0.01″ corner crack is relocated from 0,0,0 in. to 1000,1000,1000 in. This represents a significant change in feature rendering scale (i.e. 0.01″ to 1000″) in the same view. The data of interest is the stress intensity factor (SIF) distribution along the crack:
While the display of the crack becomes distorted as the model is moved far away from the Global origin, the SIF distribution is unaffected (all three curves are coincident). Contact ESRD Support if you suspect results are influenced by the model’s location.
Resultant Extractions
Parameters
How Can I Update All Model Sets?
Sometimes, it may be required to update set lists to reflect changes in the model. This is especially true for sets created by the Locate method, in which the pick coordinates and box tolerance will determine which objects will be added to the set.
When set information must be updated, rather than manually replacing each set it is helpful to define a “dummy” parameter to force all sets and assignments to be updated.
For example, we can create a parameter called “dummy” and enter “1+1” in the Expression field. Click Accept, and all model sets will be automatically updated:
More information on Locate sets:
How Do I Increase the Nonlinear Material StressStrain Plot Resolution?
The stressstrain curve can be plotted for nonlinear materials in the Material tab, Assign subtab by clicking Plot:
By default, 24 points are displayed for the stressstrain curve fitting, which may not be sufficient for some nonlinear material curves.
You can increase the points generated in the stressstrain curve by defining two underscore parameters:
 _NL_COUNT for the number of desired points
 _NL_MAX to set the upper xlimit of the plot
For example, set _NL_COUNT to 100 and _NL_MAX to 0.1, and the curve will be plotted using 100 points in the strain range from 0 to 0.1. However, note that these parameters have no effect on the solution itself.
Note: This technique also increases the # points displayed in the property vs temperature material curve for TemperatureDependent materials.
How Do I Round A Parameter To Nearest Integer Value?
Use the intrinsic function “mod(x;y)” to round to the nearest integer value.
For a parameter A=3.14159, create a parameter expression B=Amod(A;1). The resulting value for B=3.0. If B=4.0 is required, use B=Amod(A;1)+1.
“Mod(x;y)” may be used in formula expressions.
How Do I Troubleshoot SmallFeature Automeshes?
When CAD files imported into StressCheck^{®} have very small geometric features, these are sometimes suppressed by the MeshSim automesher, resulting in elements not associated with the geometric surfaces in regions near the small features. Some indicators of this are:
1) Loads/constraints applied to geometric surfaces are not applied to element faces
2) MeshSim warnings regarding parasolid error
3) Warning message regarding significant node displacement
To ensure the small geometric features are not suppressed by MeshSim, define the parameter _ms_suppress in the Model Info Parameters tab and set it to less than 5e5 (relative feature size) and try remeshing. Conversely, if you wish to suppress small features from automeshing, you may set the value to be the minimum feature size. MeshSim will skip the meshing of these features.
Global Error
What Is the Interpretation of the Buckling Load Factor in an Eigenvalue Buckling Analysis?
In eigenvalue buckling analysis, the goal is to compute the buckling load factor (BLF) and the corresponding buckling mode shape. The BLF is the multiplier of the applied loads to the component to produce the first buckling mode. Note: checking the values of strains/stresses from the eigenvalue buckling solution is not meaningful because the buckling mode shape is known only to an arbitrary constant.
Therefore the linear solution multiplied by the BLF is the reference for when buckling will initiate. That means the stresses corresponding to the linear solution multiplied by the BLF are the stresses that will be developing at the time instability occurs (paired with the corresponding mode shape determined by the buckling analysis). Note: a linear analysis of the model is computed during an eigenvalue buckling analysis, and is available for results processing once the eigenvalue buckling solution is available.
For More Information:
Min/Max Extractions
Loads
How Do I Combine Load Cases in Results?
Each Solution ID requires a unique Load ID and Constraint ID. Some users wish to combine the results of two or more load cases together, such as axial/bending or mechanical/thermal load cases, and this may be accomplished via the StressCheck^{®} Calculator (Functions: Calc):
The StressCheck^{®} Calculator can be accessed in the Plot, Min/Max and Points tabs under “Functions: Calc”.
Up to five different solutions may be combined, each “Solution:” representing a Solution ID of a Load ID/Constraint ID. The Operand allows the Solution ID and Run to be converted into an integer specification.
A formula may be entered to represent the superposition of displacements, stresses or strains. For example, the above represents the addition of the stresses in the global Xdir for the 8th runs of Solution ID’s “SOLAXIAL” and “SOLBENDING”.
Here are some examples of combining load case results in the StressCheck^{®} Calculator:
How Do I Control the Display of Load Arrows?
By default, displaying the load arrows for a selected load ID will display the load arrows for every load record within the load ID. Additionally, the load arrows will be scaled automatically to appropriate sizes based on the current model view, and the relative lengths of the load arrows will be with respect to the applied load magnitudes in the load records.
The below provides tips and tricks for displaying load arrows for a selected load ID.
Switching Between Load ID Displays
If multiple load ID’s are defined in the model, and we wish to view a particular load ID, we can use the “Display Loads/Flux” drop down (above image). The current load ID will have a blue circle.
This is the easiest way to quickly cycle between the load arrow displays of each load ID in the model.
Load Arrow Display Scaling
The relative sizes of the load arrow displays for the selected load ID records are controlled via the “Scale” box in the Load tab. The “Scale” value can be automatically generated (default) or userdefined.
 If the “Scale” check box is not checked, the load arrows will be automatically scaled based on the current model view (top image, 5.168e1 shown).
 If the model view is updated (e.g. zoom out), clicking the Display Reset button will automatically regenerate the load arrows in a new scale.
 If the “Scale” check box is checked, the load arrows will be drawn based on a userdefined scale (bottom image, 1.0 shown).
 After checking the “Scale” check box and entering “1.0”, clicking the Display Reset button will regenerate the load arrows.
 Special case: if the “Scale” check box is checked, and “0.0” is entered for the “Scale” box, all load arrows will have the same size.
Note: the “Scale” value has no effect on the magnitudes of the applied loads.
Display A Single Load Record for a Load ID
A model may contain multiple load records within a load ID, and we may want to display only one load record within the load ID to display its load arrow magnitudes and directions.
To only display the load arrows for a single load record, we recommend the following:
 Select the load record you would like to display.
 Change the load ID of the record to a temporary name (i.e. “temp”).
 Click Replace.
 Check the ID box or select the “Display Load/Flux” drop down load ID to display the load arrows for “temp”.
 The load arrows for only this load record should display.
 Select the same load record such that the Replace button is available.
 Change the load ID back to the original load ID.
 Click Replace.
This process ensures that the load arrow displays for an assignment can be isolated for easier viewing.
How Do I Ensure My Model Assignments Persist?
When assigning material properties, boundary conditions or other model attributes, it is best to assign to geometric entities (points, curves or surfaces) instead of mesh entities (nodes, element edges or element faces). This is because StressCheck^{®}‘s elements are designed to inherit assignments to geometry through associativity. Automeshed elements are always geometrically associative, while handmeshed elements will be geometrically associative if the nodes are explicitly associated to the geometry by the user.
In this way, if a model is remeshed, and the elements are renumbed, any assignment to the geometry will persist and be automatically applied to the new mesh. Here’s an example of using geometric association to persist model assignments:
StressCheck Tutorial: Associative Hand Meshing for a Cylindrical Part
How Is the Moment Summation in the Case Definitions Table Computed?
The moment summation values for each point load case definition (Edit > Point Load Info…, select a case from the Current Case drop down) will include the summation of moment magnitudes for each moment vector (Mx, My, Mz) as well as moments of the forces (Fx, Fy, Fz) with respect to (0, 0, 0).
For example, instead of simply computing Mx = ΣMx_{0}, the summation value will report Mx = Σ(Mx_{0} + Fz × Y – Fy × Z), where the summation is performed for all the data points in the table, Mx_{0} is the value of the momentX for each entry in the table, Fy and Fz are the values of the Y and Zcomponents of the forces, and Y and Z are the coordinates of the points. Analogously expressions are used for the other moment components.
The below case definition shows that the sum of forces is Fx=0, Fy=16, Fz=0, and the sum of the moments is Mx=0, My=2, Mz=0:
Sample case definition table.
The force summation value for Fy: ΣFy = 1 + 2 + 3 + 4 + 3 + 2 + 1 = 16
The moment summation value for Mx(@ 0, 0 ,0): Σ(Mx_{0} + Fz × Y – Fy × Z) = (0 – 0*7.5 + 1*0.125) + (0 – 0*7.5 + 2*0.125) + (0 – 0*7.5 + 3*0.125) + (0 – 0*7.5 + 4*0.125) + (0 – 0*7.5 + 3*0.125) + (0 – 0*7.5 + 2*0.125) + (0 – 0*7.5 + 1*0.125) = 2
What Is The Applicability Of TLAPTraction?
When is TLAPTraction applicable to my model? How can the results be affected if I’m too close to my data of interest?
When using TLAPTraction, there must be sufficient distance between the area of load application and the region of interest such that the data in the region of interest is unaffected by this distance.
 This is because StressCheck^{®} will attempt to convert the grid information into a traction distribution, and as the distribution is dependent on the information provided by the user from the bulk data file, the distribution computed by TLAPTraction may not match the “exact” stress field at the section
 This is not unique to StressCheck^{®}, but to any GlobalLocal analysis in which information is “refit” between models
 St. Venant’s Principle should always be considered when transferring point loads to 3D elasticity
Here are some resources on TLAPTraction for GlobalLocal Analysis:
What is the Difference Between TLAPBearing Options IMO and Default?
As of StressCheck^{®} v10.4, users can select from two different TLAPBearing options: Default and IMO (Ignore Moments & Offsets).
The main difference between the two options is that the Default option will include traction distributions due to input moments as well as offset corrections (due to moving the TLAP to the center of the hole), whereas the IMO option will ignore these traction distributions.
TLAPBearing Default Option
This option ensures that all forces and moments are kept by generating a statically equivalent bearing traction distribution. On assignment the force and moment components are rotated and translated to a hole centered system:
TLAPBearing Default Option.
TLAPBearing IMO Option
This option removes input moments and moments generated from offsets (Ignore Moments and Offsets “IMO”). It will generate a TLAPBearing distribution that ignores the original point load moment components and the moment contribution caused by the offset distance between the location of the point load and the center of the hole. Note that this option will NOT generate a statically equivalent system.
TLAPBearing IMO Option.
More information on the TLAPBearing options:
What’s the Difference Between TLAPTraction Options Near Faces and All Faces?
In StressCheck^{®}, there are two TLAPTraction options for applying one or more Total Loads at a Point (TLAPs) on selected element faces or geometric surfaces to generate a statically equivalent set of tractions: Near Faces and All Faces.
For either TLAPTraction option, each selected TLAP (representing point force/moment vectors at global X, Y, Z locations) is converted into tractions distributed over the faces of the solid elements such that they are statically equivalent to the corresponding TLAP.
The contribution of each TLAP to element faces is controlled by the selected TLAPTraction option, and very different yet statically equivalent traction distributions can result. Note: regardless of TLAPTraction option, the tractions in the region of TLAPTraction application will be discontinuous as there is no requirement for continuity in stresses.
TLAPTraction All Faces Option
All selected TLAPs will be distributed to all selected element faces. From the Master Guide GlobalLocal Analysis section, the following details the algorithm used to produce the statically equivalent tractions when TLAPTraction All Faces option is selected:
In the case of TLAPTraction All Faces option, each selected element faces gets an areaproportionate “share” or contribution from the selected TLAPs. As a result, large corrective tractions can occur if a TLAP is far from the selected element face.
This option is typically recommended when the number of TLAPs is much less than the number of selected element faces, as it will ensure each element faces receives a proportionate contribution of each TLAP.
TLAPTraction Near Faces Option
Each TLAP applied to only the element face closest to that TLAP. That is, the algorithm detailed above will assume that the element face closest to each TLAP will get 100% of the “share” from that TLAP.
This option is typically recommended when the number of TLAPs is greater than or similar to the number of selected element faces.
More Information on TLAPTraction Options:
Why Am I Getting An Incorrect Load Check Summation For TLAPBearing?
If the load check (Check>Any Record, Check>Any Element or Check>All Elements in the Load tab) returns an incorrect summation for a TLAPBearing load, what are some causes and how to fix?
Exceedingly Tapered Hole
The most likely cause in this case is a hole that passes the taper tolerance (default of 0.05), but is not a constant enough height to allow for the proper representation of the bearing distribution. TLAPBearing and Bearing loads require a constant thickness hole for proper representation.
The load summation in this case may depend on the clocking of the bearing load with respect to the hole thickness. The best solution is to either a) split the surface by imprinting curves in such a way as to produce a constant height cylindrical surface, and use this surface for the TLAPBearing or b) define a formula bearing load.
Insufficient Mesh Refinement in Hole
Another possible cause is that the mesh is not refined enough to represent the sinusoidal stress distribution. Adding local refinement to the hole will usually fix this problem.
Bending Magnitudes >> InPlane Force Magnitudes
When applying a Bearing or TLAPBearing load, some formulae are automatically generated to define a normal traction distribution on a cylindrical hole. The normal traction distribution superimposes (1) normal traction terms representing inplane loads and (2) normal traction terms representing bending moments. The formulae that are generated include a conditional statement that checks the value of the superimposed traction components (1) + (2) that are distributed around the bore of the hole. When the value of the superposition is negative (indicating a compressive pressure load on the hole bore), the traction is applied to the hole bore. When it is positive (indicating a positive or tensile normal traction), then no traction is applied. This is because the Bearing load implemented in StressCheck^{®} is based on representing the contact conditions of a neatfit pin bearing against the bore of a hole.
In practice, the inplane force due to pin is often much larger in magnitude than the bending moment, and the conditional statement in the bearing traction formulae works as expected. Whether using the “Default” or “IMO” TLAPBearing option, the inplane force components (Fx and Fy) are unaffected.
However, when the applied moments are much larger than the inplane force magnitudes (and particularly when the loaded hole has a short height compared to its diameter), there is a possibility that the inplane force components can become skewed. In these cases, it is recommended to manually define a formulaic bearing load + bending traction distribution, or if the area of interest is of sufficient distance from the loaded hole, to apply the force/moments as a TLAPTraction.
For more details read the TLAP Bearing Technical Brief.
Bearing Load Autocorrect
As of the StressCheck^{®} v10.5 release, an autocorrect feature is now available to ensure the force/moment magnitudes are resolved. This feature overcomes the limitations of many of the above cases:
StressCheck Tutorial: Autocorrect for Bearing and TLAPBearing Loads
Why Do I Get An Error Message During Application Of TLAPBearing?
There are several possibilities why the TLAPBearing load cannot be applied:
 The wrong local coordinate system is chosen. Make sure that a local coordinate system in the center of the hole, and with the Zaxis parallel to the hole axis, is selected for the assignment.
 The hole is not circular enough, based on radial checks of nodes along the hole. Increase the circularity tolerance by introducing the parameter “_bearing_tol” and increasing the value of acceptable circularity. The default value for _bearing_tol is 0.001 and is defined in the MasterGuide on page 147.
 The hole is tapered too much (e.g. not a constant height). The bearing load always assumes a constant cylinder height for the representation for the proper sinusoidal pressure distribution. Increase the taper tolerance by introducing the parameter “_taper_tol” and increasing the value of the acceptable taper tolerance. The default value for _taper_tol is 0.05 and is defined in the MasterGuide on page 147.
 In some instances, the hole geometry can be modified to only apply the load over a cylindrical surface. This involves imprinting circles to split the hole surface.
The hole contains features that cause it to no longer be classified as cylindrical (notches, intersecting holes, pressure release, etc.).
Note: introducing the tolerance parameters is no guarantee to fix the problem, as the geometry may not be valid for proper application of TLAPBearing or Bearing loads. For more information, consult the Master Guide section on “TLAPBearing” and read the TLAP Bearing Technical Brief.
Point Extractions
Constraints
How Do I Ensure My Model Assignments Persist?
When assigning material properties, boundary conditions or other model attributes, it is best to assign to geometric entities (points, curves or surfaces) instead of mesh entities (nodes, element edges or element faces). This is because StressCheck^{®}‘s elements are designed to inherit assignments to geometry through associativity. Automeshed elements are always geometrically associative, while handmeshed elements will be geometrically associative if the nodes are explicitly associated to the geometry by the user.
In this way, if a model is remeshed, and the elements are renumbed, any assignment to the geometry will persist and be automatically applied to the new mesh. Here’s an example of using geometric association to persist model assignments:
StressCheck Tutorial: Associative Hand Meshing for a Cylindrical Part
How Do I Select Contact Constant For MultiBody Contact?
In general, the contact constant should be selected based on the moduli of elasticity of the materials in contact, in such a way that its value is between 0.1 and 1.0 times the value of the smallest modulus of elasticity (0.1Emin < Kc < Emin) when using US units (psi), and between 0.004 and 0.04 times the value of the smallest modulus of elasticity (0.004Emin < Kc < 0.04Emin) when using SI units (MPa). The units for the contact constant are [F/L/L^2].
For aluminum or steel, this is usually 110 million psi/in or so, assuming significant operational loads.
Helpful Hints and Tips: MultiBody Contact Overview and General Recommendations
Some other guidelines:
 In our experience, the contact constant should not exceed a couple orders of magnitude more than the applied loads, especially if it’s a loose fit fastened connection. If it’s too high, most of the energy will be absorbed by the springs and the loads won’t be transferred to the parts. If it’s too low, then there will be too much penetration and the zero gap condition won’t be reached.
 Penetration can be detected by plotting deformations at a 1:1 scale and checking to ensure the areas in contact show as little “crossover” as possible between parts.
 For example, if a 40 kip (4e4 lbf) load is to be transferred, the contact constant can initially be around 1e6 psi/in (2 orders of magnitude). If the load is changed, the contact constant should be updated relative to the load.
 Since the units of the contact constant include the area of the application, if the area is very small, and the applied load is very high, then the contact constant will need to be increased to reflect the higher pressure. This is analogous for large areas in contact.
It’s best to use a parameter for the contact constant, so it can be updated based on the applied load magnitude. The idea is that if the applied loads produce significant stress, the contact constant should be increased relative to the load. If the applied loads don’t produce significant stress, the contact constant should be lowered.
When using the Frictionless Augmented Lagrangian Method (StressCheck^{®}‘s contact algorithm), the contact constant is multiplied by the gap function to determine the change in contact pressures, which are then added to the previous iteration’s pressures, so it should not be a small value (relative to the loads/material). It would then take many iterations to stabilize the contact pressures.
From the blog article: https://www.simscale.com/blog/2016/09/contactmechanicsfriction/
Augmented Lagrange Method was formulated to bring the good of both penalty and Lagrange multiplier. It does not demonstrate an oscillatory behavior and has minimal interpenetration. The change in energy contribution for a small change in gap can be given as:
(previous pressure + contact coefficient * gap) x change in gap
When Can I Use Rigid Body or Node Constraints?
Constraining/fixing a point or node should ONLY be used when the model still has a free rigid body mode (i.e. translation or rotation). Equilibrium of the model under the applied loads must be considered before constraining/fixing a point or node.
No node constraints needed (symmetry on three orthogonal sides)
Fixed Zdirection node constraint needed (rigid body translation for Zaxis)
Rigid body constraints needed (selfequilibrated load)
Note: If constraints do not prevent all free rigid body motion (zerostrain translations and/or rotations) then the model is underconstrained and cannot be solved.
 In 2D, three rigid body motions must be prevented: two translations and one rotation about the globalZ axis.
 In 3D, six rigid body motions must be prevented: three translations and three rotations.
Note: contact constraints are simply normal, grounded distributed springs (in units of F/L/L^2) within the assigned contact zones. Therefore, a single multibody contact assignment in 3D controls up to 4 rigid body modes per part:
 If a flat contact zone: 3 controlled, 1 translation and 2 rotations.
 If a curved contact zone: 4 controlled, 2 translations and 2 rotations.
Free rigid body modes must be controlled by tangent springs.
SelfEquilibrated Models
If the model is selfequilibrated under the applied loads, then the Rigid Body Constraint method may be used (Constraint tab, Select > Node/Point > Rigid Body). No other constraints are required.
 In 2D, two nodes/points must be selected, and the rigid body constraints will be automatically computed.
 In 3D, three noncollinear nodes/points must be selected, and the rigid body constraints will be automatically computed.
Note: For the model to be selfequlibrated under the applied loads, the load check must return relatively small forces/moments (Load tab, Check > All Elements > Selection, enter the load ID and click Accept). The computed total forces/moments may not be exactly zero due to accumulation of small numerical errors.
NonSelfEquilibrated Models
If the model is NOT selfequilibrated under the applied loads, other constraints must exist that provide reactions for the applied loads (e.g. Symmetry Constraints or Spring Constraints). Such constraints may be used to provide a reaction and prevent rigid body motion in one direction or in all directions. For example, if the applied resultant forces are in equilibrium in the X direction but not the Y direction, then an additional constraint should only be used to react the Y direction force; one or more Nodal Constraints may be used to prevent any remaining rigid by motions (Constraint tab, Select > Node/Point > Node).
 In this case, check the direction(s) of the rigid body motion(s) to be cancelled, select an appropriate point/node, and click Accept.
 Cancellation depends on the node/point location and the selected direction relative to the applied loads.
 In 2D membrane and 3D solid elements, nodes only have translation components (Ux, Uy and Uz). Rotations must be cancelled with care by selecting the appropriate node and direction.
 The Rotation components in the Nodal Constraint method only are for Beam elements.
Note: in 2D/3D elasticity, nodes and points should NOT react load! They should only be used to prevent rigid body motion, thus setting a reference for the elasticity solution. Weak normal or tangent springs may also be used if a node or point location is not appropriate for cancellation of rigid body motion.
Material Definition
How Do I Expand the Material Property Database?
The material property database (accessed by clicking the “Browse…” button in the Material tab, Define subtab) may be manually expanded by modifying the material.dat file found in the StressCheck^{®} installation directory (i.e. C:\Program Files\ESRD\StressCheck^{®}
PE 10\UI\material.dat). Note: administrative privileges may be required to update this file.
Material Property Format
A description of the format of the material properties listed in the material.dat file is as follows:
Record 1: Name, class, type, law, units
Record 2: Linear material properties/coefficients
Record 3: Nonlinear material properties/coefficients
Six nonlinear coefficients: v, E1, E2, A1, A2, A3. Where v is the Poisson’s ratio, E1 is the modulus of elasticity and the other coefficients depend on the stressstrain law:
Record 4: Comment (optional)
Example: Isotropic Material “NewAluminum” with RambergOsgood StressStrain Law
NewAluminum, ALUMINUM, ISOTROPIC, RambergOsgood, US <Record 1
0.107e8, 0.395, 0.128e4, 0.101. 0.262e3 < Record 2
0.395, 0.107e8, 0.60e5, 18, 0.0, 0.0 < Record 3
Userdefined material < Record 4
In the above example, the elastic modulus is 10.7e6 psi, Poisson’s ratio 0.395, S70E is 60 ksi, and the exponent “n” is 18. Watch below for how the above example is added to the material database:
How Do I Increase the Nonlinear Material StressStrain Plot Resolution?
The stressstrain curve can be plotted for nonlinear materials in the Material tab, Assign subtab by clicking Plot:
By default, 24 points are displayed for the stressstrain curve fitting, which may not be sufficient for some nonlinear material curves.
You can increase the points generated in the stressstrain curve by defining two underscore parameters:
 _NL_COUNT for the number of desired points
 _NL_MAX to set the upper xlimit of the plot
For example, set _NL_COUNT to 100 and _NL_MAX to 0.1, and the curve will be plotted using 100 points in the strain range from 0 to 0.1. However, note that these parameters have no effect on the solution itself.
Note: This technique also increases the # points displayed in the property vs temperature material curve for TemperatureDependent materials.
Geometry Modeling
How Do I Move My Imported CAD to A Different Location?
In many cases, CAD geometry may be imported in an undesired location/orientation, and the geometry needs to be moved to a new location/orientation for your StressCheck^{®} analysis. In this case, there is a relatively simple workflow for doing so:
 Import the CAD geometry (File > Import, ensure the units are consistent)
 Create an “original reference” system using locations on the CAD geometry via 3Pt. Plane method:
 Geometry tab > Create > System > 3Pt. Plane
 Click on 3 points representing the current part location, system automatically created at the first point selection
 Create a “new reference” system at the desired location/orientation via Locate method:
 Geometry tab > Create > System > Locate
 Enter the information for the system location/orientation, and click Accept
 Copy the CAD geometry from the “original reference” system to the “new reference” system using the Orphan method:
 Geometry tab > Create > BodyCopy > Orphan
 Select the CAD geometry and the “original reference” system, hold CTRL+SHIFT and pick the “new reference” system, and click Accept
 A copy of the CAD Geometry should now appear at the “new reference” system
 Remove associativity of the “original reference” system from the “original” CAD geometry
 Geometry tab > Select > System
 Select the “original reference” system and click Disassoc.
 Delete the “original” CAD geometry
 Geometry tab > Select > Any Body
 Select the “original” CAD geometry and click Delete
Now, only the “copy” CAD Geometry remains, in the desired location/orientation for the analysis.
For more information on this process:
What CAD Formats And Versions Are Supported in StressCheck Professional?
StressCheck^{®} Professional can natively import Parasolid files of versions ranging 10.0 to 26.0.151. Other CAD formats require licensed translators.
The following CAD formats and versions are supported in StressCheck^{®} Professional’s 3D Interop R25 translators:
Formats 
File Formats 
Product Structure 
Graphical 
Geometry 
Semantic PMI 
3DXML 
.3dxml 
v4.3 
v4.3 


ACIS 
.sat, .sab, .asat, .asab 
R1 – R24 
R1 – R24 (Generated from Geometry) 
R1 – R24 
N/A 
CATIA V4 
.model, .exp, .session 
4.1.9 – 4.2.4 
4.1.9 – 4.2.4 (Generated from Geometry) 
4.1.9 – 4.2.4 
N/A 
CATIA V5 
.CATPart, .CATProduct, .CGR 
R8 – R24 (V5–6R2014) 
R8 – R24 (V5–6R2014) 
R8 – R24 (V5–6R2014) 
R8 – R24 (V5–6R2014) 
CATIA V6 
.CATPart, .CATProduct, .CGR 
V6R2014x 
V6R2014x 
V6R2014x 
V6R2014x 
DXF/DWG 
.dxf, .dwg 
2.5 – 2014 
2.5 – 2014 (Generated from Geometry) 
2.5 – 2014 
N/A 
IGES 
.igs, .iges 
Up to 5.3 
Up to 5.3 (Generated from Geometry) 
Up to 5.3 
N/A 
Inventor 
.ipt (V6 – V2015)
.iam (V11 – V2015) 
V11 – 2015 
V7 – 2015
V6 (Generated from Geometry) 
V6 – V2015 
N/A 
NX 
.prt 
11 – NX 9 
NX 6 – NX 9
11 – NX 5 (Generated from Geometry) 
11 – NX 9 
11 – NX 9 
NX Direct 
.prt 
NX 1 – NX 9 
NX 6 – NX 9
NX 1 – NX 5 (Generated from Geometry) 
NX 1 – NX 9 
NX 1 – NX 9 
Parasolid 
.x_t, .xmt_txt, .x_b, .xmt_bin 
10.0 – 26.0.151 
10.0 – 26.0.151 (Generated from Geometry) 
10.0 – 26.0.151 
N/A 
Parasolid Direct 
.x_t, .xmt_txt, .x_b, .xmt_bin 
10.0 – 26.01.211 
10.0 – 26.01.211 (Generated from Geometry) 
10.0 – 26.01.211 
N/A 
Pro/E / Creo 
.prt, .prt.*, .asm, .asm.* 
16 – Creo 2.0 
WF3 – Creo 2.0
16 – WF2 (Generated from Geometry) 
16 – Creo 2.0 
16 – Creo 2.0 
Solid Edge 
.par, .asm, .psm 
V18 – ST6 
ST– ST6
V18 – V20 (Generated from Geometry) 
V18 – ST6 
N/A 
Solid Edge Direct 
.par, .asm, .psm 
V18 – ST6 
ST– ST6
V18 – V20 (Generated from Geometry) 
V18 – ST6 
N/A 
SolidWorks 
.sldprt, .sldasm 
98 – 2014 
98 – 2014 
98 – 2014 
N/A 
SolidWorks Direct 
.sldprt, .sldasm 
2003 – 2014 
2003 – 2014 
2003 – 2014 
N/A 
STEP 
.stp, .step 
203, 214 
203, 214 (Generated from Geometry) 
203, 214 
N/A 
STL 
.stl 
N/A 
All 
N/A 
N/A 
VDAFS 
.vda 
1.0 – 2.0 
N/A 
1.0 – 2.0 
N/A 
XCGM 
R2012 – R2014x 
R2012 – R2014x 
R2012 – R2014x 
R2012 – R2014x 

Note: CATPart files created in V5R1 that have been opened and resaved in a later version of CATIA V5 are not supported for 3D InterOp Graphical and 3D InterOp CGM.
Note: CATIA V6 users should export their database objects as CATIA V5 CATParts, CATProducts, XCGM, or as 3D XML, which can then be imported into applications using InterOp.
Note: NX .prt extensions must be changed to .ug to avoid conflict with ProE files.
What Does StressCheck Professional Use As Its CAD Kernel?
StressCheck^{®} uses Parasolid as its native CAD kernel. The native format is .x_t, or the Parasolid Transmit format. StressCheck^{®} integrates multiple CAD translator options to convert from IGES, CATIA, Pro/E and others to Parasolid format. These modules are sold separately.
Why Do I Have Duplicate Geometry or Mesh Objects?
When using the “Create” action in the Geometry or Mesh tab, there are multiple ways to create new objects:
 Clicking “Accept” on the Model Input window
 Hitting Enter on the keyboard
 Leftclicking on the Model Viewing window
It’s possible more than one of these actions was invoked during an object creation. Note: leftclick of the mouse in the Model Viewing window will always perform the current action in the “Action” combo (e.g. Create, Select, Edit).
Avoid LeftClicking in Model Viewing Window After Object Creation
As a best practice, if focus is required in the Model Viewing window, and a new object creation is NOT desired, it is recommended to rightclick in the Model Viewing window to establish the window’s focus such that the model can be rotated, zoomed, etc. This can help with reducing duplication of geometry and mesh objects.
Removing Duplicates
If you suspect there are duplicate geometry and/or mesh objects, changing the combos to “Select > Any Object” and clicking on the “Index” subtab within the Geometry or Mesh tabs will display a list of the objects in the model:
If there are duplicates, you may simply select the object(s) from the Index list and click the “Delete” button, or simply click the “DeLast” button if the last object created was a duplicate.
Note: if nodes are duplicated, clicking the Mesh tab’s “Merge” button will attempt to merge duplicated nodes.
Why Do I Receive An Error Message About Associativity When Creating or Deleting Geometry?
The error message likely occurred because of an Explicit Associativity in the model. This is a dependency created by the user in which an object definition references another object or objects in the model.
These messages typically occur when attempting to perform a modeling operation such as a BooleanUnion/Subtraction, ClipBack/Front, Blend Edge, Imprint, Spin or Thicken.
What Caused the Explicity Associativity?
An Explicit Associativity will exist if one or more objects (e.g. points, systems, nodes) are created by an associative method (e.g. Offset, Intersection, Projection) via a userdefined reference to the target geometry. Examples are creating a node by the Offset method on the geometry’s curve, or creating a system by 3Pt. Plane method using points at the geometry’s intersections (vertices).
Types of Associativity
There are two types of Associativity: Implict and Explicit. They are described in the following:
Implicit Associativity – The result of a boolean or blend operation is a collection of trimmed surfaces, trimmed curves and points. The trimmed curves represent the intersections between neighboring surfaces. The points represent the intersections between trimmed curves.
 Since these relationships are automatically created by the modeling operations, their relationship (associativity) is implicit and the user can make changes to the solid body without regard to the resulting changes in the implicit associative relationships.
Explicit Associativity – It is sometimes necessary to create new explicit associative relationships in a model.
 For example, attaching a point or node to an existing solid body (surface or curve) as an offset, a midoffset, projection or intersection.
 This explicit associativity will prevent the future application of a Boolean or blend operation to a solid body.
 As a consequence, explicit associative relationships should not be added to a body unless you are certain that no future boolean or blend operations will be performed on the body.
 Explicit associative relationships between points, systems and lines and the model may be removed with “Disassoc.”
Benefits of Associativity
Associativity is extremely valuable because it allows for fully parametric modeling, object inheritance (i.e. surface to element face communication) and highly curved elements (mapping).
The importance of Implicit and Explicity Associativity, and how to determine object associativities and even disassociate points and systems from geometries, is explained in the following tutorial:
StressCheck^{®} Tutorial: Object Associativity
GlobalLocal Analysis
How Do I Move My Imported CAD to A Different Location?
In many cases, CAD geometry may be imported in an undesired location/orientation, and the geometry needs to be moved to a new location/orientation for your StressCheck^{®} analysis. In this case, there is a relatively simple workflow for doing so:
 Import the CAD geometry (File > Import, ensure the units are consistent)
 Create an “original reference” system using locations on the CAD geometry via 3Pt. Plane method:
 Geometry tab > Create > System > 3Pt. Plane
 Click on 3 points representing the current part location, system automatically created at the first point selection
 Create a “new reference” system at the desired location/orientation via Locate method:
 Geometry tab > Create > System > Locate
 Enter the information for the system location/orientation, and click Accept
 Copy the CAD geometry from the “original reference” system to the “new reference” system using the Orphan method:
 Geometry tab > Create > BodyCopy > Orphan
 Select the CAD geometry and the “original reference” system, hold CTRL+SHIFT and pick the “new reference” system, and click Accept
 A copy of the CAD Geometry should now appear at the “new reference” system
 Remove associativity of the “original reference” system from the “original” CAD geometry
 Geometry tab > Select > System
 Select the “original reference” system and click Disassoc.
 Delete the “original” CAD geometry
 Geometry tab > Select > Any Body
 Select the “original” CAD geometry and click Delete
Now, only the “copy” CAD Geometry remains, in the desired location/orientation for the analysis.
For more information on this process:
How Is the Moment Summation in the Case Definitions Table Computed?
The moment summation values for each point load case definition (Edit > Point Load Info…, select a case from the Current Case drop down) will include the summation of moment magnitudes for each moment vector (Mx, My, Mz) as well as moments of the forces (Fx, Fy, Fz) with respect to (0, 0, 0).
For example, instead of simply computing Mx = ΣMx_{0}, the summation value will report Mx = Σ(Mx_{0} + Fz × Y – Fy × Z), where the summation is performed for all the data points in the table, Mx_{0} is the value of the momentX for each entry in the table, Fy and Fz are the values of the Y and Zcomponents of the forces, and Y and Z are the coordinates of the points. Analogously expressions are used for the other moment components.
The below case definition shows that the sum of forces is Fx=0, Fy=16, Fz=0, and the sum of the moments is Mx=0, My=2, Mz=0:
Sample case definition table.
The force summation value for Fy: ΣFy = 1 + 2 + 3 + 4 + 3 + 2 + 1 = 16
The moment summation value for Mx(@ 0, 0 ,0): Σ(Mx_{0} + Fz × Y – Fy × Z) = (0 – 0*7.5 + 1*0.125) + (0 – 0*7.5 + 2*0.125) + (0 – 0*7.5 + 3*0.125) + (0 – 0*7.5 + 4*0.125) + (0 – 0*7.5 + 3*0.125) + (0 – 0*7.5 + 2*0.125) + (0 – 0*7.5 + 1*0.125) = 2
What Is The Applicability Of TLAPTraction?
When is TLAPTraction applicable to my model? How can the results be affected if I’m too close to my data of interest?
When using TLAPTraction, there must be sufficient distance between the area of load application and the region of interest such that the data in the region of interest is unaffected by this distance.
 This is because StressCheck^{®} will attempt to convert the grid information into a traction distribution, and as the distribution is dependent on the information provided by the user from the bulk data file, the distribution computed by TLAPTraction may not match the “exact” stress field at the section
 This is not unique to StressCheck^{®}, but to any GlobalLocal analysis in which information is “refit” between models
 St. Venant’s Principle should always be considered when transferring point loads to 3D elasticity
Here are some resources on TLAPTraction for GlobalLocal Analysis:
What is the Difference Between TLAPBearing Options IMO and Default?
As of StressCheck^{®} v10.4, users can select from two different TLAPBearing options: Default and IMO (Ignore Moments & Offsets).
The main difference between the two options is that the Default option will include traction distributions due to input moments as well as offset corrections (due to moving the TLAP to the center of the hole), whereas the IMO option will ignore these traction distributions.
TLAPBearing Default Option
This option ensures that all forces and moments are kept by generating a statically equivalent bearing traction distribution. On assignment the force and moment components are rotated and translated to a hole centered system:
TLAPBearing Default Option.
TLAPBearing IMO Option
This option removes input moments and moments generated from offsets (Ignore Moments and Offsets “IMO”). It will generate a TLAPBearing distribution that ignores the original point load moment components and the moment contribution caused by the offset distance between the location of the point load and the center of the hole. Note that this option will NOT generate a statically equivalent system.
TLAPBearing IMO Option.
More information on the TLAPBearing options:
What’s the Difference Between TLAPTraction Options Near Faces and All Faces?
In StressCheck^{®}, there are two TLAPTraction options for applying one or more Total Loads at a Point (TLAPs) on selected element faces or geometric surfaces to generate a statically equivalent set of tractions: Near Faces and All Faces.
For either TLAPTraction option, each selected TLAP (representing point force/moment vectors at global X, Y, Z locations) is converted into tractions distributed over the faces of the solid elements such that they are statically equivalent to the corresponding TLAP.
The contribution of each TLAP to element faces is controlled by the selected TLAPTraction option, and very different yet statically equivalent traction distributions can result. Note: regardless of TLAPTraction option, the tractions in the region of TLAPTraction application will be discontinuous as there is no requirement for continuity in stresses.
TLAPTraction All Faces Option
All selected TLAPs will be distributed to all selected element faces. From the Master Guide GlobalLocal Analysis section, the following details the algorithm used to produce the statically equivalent tractions when TLAPTraction All Faces option is selected:
In the case of TLAPTraction All Faces option, each selected element faces gets an areaproportionate “share” or contribution from the selected TLAPs. As a result, large corrective tractions can occur if a TLAP is far from the selected element face.
This option is typically recommended when the number of TLAPs is much less than the number of selected element faces, as it will ensure each element faces receives a proportionate contribution of each TLAP.
TLAPTraction Near Faces Option
Each TLAP applied to only the element face closest to that TLAP. That is, the algorithm detailed above will assume that the element face closest to each TLAP will get 100% of the “share” from that TLAP.
This option is typically recommended when the number of TLAPs is greater than or similar to the number of selected element faces.
More Information on TLAPTraction Options:
Why Am I Getting An Incorrect Load Check Summation For TLAPBearing?
If the load check (Check>Any Record, Check>Any Element or Check>All Elements in the Load tab) returns an incorrect summation for a TLAPBearing load, what are some causes and how to fix?
Exceedingly Tapered Hole
The most likely cause in this case is a hole that passes the taper tolerance (default of 0.05), but is not a constant enough height to allow for the proper representation of the bearing distribution. TLAPBearing and Bearing loads require a constant thickness hole for proper representation.
The load summation in this case may depend on the clocking of the bearing load with respect to the hole thickness. The best solution is to either a) split the surface by imprinting curves in such a way as to produce a constant height cylindrical surface, and use this surface for the TLAPBearing or b) define a formula bearing load.
Insufficient Mesh Refinement in Hole
Another possible cause is that the mesh is not refined enough to represent the sinusoidal stress distribution. Adding local refinement to the hole will usually fix this problem.
Bending Magnitudes >> InPlane Force Magnitudes
When applying a Bearing or TLAPBearing load, some formulae are automatically generated to define a normal traction distribution on a cylindrical hole. The normal traction distribution superimposes (1) normal traction terms representing inplane loads and (2) normal traction terms representing bending moments. The formulae that are generated include a conditional statement that checks the value of the superimposed traction components (1) + (2) that are distributed around the bore of the hole. When the value of the superposition is negative (indicating a compressive pressure load on the hole bore), the traction is applied to the hole bore. When it is positive (indicating a positive or tensile normal traction), then no traction is applied. This is because the Bearing load implemented in StressCheck^{®} is based on representing the contact conditions of a neatfit pin bearing against the bore of a hole.
In practice, the inplane force due to pin is often much larger in magnitude than the bending moment, and the conditional statement in the bearing traction formulae works as expected. Whether using the “Default” or “IMO” TLAPBearing option, the inplane force components (Fx and Fy) are unaffected.
However, when the applied moments are much larger than the inplane force magnitudes (and particularly when the loaded hole has a short height compared to its diameter), there is a possibility that the inplane force components can become skewed. In these cases, it is recommended to manually define a formulaic bearing load + bending traction distribution, or if the area of interest is of sufficient distance from the loaded hole, to apply the force/moments as a TLAPTraction.
For more details read the TLAP Bearing Technical Brief.
Bearing Load Autocorrect
As of the StressCheck^{®} v10.5 release, an autocorrect feature is now available to ensure the force/moment magnitudes are resolved. This feature overcomes the limitations of many of the above cases:
StressCheck Tutorial: Autocorrect for Bearing and TLAPBearing Loads
Why Are There Stress “Spikes” In My TLAPTraction Application Surface?
Model courtesy of Altair
Why are there stress “spikes” in my results where I applied TLAPTraction? Do I need to be concerned?
TLAP Traction always introduces some error into the model, due to the traction fitting process of distributing the TLAPs proportionately (by area) onto the element faces to represent a statically equivalent system.
 There is no requirement for continuity of the traction distribution across element faces.
 Higher global error for TLAPTraction as the strain energy of the application surface is influenced by discontinuous traction distributions.
In some cases the combination of a relatively significant distance between the TLAP and element face centroids, and a significant number of element faces pointing to a single TLAP, attribute to large “jumps” or “spikes” in tractions within a TLAP application surface.
 The force coupling indicated by Equation 17 on page 715 of the Master Guide can significantly contribute to the “jumps” in stress across element boundaries at the TLAP application surface.
 When the TLAP is away from an element face centroid, StressCheck^{®} must incorporate corrective force couples into the face moment in order to satisfy static equivalence.
 The farther away the face centroid from the TLAP, the more correction is needed.
For these reasons, in TLAPTraction analyses typically the global error is not the best measurement of the quality of the data of interest, as TLAPTraction may introduce discontinuities in the traction fittings (i.e. traction “jumps” between element faces).
 Users may see a “checkerboard” pattern of stress in the regions of TLAPTraction.
 This is very similar to a fracture mechanics analyses, in that the global error does not always reflect the quality of the data of interest at the crack (stress intensity factor).
Even if the global error is relatively high, as long as the TLAP Traction application surface is not in your area of interest, the data of interest can be analyzed and fringe plots can be meaningful.
 For best results, adjust the maximum scale of the fringe plot to better illustrate the stresses outside the TLAP Traction application surface.
Another important thing to note is you can also plot the error indicator (Function: Error) to view the errorassociated with the TLAP elements.
 See page 151/1151 of the Master Guide for definition.
The GlobalLocal section of the ESRD Resource Library covers this in more detail:
Please read pages 714717/1151 in the Master Guide for a more comprehensive description of how TLAP Traction is applied and how StressCheck^{®} enforces the requirements.
Why Do I Get An Error Message During Application Of TLAPBearing?
There are several possibilities why the TLAPBearing load cannot be applied:
 The wrong local coordinate system is chosen. Make sure that a local coordinate system in the center of the hole, and with the Zaxis parallel to the hole axis, is selected for the assignment.
 The hole is not circular enough, based on radial checks of nodes along the hole. Increase the circularity tolerance by introducing the parameter “_bearing_tol” and increasing the value of acceptable circularity. The default value for _bearing_tol is 0.001 and is defined in the MasterGuide on page 147.
 The hole is tapered too much (e.g. not a constant height). The bearing load always assumes a constant cylinder height for the representation for the proper sinusoidal pressure distribution. Increase the taper tolerance by introducing the parameter “_taper_tol” and increasing the value of the acceptable taper tolerance. The default value for _taper_tol is 0.05 and is defined in the MasterGuide on page 147.
 In some instances, the hole geometry can be modified to only apply the load over a cylindrical surface. This involves imprinting circles to split the hole surface.
The hole contains features that cause it to no longer be classified as cylindrical (notches, intersecting holes, pressure release, etc.).
Note: introducing the tolerance parameters is no guarantee to fix the problem, as the geometry may not be valid for proper application of TLAPBearing or Bearing loads. For more information, consult the Master Guide section on “TLAPBearing” and read the TLAP Bearing Technical Brief.
Fracture Extractions
Fracture Mechanics
Plots
What Can Affect Fringe Plot Rendering Rates?
There are a number of variables that may affect fringe plot rendering rates, especially if the cutting planes option is enabled. Though, models with large numbers of elements and/or solution degrees of freedom (DOF) will cause the rendering to perform slower in general.
Fringe plot rendering time can be drastically altered depending on user inputs
Here are a few suggestions that might help reduce the fringe plot rendering time when using the Plot tab with the Contour: Fringe option enabled:
 Make sure the wetted faces display button is enabled so that the program is not rendering the plot on internal faces.
 Plot using Select > Any Face and marquee select the subset of element faces you are interested in.
 This will be much faster than plotting on all elements.
 Make sure you are not simultaneously plotting the deformed shape (i.e. set Shape: Undef. before clicking Plot).
 Reduce the # midsides to 5 (3D) or 10 (2D) and then increment the midsides until the fringe plot contours are unchanged.
 Oftentimes, the difference between 10 and 20 midsides is negligible in terms of displayed stresses, while it is drastic in terms of rendering time.
More information on plotting:
What Is the Interpretation of the Buckling Load Factor in an Eigenvalue Buckling Analysis?
In eigenvalue buckling analysis, the goal is to compute the buckling load factor (BLF) and the corresponding buckling mode shape. The BLF is the multiplier of the applied loads to the component to produce the first buckling mode. Note: checking the values of strains/stresses from the eigenvalue buckling solution is not meaningful because the buckling mode shape is known only to an arbitrary constant.
Therefore the linear solution multiplied by the BLF is the reference for when buckling will initiate. That means the stresses corresponding to the linear solution multiplied by the BLF are the stresses that will be developing at the time instability occurs (paired with the corresponding mode shape determined by the buckling analysis). Note: a linear analysis of the model is computed during an eigenvalue buckling analysis, and is available for results processing once the eigenvalue buckling solution is available.
For More Information:
Why Are There Stress “Spikes” In My TLAPTraction Application Surface?
Model courtesy of Altair
Why are there stress “spikes” in my results where I applied TLAPTraction? Do I need to be concerned?
TLAP Traction always introduces some error into the model, due to the traction fitting process of distributing the TLAPs proportionately (by area) onto the element faces to represent a statically equivalent system.
 There is no requirement for continuity of the traction distribution across element faces.
 Higher global error for TLAPTraction as the strain energy of the application surface is influenced by discontinuous traction distributions.
In some cases the combination of a relatively significant distance between the TLAP and element face centroids, and a significant number of element faces pointing to a single TLAP, attribute to large “jumps” or “spikes” in tractions within a TLAP application surface.
 The force coupling indicated by Equation 17 on page 715 of the Master Guide can significantly contribute to the “jumps” in stress across element boundaries at the TLAP application surface.
 When the TLAP is away from an element face centroid, StressCheck^{®} must incorporate corrective force couples into the face moment in order to satisfy static equivalence.
 The farther away the face centroid from the TLAP, the more correction is needed.
For these reasons, in TLAPTraction analyses typically the global error is not the best measurement of the quality of the data of interest, as TLAPTraction may introduce discontinuities in the traction fittings (i.e. traction “jumps” between element faces).
 Users may see a “checkerboard” pattern of stress in the regions of TLAPTraction.
 This is very similar to a fracture mechanics analyses, in that the global error does not always reflect the quality of the data of interest at the crack (stress intensity factor).
Even if the global error is relatively high, as long as the TLAP Traction application surface is not in your area of interest, the data of interest can be analyzed and fringe plots can be meaningful.
 For best results, adjust the maximum scale of the fringe plot to better illustrate the stresses outside the TLAP Traction application surface.
Another important thing to note is you can also plot the error indicator (Function: Error) to view the errorassociated with the TLAP elements.
 See page 151/1151 of the Master Guide for definition.
The GlobalLocal section of the ESRD Resource Library covers this in more detail:
Please read pages 714717/1151 in the Master Guide for a more comprehensive description of how TLAP Traction is applied and how StressCheck^{®} enforces the requirements.
Linear Elasticity Solver
What is a PExtension?
The term “pextension” refers to the process of systematically and hierarchically increasing the polynomial order of the element shape functions on a fixed mesh, thereby increasing simulation degrees of freedom (DOF) and representing more complex displacement fields for the mesh. Conversely, traditional FEA implementations require successive mesh refinements on elements of fixed polynomials, or hextensions, to demonstrate convergence.
While both pextensions and hextensions are capable of converging to the exact solution of a mathematical problem solved by the finite element method, pextensions will achieve convergence with less computational burden. Via the Wikipedia article on pFEM:
The theoretical foundations of the pversion were established in a paper published Babuška, Szabó and Katz in 1981^{[2]} where it was shown that for a large class of problems the asymptotic rate of convergence of the pversion in energy norm is at least twice that of the hversion, assuming that quasiuniform meshes are used. Additional computational results and evidence of faster convergence of the pversion were presented by Babuška and Szabó in 1982.^{[3]}
StressCheck^{®} is capable of automatically performing pextensions during the linear solution process, as shown in the below Linear solver tab:
Pextension from p=2 to 8
Note: it is not always necessary to solve to the maximum polynomial level, p=8. Convergence may be assessed after three (3) hierarchically increasing polynomial levels to determine if continuing the pextension is necessary to achieve the desired solution quality.
This feature makes it very easy to verify convergence of any data of interest, as all runs of increasing DOF are stored for live dynamic extractions of results:
Key Quality Check #4: Peak Stress Convergence (courtesy StressCheck^{®} Professional)
For more information and examples of pextensions in practice:
Cold Working
When Is Incremental Plasticity Theory (IPT) a Viable Option?
In order to determine the applicability and viability of representing loading/unloading events via Incremental plasticity theory (IPT), it is important to conduct presolution checks before performing potentially timeconsuming nonlinear analyses.
Note: these guidelines and recommendations to determine if IPT is an option for the current model inputs are a complement to the technical documentation on StressCheck^{®}‘s implementation of IPT found here:
Checks once linear solution is available
After performing a pextension of at least three linear runs (e.g. p=2 to 4 or p=6 to 8), we should explore the model’s linear solution to assess the following characteristics:
Convergence and relative error in the energy norm
 Reported post solution in the SOLVE! window.
 In 2D, ideally less than 2%.
 In 3D, ideally less than 5%.
 The above error bounds assume the stresses in the linear solution are smooth on the whole domain.
 If there are intentional model stress singularities (such as assigned point loads, TLAPTractions or cracks) the energy norm error may be higher. Note: any errors due to singularities will only be magnified and propagated in nonlinear analysis.
Plot deformed shape at scale 1:1
 If the deformation is excessive (even if the strains are small) the small deformation assumption for the applicability of the ITP may not be satisfied.
 A rule of thumb is that the deformed configuration should be small enough that is practically undistinguishable from the undeformed configuration.
 For a quantitative check, a geometric nonlinear solution (Nonlinear Solver tab, Type: NLGen, linearelastic materials assigned) can be run. This will account for changes in the geometric configuration due to loading, and will solve for equilibrium in the deformed configuration.
 Ideally the difference between the NLGen and linear solutions in terms of the quantities of interest should be very small. Note: when normal tractions are employed (follower loads), the difference between the two solutions can be significant.
StressCheck Tutorial: Directional vs Follower Loads in Geometric Nonlinear Analysis
Plot/extract von Mises stress and strains (including max value convergence checks)
Additional checks before/after running a material nonlinear solution
 Selection and appropriate material input definitions for the Nonlinear Material type (Elastoplas., Bilinear, 5parameter or RambergOsgood).
 In order for the solution to be meaningful, an appropriate yield stress for the material must be specified before running any material nonlinear analysis. Note: nonlinear solutions cannot be scaled like linear solutions.
 Material selection has an impact on how plasticity evolves (particularly for unloading) and how stable is the solution (i.e., there may be a portion of the material that could have unbounded strains causing the solver to fail for large loads).
 This is particularly an issue for elasticperfectlyplastic materials, Bilinear materials with relatively small tangent moduli (Et), and RambergOsgood materials with large “n” values.
 Make sure the constraints will always account for rigid body modes, otherwise the solver will fail.
 Important consideration when nonlinear springs are used or when solving a general nonlinear analysis (NLGen) with selfequilibrated loads.
 Consider subsequent loads/unloads and the end goal(s) of the computation (e.g. displacements, stresses, strains, etc.).
 The initial mesh/polynomial degree of elements may not be appropriate to capture gradients caused from loads that appear on subsequent evens/steps.
 This is particularly the case when interested in residual stresses resulting from loading/unloading events represented with ITP, assuming the checks herein passed.
 Time permitting, compare the material nonlinear analysis stress/strains/displacements with a general nonlinear analysis (which uses DTP + geometric nonlinear).
StressCheck Tutorial: Linear vs Nonlinear Results for a Single Lap Joint
Checks before/after running an ITP solution
 Check to ensure loading is not displacementcontrolled (within ITP these are only allowed for the initial event and cannot longer be changed).
 Spring displacements may be applied on spring coefficient boundary conditions instead.
 Convergence in the ITP solution is expected to be monotonic and quadratic (e.g., 100%, 10%, 1%, 0.1% and so on).
 If convergence oscillates or the error takes too long to be reduced it may be an indication that something is wrong with the solutions (e.g., very large load increment, unstable boundary conditions involving nonlinear springs).
 Evaluate solutions continuity (contour plot), particularly when a message indicating the fitting error (3D only) exceeds 2% is issued.
 In addition to contour plotting, line extractions can also be used to check for “jumps” in the stresses across elements.
 Additional refinement may be necessary to reduce fitting errors for those elements.
Case Study
StressCheck Tutorial: Checking ITP Viability for Solving Nonlinear Events
Other Examples of ITP solutions
Residual Stresses
When Is Incremental Plasticity Theory (IPT) a Viable Option?
In order to determine the applicability and viability of representing loading/unloading events via Incremental plasticity theory (IPT), it is important to conduct presolution checks before performing potentially timeconsuming nonlinear analyses.
Note: these guidelines and recommendations to determine if IPT is an option for the current model inputs are a complement to the technical documentation on StressCheck^{®}‘s implementation of IPT found here:
Checks once linear solution is available
After performing a pextension of at least three linear runs (e.g. p=2 to 4 or p=6 to 8), we should explore the model’s linear solution to assess the following characteristics:
Convergence and relative error in the energy norm
 Reported post solution in the SOLVE! window.
 In 2D, ideally less than 2%.
 In 3D, ideally less than 5%.
 The above error bounds assume the stresses in the linear solution are smooth on the whole domain.
 If there are intentional model stress singularities (such as assigned point loads, TLAPTractions or cracks) the energy norm error may be higher. Note: any errors due to singularities will only be magnified and propagated in nonlinear analysis.
Plot deformed shape at scale 1:1
 If the deformation is excessive (even if the strains are small) the small deformation assumption for the applicability of the ITP may not be satisfied.
 A rule of thumb is that the deformed configuration should be small enough that is practically undistinguishable from the undeformed configuration.
 For a quantitative check, a geometric nonlinear solution (Nonlinear Solver tab, Type: NLGen, linearelastic materials assigned) can be run. This will account for changes in the geometric configuration due to loading, and will solve for equilibrium in the deformed configuration.
 Ideally the difference between the NLGen and linear solutions in terms of the quantities of interest should be very small. Note: when normal tractions are employed (follower loads), the difference between the two solutions can be significant.
StressCheck Tutorial: Directional vs Follower Loads in Geometric Nonlinear Analysis
Plot/extract von Mises stress and strains (including max value convergence checks)
Additional checks before/after running a material nonlinear solution
 Selection and appropriate material input definitions for the Nonlinear Material type (Elastoplas., Bilinear, 5parameter or RambergOsgood).
 In order for the solution to be meaningful, an appropriate yield stress for the material must be specified before running any material nonlinear analysis. Note: nonlinear solutions cannot be scaled like linear solutions.
 Material selection has an impact on how plasticity evolves (particularly for unloading) and how stable is the solution (i.e., there may be a portion of the material that could have unbounded strains causing the solver to fail for large loads).
 This is particularly an issue for elasticperfectlyplastic materials, Bilinear materials with relatively small tangent moduli (Et), and RambergOsgood materials with large “n” values.
 Make sure the constraints will always account for rigid body modes, otherwise the solver will fail.
 Important consideration when nonlinear springs are used or when solving a general nonlinear analysis (NLGen) with selfequilibrated loads.
 Consider subsequent loads/unloads and the end goal(s) of the computation (e.g. displacements, stresses, strains, etc.).
 The initial mesh/polynomial degree of elements may not be appropriate to capture gradients caused from loads that appear on subsequent evens/steps.
 This is particularly the case when interested in residual stresses resulting from loading/unloading events represented with ITP, assuming the checks herein passed.
 Time permitting, compare the material nonlinear analysis stress/strains/displacements with a general nonlinear analysis (which uses DTP + geometric nonlinear).
StressCheck Tutorial: Linear vs Nonlinear Results for a Single Lap Joint
Checks before/after running an ITP solution
 Check to ensure loading is not displacementcontrolled (within ITP these are only allowed for the initial event and cannot longer be changed).
 Spring displacements may be applied on spring coefficient boundary conditions instead.
 Convergence in the ITP solution is expected to be monotonic and quadratic (e.g., 100%, 10%, 1%, 0.1% and so on).
 If convergence oscillates or the error takes too long to be reduced it may be an indication that something is wrong with the solutions (e.g., very large load increment, unstable boundary conditions involving nonlinear springs).
 Evaluate solutions continuity (contour plot), particularly when a message indicating the fitting error (3D only) exceeds 2% is issued.
 In addition to contour plotting, line extractions can also be used to check for “jumps” in the stresses across elements.
 Additional refinement may be necessary to reduce fitting errors for those elements.
Case Study
StressCheck Tutorial: Checking ITP Viability for Solving Nonlinear Events
Other Examples of ITP solutions