*HEADING
3-point seatbelt model
*parameter
 time_analysis    = 0.0215
 mass_point                      = 1.e-5
 mass_rot                        = 1.e-5
*Preprint, model=yes, history=yes
**
*NODE, NSET=AllNodes
*System
** 0.0, 0.0, -50.0
*Node
*System
*Node
*Element, type=C3D8R, elset=Cushion
*Solid section, elset=Cushion, material=Crushable_Foam, controls=SolidControls
*System
*NSET, NSET=CUSHION_BOTTOM
*BOUNDARY
CUSHION_BOTTOM, 1,3
**
**----------------------------------------------------------------------
*ELEMENT,TYPE=S3RS,ELSET=door_side
*ELEMENT,TYPE=S3RS,ELSET=elastic_transition_in_rigid_upper_torso
*ELEMENT,TYPE=M3D3,ELSET=belt_elements2
*ELEMENT,TYPE=SFM3D3,ELSET=upper_torso
*ELEMENT,TYPE=SFM3D3,ELSET=lower_torso
*ELEMENT,TYPE=S4RS,ELSET=door_side
*ELEMENT,TYPE=S4RS,ELSET=elastic_transition_in_rigid_upper_torso
*ELEMENT,TYPE=M3D4R,ELSET=belt_elements1
*ELEMENT,TYPE=SFM3D4R,ELSET=rigid_sternum
*ELEMENT,TYPE=SFM3D4R,ELSET=upper_torso
*ELEMENT,TYPE=SFM3D4R,ELSET=lower_torso
**------------------------------------------------
**
**   connectors to model sternum compliance
**
*ELEMENT, TYPE=CONN3D2, ELSET=sternum_spring_1
*CONNECTOR SECTION, ELSET=sternum_spring_1, BEHAVIOR=sternum_spring_behavior
CARTESIAN, CARDAN
sternum_spring_1-Orientation,
**
*ELEMENT, TYPE=CONN3D2, ELSET=sternum_spring_2
*CONNECTOR SECTION, ELSET=sternum_spring_2, BEHAVIOR=sternum_spring_behavior
CARTESIAN, CARDAN
sternum_spring_2-Orientation,
**
*ELEMENT, TYPE=CONN3D2, ELSET=sternum_spring_3
*CONNECTOR SECTION, ELSET=sternum_spring_3, BEHAVIOR=sternum_spring_behavior
CARTESIAN, CARDAN
sternum_spring_3-Orientation,
**
*ELEMENT, TYPE=CONN3D2, ELSET=sternum_spring_4
*CONNECTOR SECTION, ELSET=sternum_spring_4, BEHAVIOR=sternum_spring_behavior
CARTESIAN, CARDAN
sternum_spring_4-Orientation,
**
*CONNECTOR BEHAVIOR, NAME=sternum_spring_behavior
*CONNECTOR ELASTICITY, COMPONENT=1, NONLINEAR
*CONNECTOR DAMPING, COMPONENT=1, NONLINEAR
*CONNECTOR ELASTICITY, COMPONENT=2, NONLINEAR
*CONNECTOR DAMPING, COMPONENT=2, NONLINEAR
*CONNECTOR ELASTICITY, COMPONENT=3, NONLINEAR
*CONNECTOR DAMPING, COMPONENT=3, NONLINEAR
*CONNECTOR ELASTICITY, COMPONENT=4, NONLINEAR
*CONNECTOR ELASTICITY, COMPONENT=5, NONLINEAR
*CONNECTOR ELASTICITY, COMPONENT=6, NONLINEAR
**
*ORIENTATION, NAME=sternum_spring_1-Orientation
**
*ORIENTATION, NAME=sternum_spring_2-Orientation
**
*ORIENTATION, NAME=sternum_spring_3-Orientation
**
*ORIENTATION, NAME=sternum_spring_4-Orientation
**
**------------------------------------------------
*ELEMENT, TYPE=MASS, ELSET=Mass-8301106
*MASS, ELSET=Mass-8301106
 5.0000e-005,
**
**------------------------------------------------
*MEMBRANE SECTION, ELSET=belt_elements1, MATERIAL=ElasticPlastic-belt, CONTROLS=MembraneControls
 1.2000e+000,     3
**
*MEMBRANE SECTION, ELSET=belt_elements2, MATERIAL=ElasticPlastic-belt, CONTROLS=MembraneControls
 2.4000e+000,     5
**
*SHELL SECTION, ELSET=door_side, MATERIAL=Steel, CONTROLS=ShellControls
 3.0000e+000,     5
**
*SHELL SECTION, ELSET=elastic_transition_in_rigid_upper_torso, MATERIAL=Elastic, CONTROLS=ShellControls
 1.0000e+000,     3
**
*SURFACE SECTION, ELSET=upper_torso, DENSITY= 50.0000e-009
**
*SURFACE SECTION, ELSET=rigid_sternum, DENSITY= 50.0000e-009
**
*SURFACE SECTION, ELSET=lower_torso, DENSITY= 50.0000e-009
**
**
**
*SECTION CONTROLS, NAME=ShellControls, HOURGLASS=STIFFNESS
**
*SECTION CONTROLS, NAME=SolidControls, HOURGLASS=ENHANCED, DISTORTION CONTROL=NO
**
*SECTION CONTROLS, NAME=MembraneControls, HOURGLASS=RELAX STIFFNESS
**
**
*NSET, NSET=DoorSide-Nset
*SURFACE, TYPE=NODE, NAME=DoorSide-Surface
DoorSide-Nset,
*COUPLING, CONSTRAINT NAME=Attach-WaistSeatbelt-to-Floor, REF NODE=8301398, SURFACE=DoorSide-Surface
*KINEMATIC
1,3
*NSET, NSET=FLOOR_NODES, GENERATE
*NSET, NSET=FLOOR_NODES
*BOUNDARY
FLOOR_NODES, 1,6
**
**
*MATERIAL, NAME=FOAM
*ELASTIC
3.146, 0.0
*DENSITY
 4.24E-11,
**
*Material, name=Crushable_Foam, SRATE FACTOR=0.5
*DENSITY
 0.832E-10
*ELASTIC
  25.0000,   0.3000
*CRUSHABLE FOAM, HARDENING=ISOTROPIC
*CRUSHABLE FOAM HARDENING
*RATE DEPENDENT, TYPE=POWER LAW
*MATERIAL, NAME=Null-80084
*DENSITY
 1.000000e-015,
*ELASTIC
 1.000000e-006,  3.000000e-001
**
*MATERIAL, NAME=ElasticPlastic-belt
*DENSITY
 1.050000e-009,
*ELASTIC
 1.700000e+004,  3.000000e-001
*PLASTIC, RATE=0.0000e+000
 1.0500e+001,  0.0000e+000
 3.8500e+001,  8.9000e-003
 5.5200e+001,  1.4800e-002
 7.2900e+001,  2.5600e-002
 9.4700e+001,  4.2100e-002
 1.1500e+002,  5.7300e-002
 1.4000e+002,  7.0400e-002
 1.6000e+002,  8.0000e-002
**
*MATERIAL, NAME=Steel
*DENSITY
 7.820000e-009,
*ELASTIC
 207.0E3, 0.3
*PLASTIC
 700.0,  0.0
**
*MATERIAL, NAME=Elastic
*DENSITY
 1.200000e-009,
*ELASTIC
 1.000000e+003,  3.000000e-001
**
**--------------- Make the lower & upper torso rigid ---------
** Note: the lower & upper toso are made with SFM elements so
**       they have to be constrained
**
*Elset, elset=Rigid_Torso
lower_torso, upper_torso,
*Nset, nset=Rigid_uppertorso_TieNset
*Node, nset=Rigid_uppertorso_RefNode
*Node, nset=Rigid_lowertorso_RefNode
*Rigid body, Elset=upper_torso, Tie Nset=Rigid_uppertorso_TieNset, Ref Node=9999993
*Rigid body, Elset=lower_torso, Ref Node=9999994
**------------------------------------------------
** No behavior connector to monitor the relative motion between the
** lower and upper torso
*Element, type=CONN3D2, Elset=Connector_uppertorso_lowertorso
*Connector section, elset=Connector_uppertorso_lowertorso
Cardan, Cartesian
Global,
*Orientation, name=Global
*Orientation, name=Hinge_about_GlobalX
*Orientation, name=LocalZ_Aligned_GlobalX
**------------------------------------------------
**** Add 50.0 Kg mass to the torso
***Element, type=Mass, Elset=Rigid_Torso_Mass
** 9999991, 9999999
***Mass, elset=Rigid_Torso_Mass
** 0.05,
***Element, type=RotaryI, Elset=Rigid_Torso_Rotary
** 9999992, 9999999
***Rotary, Elset=Rigid_Torso_Rotary
** 0.01e6, 0.01e6, 0.002e6
**
*Node, nset=Rigid_Sternum_RefNode
*Rigid body, Elset=rigid_sternum, Ref Node=9999998, Position=Center of Mass
**
**--------------- Initial conditions -----------------------
*Elset, elset=moving_elements
elastic_transition_in_rigid_upper_torso,
*Nset, nset=moving_nodes, elset=moving_elements
*Nset, nset=moving_nodes
Rigid_uppertorso_RefNode,
Rigid_lowertorso_RefNode,
Rigid_Sternum_Refnode,
*Initial conditions, type=velocity
 moving_nodes, 1, -20000.0
**
**------------------------------------------------
*Surface interaction, name=Fric
*Friction
 0.3,
**
**
**----------------------------------------------------------------------
**                Seatbelt webbing segment definitions                **
**----------------------------------------------------------------------
**
*Element, Type=CONN3D2, Elset=Bpillar_Retra_Trimexit
*Connector section, Elset=Bpillar_Retra_Trimexit, Behavior=seatbelt_behavior
 slipring,
1.050E-9, 0.3193969
**
*Element, Type=CONN3D2, Elset=Bpillar_Trimexit_Slipring
*Connector section, Elset=Bpillar_Trimexit_Slipring, Behavior=seatbelt_behavior
 slipring,
 1.050E-9, 1.718132
**
*Element, Type=CONN3D2, Elset=Bpillar_Slipring_Chest
*Connector section, Elset=Bpillar_Slipring_Chest, Behavior=seatbelt_behavior
 slipring,
 1.050E-9, 0,
*Element, Type=CONN3D2, Elset=Chest_Waist_Slipring
*Connector section, Elset=Chest_Waist_Slipring, Behavior=seatbelt_behavior
 slipring,
 1.050E-9, 2.9846286
 **
*Element, type=CONN3D2, Elset=Waist_Slipring_Lap
*Connector section, Elset=Waist_Slipring_Lap, Behavior=seatbelt_behavior
 slipring,
 1.050E-9, 0,
**
*Element, Type=CONN3D2, Elset=Lap_Bot_Floor
*Connector section, Elset=Lap_Bot_Floor, Behavior=seatbelt_behavior
 slipring,
 1.050E-9, 0,
**
*elset,elset=seatbelt
*nset, nset=seatbelt, elset=seatbelt
**
**--------------------
**
*connector behavior, name=seatbelt_behavior
*connector  elasticity, nonlinear, comp=1
**additional data points to avoid runnig out of curve
*connector damping,comp=1
*connector friction, predefined
*friction
0.1,
**--------------------
*element,type=mass,elset=mass
**
**--------------------
**
** fix the flow at end nodes of  slipring connectors
*Boundary
**attachment with chest membranes at shoulder level
  8300247,10,10
**attachment with chest membranes at waist level
  8300248,10,10
**attachment with lap membranes (next to the buckle)
  8300253,10,10
**attachment with lap membranes (next to car bottom attachment point)
  8300254,10,10
**attachment to car bottom point
  8301398,10,10
**
*Boundary
8300237, 1,3
8300243, 1,3
**
**----------------------------------------------------------------------
***                        B-pillar retractor                        ***
**----------------------------------------------------------------------
**
*parameter
 retra_lock_belt_spooled_out = 10.0
 retra_lock_belt_vel         = 542.0
 retractor_preload            =-10.0
**
*node
**retractor_B_pillar additional nodes
**10001,  1.911771e+003,   -7.337330e+002,    2.367407e+002
**
**------------------
**
*element, type=conn3d2,elset=retractor_spool_effect
*connector section, elset=retractor_spool_effect,behavior=retractor_spool_effect_beh
hinge,
Hinge_about_GlobalX,
*connector behavior, name=retractor_spool_effect_beh
*connector elasticity, comp=4
*connector plasticity,comp=4
*connector hardening
**
**------------------
**
*element, type=conn3d2,elset=retractor_lock
*connector section, elset=retractor_lock,behavior=retractor_lock_beh
hinge,
Hinge_about_GlobalX,
*connector behavior, name=retractor_lock_beh
*connector elasticity, comp=4
*connector damping, comp=4
*connector lock, component=4
,<retra_lock_belt_spooled_out>,,,,<retra_lock_belt_vel>
**
**------------------
**
*element, type=conn3d2,elset=retractor_preload
*connector section, elset=retractor_preload, behavior=retractor_preload_beh
hinge,
Hinge_about_GlobalX,
*connector behavior, name=retractor_preload_beh
*connector damping,component=4
**
**------------------
**
*element,type=conn3d2,elset=retractor_flow_converter
*connector section,elset=retractor_flow_converter
retractor,
localZ_aligned_GlobalX,
-1.,
**
**-------------------
*elset,elset=retractor
*nset,nset=retractor,elset=retractor
**
*ELEMENT, TYPE=RotaryI, ELSET=rotary
*ELEMENT, TYPE=mass, ELSET=mass
**
*Boundary
10111, 1,6
**
**----------------------------------------------------------------------
**                           PRETENSIONER                             **
**----------------------------------------------------------------------
**
*Parameter
 stiff_pretensioner              = 460000.0
 pretensioner_pull_velocity      = 10000.0
 pretensioner_time_start         = time_analysis*0.03
 pretensioner_time_full          = pretensioner_time_start + 0.008
 pretensioner_time_end           = pretensioner_time_full  + 0.008
 pretensioner_time_end_preload   = time_analysis*0.1
 mass_pretens_cable              = 1.050E-09
*amplitude, name=pretensioner_amp,definition=smooth
0,0, <pretensioner_time_start>,0.0, <pretensioner_time_full>,1.0,  <pretensioner_time_end>,0.0,
*amplitude,name=preload_amp,definition=smooth
0,0,<pretensioner_time_end_preload>,1.0, 1.0,1.0
**------------------
*node
**10010, 1.498978e+003,   -1.419992e+002,    5.412967e+001
**------------------
*element, type=conn3d2,elset=pretensioner_spool
*connector section, elset=pretensioner_spool
hinge,
Hinge_about_GlobalX,
**------------------
** equate the flow dof on node 8300357  with the rotational dof in
** the first additional preten related node 10010 (dof 4)
*element,type=conn3d2,elset=pretensioner_flow_converter
*connector section,elset=pretensioner_flow_converter
retractor,
localZ_aligned_globalX,
-1.,
**--------------------
*Element, Type=CONN3D2, Elset=pretensioner_cable
*connector section,elset=pretensioner_cable, behavior=pretensioner_cable_beh
 slipring,
 <mass_pretens_cable>, 0, 1.00, 1.00
*connector behavior, name=pretensioner_cable_beh
*connector elasticity,comp=1
 <stiff_pretensioner>,
*connector friction, predefined
*friction
0.1,
**-------------------
*ELEMENT, TYPE=RotaryI, ELSET=rotary
**14001, 10010
*rotary inertia, ELSET=rotary
<mass_rot>,<mass_rot>,<mass_rot>
*ELEMENT, TYPE=mass, ELSET=mass
*MASS, ELSET=MASS
<mass_point>,
**-------------------
** additional node required to separate the material flows in
** the seatbelt itself and the pretensioner
*MPC
 PIN, 8300351, 8300251
**
**-------------------
*Boundary
**fix the flow at end node of the "cable" slipring connector (next to waist buckle)
  8300351,10,10
**
*Boundary
10110, 1,6
**--------------------
*elset,elset=pretensioner
*nset, nset=pretensioner, elset=pretensioner
**
**
**
**----------------------------------------------------------------------
*nset,nset=seatbelt_related
 seatbelt,pretensioner,retractor,Rigid_uppertorso_RefNode,Rigid_lowertorso_RefNode
*parameter
 time_fwd         = time_analysis*0.4
 time_bwd         = time_analysis*0.6
*amplitude,name=up_down_bc,definition=smooth
 0,1,  <time_fwd>,1,  <time_bwd>,-1,  <time_analysis>,-1
**--------------------
**
*SURFACE, NAME=UPPER_TORSO_SURFACE
elastic_transition_in_rigid_upper_torso,
upper_torso,
rigid_sternum,
*SURFACE, NAME=LOWER_TORSO_SURFACE
lower_torso,
**
************************************************************************
*** QA SETS
**
*elset,elset=QA_TEST_seatbelt
*elset,elset=QA_TEST_pretensioner
*elset,elset=QA_TEST_retractor
**
*filter, type=butterworth, name=sae60
**----------------------------------------------------------------------
**
*NSET, NSET=QA_TEST
SEATBELT, SEATBELT_RELATED,
MOVING_NODES
***,CAR_GROUND
*STEP,nlgeom=yes
*DYNAMIC, EXPLICIT, ELEMENT BY ELEMENT
,<time_analysis>
**
*VARIABLE MASS SCALING, TYPE=BELOW MIN, DT=1.0E-6, FREQUENCY=5
**
*DLOAD
, GRAV, 9810.0, 0.0, 0.0, -1.0
**---------------------------
**
** General contact
**
*CONTACT
*CONTACT INCLUSIONS, ALL ELEMENT BASED
*Surface property assignment, property=feature edge criteria
 , PERIMETER EDGES
UPPER_TORSO_SURFACE, ALL EDGES
LOWER_TORSO_SURFACE, ALL EDGES
*Contact property assignment
 , , Fric
**
**---------------------------
**
** pretensioner pull-in
**
*connector motion,amplitude=pretensioner_amp,type=velocity
pretensioner_spool,4,<pretensioner_pull_velocity>
**
** retractor preload
**
*connector load,amplitude=preload_amp
retractor_preload,4, <retractor_preload>
**
**---------------------------
**
** Output requests
**
*OUTPUT, FIELD, NUMBER INTERVAL=100
*NODE OUTPUT
U, V
*ELEMENT OUTPUT
S, LE
*CONTACT OUTPUT
CFORCE,
**
*OUTPUT,HISTORY, TIME INTERVAL=1.e-5
*NODE OUTPUT,NSET=seatbelt_related
U,V,RF,COORD
*ELEMENT OUTPUT,ELSET=seatbelt
CTF,CEF,CU,CCU,CRF,CP,CV,CVF, CASU, CNF, CSF
*ELEMENT OUTPUT,ELSET=pretensioner
CTF,CEF,CU,CCU,CRF,CP,CV,CVF, CASU, CNF, CSF
*ELEMENT OUTPUT,ELSET=retractor
CTF,CEF,CU,CCU,CRF,CP,CV,CVF,CUP,CUPEQ,CUE,CCF
************************************************
*OUTPUT, HISTORY, time interval=0.0215e-2
*ENERGY OUTPUT, var=ALL
***
*OUTPUT, FIELD, NUMBER INTERVAL=4
*NODE OUTPUT, NSET=QA_TEST
UT,
*END STEP