You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
For the past year or so I have been working on a complete rewrite (and redesign) of the VirtualBow solver, i.e. the part that does the numerical computations. Unlike the old solver, the new one is written in Rust instead of C++ (see also #215). Even though the new solver is not yet finished, it has reached a state where it can be integrated into the main application in order to make testing and filling in missing features easier. This is currently happening on the branch integrate-new-solver (not usable yet).
This issue is for tracking the progress and the remaining tasks and will be updated frequently.
Remaining tasks for the integration
Include Rust compilation in the main build process
Make CI/CD pipeline work
Run solver tests in the pipeline
Call new solver from main application
Finalize new solver's output format
Load new solver output from the main application
Remaining tasks/missing functionality of the new solver
Add back test test_load_output
Evaluation and output of layer stresses
Dynamic simulation, including output of correct arrow position
Damping of limb and string
Manually test new string damping to verify that it does something
New string model without penalty contacts
Split solver into two crates: virtualbow-lib and virtualbow-cli and add back integration tests for the command line interface.
More detailed solver issues
Document test example of nonlinear pendulum
Implement and document static test for the string model
Implement test of linear beam dynamics
Extend static tests to bows with recurves
Extend static tests to cross section stresses and strains
Extend dynamic tests (energy, basic properties)
Complete last missing outputs
Minimum and maximum layer stresses
Kinetic energy of string and arrow
Limb velocity
String velocity
Characteristic dynamic numbers
Bonus: Force/draw stiffness
Release string force gradually, add setting for release time
String is not placed at the correct distance from the reference line
Bracing angle incorrect for recurves, probably wrong measurement of string angle. Fix and check in tests.
Reduce stiffness of the string in compression for dynamic analysis, document this in the theory manual
Consistent use of either SVector<f64, N> or [f64; N] in the input and output structs
Reference materials and layers by their name instead of their index
Check for self-intersecting geometry (curvature too high for thickness)
Progress estimation for dynamic simulation
Check for/fix duplicate time point in the dynamic output
Add new/changed numerical parameters to the bow settings
Timestep estimation or control for the dynamic simulation
Add missing documentation for eigenvalue solver
Implement Error trait for all custom errors
In solvers, check if states are finite and abort early if not
Better method than trapezoidal rule for segment stiffness matrices?
For the past year or so I have been working on a complete rewrite (and redesign) of the VirtualBow solver, i.e. the part that does the numerical computations. Unlike the old solver, the new one is written in Rust instead of C++ (see also #215). Even though the new solver is not yet finished, it has reached a state where it can be integrated into the main application in order to make testing and filling in missing features easier. This is currently happening on the branch integrate-new-solver (not usable yet).
This issue is for tracking the progress and the remaining tasks and will be updated frequently.
Remaining tasks for the integration
Remaining tasks/missing functionality of the new solver
test_load_output
virtualbow-lib
andvirtualbow-cli
and add back integration tests for the command line interface.More detailed solver issues
SVector<f64, N>
or[f64; N]
in the input and output structssoa_derive
with https://github.com/tim-harding/soa-rsGUI/Integration issues
Final details/cleanup
&str
as well asString
unwrap()
andexpect()
calls in the codeKeep for later
assert_abs_diff_eq
does not seem to check the length of the inputs. Verify and open an issue.Issues that need to be revisited after integrating the new solver
The text was updated successfully, but these errors were encountered: