OS-HM-T: 3000 Rubber Ring Crush and Slide using Self-Contact

This tutorial demonstrates self-contact used in this nonlinear large displacement implicit analysis with hyperelastic material and contacts using OptiStruct.

Before you begin, copy the file(s) used in this tutorial to your working directory.


Figure 1. Finite Element Model Setup
The following exercises are included:
  • Import the model into HyperMesh
  • Set up the hyperelastic material and self-contact
  • Set up the nonlinear analysis
  • View the results in HyperView

Launch HyperWorks

  1. Launch Altair HyperWorks.
  2. In the New Session window, select HyperMesh.
  3. For Profile, select OptiStruct.
  4. Click Create New Session.

Import the Model

  1. On the menu bar, select File > Import > Solver Deck.
  2. Navigate to and select rubber_ring_input.fem.
  3. Click Open.
  4. In the Solver Import Options dialog, accept the default settings and click Import.

Set Up the Model

Define the Hyperelastic Material

  1. In the Model Browser, right-click and select Create > Material.
  2. For Name, enter hyper_elastic.
  3. Click Color and select a color from the color palette.
  4. For Card Image, select MATHE from the drop-down menu.
  5. For MODEL, select ABOYCE from the drop-down menu.
  6. For NU (Poisson's ratio), enter 0.495.
  7. For RHO, enter 1.11e-09.
  8. For TEXP, enter 0.000165.
  9. Use the provided TABLES1 curves to define the stress strain curves for tension-compression, equi-biaxial tension, and pure shear.
    1. For TAB1, select Unspecified > Curves and select uniaxial in the dialog.
    2. For TAB2, select Unspecified > Curves and select biaxial in the dialog..
    3. For TAB4, select Unspecified > Curves and select planar_shear in the dialog..
  10. Click Close.

Create Properties

In this step, properties are defined and the component collector for the hyperelastic material is updated.

  1. In the Model Browser, right-click and select Create > Property.
  2. For Name, enter hyper_elastic.
  3. For Card Image, select PSOLID from the drop-down menu.
  4. For Material, click Unspecified > Material.
  5. In the dialog, select hyper_elastic from the list of materials and click OK.
  6. In the Component Browser, click on the Wheel component.
  7. For Property, select Unspecified > Property.
  8. In the dialog, select hyper_elastic from the list of properties and click OK.
    The component Wheel has been updated with a property of the same name and is the “Current Component." The material hyper_elastic is referenced by this component.

Create the PCONT Property

In this step, the properties for both self-contact and surface to surface contacts are defined.

  1. In the Model Browser, right-click and select Create > Property.
  2. For Name, enter Contact.
  3. For Card Image, select PCONT from the drop-down menu.
  4. Select the GPAD_OPT check box and for GPAD, select NONE.
  5. For STIFF, select HARD from the drop-down menu.
  6. For MU1, enter 0.3.
  7. In the Model Browser, right-click and select Create > Property.
  8. For Name, enter self_contact.
  9. For Card Image, select PCONT from the drop-down menu.
  10. Select the GPAD_OPT check box and for GPAD, select NONE.
  11. For STIFF, select AUTO from the drop-down menu.
  12. For MU1, enter 0.3.
  13. Click Close.

Create Set Segments

In this step, set segments are defined which are later used to define the contact groups.

  1. In the Model Browser, right-click and select Create > Set Segment.
  2. For Name, enter Top.
  3. For Elements, select 0 Elements > Elements.
  4. In the dialog, select Top from the list of components.
    The shell faces are created on the Top component.
  5. Select the FACE_FORMAT check box.
  6. Click Close.
  7. Similarly, create a set segment for the Base component.
    1. In the Model Browser, right-click and select Create > Set Segment.
    2. For Name, enter Base.
    3. For Elements, select the Base component.
    4. Select the FACE_FORMAT check box.
  8. Create a contact set segment for the inner surface of the wheel.
    1. In the Model Browser, right-click and select Create > Set Segment.
    2. For Name, enter Rubber_inner.
    3. For Elements, select 0 Elements > Faces.
    4. Select the inner surface of the Wheel component and click .


      Figure 2. Shell Faces Created on Inner Surface of Wheel
    5. Select the FACE_FORMAT check box.
    6. Click Close.
  9. Create a contact set segment for the outer surface of the wheel.
    1. In the Model Browser, right-click and select Create > Set Segment.
    2. For Name, enter Rubber_outer.
    3. For Elements, select 0 Elements > Faces.
    4. Select the outer surface of the Wheel component and click .
    5. Select the FACE_FORMAT check box.
    6. Click Close.

Create Contact Groups

  1. In the Model Browser, right-click and select Create > Group.
  2. For Name, enter Top_rubber.
  3. For Card Image, select Contact.
  4. For Property Option, select Property Id.
  5. For PID, select Unspecified > Property and select Contact from the list of properties.
  6. For Secondary Entity IDs, select Unspecified > Set and select the Rubber_outer set segment.
  7. For Main Entity IDs, select Unspecified > Set and select the Top set segment.
  8. For MORIENT (contact orientation), select NORM.
  9. For DISCRET, select N2S (node to surface).
  10. For TRACK, select CONSLI.
  11. Click Close.
  12. Create another contact group.
    1. For Name, enter Bottom_rubber.
    2. For Card Image, select Contact.
    3. For Property Option, select Property Id.
    4. For PID, select Unspecified > Property and select Contact from the list of properties.
    5. For Secondary Entity IDs, select Unspecified > Set and select the Rubber_outer set segment.
    6. For Main Entity IDs, select Unspecified > Set and select the Base set segment.
    7. Set all other parameters to match the Top_rubber contact group.
    8. Click Close.
  13. Create a third contact group to define self-contact for the inner surface of the ring.
    1. For Name, enter self_contact.
    2. For Card Image, select Contact.
    3. For Property Option, select Property Id.
    4. For PID, select Unspecified > Property and select self_contact from the list of properties.
    5. For Secondary Entity IDs, select Unspecified > Set and select the Rubber_inner set segment.
    6. For MORIENT (contact orientation), select NORM.
    7. For DISCRET, select S2S (surface to surface).
    8. For TRACK, select CONSLI.
    9. Click Close.

Apply Loads and Boundary Conditions

Create the SPC for the First Load Step

  1. In the Model Browser, right-click and select Create > Load Collector.
    A default load collector displays in the Entity Editor.
  2. For Name, enter spc_top1.
  3. On the menu bar, select the Analyze ribbon.
  4. On the ribbon, select BCs > Constraints.


    Figure 3.
  5. On the Constraints panel, select node 2269, corresponding to the Top component.
  6. Assign boundary conditions for the first load step (compression).
    1. Select the check boxes for dof1, dof3, dof4, dof5, and dof6.
    2. Click create.
    3. Clear the previous check boxes and select dof2.
    4. In the dof2 text box, enter -6.44.
      This assigns a displacement magnitude of 6.44 in the negative y-direction.
    5. Click create.
    6. Click return.

Create the SPC for the Second Load Step

  1. In the Model Browser, right-click and select Create > Load Collector.
  2. For Name, enter spc_top2.
  3. On the menu bar, select the Analyze ribbon.
  4. On the ribbon, select BCs > Constraints.


    Figure 4.
  5. On the Constraints panel, select node 2269, corresponding to the Top component.
  6. Assign boundary conditions for the second load step (compression with sliding).
    1. Select the check boxes dof3, dof4, and dof5 and click create.
    2. Clear the previous check boxes and select dof1, dof2, and dof6.
    3. For dof1, enter -13.000.
    4. For dof2, enter -6.44.
    5. For dof6, enter -10.44.
    6. Click create.
    7. Click return.

Create SPCs for the Base Wheel

  1. In the Model Browser, right-click and select Create > Load Collector.
  2. For Name, enter SPC_base_wheel.
  3. In the Component Browser, right-click on the Wheel component and select Isolate.
  4. On the menu bar, select the Analyze ribbon.
  5. On the ribbon, select BCs > Constraints.


    Figure 5.
  6. On the Constraints panel, select nodes > displayed.
  7. Select the dof3 check box and click create.
  8. Click return.
  9. Create a second load collector.
    1. In the Model Browser, right-click and select Create > Load Collector.
    2. For Name, enter SPC_base_wheel_2.
    3. Open the Constraints panel.
    4. In the Model Browser, select the line of nodes on the front face.


      Figure 6. Apply Constraints to Wheel and Base
    5. Select the dof1 check box and click create.
    6. Select node 2266 on the Base component.
    7. Select all dof check boxes and click create.
    8. Click return.

Create the SPC for the Base Component

  1. In the Model Browser, right-click and select Create > Load Collector.
  2. For Name, enter SPC_base.
  3. On the menu bar, select the Analyze ribbon.
  4. On the ribbon, select BCs > Constraints.


    Figure 7.
  5. On the Constraints panel, select node 2266, corresponding to the Base component.
  6. Select all dof check boxes and click create.
  7. Click return.

Create SPCADD Load Collectors

  1. In the Model Browser, right-click and select Create > Load Collector.
  2. For Name, enter SPCADD1.
  3. For SPCADD_Num_Set, enter 3.
  4. For Loadcol list, select 0 Loadcols > Load Collectors and select spc_top1, SPC_base_wheel_2, and SPC_base_wheel from the list of load collectors.
  5. Click OK, then Close.
  6. Create a second SPCADD load collector.
    1. In the Model Browser, right-click and select Create > Load Collector.
    2. For Name, enter SPCADD2.
    3. For SPCADD_Num_Set, enter 3.
    4. For Loadcol list, select 0 Loadcols > Load Collectors and select spc_top2, SPC_base_wheel, and SPC_base from the list of load collectors.
    5. Click OK, then Close.

Define Nonlinear Analysis Parameters

  1. In the Model Browser, right-click and select Create > Load Step Inputs.
  2. For Name, enter NLPARM.
  3. For Config type, select Nonlinear Parameters from the drop-down menu.
    For Type, NLPARM is auto-selected.
  4. For NINC, enter 2000.
  5. For MAXITER, enter 25.
  6. For CONV, select UPW from the drop-down menu.
  7. For EPSU, enter 0.001.
  8. FOR EPSP, enter 0.001.
  9. For EPSW, enter 1e-11.
  10. Click Close.

Define NLADAPT Load Step Inputs

  1. In the Model Browser, right-click and select Create > Load Step Inputs.
  2. For Name, enter NLADAPT1.
  3. For Config type, select Time step Parameters from the drop-down menu.
    For Type, NLADAPT is auto-selected.
  4. Select the DTMAX check box and for VALUE, enter 0.1.
  5. Select the DTMIN check box and for VALUE, enter 1e-06.
  6. Click Close.
  7. Create a second NLADAPT load step input.
    1. In the Model Browser, right-click and select Create > Load Step Inputs.
    2. For Name, enter NLADAPT2.
    3. Select the DTMAX check box and for VALUE, enter 0.025.
    4. Select the DTMIN check box and for VALUE, enter 1e-06.
  8. Click Close.

Define the CNTSTB Load Collector

  1. In the Model Browser, click Create > Load Collector.
  2. For Name, enter CNTSTB.
  3. For Card Image, select CNTSTB from the drop-down menu.
  4. For S1, enter 1e-05.
  5. For SCALE, enter 1.
  6. For TFRACT, enter 0.1.

Define NLOUT Load Step Inputs

  1. In the Model Browser, click Create > Load Step Inputs.
    A default load step input editor window opens.
  2. For Name, enter NLOUT.
  3. For Config Type, select Output Parameters from the drop-down menu.
    By default, for Type NLOUT is selected.
  4. For Nonlinear Incremental Output, select NINT from the drop-down menu.
  5. For VALUE, enter 500.
  6. Select the SVNONCNV check box and for VALUE, select YES.

Define Output Control Parameters

  1. Select the Analyze ribbon.
  2. On the drop-down menu for the Run tool group, select Control Cards.
  3. On the Control Cards panel, select GLOBAL_OUTPUT_REQUEST.
  4. Select CONTF, DISPLACEMENT, ELFORCE, and STRESS.
  5. For all selected output parameters, for FORMAT(1), select H3D.
  6. Click return.

Activate Param

  1. On the Control Cards panel, select PARAM.
  2. Select LGDISP, NLMON, HASHASSM, and UNSYMSLV.
  3. For HASHASSM, select YES.
  4. For LGDISP_V1, select 1.
  5. For VALUE of NLMON, select DISP.
  6. For VALUE of UNSYMSLV, select YES.
  7. Click return.

Activate Global Case Control

  1. On the Control Cards panel, select GLOBAL_CASE_CONTROL.
  2. For control cards, select CNTNLSUB.
  3. Set OPTION to YES.
  4. Click return.

Create Subcases

  1. In the Model Browser, right-click and select Create > Load Step.
    A default load collector displays in the Entity Editor.
  2. For Name, enter Ring_Down.
  3. For Type, select Non-linear static.
  4. Specify load collectors and load step inputs by clicking Unspecified > Loadcol or Unspecified > Load step inputs and selecting in the dialog.
    1. For SPC, select SPCADD1 and click OK.
    2. For NLPARM, select NLPARM and click OK.
    3. For NLADAPT, select NLADAPT1 and click OK.
    4. For NLOUT, select NLOUT and click OK.
    5. For CNTSTB, select CNTSTB and click OK.
    6. Click Close.
  5. In the Model Browser, right-click and select Create > Load Step to create a second load step.
  6. For Name, enter Ring_Down2.
  7. For Type, select Non-linear static.
  8. Specify load collectors and load step inputs by clicking Unspecified > Loadcol or Unspecified > Load step inputs and selecting in the dialog.
    1. For SPC, select SPCADD2 and click OK.
    2. For NLPARM, select NLPARM and click OK.
    3. For NLADAPT, select NLADAPT2 and click OK.
    4. For NLOUT, select NLOUT and click OK.
    5. For CNTSTB, select CNTSTB and click OK.
    6. Click Close.

Save the Database

  1. Click File > Save.
  2. For File Name, enter rubber_ring.hm.
  3. Click Save.

Run the Analysis

  1. Select the Analyze ribbon.
  2. In the Run tool group, select Run OptiStruct Solver.
  3. Click save as.
  4. In the Save As dialog, specify location to write the OptiStruct model file and enter rubber_ring for filename.
    For OptiStruct input decks, .fem is the recommended extension.
  5. Click Save.
    The input file field displays the filename and location specified in the Save As dialog.
  6. Set the export options toggle to all.
  7. Set the run options toggle to analysis.
  8. Set the memory options toggle to memory default.
  9. Click OptiStruct to run the analysis.
    If the job was successful, new files are available in the directory where you chose to write the files. OptiStruct also reports error messages if any exist. The file rubber_ring.out can be opened in a text editor to find details regarding any errors. This file is written to the same directory as the .fem file.

View Results

  1. In the Solver window, select Results to open the results in HyperView.
  2. HyperView, select Contour .
  3. For Results Type, in the first drop-down menu, select Element Stresses (2D & 3D) (t).
  4. For Results Type, in the second drop-down menu, select vonMises.
  5. Click Apply.


    Figure 8. Stress Results for First Load Step


    Figure 9. Stress Results for Second Load Step
  6. For Results Type, in the first drop-down menu, select Displacement.
  7. For Results Type, in the second drop-down menu, select Mag.
  8. Click Apply.


    Figure 10. Displacement Results for First Load Step


    Figure 11. Displacement Results for Second Load Step