pub struct ElementBlock<F, const N: usize> { /* private fields */ }Trait Implementations§
Source§impl<F, const N: usize> Debug for ElementBlock<F, N>
 
impl<F, const N: usize> Debug for ElementBlock<F, N>
Source§impl<C, F, const G: usize, const N: usize> ElasticFiniteElementBlock<C, F, G, N> for ElementBlock<F, N>
 
impl<C, F, const G: usize, const N: usize> ElasticFiniteElementBlock<C, F, G, N> for ElementBlock<F, N>
fn nodal_forces( &self, nodal_coordinates: &NodalCoordinatesBlock, ) -> Result<NodalForcesBlock, FiniteElementBlockError>
fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinatesBlock, ) -> Result<NodalStiffnessesBlock, FiniteElementBlockError>
Source§impl<C, F, const G: usize, const N: usize> ElasticHyperviscousFiniteElementBlock<C, F, G, N> for ElementBlock<F, N>where
    C: ElasticHyperviscous,
    F: ElasticHyperviscousFiniteElement<C, G, N>,
    Self: ViscoelasticFiniteElementBlock<C, F, G, N>,
 
impl<C, F, const G: usize, const N: usize> ElasticHyperviscousFiniteElementBlock<C, F, G, N> for ElementBlock<F, N>where
    C: ElasticHyperviscous,
    F: ElasticHyperviscousFiniteElement<C, G, N>,
    Self: ViscoelasticFiniteElementBlock<C, F, G, N>,
fn viscous_dissipation( &self, nodal_coordinates: &NodalCoordinatesBlock, nodal_velocities: &NodalVelocitiesBlock, ) -> Result<Scalar, FiniteElementBlockError>
fn dissipation_potential( &self, nodal_coordinates: &NodalCoordinatesBlock, nodal_velocities: &NodalVelocitiesBlock, ) -> Result<Scalar, FiniteElementBlockError>
fn minimize( &self, equality_constraint: EqualityConstraint, integrator: impl Explicit<NodalVelocitiesBlock, NodalVelocitiesHistory>, time: &[Scalar], solver: impl SecondOrderOptimization<Scalar, NodalForcesBlock, NodalStiffnessesBlock, NodalCoordinatesBlock>, ) -> Result<(Times, NodalCoordinatesHistory, NodalVelocitiesHistory), IntegrationError>
Source§impl<'a, C, F, const G: usize, const N: usize> FiniteElementBlock<'a, C, F, G, N> for ElementBlock<F, N>where
    F: FiniteElement<'a, C, G, N>,
 
impl<'a, C, F, const G: usize, const N: usize> FiniteElementBlock<'a, C, F, G, N> for ElementBlock<F, N>where
    F: FiniteElement<'a, C, G, N>,
fn new( constitutive_model: &'a C, connectivity: Connectivity<N>, coordinates: ReferenceNodalCoordinatesBlock, ) -> Self
fn reset(&mut self)
Source§impl<F, const G: usize, const N: usize> FiniteElementBlockMethods<F, G, N> for ElementBlock<F, N>where
    F: FiniteElementMethods<G, N>,
 
impl<F, const G: usize, const N: usize> FiniteElementBlockMethods<F, G, N> for ElementBlock<F, N>where
    F: FiniteElementMethods<G, N>,
fn connectivity(&self) -> &Connectivity<N>
fn coordinates(&self) -> &ReferenceNodalCoordinatesBlock
fn deformation_gradients( &self, nodal_coordinates: &NodalCoordinatesBlock, ) -> Vec<DeformationGradientList<G>> ⓘ
fn elements(&self) -> &[F]
fn nodal_coordinates_element( &self, element_connectivity: &[usize; N], nodal_coordinates: &NodalCoordinatesBlock, ) -> CurrentCoordinates<D>
Source§impl<C, F, const G: usize, const N: usize> FirstOrderMinimize<C, F, G, N> for ElementBlock<F, N>where
    C: Hyperelastic,
    F: HyperelasticFiniteElement<C, G, N>,
    Self: ElasticFiniteElementBlock<C, F, G, N>,
 
impl<C, F, const G: usize, const N: usize> FirstOrderMinimize<C, F, G, N> for ElementBlock<F, N>where
    C: Hyperelastic,
    F: HyperelasticFiniteElement<C, G, N>,
    Self: ElasticFiniteElementBlock<C, F, G, N>,
fn minimize( &self, equality_constraint: EqualityConstraint, solver: impl FirstOrderOptimization<Scalar, NodalForcesBlock>, ) -> Result<NodalCoordinatesBlock, OptimizationError>
Source§impl<C, F, const G: usize, const N: usize> FirstOrderRoot<C, F, G, N> for ElementBlock<F, N>
 
impl<C, F, const G: usize, const N: usize> FirstOrderRoot<C, F, G, N> for ElementBlock<F, N>
fn root( &self, equality_constraint: EqualityConstraint, solver: impl FirstOrderRootFinding<NodalForcesBlock, NodalStiffnessesBlock, NodalCoordinatesBlock>, ) -> Result<NodalCoordinatesBlock, OptimizationError>
Source§impl<C, F, const G: usize, const N: usize> HyperelasticFiniteElementBlock<C, F, G, N> for ElementBlock<F, N>where
    C: Hyperelastic,
    F: HyperelasticFiniteElement<C, G, N>,
    Self: ElasticFiniteElementBlock<C, F, G, N>,
 
impl<C, F, const G: usize, const N: usize> HyperelasticFiniteElementBlock<C, F, G, N> for ElementBlock<F, N>where
    C: Hyperelastic,
    F: HyperelasticFiniteElement<C, G, N>,
    Self: ElasticFiniteElementBlock<C, F, G, N>,
fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinatesBlock, ) -> Result<Scalar, FiniteElementBlockError>
Source§impl<C, F, const G: usize, const N: usize> HyperviscoelasticFiniteElementBlock<C, F, G, N> for ElementBlock<F, N>where
    C: Hyperviscoelastic,
    F: HyperviscoelasticFiniteElement<C, G, N>,
    Self: ElasticHyperviscousFiniteElementBlock<C, F, G, N>,
 
impl<C, F, const G: usize, const N: usize> HyperviscoelasticFiniteElementBlock<C, F, G, N> for ElementBlock<F, N>where
    C: Hyperviscoelastic,
    F: HyperviscoelasticFiniteElement<C, G, N>,
    Self: ElasticHyperviscousFiniteElementBlock<C, F, G, N>,
fn helmholtz_free_energy( &self, nodal_coordinates: &NodalCoordinatesBlock, ) -> Result<Scalar, FiniteElementBlockError>
Source§impl<C, F, const G: usize, const N: usize> SecondOrderMinimize<C, F, G, N> for ElementBlock<F, N>where
    C: Hyperelastic,
    F: HyperelasticFiniteElement<C, G, N>,
    Self: ElasticFiniteElementBlock<C, F, G, N>,
 
impl<C, F, const G: usize, const N: usize> SecondOrderMinimize<C, F, G, N> for ElementBlock<F, N>where
    C: Hyperelastic,
    F: HyperelasticFiniteElement<C, G, N>,
    Self: ElasticFiniteElementBlock<C, F, G, N>,
fn minimize( &self, equality_constraint: EqualityConstraint, solver: impl SecondOrderOptimization<Scalar, NodalForcesBlock, NodalStiffnessesBlock, NodalCoordinatesBlock>, ) -> Result<NodalCoordinatesBlock, OptimizationError>
Source§impl<'a, C, F, const G: usize, const N: usize, const P: usize> SurfaceFiniteElementBlock<'a, C, F, G, N, P> for ElementBlock<F, N>where
    F: SurfaceFiniteElement<'a, C, G, N, P>,
 
impl<'a, C, F, const G: usize, const N: usize, const P: usize> SurfaceFiniteElementBlock<'a, C, F, G, N, P> for ElementBlock<F, N>where
    F: SurfaceFiniteElement<'a, C, G, N, P>,
fn new( constitutive_model: &'a C, connectivity: Connectivity<N>, coordinates: ReferenceNodalCoordinatesBlock, thickness: Scalar, ) -> Self
Source§impl<C, F, const G: usize, const N: usize> ViscoelasticFiniteElementBlock<C, F, G, N> for ElementBlock<F, N>where
    C: Viscoelastic,
    F: ViscoelasticFiniteElement<C, G, N>,
    Self: FiniteElementBlockMethods<F, G, N>,
 
impl<C, F, const G: usize, const N: usize> ViscoelasticFiniteElementBlock<C, F, G, N> for ElementBlock<F, N>where
    C: Viscoelastic,
    F: ViscoelasticFiniteElement<C, G, N>,
    Self: FiniteElementBlockMethods<F, G, N>,
fn deformation_gradient_rates( &self, nodal_coordinates: &NodalCoordinatesBlock, nodal_velocities: &NodalVelocitiesBlock, ) -> Vec<DeformationGradientRateList<G>> ⓘ
fn nodal_forces( &self, nodal_coordinates: &NodalCoordinatesBlock, nodal_velocities: &NodalVelocitiesBlock, ) -> Result<NodalForcesBlock, FiniteElementBlockError>
fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinatesBlock, nodal_velocities: &NodalVelocitiesBlock, ) -> Result<NodalStiffnessesBlock, FiniteElementBlockError>
fn nodal_velocities_element( &self, element_connectivity: &[usize; N], nodal_velocities: &NodalVelocitiesBlock, ) -> CurrentCoordinates<D>
fn root( &self, equality_constraint: EqualityConstraint, integrator: impl Explicit<NodalVelocitiesBlock, NodalVelocitiesHistory>, time: &[Scalar], solver: impl FirstOrderRootFinding<NodalForcesBlock, NodalStiffnessesBlock, NodalCoordinatesBlock>, ) -> Result<(Times, NodalCoordinatesHistory, NodalVelocitiesHistory), IntegrationError>
Source§impl<C, F, const G: usize, const N: usize> ZerothOrderRoot<C, F, G, N> for ElementBlock<F, N>
 
impl<C, F, const G: usize, const N: usize> ZerothOrderRoot<C, F, G, N> for ElementBlock<F, N>
fn root( &self, equality_constraint: EqualityConstraint, solver: impl ZerothOrderRootFinding<NodalCoordinatesBlock>, ) -> Result<NodalCoordinatesBlock, OptimizationError>
Auto Trait Implementations§
impl<F, const N: usize> Freeze for ElementBlock<F, N>
impl<F, const N: usize> RefUnwindSafe for ElementBlock<F, N>where
    F: RefUnwindSafe,
impl<F, const N: usize> Send for ElementBlock<F, N>where
    F: Send,
impl<F, const N: usize> Sync for ElementBlock<F, N>where
    F: Sync,
impl<F, const N: usize> Unpin for ElementBlock<F, N>where
    F: Unpin,
impl<F, const N: usize> UnwindSafe for ElementBlock<F, N>where
    F: UnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more