5.2. Result Files
Note
|
The following specification is subject to change.
Scripts that work with .res files should therefore expect incompatibilities with newer versions of VirtualBow.
|
Note
|
For space efficiency reasons, the stress values for each layer aren’t stored directly in the result files. Instead, each layer has two constant matrices \(H_{e\mathrm{\ (back/belly)}}\) that relate the longitudinal strains \(\varepsilon\) to the resulting stresses at the back or belly side of the layer as well as two matrices \(H_{k\mathrm{\ (back/belly)}}\) that do the same for the bending curvature \(\kappa\). The total stress is the sum of the stresses due to longitudinal strain and bending curvature and can be calculated as
\[\sigma = H_e \cdot \varepsilon + H_k \cdot \kappa\]
where the dot (\(\cdot\)) represents a matrix-vector multiplication. The result is a vector of stresses corresponding to the nodes of the layer. |
P: Number of limb nodes
Q: Number of string nodes
R: Number of layer nodes
Field | Type | Unit | Description |
---|---|---|---|
setup { |
|||
string_length |
Double |
m |
Length of the string |
string_mass |
Double |
kg |
Mass of the string, including additional masses |
limb_mass |
Double |
kg |
Mass of the limb, including additional masses |
limb_properties { |
|||
length |
Double[P] |
m |
Arc lengths of the limb nodes (unbraced) |
angle |
Double[P] |
rad |
Rotation angles of the limb nodes (unbraced) |
x_pos |
Double[P] |
m |
X coordinates of the limb nodes (unbraced) |
y_pos |
Double[P] |
m |
Y coordinates of the limb nodes (unbraced) |
width |
Double[P] |
m |
Cross section width |
height |
Double[P] |
m |
Cross section height (all layers) |
rhoA |
Double[P] |
kg/m |
Linear density of the sections |
Cee |
Double[P] |
N |
Longitudinal stiffness of the sections |
Ckk |
Double[P] |
Nm² |
Bending stiffness of the sections |
Cek |
Double[P] |
Nm |
Coupling between bending and elongation |
layers [ |
|||
{ |
|||
length |
Double[R] |
m |
Arc lengths of the layer nodes |
He_back |
Double[R][P] |
N/m² |
Stress evaluation matrix (back) |
Hk_back |
Double[R][P] |
N/m |
Stress evaluation matrix (back) |
He_belly |
Double[R][P] |
N/m² |
Stress evaluation matrix (belly) |
Hk_belly |
Double[R][P] |
N/m |
Stress evaluation matrix (belly) |
} |
|||
{ |
|||
… |
|||
} |
|||
] |
|||
} |
|||
} |
|||
statics { |
|||
final_draw_force |
Double |
N |
Final draw force |
drawing_work |
Double |
J |
Drawing work |
energy storage factor |
Double |
— |
Energy storage factor |
max_string_force_index |
Integer |
— |
Simulation state with maximum absolute string force |
max_grip_force_index |
Integer |
— |
Simulation state with maximum absolute grip force |
max_draw_force_index |
Integer |
— |
Simulation state with maximum absolute draw force |
min_stress_value |
Double[] |
Pa |
Minimum stress for each layer |
min_stress_index |
Integer[][] |
— |
Simulation state and layer node for each minimum stress value |
max_stress_value |
Double[] |
Pa |
Maximum stress for each layer |
max_stress_index |
Integer[][] |
— |
Simulation state and layer node for each maximum stress value |
states { |
|||
… |
Sequence of bow states (see table below) |
||
} |
|||
} |
|||
dynamics { |
|||
final_pos_arrow |
Double |
m |
Position of the arrow at departure |
final_vel_arrow |
Double |
m/s |
Velocity of the arrow at departure |
final_e_kin_arrow |
Double |
J |
Kinetic energy of the arrow at departure |
final_e_pot_limbs |
Double |
J |
Potential energy of the limbs at arrow departure |
final_e_kin_limbs |
Double |
J |
Kinetic energy of the limbs at arrow departure |
final_e_pot_string |
Double |
J |
Potential energy of the string at arrow departure |
final_e_kin_string |
Double |
J |
Kinetic energy of the string at arrow departure |
efficiency |
Double |
— |
Degree of efficiency |
max_string_force_index |
Integer |
— |
Simulation state with maximum absolute string force |
max_grip_force_index |
Integer |
— |
Simulation state with maximum absolute grip force |
arrow_departure_index |
Integer |
— |
Simulation state at which the arrow departs with the string |
min_stress_value |
Double[] |
Pa |
Minimum stress for each layer |
min_stress_index |
Integer[][] |
— |
Simulation state and layer node for each stress value |
max_stress_value |
Double[] |
Pa |
Maximum stress for each layer |
max_stress_index |
Integer[][] |
— |
Simulation state and layer node for each stress value |
states { |
|||
… |
Sequence of bow states (see table below) |
||
} |
|||
} |
N: Number of simulation steps
P: Number of limb nodes
Q: Number of string nodes
Field | Type | Unit | Description |
---|---|---|---|
states { |
|||
time |
Double[N] |
s |
Time |
draw_length |
Double[N] |
m |
Draw length |
draw_force |
Double[N] |
N |
Draw force |
string_force |
Double[N] |
N |
String force (total) |
strand_force |
Double[N] |
N |
String force (strand) |
grip_force |
Double[N] |
N |
Grip force |
pos_arrow |
Double[N] |
m |
Arrow position |
vel_arrow |
Double[N] |
m/s |
Arrow velocity |
acc_arrow |
Double[N] |
m/s² |
Arrow acceleration |
x_pos_limb |
Double[N][P] |
m |
X coordinates of the limb nodes |
y_pos_limb |
Double[N][P] |
m |
Y coordinates of the limb nodes |
angle_limb |
Double[N][P] |
rad |
Rotation angles of the limb nodes |
epsilon |
Double[N][P] |
— |
Longitudinal strain at the limb nodes |
kappa |
Double[N][P] |
m |
Bending curvature at the limb nodes |
x_pos_string |
Double[N][Q] |
m |
X coordinates of the string nodes |
y_pos_string |
Double[N][Q] |
m |
Y coordinates of the string nodes |
e_pot_limbs |
Double[N] |
J |
Potential energy of the limbs |
e_kin_limbs |
Double[N] |
J |
Kinetic energy of the limbs |
e_pot_string |
Double[N] |
J |
Potential energy of the string |
e_kin_string |
Double[N] |
J |
Kinetic energy of the string |
e_kin_arrow |
Double[N] |
J |
Kinetic energy of the arrow |
} |