virtualbow
virtualbow copied to clipboard
Final cleanup and testing of the new Rust solver
Specific Issues
- [x] The error messages starting with "Layer" and "Material" should contain the name of the problematic layer or material
- [x] ~Import of old models that contain the same material or layer name multiple times does not work correctly~ Import works but produces a model with error, which can be fixed easily by users. So nothing to do here.
- [x] Change back the order of layers as it was before, switch internally
- [ ] Some older files do not load yet
- [x] ~Check~ Fix difference in sign of curvature plot
- [x] Round auto-converted shear modulus to same precision as Young's modulus
- [x] Invalid settings reaching the solver from
compute_geometrycrash the application (test by removing validation in GUI and entering invalid values). Write tests on the C++ side for invalid inputs. - [ ] Consider moving the safety margin from material to layer properties
- [ ] Find a clean solution for evaluating layer stresses and strains only over the length of the layer. Same for layer thickness plots.
- [ ] Add tests for beam convergence (error vs. number of elements). Ensure that numerical settings work even for large numbers of elements.
- [ ] Revisit all models that came back with simulation failures during development testing
General Cleanup
- [x] Update all dependencies
- [x] Run cargo-license to see if there are any problems or obligations
- [x] Add asserts wherever it makes sense, especially for parameters of the elements
- [x] Have a look at all the
unwrap()andexpect()calls in the code, resolve or add comments why they are okay - [ ] Have a look at all the TODO comments in the code, fix important ones and keep rest for later (#278)
- [ ] Final naming of the (sub-)crates (
virtualbow_num->virtualbow_fem?virtualbow_xyz->virtualbow-xyz?) - [ ] Define the example bow in the UI code instead of the solver for consistency (like new layers, materials, etc.)
Testing and Verification
- [ ] Are angle and curvature of the different curve segments tested against numerical approximations?
- [ ] Add tests for
HandleRefin combination withLayerAlignment - [ ] Check for symmetry errors in the model (*2, /2)
- [ ] Go over all error types and check if there is a test for them if it makes sense
- [ ] Have a closer look at the test coverage results and add tests where it makes sense
- [x] Use GXBeam as a reference for the beam verification examples. Also pick beam length != 1 and add examples of composite cross sections.
- [ ] Re-simulate user bows where the results didn't match well previously
- [ ] Write section stiffnesses to the results and check relation between strains and forces