fleet-coordinate 0.1.0

Fleet coordination via zero-holonomy consensus and Laman rigidity
Documentation
use fleet_coordinate::beam::{BeamSolver, MultiSegmentBeam, SegmentConfig, JointConfig, Material, CrossSection, BoundaryCondition};

fn make_two_seg() -> MultiSegmentBeam {
    MultiSegmentBeam {
        segments: vec![
            SegmentConfig {
                id: 0, length: 1000.0,
                material: Material::oak(),
                section: CrossSection::circular(20.0),
                left_bc: BoundaryCondition::Pinned,
                right_bc: BoundaryCondition::Pinned,
            },
            SegmentConfig {
                id: 1, length: 1000.0,
                material: Material::oak(),
                section: CrossSection::circular(20.0),
                left_bc: BoundaryCondition::Pinned,
                right_bc: BoundaryCondition::Pinned,
            },
        ],
        joints: vec![JointConfig { left_segment_id: 0, right_segment_id: 1, equilibrium_tolerance: 1e-6 }],
        distributed_load: 0.001,
    }
}

#[test]
fn test_two_segment_solver() {
    let beam = make_two_seg();
    let solver = BeamSolver::new(1e-4);
    let result = solver.solve(&beam).unwrap();
    assert!(result.rounds > 0);
}