pub trait ViscoelasticFiniteElement<C, const G: usize, const N: usize>where
    C: Viscoelastic,
    Self: FiniteElementMethods<G, N>,{
    // Required methods
    fn nodal_forces(
        &self,
        nodal_coordinates: &CurrentCoordinates<D>,
        nodal_velocities: &CurrentCoordinates<D>,
    ) -> Result<Forces<D>, FiniteElementError>;
    fn nodal_stiffnesses(
        &self,
        nodal_coordinates: &CurrentCoordinates<D>,
        nodal_velocities: &CurrentCoordinates<D>,
    ) -> Result<Stiffnesses<D>, FiniteElementError>;
}