# Field

## Class Field()

```
Field(parent='MODEL', name='Field_n', label='Field_n', active=True,
b1=None, b2=None, k=36 * [0], c=36 * [0], f=6 * [0], length=6 * [0],
damping_type='CRATIO', cratio=0, origin=None, ornt_meth='TWOAXES')
```

Creates a field.

## Keyword Arguments

Argument | Data Type | Description | Default |
---|---|---|---|

name | String | The variable name. | Field_n, for next available integer n. |

label | String | The descriptive label. | Field_n, for next available integer n. |

parent | Object | The parent. | MODEL |

active | Boolean | Used to activate or deactivate this entity. | True |

b1 | Body | The first body constrained by the field. | None |

b2 | Body | The second body constrained by the field. | None |

k | NumericVector | Stiffness values of the 6x6 stiffness matrix. | 36*[0] |

c | NumericVector | The damping coefficients of the 6x6 damping matrix. | 36*[0] |

f | NumericVector | The force values for the six components (3 forces, 3 torques) at the corresponding lengths (length1 : length6). Zero force would mean a free length at the given lengths. | 6*[0] |

length | NumericVector | The reference lengths between the i marker and the j marker. | 6*[0] |

damping_type | Enum | Use CRATIO to apply damping as a percentage of stiffness, or use MATRIX to supply a 6x6 damping matrix. One of MATRIX or CRATIO. | CRATIO |

cratio | Double | Damping as a percentage of stiffness, applied to each stiffness. | 0 |

origin | Reference | The location. | None |

ornt_meth | Enum | The orientation method. One of TWOAXES, ONEAXIS or ANGLES. | TWOAXES |

ornt_dir1 | Enum | The direction used to orient axis 1. One of X, Y or Z. | Z |

align_meth1 | MultiRef | Alignment method for axis 1. One of Point, Vector or DxDyDz. | DxDyDz |

align_pt1 | Reference | The point when align_meth1 is Point. | None |

align_vec1 | Reference | The point reference when align_meth1 is Point. | None |

ornt_dir2 | Enum | The direction used to orient axis 2. One of X, Y or Z. | X |

align_meth2 | MultiRef | Alignment method for axis 1. One of Point, Vector or DxDyDz. | DxDyDz |

align_pt2 | Reference | The point when align_meth2 is Point. | None |

align_vec2 | Reference | The point reference when align_meth2 is Point. | None |

e1 | Double | The e1 Euler angle (z:x':z'') in radians with respect to rm. | 0 |

e2 | Double | The e2 Euler angle (z:x':z'') in radians with respect to rm. | 0 |

e3 | Double | The e3 Euler angle (z:x':z'') in radians with respect to rm. | 0 |

rm | Reference | The reference marker when ornt_meth is ANGLES. | Global_Frame |

x1 | Double | The direction cosine x1 for axis 1. | 0 |

y1 | Double | The direction cosine y1 for axis 1. | 0 |

z1 | Double | The direction cosine z1 for axis 1. | 1 |

x2 | Double | The direction cosine x2 for axis 2. | 1 |

y2 | Double | The direction cosine y2 for axis 2. | 0 |

z2 | Double | The direction cosine z2 for axis 2. | 0 |

user | Bool | 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

Instance | Type | Description |
---|---|---|

xaxis | Vector | The vector in x direction of orientation. |

yaxis | Vector | The vector in y direction of orientation. |

zaxis | Vector | The vector in z direction of orientation. |

## Examples

Create and modify attributes of a
Field.

```
>>> # Import mview module
>>> from hw import mview
>>> #Create a field
>>> f = mview.Field()
>>> b_1 = mview.Body()
>>> b_2 = mview.Body()
>>> p1 = mview.Point()
>>> f.b1 = b_1
>>> f.b2 = b_2
>>> f.origin = p1
>>> f.b1.name
'Body_1'
>>> f.b2.name
'Body_2'
>>> f.damping_type
'CRATIO'
>>> # Change the damping value
>>> f.cratio = 0.4
>>> f.cratio
0.4
>>> # Change the force values for the six components
>>> f.f = [1,2,3,4,5,6]
>>> f.f
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0]
```