pub trait FiniteElement<const G: usize, const M: usize, const N: usize, const P: usize>{
// Required methods
fn integration_points() -> ParametricCoordinates<G, M>;
fn integration_weights(&self) -> &ScalarList<G>;
fn parametric_reference() -> ParametricReference<M, N>;
fn parametric_weights() -> ScalarList<G>;
fn scaled_jacobians<const I: usize>(
nodal_coordinates: ElementNodalEitherCoordinates<I, N>,
) -> ScalarList<P>;
fn shape_functions(
parametric_coordinate: ParametricCoordinate<M>,
) -> ShapeFunctions<P>;
fn shape_functions_gradients(
parametric_coordinate: ParametricCoordinate<M>,
) -> ShapeFunctionsGradients<M, P>;
// Provided methods
fn minimum_scaled_jacobian<const I: usize>(
nodal_coordinates: ElementNodalEitherCoordinates<I, N>,
) -> Scalar { ... }
fn shape_functions_at_integration_points( ) -> ShapeFunctionsAtIntegrationPoints<G, P> { ... }
fn shape_functions_gradients_at_integration_points( ) -> StandardGradientOperators<M, P, G> { ... }
fn volume(&self) -> Scalar { ... }
}Required Methods§
fn integration_points() -> ParametricCoordinates<G, M>
fn integration_weights(&self) -> &ScalarList<G>
fn parametric_reference() -> ParametricReference<M, N>
fn parametric_weights() -> ScalarList<G>
fn scaled_jacobians<const I: usize>( nodal_coordinates: ElementNodalEitherCoordinates<I, N>, ) -> ScalarList<P>
fn shape_functions( parametric_coordinate: ParametricCoordinate<M>, ) -> ShapeFunctions<P>
fn shape_functions_gradients( parametric_coordinate: ParametricCoordinate<M>, ) -> ShapeFunctionsGradients<M, P>
Provided Methods§
fn minimum_scaled_jacobian<const I: usize>( nodal_coordinates: ElementNodalEitherCoordinates<I, N>, ) -> Scalar
fn shape_functions_at_integration_points() -> ShapeFunctionsAtIntegrationPoints<G, P>
fn shape_functions_gradients_at_integration_points() -> StandardGradientOperators<M, P, G>
fn volume(&self) -> Scalar
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.