pub struct ElementBlock<F, const N: usize> { /* private fields */ }
Trait Implementations§
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, ConstitutiveError>
fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinatesBlock, ) -> Result<TensorRank2Vec2D<3, 1, 1>, ConstitutiveError>
fn root( &self, initial_coordinates: NodalCoordinatesBlock, root_finding: NewtonRaphson, equality_constraint: EqualityConstraint, ) -> Result<NodalCoordinatesBlock, OptimizeError>
Source§impl<C, F, const G: usize, const N: usize, Y> FiniteElementBlock<C, F, G, N, Y> for ElementBlock<F, N>
impl<C, F, const G: usize, const N: usize, Y> FiniteElementBlock<C, F, G, N, Y> for ElementBlock<F, N>
fn new( constitutive_model_parameters: Y, connectivity: Connectivity<N>, reference_nodal_coordinates: ReferenceNodalCoordinatesBlock, ) -> Self
Source§impl<C, F, const G: usize, const N: usize> FiniteElementBlockMethods<C, F, G, N> for ElementBlock<F, N>where
F: FiniteElementMethods<C, G, N>,
impl<C, F, const G: usize, const N: usize> FiniteElementBlockMethods<C, F, G, N> for ElementBlock<F, N>where
F: FiniteElementMethods<C, G, N>,
fn connectivity(&self) -> &Connectivity<N>
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> 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, ConstitutiveError>
fn minimize( &self, initial_coordinates: NodalCoordinatesBlock, optimization: NewtonRaphson, equality_constraint: EqualityConstraint, ) -> Result<NodalCoordinatesBlock, OptimizeError>
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, ConstitutiveError>
Source§impl<C, F, const G: usize, const N: usize, const P: usize, Y> SurfaceFiniteElementBlock<C, F, G, N, P, Y> for ElementBlock<F, N>
impl<C, F, const G: usize, const N: usize, const P: usize, Y> SurfaceFiniteElementBlock<C, F, G, N, P, Y> for ElementBlock<F, N>
fn new( constitutive_model_parameters: Y, connectivity: Connectivity<N>, reference_nodal_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<C, 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<C, F, G, N>,
fn nodal_forces( &self, nodal_coordinates: &NodalCoordinatesBlock, nodal_velocities: &TensorRank1Vec<3, 1>, ) -> Result<NodalForcesBlock, ConstitutiveError>
fn nodal_stiffnesses( &self, nodal_coordinates: &NodalCoordinatesBlock, nodal_velocities: &TensorRank1Vec<3, 1>, ) -> Result<TensorRank2Vec2D<3, 1, 1>, ConstitutiveError>
fn nodal_velocities_element( &self, element_connectivity: &[usize; N], nodal_velocities: &TensorRank1Vec<3, 1>, ) -> CurrentCoordinates<D>
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