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

}