# SolverVariable

## Class SolverVariable()

SolverVariable(parent='MODEL', name='SolverVariable_n', label='SolverVariable_n',
active=True, use_ic=False, ic=0, is_implicit=False, static_hold=False, autobalance='Default',
penalty=100, penalty1=100)

Creates a solver variable.

## Keyword Arguments

Argument Data Type Description Default
name String The variable name. SolverVariable_n, for next available integer n.
label String The descriptive label. SolverVariable_n, for next available integer n.
parent Object The parent. MODEL
active Boolean Used to activate or deactivate this entity. True
use_ic Boolean Decides if initial conditions are not to be specified. False
ic Double Optional argument which gives the value of the solver variable at the time when the solver runs an initial conditions analysis.
is_implicit Boolean This option is only valid in the MotionSolve solver mode. If this flag is set to True, the defined function is considered an implicit equation. The solver could impose a constraint to satisfy the equation based on the autobalance setting. False
static_hold Boolean This option is applicable if initial conditions are specified. This option is only applicable if implicit is True. False
autobalance Enum This option is used when implicit is set to true. One of "Default", "Unconditional", "Disabled", "Penalty". Default
penalty Double The value of penalty. This data works in conjunction with the autobalance option set to Penalty. 100
penalty1 Double The value of penalty1. This data works in conjunction with the autobalance option set to Penalty. 100
user Boolean Use user defined properties, if true. False
usr_sub Function The expression passed to the user dll. When using solver expressions, Templex syntax (within ) is used and all variables are enclosed in braces {} and the rest is treated as literal. 'USER()'
local_funcname String The function/subroutine name. 'MOTSUB'
use_local_dll Bool Uses a local function instead of default if True. False
local_dll File The path of the local dll which has the local_funcname. ''
local_func_type Enum The type of the user subroutine. One of DLL, PYTHON or MATLAB. 'DLL'

## Instances

value (Nonlinear) : The value or function expression describing the solver variable. This variable can be used to create algebraic based variables that can be used in additional function expressions.

## Examples

   >>> # Import the mview module
>>> from hw import mview
>>> # Create a body and sphere for visual purpose
>>> b1 = mview.Body(name = 'ball', inertia_props_from_graphic = True)
>>> s1 = mview.Sphere(origin = 'P_Global_Origin', body = b1, radius = 5)
>>> # Create a Bushing between the body and Ground
>>> bush = mview.Bushing(b1 = b1, b2 = 'B_Ground', origin = 'P_Global_Origin')
>>> # Create a SolverVariable for variable damping in the bushing
>>> solvar = mview.SolverVariable(name = 'solvar',label = 'Variable damping')
>>> # Change the type of value from linear to expression
>>> solvar.value.type
'LIN'
>>> solvar.value.type = 'EXPR'
>>> # Set the expression as the displacement of ball in Z direction
>>> solvar.value.expr = 'DZ({ball.cm.idstring})'
>>> # Get the value to cross check the expression
>>> solvar.value.expr
'DZ(30102000)'
>>> # Set the bushing Z direction damping as SolverVariable*0.1
>>> bush.cz.type ='EXPR'
>>> bush.cz.expr = '{solvar.VARVAL}*0.1'
>>> # This will increase the damping as the displacement increases due to gravity