*SetTorsionSpring() - asymmetric torsion spring pair with user subroutine

Sets the properties of an asymmetric torsion spring pair with a user subroutine.

Syntax

*SetTorsionSpring(spr_name, , SFORCE, 
                                        `solver_expr_l`, 
                                        `solver_expr_r`) 
*Set(spr_name.l.use_local_dll, TRUE|FALSE) 
*Set(spr_name.r.use_local_dll, TRUE|FALSE) 
*Set(spr.l.local_dll, "string") 
*Set(spr.r.local_dll, "string")

Arguments

spr_name
The variable name of an existing torsion spring pair.
Data type: varname
SFORCE
This argument indicates the type of user subroutine that is used to compute torsion spring pair properties.
solver_expr_l
A solver expression enclosed in back quotes to specify arguments for the user subroutine for the left torsion spring.
Data type: string
solver_expr_r
A solver expression enclosed in back quotes to specify arguments for the user subroutine for the right torsion spring.
Data type: string
spr_name.l.use_local_dll spr_name.r.use_local_dll
Specifies if a user subroutine DLL specific to the instance of one torsion spring pair entity is to be used.
Data type: boolean
spr_name.l.local_dll spr_name.r.local_dll
The path and filename for the user subroutine DLL to be used with an instance of the user defined torsion spring pair.
Data type: string

Example

*TorsionSpringPair( spr_tbar, "Torsion bar", 	b_upr, 
								b_lwr, 
								p_upr, 
								p_lwr)
*Curve( crv_spr, "Rate")
    
*SetTorsionSpring(spr_tbar, , SFORCE, 
                             `USER(1,{ spr_tbar.l.i.id, %d },
  				    	       { spr_tbar.l.j.id, %d },
   						 { cr() },`
                             `-{ crv_spr.id, %d })`,
                             `USER(1,{ spr_tbar.r.i.id, %d },
					       { spr_tbar.r.j.id, %d }, 
					       { cr() },`
                             `-{ crv_spr.id, %d })`)

Context

*BeginMdl()

*DefineAnalysis()

*DefineSystem()

Comments

Torsion spring properties can be computed with user subroutines of type SFOSUB. A user executable must be created when using these subroutines.

The solver expression specified follows Templex syntax where all the variables to be evaluated are enclosed in braces {} and the rest of the expression is treated as literal.