conspire 0.6.0

The Rust interface to conspire.
Documentation
use crate::{
    fem::{
        NodalCoordinates, NodalReferenceCoordinates, NodalVelocities,
        block::{
            Block, Connectivity,
            element::{
                ElementNodalCoordinates, ElementNodalReferenceCoordinates, ElementNodalVelocities,
                FiniteElement, GradientVectors,
                solid::SolidFiniteElement,
                surface::{
                    Normals, SurfaceFiniteElement,
                    linear::{
                        quadrilateral::{G, M, N, P, Quadrilateral},
                        triangle::test::{
                            D, applied_velocities, applied_velocity, equality_constraint,
                            get_coordinates_block, get_reference_coordinates_block,
                            get_velocities_block,
                        },
                    },
                },
                test::test_surface_finite_element,
            },
            test::test_surface_finite_element_block,
        },
        solid::{NodalForcesSolid, NodalStiffnessesSolid},
    },
    math::{Scalar, ScalarList, Tensor, optimize::EqualityConstraint},
    mechanics::{
        DeformationGradient, DeformationGradientList, DeformationGradientRate,
        DeformationGradientRateList,
    },
};

fn get_connectivity() -> Connectivity<N> {
    vec![
        [5, 13, 3, 1],
        [13, 12, 2, 3],
        [12, 11, 0, 2],
        [6, 15, 13, 5],
        [15, 14, 12, 13],
        [14, 10, 11, 12],
        [4, 8, 15, 6],
        [8, 9, 14, 15],
        [9, 7, 10, 14],
    ]
}

fn reference_coordinates() -> ElementNodalReferenceCoordinates<N> {
    ElementNodalReferenceCoordinates::from([
        [0.0, 0.0, 0.0],
        [1.0, 0.0, 0.0],
        [1.0, 1.0, 0.0],
        [0.0, 1.0, 0.0],
    ])
}

test_surface_finite_element!(Quadrilateral);
test_surface_finite_element_block!(Quadrilateral);