conspire 0.7.7

The Rust interface to conspire.
Documentation
use crate::{
    constitutive::solid::hyperelastic::NeoHookean,
    fem::{
        NodalCoordinates, NodalReferenceCoordinates,
        block::{Block, element::linear::Tetrahedron},
        solid::elastic::ElasticElements,
    },
    units::Stress,
};

#[test]
fn block_error_carries_no_escape_codes() {
    let reference = NodalReferenceCoordinates::<3>::from(vec![
        [0.0, 0.0, 0.0],
        [1.0, 0.0, 0.0],
        [0.0, 1.0, 0.0],
        [0.0, 0.0, 1.0],
    ]);
    let block = Block::<_, Tetrahedron, 1, 3, 4, 4>::from((
        NeoHookean {
            shear_modulus: Stress::pascals(3.0),
            bulk_modulus: Stress::pascals(13.0),
        },
        vec![[0, 1, 2, 3]],
        &reference,
    ));
    let coordinates = NodalCoordinates::<3>::from(vec![
        [0.0, 0.0, 0.0],
        [1.0, 0.0, 0.0],
        [0.0, 1.0, 0.0],
        [0.0, 0.0, -1.0],
    ]);
    let error = block.nodal_forces(&coordinates).unwrap_err();
    let rendered = format!("{error}");
    assert!(!rendered.contains('\u{1b}'))
}