pub trait FiniteElementMethods<const G: usize, const N: usize> {
    // Required methods
    fn deformation_gradients(
        &self,
        nodal_coordinates: &CurrentCoordinates<D>,
    ) -> DeformationGradientList<G>;
    fn deformation_gradient_rates(
        &self,
        nodal_coordinates: &CurrentCoordinates<D>,
        nodal_velocities: &CurrentCoordinates<D>,
    ) -> DeformationGradientRateList<G>;
    fn gradient_vectors(&self) -> &Vectors2D<0, N, G>;
    fn integration_weights(&self) -> &Scalars<G>;
}